File tree Expand file tree Collapse file tree 1 file changed +21
-1
lines changed Expand file tree Collapse file tree 1 file changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -221,6 +221,26 @@ bool check(bool a, bool b) { return (a == b); }
221
221
assert (err == 0 ); \
222
222
assert (std::isnan(check_nan));
223
223
224
+ // The intention to introduce a proxy function for isnan is to bypass a compfail
225
+ // on Win64 platform. If we simply pass 'isnan' to testing macro, compiler will
226
+ // report 'ambiguous call' error. This is becayse MSVC header correct_math.h
227
+ // includes an isnan definition too. In order to bypass this without modifying
228
+ // current test infrastructure, we add proxy function for 'isnan' and uses full
229
+ // name to avoid amibiguity.
230
+ bool isnan_test_proxy (sycl::ext::oneapi::bfloat16 x) {
231
+ return sycl::ext::oneapi::experimental::isnan (x);
232
+ }
233
+ template <size_t N>
234
+ sycl::marray<bool , N>
235
+ isnan_test_proxy (sycl::marray<sycl::ext::oneapi::bfloat16, N> x) {
236
+ return sycl::ext::oneapi::experimental::isnan (x);
237
+ }
238
+ bool isnan_test_proxy (float x) { return sycl::isnan (x); }
239
+ template <size_t N>
240
+ sycl::marray<bool , N> isnan_test_proxy (sycl::marray<float , N> x) {
241
+ return sycl::isnan (x);
242
+ }
243
+
224
244
int main () {
225
245
queue q;
226
246
@@ -245,7 +265,7 @@ int main() {
245
265
246
266
// Insert NAN value in a to test isnan
247
267
a[0 ] = a[N - 1 ] = NAN;
248
- TEST_BUILTIN_1 (isnan , bool );
268
+ TEST_BUILTIN_1 (isnan_test_proxy , bool );
249
269
}
250
270
return 0 ;
251
271
}
You can’t perform that action at this time.
0 commit comments