[ARM] Sink splat to ICmp
authorDavid Green <david.green@arm.com>
Mon, 30 Dec 2019 09:39:14 +0000 (09:39 +0000)
committerDavid Green <david.green@arm.com>
Mon, 30 Dec 2019 12:58:14 +0000 (12:58 +0000)
commitb4abe7afbf5272d56ec8adb39fdccf1e2df48a88
treef4c524edf018eca86011c20f25fe2aab8b692a7a
parenta5a141544d0b3ce64c97ef9bb88ae5231e427b9f
[ARM] Sink splat to ICmp

This adds ICmp to the list of instructions that we sink a splat to in a
loop, allowing the register forms of instructions to be selected more
often. It does not add FCmp yet as the results look a little odd, trying
to keep the register in an float reg and having to move it back to a GPR.

Differential Revision: https://reviews.llvm.org/D70997
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/lib/Target/ARM/MVETailPredication.cpp
llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll
llvm/test/CodeGen/Thumb2/LowOverheadLoops/fast-fp-loops.ll
llvm/test/CodeGen/Thumb2/mve-pred-threshold.ll