mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
Fix 'fpclassify: ambiguous call' compile fail in MSVC 2022 (#2426)
Similar to #2219, we see "'fpclassify': ambiguous call" error in test_conformance\basic\test_fpmath.cpp due to missing constexpr at https://github.com/KhronosGroup/OpenCL-CTS/blob/9265cbb2c274/test_conformance/basic/test_fpmath.cpp#L104 This PR fixes the issue by moving utility function isnan_fp in testHarness.h and use it. Note this PR doesn't modify use of isnan in many tests where only float/double values are checked.
This commit is contained in:
@@ -274,10 +274,10 @@ int TestFunc_Half_Half_Half_Half(const Func *f, MTdata d, bool relaxedMode)
|
||||
if (skipNanInf)
|
||||
{
|
||||
if (overflow[j] || IsHalfInfinity(correct)
|
||||
|| IsHalfNaN(correct) || IsHalfInfinity(hp0[j])
|
||||
|| IsHalfNaN(hp0[j]) || IsHalfInfinity(hp1[j])
|
||||
|| IsHalfNaN(hp1[j]) || IsHalfInfinity(hp2[j])
|
||||
|| IsHalfNaN(hp2[j]))
|
||||
|| isnan_fp(correct) || IsHalfInfinity(hp0[j])
|
||||
|| isnan_fp(hp0[j]) || IsHalfInfinity(hp1[j])
|
||||
|| isnan_fp(hp1[j]) || IsHalfInfinity(hp2[j])
|
||||
|| isnan_fp(hp2[j]))
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -318,9 +318,9 @@ int TestFunc_Half_Half_Half_Half(const Func *f, MTdata d, bool relaxedMode)
|
||||
// Note: no double rounding here. Reference
|
||||
// functions calculate in single precision.
|
||||
if (IsHalfInfinity(correct2)
|
||||
|| IsHalfNaN(correct2)
|
||||
|| isnan_fp(correct2)
|
||||
|| IsHalfInfinity(correct3)
|
||||
|| IsHalfNaN(correct3))
|
||||
|| isnan_fp(correct3))
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -381,13 +381,13 @@ int TestFunc_Half_Half_Half_Half(const Func *f, MTdata d, bool relaxedMode)
|
||||
// Note: no double rounding here. Reference
|
||||
// functions calculate in single precision.
|
||||
if (IsHalfInfinity(correct2)
|
||||
|| IsHalfNaN(correct2)
|
||||
|| isnan_fp(correct2)
|
||||
|| IsHalfInfinity(correct3)
|
||||
|| IsHalfNaN(correct3)
|
||||
|| isnan_fp(correct3)
|
||||
|| IsHalfInfinity(correct4)
|
||||
|| IsHalfNaN(correct4)
|
||||
|| isnan_fp(correct4)
|
||||
|| IsHalfInfinity(correct5)
|
||||
|| IsHalfNaN(correct5))
|
||||
|| isnan_fp(correct5))
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -474,13 +474,13 @@ int TestFunc_Half_Half_Half_Half(const Func *f, MTdata d, bool relaxedMode)
|
||||
// Note: no double rounding here. Reference
|
||||
// functions calculate in single precision.
|
||||
if (IsHalfInfinity(correct2)
|
||||
|| IsHalfNaN(correct2)
|
||||
|| isnan_fp(correct2)
|
||||
|| IsHalfInfinity(correct3)
|
||||
|| IsHalfNaN(correct3)
|
||||
|| isnan_fp(correct3)
|
||||
|| IsHalfInfinity(correct4)
|
||||
|| IsHalfNaN(correct4)
|
||||
|| isnan_fp(correct4)
|
||||
|| IsHalfInfinity(correct5)
|
||||
|| IsHalfNaN(correct5))
|
||||
|| isnan_fp(correct5))
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -551,9 +551,9 @@ int TestFunc_Half_Half_Half_Half(const Func *f, MTdata d, bool relaxedMode)
|
||||
// Note: no double rounding here. Reference
|
||||
// functions calculate in single precision.
|
||||
if (IsHalfInfinity(correct2)
|
||||
|| IsHalfNaN(correct2)
|
||||
|| isnan_fp(correct2)
|
||||
|| IsHalfInfinity(correct3)
|
||||
|| IsHalfNaN(correct3))
|
||||
|| isnan_fp(correct3))
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -613,13 +613,13 @@ int TestFunc_Half_Half_Half_Half(const Func *f, MTdata d, bool relaxedMode)
|
||||
// Note: no double rounding here. Reference
|
||||
// functions calculate in single precision.
|
||||
if (IsHalfInfinity(correct2)
|
||||
|| IsHalfNaN(correct2)
|
||||
|| isnan_fp(correct2)
|
||||
|| IsHalfInfinity(correct3)
|
||||
|| IsHalfNaN(correct3)
|
||||
|| isnan_fp(correct3)
|
||||
|| IsHalfInfinity(correct4)
|
||||
|| IsHalfNaN(correct4)
|
||||
|| isnan_fp(correct4)
|
||||
|| IsHalfInfinity(correct5)
|
||||
|| IsHalfNaN(correct5))
|
||||
|| isnan_fp(correct5))
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -689,9 +689,9 @@ int TestFunc_Half_Half_Half_Half(const Func *f, MTdata d, bool relaxedMode)
|
||||
// Note: no double rounding here. Reference
|
||||
// functions calculate in single precision.
|
||||
if (IsHalfInfinity(correct2)
|
||||
|| IsHalfNaN(correct2)
|
||||
|| isnan_fp(correct2)
|
||||
|| IsHalfInfinity(correct3)
|
||||
|| IsHalfNaN(correct3))
|
||||
|| isnan_fp(correct3))
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user