[llvm] [LLVM][AArch64] Fix invalid use of AArch64ISD::UZP2 in performConcatVectorsCombine. (PR #104774)

Graham Hunter via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 21 08:55:24 PDT 2024


================
@@ -19811,15 +19811,15 @@ static SDValue performConcatVectorsCombine(SDNode *N,
     // This optimization reduces instruction count.
     if (N00Opc == AArch64ISD::VLSHR && N10Opc == AArch64ISD::VLSHR &&
         N00->getOperand(1) == N10->getOperand(1)) {
-
       SDValue N000 = N00->getOperand(0);
       SDValue N100 = N10->getOperand(0);
       uint64_t N001ConstVal = N00->getConstantOperandVal(1),
                N101ConstVal = N10->getConstantOperandVal(1),
                NScalarSize = N->getValueType(0).getScalarSizeInBits();
 
       if (N001ConstVal == N101ConstVal && N001ConstVal > NScalarSize) {
-
+        N000 = DAG.getNode(AArch64ISD::NVCAST, dl, VT, N000);
----------------
huntergr-arm wrote:

Would it be possible to test this fix?

I think a comment is warranted at least. I take it this has something to do with big-endian mode?

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


More information about the llvm-commits mailing list