[llvm] [AArch64] recognise trn1/trn2 with flipped operands (PR #169858)
Philip Ginsbach-Chen via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 2 14:27:40 PST 2025
================
@@ -31588,10 +31589,13 @@ SDValue AArch64TargetLowering::LowerFixedLengthVECTOR_SHUFFLEToSVE(
OperandOrder == 0 ? Op1 : Op2,
OperandOrder == 0 ? Op2 : Op1));
- if (isTRNMask(ShuffleMask, VT.getVectorNumElements(), WhichResult)) {
+ if (isTRNMask(ShuffleMask, VT.getVectorNumElements(), WhichResult,
+ OperandOrder)) {
unsigned Opc = (WhichResult == 0) ? AArch64ISD::TRN1 : AArch64ISD::TRN2;
return convertFromScalableVector(
- DAG, VT, DAG.getNode(Opc, DL, ContainerVT, Op1, Op2));
+ DAG, VT,
+ DAG.getNode(Opc, DL, ContainerVT, OperandOrder == 0 ? Op1 : Op2,
+ OperandOrder == 0 ? Op2 : Op1));
----------------
ginsbach wrote:
Done in commit 3.
https://github.com/llvm/llvm-project/pull/169858
More information about the llvm-commits
mailing list