[llvm] add power function to APInt (PR #122788)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 16 15:15:28 PST 2025
================
@@ -29,6 +29,73 @@ TEST(APIntTest, ValueInit) {
EXPECT_TRUE(!Zero.sext(64));
}
+// Test that 0^5 == 0
+TEST(APIntTest, PowZeroTo5) {
+ APInt Zero = APInt::getZero(32);
+ EXPECT_TRUE(!Zero);
+ APInt ZeroTo5 = APIntOps::pow(Zero, 5);
+ EXPECT_TRUE(!ZeroTo5);
+}
+
+// Test that 1^16 == 1
+TEST(APIntTest, PowOneTo16) {
+ APInt One(32, 1);
+ APInt OneTo16 = APIntOps::pow(One, 16);
+ EXPECT_EQ(One, OneTo16);
+}
+
+// Test that 2^10 == 1024
+TEST(APIntTest, PowerTwoTo10) {
+ APInt Two(32, 2);
+ APInt TwoTo20 = APIntOps::pow(Two, 10);
+ APInt V_1024 = APInt::getZero(32) + 1024;
----------------
topperc wrote:
APInt V_1024(32, 1024)
https://github.com/llvm/llvm-project/pull/122788
More information about the llvm-commits
mailing list