Skip to content

Commit 3acace3

Browse files
jinge90bb-sycl
authored andcommitted
Fix windows compfail for bfloat16 isnan test (intel#1520)
Signed-off-by: jinge90 <[email protected]>
1 parent 202e386 commit 3acace3

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

SYCL/BFloat16/bfloat16_builtins.cpp

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,26 @@ bool check(bool a, bool b) { return (a == b); }
221221
assert(err == 0); \
222222
assert(std::isnan(check_nan));
223223

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+
224244
int main() {
225245
queue q;
226246

@@ -245,7 +265,7 @@ int main() {
245265

246266
// Insert NAN value in a to test isnan
247267
a[0] = a[N - 1] = NAN;
248-
TEST_BUILTIN_1(isnan, bool);
268+
TEST_BUILTIN_1(isnan_test_proxy, bool);
249269
}
250270
return 0;
251271
}

0 commit comments

Comments
 (0)