@@ -767,4 +767,39 @@ TEST_F(ConstantFPRangeTest, makeExactFCmpRegion) {
767767 }
768768}
769769
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+
770805} // anonymous namespace
0 commit comments