[all-commits] [llvm/llvm-project] 6bd8f1: [ARM] Handle splats of constants for MVE qr instru...
David Green via All-commits
all-commits at lists.llvm.org
Fri Dec 17 01:16:42 PST 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 6bd8f114c8f1bccccfdbfd00f1bca118569147ee
https://github.com/llvm/llvm-project/commit/6bd8f114c8f1bccccfdbfd00f1bca118569147ee
Author: David Green <david.green at arm.com>
Date: 2021-12-17 (Fri, 17 Dec 2021)
Changed paths:
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/lib/Target/ARM/ARMInstrMVE.td
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/exitcount.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/lsr-profitable-chain.ll
M llvm/test/CodeGen/Thumb2/LowOverheadLoops/remat-vctp.ll
M llvm/test/CodeGen/Thumb2/mve-be.ll
M llvm/test/CodeGen/Thumb2/mve-blockplacement.ll
M llvm/test/CodeGen/Thumb2/mve-gather-increment.ll
M llvm/test/CodeGen/Thumb2/mve-gather-ind16-scaled.ll
M llvm/test/CodeGen/Thumb2/mve-gather-ind32-scaled.ll
M llvm/test/CodeGen/Thumb2/mve-gather-ind32-unscaled.ll
M llvm/test/CodeGen/Thumb2/mve-gather-ind8-unscaled.ll
M llvm/test/CodeGen/Thumb2/mve-gather-ptrs.ll
M llvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll
M llvm/test/CodeGen/Thumb2/mve-gather-scatter-ptr-address.ll
M llvm/test/CodeGen/Thumb2/mve-gather-scatter-tailpred.ll
M llvm/test/CodeGen/Thumb2/mve-halving.ll
M llvm/test/CodeGen/Thumb2/mve-phireg.ll
M llvm/test/CodeGen/Thumb2/mve-pred-vctpvpsel.ll
M llvm/test/CodeGen/Thumb2/mve-qrintrsplat.ll
M llvm/test/CodeGen/Thumb2/mve-scatter-increment.ll
M llvm/test/CodeGen/Thumb2/mve-scatter-ind16-scaled.ll
M llvm/test/CodeGen/Thumb2/mve-scatter-ind32-scaled.ll
M llvm/test/CodeGen/Thumb2/mve-scatter-ind8-unscaled.ll
M llvm/test/CodeGen/Thumb2/mve-scatter-ptrs.ll
M llvm/test/CodeGen/Thumb2/mve-selectcc.ll
M llvm/test/CodeGen/Thumb2/mve-vhadd.ll
Log Message:
-----------
[ARM] Handle splats of constants for MVE qr instruction
Some MVE instructions have qr variants that take a Q and R register,
splatting the R register for each lane. This is usually handled fine for
standard splats as we sink the splat into the loop and combine the
resulting dup into the qr instruction. It does not work for constant
splats though, as we generate a vmovimm or constant pool load instead.
This intercepts that, generating a vdup of the constant instead where we
can turn the result into a qr instruction variant.
Differential Revision: https://reviews.llvm.org/D115242
More information about the All-commits
mailing list