[llvm] Power of 2 SDValue is known to be power of 2 after dag ops BSWAP/BITREVERSE (PR #182207)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 18 17:54:59 PST 2026


================
@@ -914,6 +914,17 @@ TEST_F(AArch64SelectionDAGTest, KnownToBeAPowerOfTwo_Constants) {
   EXPECT_TRUE(DAG->isKnownToBeAPowerOfTwo(SplatBig, /*OrZero=*/true));
 }
 
+TEST_F(AArch64SelectionDAGTest, KnownToBeAPowerOfTwo_BSWAP_BITREVERSE) {
+  SDLoc Loc;
+  auto Cst4 = DAG->getConstant(4, Loc, MVT::i32);
+  auto Int32Vt = MVT::i32;
+  auto BSwapOp = DAG->getNode(ISD::BSWAP, Loc, Int32Vt, Cst4);
+  EXPECT_TRUE(DAG->isKnownToBeAPowerOfTwo(BSwapOp, false));
+
+  auto BReverseOp = DAG->getNode(ISD::BSWAP, Loc, Int32Vt, BSwapOp);
----------------
topperc wrote:

Forgot to change the opcode to ISD::BITREVERSE?

https://github.com/llvm/llvm-project/pull/182207


More information about the llvm-commits mailing list