[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