OSDN Git Service

[SystemZ] Wait with VGBM selection until after DAGCombine2.
authorJonas Paulsson <paulsson@linux.vnet.ibm.com>
Wed, 6 Feb 2019 18:59:19 +0000 (18:59 +0000)
committerJonas Paulsson <paulsson@linux.vnet.ibm.com>
Wed, 6 Feb 2019 18:59:19 +0000 (18:59 +0000)
commit954d6be705c7426a21bd1c3640e6ed289c37881f
tree24c80ff09afba1acd1a0efe4c1dc1d672674d5ea
parent59f81b1e8f354cf50c039d6425d1b756db0b8fb3
[SystemZ]  Wait with VGBM selection until after DAGCombine2.

Don't lower BUILD_VECTORs to BYTE_MASK, but instead expose the BUILD_VECTORs
to the DAGCombiner and select them to VGBM in Select(). This allows the
DAGCombiner to understand the constant vector values.

For floating point, only all-zeros vectors are now generated with VGBM, as it
turned out to be somewhat complicated to handle any arbitrary constants,
while in practice this is very rare and hardly needed.

The SystemZ ISD opcodes z_byte_mask, z_vzero and z_vones have been removed.

Review: Ulrich Weigand
https://reviews.llvm.org/D57152

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353325 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
lib/Target/SystemZ/SystemZISelLowering.cpp
lib/Target/SystemZ/SystemZISelLowering.h
lib/Target/SystemZ/SystemZInstrVector.td
lib/Target/SystemZ/SystemZOperators.td
test/CodeGen/SystemZ/buildvector-00.ll [new file with mode: 0644]
test/CodeGen/SystemZ/vec-const-05.ll
test/CodeGen/SystemZ/vec-const-06.ll