[all-commits] [llvm/llvm-project] 867e37: [AArch64][GlobalISel] Match G_SHUFFLE_VECTOR -> in...
Jessica Paquette via All-commits
all-commits at lists.llvm.org
Mon Feb 22 14:46:43 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 867e379c0e14527eb7aa68485a10324693e35f5d
https://github.com/llvm/llvm-project/commit/867e379c0e14527eb7aa68485a10324693e35f5d
Author: Jessica Paquette <jpaquette at apple.com>
Date: 2021-02-22 (Mon, 22 Feb 2021)
Changed paths:
M llvm/lib/Target/AArch64/AArch64Combine.td
M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
A llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-lowering-shuf-to-ins.mir
Log Message:
-----------
[AArch64][GlobalISel] Match G_SHUFFLE_VECTOR -> insert elt + extract elt
Match a G_SHUFFLE_VECTOR with a mask that allows it to be represented as a
G_INSERT_VECTOR_ELT and a G_EXTRACT_VECTOR_ELT.
This ports `isINSMask` from AArch64ISelLowering and the portion of
`AArch64TargetLowering::LowerVECTOR_SHUFFLE` which handles the equivalent
transformation.
This provides more opportunities for matching DUP. We don't have all of the
necessary combines to actually make DUP out of these yet, but this is better for
size than the full TBL expansion for G_SHUFFLE_VECTOR.
This is a -0.1% code size improvement on CTMark/Bullet at -Os.
IR example: https://godbolt.org/z/sdcevT
Differential Revision: https://reviews.llvm.org/D97214
More information about the All-commits
mailing list