summaryrefslogtreecommitdiff
path: root/Source/UnitTests/DivUtilsTest.cpp
diff options
context:
space:
mode:
authorLC <mathew1800@gmail.com>2021-03-22 14:40:02 -0400
committerGitHub <noreply@github.com>2021-03-22 14:40:02 -0400
commit15ebb1d9e4d2708cda738a3c32a3f6e10cb83346 (patch)
treeed3bcd2d76a130a14af1e77c95653e4954343910 /Source/UnitTests/DivUtilsTest.cpp
parent210ddcf5eee4398b2b26d27f1613279989321d7d (diff)
parentdefe7162f557e6b43919f074e211d57875600e47 (diff)
Merge pull request #9566 from Sintendo/jit64divwx
Jit64: Optimize divwx
Diffstat (limited to 'Source/UnitTests/DivUtilsTest.cpp')
-rw-r--r--Source/UnitTests/DivUtilsTest.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/Source/UnitTests/DivUtilsTest.cpp b/Source/UnitTests/DivUtilsTest.cpp
new file mode 100644
index 0000000000..7802fc8496
--- /dev/null
+++ b/Source/UnitTests/DivUtilsTest.cpp
@@ -0,0 +1,33 @@
+// Copyright 2021 Dolphin Emulator Project
+// Licensed under GPLv2+
+// Refer to the license.txt file included.
+
+#include <gtest/gtest.h>
+
+#include "Core/PowerPC/JitCommon/DivUtils.h"
+
+using namespace JitCommon;
+
+TEST(DivUtils, Signed)
+{
+ Magic m3 = SignedDivisionConstants(3);
+ Magic m5 = SignedDivisionConstants(5);
+ Magic m7 = SignedDivisionConstants(7);
+ Magic minus3 = SignedDivisionConstants(-3);
+ Magic minus5 = SignedDivisionConstants(-5);
+ Magic minus7 = SignedDivisionConstants(-7);
+
+ EXPECT_EQ(0x55555556, m3.multiplier);
+ EXPECT_EQ(0, m3.shift);
+ EXPECT_EQ(0x66666667, m5.multiplier);
+ EXPECT_EQ(1, m5.shift);
+ EXPECT_EQ(-0x6DB6DB6D, m7.multiplier);
+ EXPECT_EQ(2, m7.shift);
+
+ EXPECT_EQ(-0x55555556, minus3.multiplier);
+ EXPECT_EQ(0, minus3.shift);
+ EXPECT_EQ(-0x66666667, minus5.multiplier);
+ EXPECT_EQ(1, minus5.shift);
+ EXPECT_EQ(0x6DB6DB6D, minus7.multiplier);
+ EXPECT_EQ(2, minus7.shift);
+}