Skip to content

Commit fe003d9

Browse files
committed
Add a tests with unsigned int args
1 parent 5e93d51 commit fe003d9

File tree

3 files changed

+65
-1
lines changed

3 files changed

+65
-1
lines changed

tests/nomp-api-300-impl.h

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,62 @@
22

33
#define TEST_MAX_SIZE2 (TEST_MAX_SIZE * TEST_MAX_SIZE)
44

5+
#define nomp_api_300_aux_ui TOKEN_PASTE(nomp_api_300_aux_ui, TEST_SUFFIX)
6+
static int nomp_api_300_aux_ui(const char *fmt, TEST_TYPE *a, TEST_TYPE *b,
7+
unsigned rows, unsigned cols, int n) {
8+
nomp_test_chk(nomp_update(a, 0, n, sizeof(TEST_TYPE), NOMP_TO));
9+
nomp_test_chk(nomp_update(b, 0, n, sizeof(TEST_TYPE), NOMP_TO));
10+
11+
int id = -1;
12+
const char *clauses[4] = {"transform", "nomp-api-300", "transform", 0};
13+
char *knl = generate_knl(fmt, 2, TOSTRING(TEST_TYPE), TOSTRING(TEST_TYPE));
14+
nomp_test_chk(nomp_jit(&id, knl, clauses, 4, "a", sizeof(TEST_TYPE), NOMP_PTR,
15+
"b", sizeof(TEST_TYPE), NOMP_PTR, "rows",
16+
sizeof(unsigned), NOMP_UINT, "cols", sizeof(unsigned),
17+
NOMP_UINT));
18+
nomp_free(&knl);
19+
20+
nomp_test_chk(nomp_run(id, a, b, &rows, &cols));
21+
22+
nomp_test_chk(nomp_sync());
23+
24+
nomp_test_chk(nomp_update(a, 0, n, sizeof(TEST_TYPE), NOMP_FROM));
25+
nomp_test_chk(nomp_update(a, 0, n, sizeof(TEST_TYPE), NOMP_FREE));
26+
nomp_test_chk(nomp_update(b, 0, n, sizeof(TEST_TYPE), NOMP_FREE));
27+
28+
return 0;
29+
}
30+
31+
#define nomp_api_300_add_ui TOKEN_PASTE(nomp_api_300_add_ui, TEST_SUFFIX)
32+
static int nomp_api_300_add_ui(unsigned rows, unsigned cols) {
33+
const unsigned n = rows * cols;
34+
nomp_test_assert(n <= TEST_MAX_SIZE2);
35+
36+
TEST_TYPE a[TEST_MAX_SIZE2], b[TEST_MAX_SIZE2];
37+
for (unsigned i = 0; i < n; i++)
38+
a[i] = 2 * n - i, b[i] = i;
39+
40+
const char *knl_fmt =
41+
"void foo(%s *a, %s *b, unsigned rows, unsigned cols) { \n"
42+
" for (int e = 0; e < rows; e++) \n"
43+
" for (int i = 0; i < cols; i++) \n"
44+
" a[e * cols + i] = a[e * cols + i] + b[e * cols + i]; \n"
45+
"} \n";
46+
nomp_api_300_aux_ui(knl_fmt, a, b, rows, cols, n);
47+
48+
#if defined(TEST_TOL)
49+
for (unsigned i = 0; i < n; i++)
50+
nomp_test_assert(fabs(a[i] - 2 * n) < TEST_TOL);
51+
#else
52+
for (unsigned i = 0; i < n; i++)
53+
nomp_test_assert(a[i] == (TEST_TYPE)(2 * n));
54+
#endif
55+
56+
return 0;
57+
}
58+
#undef nomp_api_300_add_ui
59+
#undef nomp_api_300_aux_ui
60+
561
#define nomp_api_300_aux TOKEN_PASTE(nomp_api_300_aux, TEST_SUFFIX)
662
static int nomp_api_300_aux(const char *fmt, TEST_TYPE *a, TEST_TYPE *b,
763
int rows, int cols, int n) {

tests/nomp-api-300.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,13 @@ static int test_matrix_addition(void) {
1111
return err;
1212
}
1313

14+
static int test_matrix_addition_unsigned_bounds(void) {
15+
int err = 0;
16+
TEST_BUILTIN_TYPES(300_add_ui, 40, 5)
17+
TEST_BUILTIN_TYPES(300_add_ui, 16, 16)
18+
return err;
19+
}
20+
1421
static int test_matrix_transpose(void) {
1522
int err = 0;
1623
TEST_BUILTIN_TYPES(300_transpose, 40, 5)
@@ -37,6 +44,7 @@ int main(int argc, const char *argv[]) {
3744
nomp_check(err);
3845

3946
err |= SUBTEST(test_matrix_addition);
47+
err |= SUBTEST(test_matrix_addition_unsigned_bounds);
4048
err |= SUBTEST(test_matrix_transpose);
4149
err |= SUBTEST(test_matrix_vector_multiplication);
4250
err |= SUBTEST(test_matrix_matrix_multiplication);

tests/nomp-api-500-impl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ static int nomp_api_500_multiple_reductions(unsigned N, unsigned iterations) {
229229
"} \n";
230230

231231
TEST_TYPE a[TEST_MAX_SIZE];
232-
for (unsigned i = 1; i < iterations; ++i) {
232+
for (unsigned i = 0; i < iterations; ++i) {
233233
for (unsigned j = 0; j < N; j++)
234234
a[j] = i * j;
235235

0 commit comments

Comments
 (0)