[ARM] Fold select_cc(vecreduce_[u|s][min|max], x) into VMINV or VMAXV
authorSam Tebbs <samuel.tebbs@arm.com>
Wed, 23 Sep 2020 10:43:27 +0000 (11:43 +0100)
committerSam Tebbs <samuel.tebbs@arm.com>
Tue, 6 Oct 2020 13:44:58 +0000 (14:44 +0100)
commit68e002e1819f1598fc6815226a353ad2f04cd509
treeab3144c9a640c0aaf27ecb94b3cae8a4b7a0d833
parente2452f57faa916866a99126d2337bd82a9e0a06d
[ARM] Fold select_cc(vecreduce_[u|s][min|max], x) into VMINV or VMAXV

    This folds a select_cc or select(set_cc) of a max or min vector reduction with a scalar value into a VMAXV or VMINV.

    Differential Revision: https://reviews.llvm.org/D87836
llvm/lib/Target/ARM/ARMISelLowering.cpp
llvm/lib/Target/ARM/ARMISelLowering.h
llvm/lib/Target/ARM/ARMInstrMVE.td
llvm/test/CodeGen/Thumb2/mve-vecreduce-loops.ll
llvm/test/CodeGen/Thumb2/mve-vmaxv-vminv-scalar.ll [new file with mode: 0644]
llvm/test/CodeGen/Thumb2/mve-vmaxv.ll