[all-commits] [llvm/llvm-project] 37b9cc: [ARM] Sink splats to vector float instructions
David Green via All-commits
all-commits at lists.llvm.org
Thu Mar 26 02:02:33 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 37b9cc8f29e993ba9894402dd87f9c4be83cb8f6
https://github.com/llvm/llvm-project/commit/37b9cc8f29e993ba9894402dd87f9c4be83cb8f6
Author: David Green <david.green at arm.com>
Date: 2020-03-26 (Thu, 26 Mar 2020)
Changed paths:
M llvm/lib/Target/ARM/ARMISelLowering.cpp
M llvm/test/CodeGen/Thumb2/mve-float16regloops.ll
M llvm/test/CodeGen/Thumb2/mve-float32regloops.ll
M llvm/test/CodeGen/Thumb2/mve-pred-threshold.ll
Log Message:
-----------
[ARM] Sink splats to vector float instructions
Some MVE floating point instructions have gpr register variants that take
the scalar gpr value and splat them to all lanes. In order to accept
them in loops, the shuffle_vector and insert need to be sunk down into
the loop, next to the instruction so that ISel can see the whole
pattern.
This does that sinking for FAdd, FSub, FMul and FCmp. The patterns for
mul are slightly more constrained as there are no fms variants taking
register arguments.
Differential Revision: https://reviews.llvm.org/D76023
More information about the All-commits
mailing list