diff options
Diffstat (limited to 'llvm/unittests/ADT/APIntTest.cpp')
-rw-r--r-- | llvm/unittests/ADT/APIntTest.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/APIntTest.cpp b/llvm/unittests/ADT/APIntTest.cpp index fe4e7426099..030b000c258 100644 --- a/llvm/unittests/ADT/APIntTest.cpp +++ b/llvm/unittests/ADT/APIntTest.cpp @@ -1177,9 +1177,26 @@ TEST(APIntTest, fromString) { TEST(APIntTest, SaturatingMath) { APInt AP_10 = APInt(8, 10); + APInt AP_42 = APInt(8, 42); APInt AP_100 = APInt(8, 100); APInt AP_200 = APInt(8, 200); + EXPECT_EQ(APInt(7, 100), AP_100.truncUSat(7)); + EXPECT_EQ(APInt(6, 63), AP_100.truncUSat(6)); + EXPECT_EQ(APInt(5, 31), AP_100.truncUSat(5)); + + EXPECT_EQ(APInt(7, 127), AP_200.truncUSat(7)); + EXPECT_EQ(APInt(6, 63), AP_200.truncUSat(6)); + EXPECT_EQ(APInt(5, 31), AP_200.truncUSat(5)); + + EXPECT_EQ(APInt(7, 42), AP_42.truncSSat(7)); + EXPECT_EQ(APInt(6, 31), AP_42.truncSSat(6)); + EXPECT_EQ(APInt(5, 15), AP_42.truncSSat(5)); + + EXPECT_EQ(APInt(7, -56), AP_200.truncSSat(7)); + EXPECT_EQ(APInt(6, -32), AP_200.truncSSat(6)); + EXPECT_EQ(APInt(5, -16), AP_200.truncSSat(5)); + EXPECT_EQ(APInt(8, 200), AP_100.uadd_sat(AP_100)); EXPECT_EQ(APInt(8, 255), AP_100.uadd_sat(AP_200)); EXPECT_EQ(APInt(8, 255), APInt(8, 255).uadd_sat(APInt(8, 255))); |