OSDN Git Service

Add a unittest for rotating a really big APInt.
authorBenjamin Kramer <benny.kra@googlemail.com>
Tue, 7 Feb 2012 16:27:39 +0000 (16:27 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Tue, 7 Feb 2012 16:27:39 +0000 (16:27 +0000)
Clang miscompiles it under certain circumstances, and it's a good exercise for APInt.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149986 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/ADT/APIntTest.cpp

index d5d2bc1..89b8aa9 100644 (file)
@@ -480,6 +480,10 @@ TEST(APIntTest, Rotate) {
   EXPECT_EQ(APInt(8, 64),  APInt(8, 1).rotr(2));
   EXPECT_EQ(APInt(8, 16),  APInt(8, 1).rotr(4));
   EXPECT_EQ(APInt(8, 1),   APInt(8, 1).rotr(8));
+
+  APInt Big(256, "00004000800000000000000000003fff8000000000000000", 16);
+  APInt Rot(256, "3fff80000000000000000000000000000000000040008000", 16);
+  EXPECT_EQ(Rot, Big.rotr(144));
 }
 
 }