diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-01-25 04:54:34 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-01-25 04:54:34 +0000 |
commit | 8a27aee6ae8ec36b83d8b50f858135a45842d083 (patch) | |
tree | be4b5f8eafd0cd52f30d9f3c132ce580f32392b4 /llvm/unittests/ADT/APFloatTest.cpp | |
parent | 22921338b12e6a1ae9c55061cd619c72d3bc7e76 (diff) | |
download | llvm-8a27aee6ae8ec36b83d8b50f858135a45842d083.zip llvm-8a27aee6ae8ec36b83d8b50f858135a45842d083.tar.gz llvm-8a27aee6ae8ec36b83d8b50f858135a45842d083.tar.bz2 |
DAGCombiner: Allow negating ConstantFP after legalize
llvm-svn: 293019
Diffstat (limited to 'llvm/unittests/ADT/APFloatTest.cpp')
-rw-r--r-- | llvm/unittests/ADT/APFloatTest.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/llvm/unittests/ADT/APFloatTest.cpp b/llvm/unittests/ADT/APFloatTest.cpp index 016d73b..1cd9847 100644 --- a/llvm/unittests/ADT/APFloatTest.cpp +++ b/llvm/unittests/ADT/APFloatTest.cpp @@ -2830,6 +2830,28 @@ TEST(APFloatTest, abs) { EXPECT_TRUE(PSmallestNormalized.bitwiseIsEqual(abs(MSmallestNormalized))); } +TEST(APFloatTest, neg) { + APFloat One = APFloat(APFloat::IEEEsingle(), "1.0"); + APFloat NegOne = APFloat(APFloat::IEEEsingle(), "-1.0"); + APFloat Zero = APFloat::getZero(APFloat::IEEEsingle(), false); + APFloat NegZero = APFloat::getZero(APFloat::IEEEsingle(), true); + APFloat Inf = APFloat::getInf(APFloat::IEEEsingle(), false); + APFloat NegInf = APFloat::getInf(APFloat::IEEEsingle(), true); + APFloat QNaN = APFloat::getNaN(APFloat::IEEEsingle(), false); + APFloat NegQNaN = APFloat::getNaN(APFloat::IEEEsingle(), true); + + EXPECT_TRUE(NegOne.bitwiseIsEqual(neg(One))); + EXPECT_TRUE(One.bitwiseIsEqual(neg(NegOne))); + EXPECT_TRUE(NegZero.bitwiseIsEqual(neg(Zero))); + EXPECT_TRUE(Zero.bitwiseIsEqual(neg(NegZero))); + EXPECT_TRUE(NegInf.bitwiseIsEqual(neg(Inf))); + EXPECT_TRUE(Inf.bitwiseIsEqual(neg(NegInf))); + EXPECT_TRUE(NegInf.bitwiseIsEqual(neg(Inf))); + EXPECT_TRUE(Inf.bitwiseIsEqual(neg(NegInf))); + EXPECT_TRUE(NegQNaN.bitwiseIsEqual(neg(QNaN))); + EXPECT_TRUE(QNaN.bitwiseIsEqual(neg(NegQNaN))); +} + TEST(APFloatTest, ilogb) { EXPECT_EQ(-1074, ilogb(APFloat::getSmallest(APFloat::IEEEdouble(), false))); EXPECT_EQ(-1074, ilogb(APFloat::getSmallest(APFloat::IEEEdouble(), true))); |