[llvm] [DAG][ARM] canCreateUndefOrPoisonForTargetNode - ARMISD VORRIMM\VBICIMM nodes can't create poison/undef (PR #156831)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 4 20:22:41 PDT 2025
================
@@ -106,6 +106,19 @@ TEST_F(ARMSelectionDAGTest, computeKnownBits_VORRIMM) {
KnownBits Known = DAG->computeKnownBits(Op, DemandedElts);
EXPECT_EQ(Known.One, APInt(32, 0xAA));
EXPECT_EQ(Known.Zero, APInt(32, 0x0));
+
+ // LHS(per-lane) = 00000000 00000000 00000000 00000000 (0x00000000)
+ // Encoded(per-lane) = 00000000 00000000 00000000 10101010 (0x000000AA)
+ // =>
+ // Known.One = 00000000 00000000 00000000 10101010 (0x000000AA)
+ // Known.Zero = 11111111 11111111 11111111 01010101 (0x00000000)
+ SDValue Zero = DAG->getConstant(0, DL, MVT::i32);
+ SDValue ZeroVec = DAG->getSplatBuildVector(VT, DL, Zero);
+ Op = DAG->getNode(ARMISD::VORRIMM, DL, VT, ZeroVec, EncSD);
+ auto FrVORRIMM = DAG->getFreeze(Op);
----------------
woruyu wrote:
Done! for auto
https://github.com/llvm/llvm-project/pull/156831
More information about the llvm-commits
mailing list