[PATCH] D95551: [ARM] One-off identity shuffle
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 27 11:16:19 PST 2021
dmgreen created this revision.
dmgreen added reviewers: NickGuy, SjoerdMeijer, simon_tatham, efriedma, ostannard.
Herald added subscribers: danielkiss, hiraditya, kristof.beyls.
dmgreen requested review of this revision.
Herald added a project: LLVM.
A One-Off Identity mask is a shuffle that is mostly an identity mask from as single source but contains a single element out-of-place, either from a different vector or from another position in the same vector. As opposed to lowering this via a ARMISD::BUILD_VECTOR we can generate an extract/insert pair directly. Under ARM with individually accessible lane elements this often becomes a simple lane move.
This also alters the LowerVECTOR_SHUFFLEUsingMovs code to use v4f32 (not v4i32), a more natural type for lane moves.
https://reviews.llvm.org/D95551
Files:
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/test/CodeGen/Thumb2/mve-shuffle.ll
llvm/test/CodeGen/Thumb2/mve-vld3.ll
llvm/test/CodeGen/Thumb2/mve-vst3.ll
llvm/test/CodeGen/Thumb2/mve-vst4.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D95551.319627.patch
Type: text/x-patch
Size: 134763 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210127/1490b8d4/attachment-0001.bin>
More information about the llvm-commits
mailing list