[llvm] [AArch64] recognise zip1/zip2 with flipped operands (PR #167235)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Sun Nov 23 02:53:14 PST 2025
================
@@ -14722,9 +14722,12 @@ SDValue AArch64TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op,
}
unsigned WhichResult;
- if (isZIPMask(ShuffleMask, NumElts, WhichResult)) {
+ unsigned OperandOrder;
+ if (isZIPMask(ShuffleMask, NumElts, WhichResult, OperandOrder)) {
unsigned Opc = (WhichResult == 0) ? AArch64ISD::ZIP1 : AArch64ISD::ZIP2;
- return DAG.getNode(Opc, DL, V1.getValueType(), V1, V2);
+ return DAG.getNode(Opc, DL, V1.getValueType(),
+ (OperandOrder == 0) ? V1 : V2,
+ (OperandOrder == 0) ? V2 : V1);
----------------
davemgreen wrote:
Can remove the brackets from `(OperandOrder == 0)`.
https://github.com/llvm/llvm-project/pull/167235
More information about the llvm-commits
mailing list