[ARM] Rewrite how VCMP are lowered, using a single node
commitebea2f807d175f4b4b996a50e81e570e26306d40
authorDavid Green <david.green@arm.com>
Wed, 24 Jul 2019 17:36:47 +0000 (24 17:36 +0000)
committerDavid Green <david.green@arm.com>
Wed, 24 Jul 2019 17:36:47 +0000 (24 17:36 +0000)
tree0fcff70924fc7ba0be3e8648ec723d1166902c40
parent8acd141e45ee105fc45a9812ef2d1de29bdc8757
[ARM] Rewrite how VCMP are lowered, using a single node

This removes the VCEQ/VCNE/VCGE/VCEQZ/etc nodes, just using two called VCMP and
VCMPZ with an extra operand as the condition code. I believe this will make
some combines simpler, allowing us to just look at these codes and not the
operands. It also helps fill in a missing VCGTUZ MVE selection without adding
extra nodes for it.

Differential Revision: https://reviews.llvm.org/D65072

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@366934 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMISelLowering.h
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrMVE.td
lib/Target/ARM/ARMInstrNEON.td
test/CodeGen/Thumb2/mve-pred-and.ll
test/CodeGen/Thumb2/mve-pred-or.ll
test/CodeGen/Thumb2/mve-pred-xor.ll
test/CodeGen/Thumb2/mve-vcmpz.ll