[all-commits] [llvm/llvm-project] 0c7e04: [ARM] One-off identity shuffle
David Green via All-commits
all-commits at lists.llvm.org
Mon Feb 8 13:24:59 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 0c7e044a7f62bba3fb43bf9e5fa7f31289d7e216
https://github.com/llvm/llvm-project/commit/0c7e044a7f62bba3fb43bf9e5fa7f31289d7e216
Author: David Green <david.green at arm.com>
Date: 2021-02-08 (Mon, 08 Feb 2021)
Changed paths:
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/test/CodeGen/Thumb2/mve-float16regloops.ll
M llvm/test/CodeGen/Thumb2/mve-shuffle.ll
M llvm/test/CodeGen/Thumb2/mve-vld3.ll
M llvm/test/CodeGen/Thumb2/mve-vst3.ll
M llvm/test/CodeGen/Thumb2/mve-vst4.ll
Log Message:
-----------
[ARM] One-off identity shuffle
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.
Differential Revision: https://reviews.llvm.org/D95551
More information about the All-commits
mailing list