summaryrefslogtreecommitdiffstats
path: root/llvm/unittests
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/unittests')
-rw-r--r--llvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp b/llvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
index f67184fc208..42d676f4a00 100644
--- a/llvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
+++ b/llvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
@@ -86,3 +86,19 @@ TEST_F(GISelMITest, TestKnownBits) {
APInt Zeroes = Info.getKnownZeroes(SrcReg);
EXPECT_EQ(Known.Zero, Zeroes);
}
+
+TEST_F(GISelMITest, TestSignBitIsZero) {
+ if (!TM)
+ return;
+
+ const LLT S32 = LLT::scalar(32);
+ auto SignBit = B.buildConstant(S32, 0x8000000);
+ auto Zero = B.buildConstant(S32, 0);
+
+ GISelKnownBits KnownBits(*MF);
+
+ EXPECT_TRUE(KnownBits.signBitIsZero(Zero.getReg(0)));
+ EXPECT_FALSE(KnownBits.signBitIsZero(Zero.getReg(0)));
+ EXPECT_FALSE(KnownBits.signBitIsZero(SignBit.getReg(0)));
+ EXPECT_TRUE(KnownBits.signBitIsZero(SignBit.getReg(0)));
+}
OpenPOWER on IntegriCloud