[all-commits] [llvm/llvm-project] 6eee2d: [ARM] Convert VDUPLANE to VDUP under MVE
David Green via All-commits
all-commits at lists.llvm.org
Sat May 9 10:59:32 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 6eee2d9b5bdd5dacb2669c0b8f5a76cb64f363e3
https://github.com/llvm/llvm-project/commit/6eee2d9b5bdd5dacb2669c0b8f5a76cb64f363e3
Author: David Green <david.green at arm.com>
Date: 2020-05-09 (Sat, 09 May 2020)
Changed paths:
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/ARMInstrInfo.td
M llvm/lib/Target/ARM/ARMInstrMVE.td
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
M llvm/test/CodeGen/Thumb2/mve-pred-shuffle.ll
M llvm/test/CodeGen/Thumb2/mve-vdup.ll
M llvm/test/CodeGen/Thumb2/mve-vecreduce-fminmax.ll
M llvm/test/CodeGen/Thumb2/mve-vld3.ll
M llvm/test/CodeGen/Thumb2/mve-vld4.ll
M llvm/test/CodeGen/Thumb2/mve-vst3.ll
Log Message:
-----------
[ARM] Convert VDUPLANE to VDUP under MVE
Unlike Neon, MVE does not have a way of duplicating from a vector lane,
so a VDUPLANE currently selects to a VDUP(move_from_lane(..)). This
forces that to be done earlier as a dag combine to allow other folds to
happen.
It converts to a VDUP(EXTRACT). On FP16 this is then folded to a
VGETLANEu to prevent it from creating a vmovx;vmovhr pair, using a
single move_from_reg instead.
Differential Revision: https://reviews.llvm.org/D79606
More information about the All-commits
mailing list