[VE] VEC_BROADCAST, lowering and isel
authorSimon Moll <simon.moll@emea.nec.com>
Thu, 19 Nov 2020 08:44:48 +0000 (09:44 +0100)
committerSimon Moll <simon.moll@emea.nec.com>
Thu, 19 Nov 2020 08:44:56 +0000 (09:44 +0100)
commitffe6c97f6b6e996f22ec3ca4a886dbb0d4f6f6fa
tree4af325a8cec0314271b33c36e74de8fd0e1e3741
parent1827005cfcfff2100535d35c22e0cf7caa469c46
[VE] VEC_BROADCAST, lowering and isel

This defines the vec_broadcast SDNode along with lowering and isel code.
We also remove unused type mappings for the vector register classes (all vector MVTs that are not used in the ISA go).

We will implement support for short vectors later by intercepting nodes with illegal vector EVTs before LLVM has had a chance to widen them.

Reviewed By: kaz7

Differential Revision: https://reviews.llvm.org/D91646
llvm/lib/Target/VE/VECallingConv.td
llvm/lib/Target/VE/VEISelLowering.cpp
llvm/lib/Target/VE/VEISelLowering.h
llvm/lib/Target/VE/VEInstrInfo.td
llvm/lib/Target/VE/VEInstrPatternsVec.td [new file with mode: 0644]
llvm/lib/Target/VE/VERegisterInfo.td
llvm/test/CodeGen/VE/Vector/vec_broadcast.ll [new file with mode: 0644]