diff options
| author | JosJuice <josjuice@gmail.com> | 2021-05-02 17:14:06 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2021-05-02 22:12:28 +0200 |
| commit | bb39f75093fcbc00957ae620fc1f1618adffa17c (patch) | |
| tree | b0c745cce445d69f6673b882978a575a8fd6745c /Source/UnitTests/Core/PowerPC/Jit64Common/ConvertDoubleToSingle.cpp | |
| parent | ade9d6c954a4907962fc395fdb62a3badbafa576 (diff) | |
UnitTests: Put PowerPC test values in a separate file
We use more or less the same values for all PowerPC float unit
tests. Let's put them in one place instead of duplicating them.
Diffstat (limited to 'Source/UnitTests/Core/PowerPC/Jit64Common/ConvertDoubleToSingle.cpp')
| -rw-r--r-- | Source/UnitTests/Core/PowerPC/Jit64Common/ConvertDoubleToSingle.cpp | 57 |
1 files changed, 3 insertions, 54 deletions
diff --git a/Source/UnitTests/Core/PowerPC/Jit64Common/ConvertDoubleToSingle.cpp b/Source/UnitTests/Core/PowerPC/Jit64Common/ConvertDoubleToSingle.cpp index aa4324968d..591c57b343 100644 --- a/Source/UnitTests/Core/PowerPC/Jit64Common/ConvertDoubleToSingle.cpp +++ b/Source/UnitTests/Core/PowerPC/Jit64Common/ConvertDoubleToSingle.cpp @@ -4,7 +4,6 @@ #include <cstring> #include <tuple> -#include <vector> #include "Common/CommonTypes.h" #include "Common/x64ABI.h" @@ -14,6 +13,8 @@ #include "Core/PowerPC/Jit64Common/Jit64AsmCommon.h" #include "Core/PowerPC/Jit64Common/Jit64PowerPCState.h" +#include "../TestValues.h" + #include <fmt/format.h> #include <gtest/gtest.h> @@ -53,59 +54,7 @@ TEST(Jit64, ConvertDoubleToSingle) { TestCommonAsmRoutines routines; - const std::vector<u64> input_values{ - // Special values - 0x0000'0000'0000'0000, // positive zero - 0x0000'0000'0000'0001, // smallest positive denormal - 0x0000'0000'0100'0000, - 0x000F'FFFF'FFFF'FFFF, // largest positive denormal - 0x0010'0000'0000'0000, // smallest positive normal - 0x0010'0000'0000'0002, - 0x3FF0'0000'0000'0000, // 1.0 - 0x7FEF'FFFF'FFFF'FFFF, // largest positive normal - 0x7FF0'0000'0000'0000, // positive infinity - 0x7FF0'0000'0000'0001, // first positive SNaN - 0x7FF7'FFFF'FFFF'FFFF, // last positive SNaN - 0x7FF8'0000'0000'0000, // first positive QNaN - 0x7FFF'FFFF'FFFF'FFFF, // last positive QNaN - 0x8000'0000'0000'0000, // negative zero - 0x8000'0000'0000'0001, // smallest negative denormal - 0x8000'0000'0100'0000, - 0x800F'FFFF'FFFF'FFFF, // largest negative denormal - 0x8010'0000'0000'0000, // smallest negative normal - 0x8010'0000'0000'0002, - 0xBFF0'0000'0000'0000, // -1.0 - 0xFFEF'FFFF'FFFF'FFFF, // largest negative normal - 0xFFF0'0000'0000'0000, // negative infinity - 0xFFF0'0000'0000'0001, // first negative SNaN - 0xFFF7'FFFF'FFFF'FFFF, // last negative SNaN - 0xFFF8'0000'0000'0000, // first negative QNaN - 0xFFFF'FFFF'FFFF'FFFF, // last negative QNaN - - // (exp > 896) Boundary Case - 0x3800'0000'0000'0000, // 2^(-127) = Denormal in single-prec - 0x3810'0000'0000'0000, // 2^(-126) = Smallest single-prec normal - 0xB800'0000'0000'0000, // -2^(-127) = Denormal in single-prec - 0xB810'0000'0000'0000, // -2^(-126) = Smallest single-prec normal - 0x3800'1234'5678'9ABC, 0x3810'1234'5678'9ABC, 0xB800'1234'5678'9ABC, 0xB810'1234'5678'9ABC, - - // (exp >= 874) Boundary Case - 0x3680'0000'0000'0000, // 2^(-150) = Unrepresentable in single-prec - 0x36A0'0000'0000'0000, // 2^(-149) = Smallest single-prec denormal - 0x36B0'0000'0000'0000, // 2^(-148) = Single-prec denormal - 0xB680'0000'0000'0000, // -2^(-150) = Unrepresentable in single-prec - 0xB6A0'0000'0000'0000, // -2^(-149) = Smallest single-prec denormal - 0xB6B0'0000'0000'0000, // -2^(-148) = Single-prec denormal - 0x3680'1234'5678'9ABC, 0x36A0'1234'5678'9ABC, 0x36B0'1234'5678'9ABC, 0xB680'1234'5678'9ABC, - 0xB6A0'1234'5678'9ABC, 0xB6B0'1234'5678'9ABC, - - // Some typical numbers - 0x3FF8'0000'0000'0000, // 1.5 - 0x408F'4000'0000'0000, // 1000 - 0xC008'0000'0000'0000, // -3 - }; - - for (const u64 input : input_values) + for (const u64 input : double_test_values) { const u32 expected = ConvertToSingle(input); const u32 actual = routines.wrapped_cdts(input); |
