[PATCH] D120018: [AArch64] Alter mull shuffle(ext(..)) combine to work on buildvectors
Nicholas Guy via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 17 02:36:59 PST 2022
NickGuy added a comment.
Looks good overall, with potential wins in both performance and codesize. Just 1 minor thing (and a nitpick about a comment).
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:13512
-/// Combines a dup(sext/zext) node pattern into sext/zext(dup)
-/// making use of the vector SExt/ZExt rather than the scalar SExt/ZExt
-static SDValue performCommonVectorExtendCombine(SDValue VectorShuffle,
----------------
Do we want to keep this comment (or replace it, rather than remove it)?
================
Comment at: llvm/lib/Target/AArch64/AArch64ISelLowering.cpp:13542-13543
+ EVT PreExtendVT = VT.changeVectorElementType(PreExtendType);
+ EVT PreExtendLegalType =
+ PreExtendType.getScalarSizeInBits() < 32 ? MVT::i32 : PreExtendType;
+ SDLoc DL(BV);
----------------
Is this correct? The previous behaviour used `PreExtendType` directly as an operand to `DAG.getAnyExtOrTrunc` (which kept it aligned with `PreExtendVT`), but this clamps it to a smallest type of i32.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D120018/new/
https://reviews.llvm.org/D120018
More information about the llvm-commits
mailing list