| Index: crosstest/test_arith_main.cpp
|
| diff --git a/crosstest/test_arith_main.cpp b/crosstest/test_arith_main.cpp
|
| index e95db4430ebd9172001227dc136c426de78c7e1c..b4c70ee61f0100a3d4f4d82c07f11c56ebafcb73 100644
|
| --- a/crosstest/test_arith_main.cpp
|
| +++ b/crosstest/test_arith_main.cpp
|
| @@ -287,6 +287,18 @@ void testsFp(size_t &TotalTests, size_t &Passes, size_t &Failures) {
|
| << Value << "): sz=" << ResultSz << " llc=" << ResultLlc
|
| << "\n";
|
| }
|
| + ++TotalTests;
|
| + ResultSz = Subzero_::myFabs(Value);
|
| + ResultLlc = myFabs(Value);
|
| + // Compare results using memcmp() in case they are both NaN.
|
| + if (!memcmp(&ResultSz, &ResultLlc, sizeof(Type))) {
|
| + ++Passes;
|
| + } else {
|
| + ++Failures;
|
| + std::cout << std::fixed << "test_fabs" << (CHAR_BIT * sizeof(Type)) << "("
|
| + << Value << "): sz=" << ResultSz << " llc=" << ResultLlc
|
| + << "\n";
|
| + }
|
| }
|
| }
|
|
|
| @@ -334,6 +346,19 @@ void testsVecFp(size_t &TotalTests, size_t &Passes, size_t &Failures) {
|
| << "): sz=" << vectAsString<v4f32>(ResultSz) << " llc"
|
| << vectAsString<v4f32>(ResultLlc) << "\n";
|
| }
|
| + // Special case for unary fabs operation. Use Value1, ignore Value2.
|
| + ResultSz = Subzero_::myFabs(Value1);
|
| + ResultLlc = myFabs(Value1);
|
| + ++TotalTests;
|
| + if (!memcmp(&ResultSz, &ResultLlc, sizeof(ResultSz))) {
|
| + ++Passes;
|
| + } else {
|
| + ++Failures;
|
| + std::cout << "test_fabs_v4f32"
|
| + << "(" << vectAsString<v4f32>(Value1)
|
| + << "): sz=" << vectAsString<v4f32>(ResultSz) << " llc"
|
| + << vectAsString<v4f32>(ResultLlc) << "\n";
|
| + }
|
| }
|
| }
|
| }
|
|
|