summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/ADT/APIntTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests/ADT/APIntTest.cpp')
-rw-r--r--llvm/unittests/ADT/APIntTest.cpp17
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)));
OpenPOWER on IntegriCloud