diff options
author | Ramkumar Ramachandra <ramkumar.ramachandra@codasip.com> | 2024-06-11 23:00:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-11 23:00:02 +0100 |
commit | 0fb216fb2fbb49c1fe90c1c3267873a100b1c356 (patch) | |
tree | ca9a9200c5c1d827ece9d9faf52d1eb363fee89d /llvm/unittests/Support/MathExtrasTest.cpp | |
parent | cc04bbb2752a0b2a5e7fb41ed1a9d54fbdd3be89 (diff) | |
download | llvm-0fb216fb2fbb49c1fe90c1c3267873a100b1c356.zip llvm-0fb216fb2fbb49c1fe90c1c3267873a100b1c356.tar.gz llvm-0fb216fb2fbb49c1fe90c1c3267873a100b1c356.tar.bz2 |
mlir/MathExtras: consolidate with llvm/MathExtras (#95087)
This patch is part of a project to move the Presburger library into
LLVM.
Diffstat (limited to 'llvm/unittests/Support/MathExtrasTest.cpp')
-rw-r--r-- | llvm/unittests/Support/MathExtrasTest.cpp | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/llvm/unittests/Support/MathExtrasTest.cpp b/llvm/unittests/Support/MathExtrasTest.cpp index 67239a2..e75700d 100644 --- a/llvm/unittests/Support/MathExtrasTest.cpp +++ b/llvm/unittests/Support/MathExtrasTest.cpp @@ -434,8 +434,39 @@ TEST(MathExtras, IsShiftedInt) { EXPECT_FALSE((isShiftedInt<6, 10>(int64_t(1) << 15))); } -template <typename T> -class OverflowTest : public ::testing::Test { }; +TEST(MathExtras, DivideCeilSigned) { + EXPECT_EQ(divideCeilSigned(14, 3), 5); + EXPECT_EQ(divideCeilSigned(15, 3), 5); + EXPECT_EQ(divideCeilSigned(14, -3), -4); + EXPECT_EQ(divideCeilSigned(-14, -3), 5); + EXPECT_EQ(divideCeilSigned(-14, 3), -4); + EXPECT_EQ(divideCeilSigned(-15, 3), -5); + EXPECT_EQ(divideCeilSigned(0, 3), 0); + EXPECT_EQ(divideCeilSigned(0, -3), 0); +} + +TEST(MathExtras, DivideFloorSigned) { + EXPECT_EQ(divideFloorSigned(14, 3), 4); + EXPECT_EQ(divideFloorSigned(15, 3), 5); + EXPECT_EQ(divideFloorSigned(14, -3), -5); + EXPECT_EQ(divideFloorSigned(-14, -3), 4); + EXPECT_EQ(divideFloorSigned(-14, 3), -5); + EXPECT_EQ(divideFloorSigned(-15, 3), -5); + EXPECT_EQ(divideFloorSigned(0, 3), 0); + EXPECT_EQ(divideFloorSigned(0, -3), 0); +} + +TEST(MathExtras, Mod) { + EXPECT_EQ(mod(1, 14), 1); + EXPECT_EQ(mod(-1, 14), 13); + EXPECT_EQ(mod(14, 3), 2); + EXPECT_EQ(mod(15, 3), 0); + EXPECT_EQ(mod(-14, 3), 1); + EXPECT_EQ(mod(-15, 3), 0); + EXPECT_EQ(mod(0, 3), 0); +} + +template <typename T> class OverflowTest : public ::testing::Test {}; using OverflowTestTypes = ::testing::Types<signed char, short, int, long, long long>; @@ -560,5 +591,4 @@ TYPED_TEST(OverflowTest, MulResultZero) { EXPECT_FALSE(MulOverflow<TypeParam>(0, -5, Result)); EXPECT_EQ(Result, TypeParam(0)); } - } // namespace |