For NEON vectors with 32- or 64-bit elements, select BUILD_VECTORs and
authorBob Wilson <bob.wilson@apple.com>
Fri, 4 Jun 2010 00:04:02 +0000 (00:04 +0000)
committerBob Wilson <bob.wilson@apple.com>
Fri, 4 Jun 2010 00:04:02 +0000 (00:04 +0000)
commit40cbe7d5d41d22d32e8ce773548f510fd1ee0ed9
tree470ab73e8c1aaf447bc9b644f7c006d30490b6dc
parentda8dd92c9ff9928b81fca3427809f384ee7269f7
For NEON vectors with 32- or 64-bit elements, select BUILD_VECTORs and
VECTOR_SHUFFLEs to REG_SEQUENCE instructions.  The standard ISD::BUILD_VECTOR
node corresponds closely to REG_SEQUENCE but I couldn't use it here because
its operands do not get legalized.  That is pretty awful, but I guess it
makes sense for other targets.  Instead, I have added an ARM-specific version
of BUILD_VECTOR that will have its operands properly legalized.
This fixes the rest of Radar 7872877.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105439 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMISelDAGToDAG.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMISelLowering.h