@@ -39,24 +39,24 @@ TEST(APIntTest, PowZeroTo5) {
3939
4040// Test that 1^16 == 1
4141TEST (APIntTest, PowOneTo16) {
42- APInt One (32 , 1 ) ;
42+ APInt One = APInt::getZero (32 ) + 1 ;
4343 APInt OneTo16 = APIntOps::pow (One, 16 );
4444 EXPECT_EQ (One, OneTo16);
4545}
4646
4747// Test that 2^10 == 1024
4848TEST (APIntTest, PowerTwoTo10) {
49- APInt Two (32 , 2 ) ;
49+ APInt Two = APInt::getZero (32 ) + 2 ;
5050 APInt TwoTo20 = APIntOps::pow (Two, 10 );
51- APInt V_1024 (32 , 1024 ) ;
51+ APInt V_1024 = APInt::getZero (32 ) + 1024 ;
5252 EXPECT_EQ (TwoTo20, V_1024);
5353}
5454
5555// Test that 3^3 == 27
5656TEST (APIntTest, PowerThreeTo3) {
57- APInt Three (32 , 3 ) ;
57+ APInt Three = APInt::getZero (32 ) + 3 ;
5858 APInt ThreeTo3 = APIntOps::pow (Three, 3 );
59- APInt V_27 (32 , 27 ) ;
59+ APInt V_27 = APInt::getZero (32 ) + 27 ;
6060 EXPECT_EQ (ThreeTo3, V_27);
6161}
6262
@@ -74,10 +74,24 @@ TEST(APIntTest, PowerMaxValue) {
7474 EXPECT_EQ (MaxValue, MaxTo3);
7575}
7676
77- // Test that 0^0 == 1
77+ // Test that SignedMinValue^3 == 0
78+ TEST (APIntTest, PowerSignedMinValueTo3) {
79+ APInt SignedMinValue = APInt::getSignedMinValue (32 );
80+ APInt MaxTo3 = APIntOps::pow (SignedMinValue, 3 );
81+ EXPECT_TRUE (MaxTo3.isZero ());
82+ }
83+
84+ // Test that SignedMinValue^1 == SignedMinValue
85+ TEST (APIntTest, PowerSignedMinValueTo1) {
86+ APInt SignedMinValue = APInt::getSignedMinValue (32 );
87+ APInt MinTo1 = APIntOps::pow (SignedMinValue, 1 );
88+ EXPECT_EQ (SignedMinValue, MinTo1);
89+ }
90+
91+ // Test that MaxValue^3 == MaxValue
7892TEST (APIntTest, ZeroToZero) {
7993 APInt Zero = APInt::getZero (32 );
80- APInt One (32 , 1 ) ;
94+ APInt One = APInt::getZero (32 ) + 1 ;
8195 APInt ZeroToZero = APIntOps::pow (Zero, 0 );
8296 EXPECT_EQ (ZeroToZero, One);
8397}
0 commit comments