@@ -28,6 +28,8 @@ bool check(float a, float b) {
28
28
return fabs (2 * (a - b) / (a + b)) > bf16_eps * 2 ;
29
29
}
30
30
31
+ bool check (bool a, bool b) { return (a != b); }
32
+
31
33
#define TEST_BUILTIN_1_SCAL_IMPL (NAME ) \
32
34
{ \
33
35
buffer<float > a_buf (&a[0 ], N); \
@@ -45,7 +47,7 @@ bool check(float a, float b) {
45
47
} \
46
48
assert (err == 0 );
47
49
48
- #define TEST_BUILTIN_1_ARR_IMPL (NAME, SZ ) \
50
+ #define TEST_BUILTIN_1_ARR_IMPL (NAME, SZ, RETTY ) \
49
51
{ \
50
52
buffer<float , 2 > a_buf{range<2 >{N / SZ, SZ}}; \
51
53
buffer<int > err_buf (&err, 1 ); \
@@ -58,7 +60,7 @@ bool check(float a, float b) {
58
60
for (int i = 0 ; i < SZ; i++) { \
59
61
arg[i] = A[index][i]; \
60
62
} \
61
- marray<bfloat16 , SZ> res = NAME (arg); \
63
+ marray<RETTY , SZ> res = NAME (arg); \
62
64
for (int i = 0 ; i < SZ; i++) { \
63
65
if (check (res[i], NAME (A[index][i]))) { \
64
66
ERR[0 ] = 1 ; \
@@ -69,13 +71,13 @@ bool check(float a, float b) {
69
71
} \
70
72
assert (err == 0 );
71
73
72
- #define TEST_BUILTIN_1 (NAME ) \
74
+ #define TEST_BUILTIN_1 (NAME, RETTY ) \
73
75
TEST_BUILTIN_1_SCAL_IMPL (NAME) \
74
- TEST_BUILTIN_1_ARR_IMPL(NAME, 1 ) \
75
- TEST_BUILTIN_1_ARR_IMPL(NAME, 2 ) \
76
- TEST_BUILTIN_1_ARR_IMPL(NAME, 3 ) \
77
- TEST_BUILTIN_1_ARR_IMPL(NAME, 4 ) \
78
- TEST_BUILTIN_1_ARR_IMPL(NAME, 5 )
76
+ TEST_BUILTIN_1_ARR_IMPL(NAME, 1 , RETTY) \
77
+ TEST_BUILTIN_1_ARR_IMPL(NAME, 2 , RETTY) \
78
+ TEST_BUILTIN_1_ARR_IMPL(NAME, 3 , RETTY) \
79
+ TEST_BUILTIN_1_ARR_IMPL(NAME, 4 , RETTY) \
80
+ TEST_BUILTIN_1_ARR_IMPL(NAME, 5 , RETTY )
79
81
80
82
#define TEST_BUILTIN_2_SCAL_IMPL (NAME ) \
81
83
{ \
@@ -232,14 +234,18 @@ int main() {
232
234
c[i] = (float )(3 * i);
233
235
}
234
236
235
- TEST_BUILTIN_1 (fabs);
237
+ TEST_BUILTIN_1 (fabs, bfloat16 );
236
238
TEST_BUILTIN_2 (fmin);
237
239
TEST_BUILTIN_2 (fmax);
238
240
TEST_BUILTIN_3 (fma);
239
241
240
242
float check_nan = 0 ;
241
243
TEST_BUILTIN_2_NAN (fmin);
242
244
TEST_BUILTIN_2_NAN (fmax);
245
+
246
+ // Insert NAN value in a to test isnan
247
+ a[0 ] = a[N - 1 ] = NAN;
248
+ TEST_BUILTIN_1 (isnan, bool );
243
249
}
244
250
return 0 ;
245
251
}
0 commit comments