@@ -767,4 +767,39 @@ TEST_F(ConstantFPRangeTest, makeExactFCmpRegion) {
767
767
}
768
768
}
769
769
770
+ TEST_F (ConstantFPRangeTest, abs) {
771
+ EXPECT_EQ (Full.abs (),
772
+ ConstantFPRange (APFloat::getZero (Sem, /* Negative=*/ false ),
773
+ APFloat::getInf (Sem, /* Negative=*/ false ),
774
+ /* MayBeQNaN=*/ true ,
775
+ /* MayBeSNaN=*/ true ));
776
+ EXPECT_EQ (Empty.abs (), Empty);
777
+ EXPECT_EQ (Zero.abs (), PosZero);
778
+ EXPECT_EQ (PosInf.abs (), PosInf);
779
+ EXPECT_EQ (NegInf.abs (), PosInf);
780
+ EXPECT_EQ (Some.abs (), SomePos);
781
+ EXPECT_EQ (SomeNeg.abs (), SomePos);
782
+ EXPECT_EQ (NaN.abs (), NaN);
783
+ EXPECT_EQ (ConstantFPRange::getNonNaN (APFloat (-2.0 ), APFloat (3.0 )).abs (),
784
+ ConstantFPRange::getNonNaN (APFloat (0.0 ), APFloat (3.0 )));
785
+ EXPECT_EQ (ConstantFPRange::getNonNaN (APFloat (-3.0 ), APFloat (2.0 )).abs (),
786
+ ConstantFPRange::getNonNaN (APFloat (0.0 ), APFloat (3.0 )));
787
+ }
788
+
789
+ TEST_F (ConstantFPRangeTest, negate) {
790
+ EXPECT_EQ (Full.negate (), Full);
791
+ EXPECT_EQ (Empty.negate (), Empty);
792
+ EXPECT_EQ (Zero.negate (), Zero);
793
+ EXPECT_EQ (PosInf.negate (), NegInf);
794
+ EXPECT_EQ (NegInf.negate (), PosInf);
795
+ EXPECT_EQ (Some.negate (), Some);
796
+ EXPECT_EQ (SomePos.negate (), SomeNeg);
797
+ EXPECT_EQ (SomeNeg.negate (), SomePos);
798
+ EXPECT_EQ (NaN.negate (), NaN);
799
+ EXPECT_EQ (ConstantFPRange::getNonNaN (APFloat (-2.0 ), APFloat (3.0 )).negate (),
800
+ ConstantFPRange::getNonNaN (APFloat (-3.0 ), APFloat (2.0 )));
801
+ EXPECT_EQ (ConstantFPRange::getNonNaN (APFloat (-3.0 ), APFloat (2.0 )).negate (),
802
+ ConstantFPRange::getNonNaN (APFloat (-2.0 ), APFloat (3.0 )));
803
+ }
804
+
770
805
} // anonymous namespace
0 commit comments