Index: SingleSource/Benchmarks/Misc/revertBits.c =================================================================== --- SingleSource/Benchmarks/Misc/revertBits.c +++ SingleSource/Benchmarks/Misc/revertBits.c @@ -32,7 +32,8 @@ } int main (void) { - unsigned long long sum = 0; + unsigned int sum1 = 0; + unsigned long long sum2 = 0; // Check for compilers that don't support __has_builtin #ifndef __has_builtin @@ -42,21 +43,17 @@ // Check for compilers that support __has_builtin but not __builtin_bitreverse* #if (!__has_builtin(__builtin_bitreverse32) ||\ !__has_builtin(__builtin_bitreverse64)) - printf("Sum1 = 0, Sum2 = feff800000800000\n"); return 0; #else for (int i = 0; i < NUM; ++i) { - sum += ReverseBits32(__builtin_bitreverse32(i)); - sum -= ReverseBits64(__builtin_bitreverse64(i)); + sum1 += ReverseBits32(i); + sum2 += ReverseBits64(i); } - printf("Sum1 = %llx, ", sum); - for (int i = 0; i < NUM; ++i) { - sum -= ReverseBits64(ReverseBits64(0x100000000 + i)); + sum1 -= __builtin_bitreverse32(i); + sum2 -= __builtin_bitreverse64(i); } - printf("Sum2 = %llx\n", sum); - - return 0; + return sum1 == 0 && sum2 == 0 ? 0 : 1; #endif } Index: SingleSource/Benchmarks/Misc/revertBits.reference_output =================================================================== --- SingleSource/Benchmarks/Misc/revertBits.reference_output +++ SingleSource/Benchmarks/Misc/revertBits.reference_output @@ -1,2 +1 @@ -Sum1 = 0, Sum2 = feff800000800000 exit 0