Use vAny type to get rid of Neon intrinsics that differed only in whether
the overloaded vector types allowed floating-point or integer vector elements.
Most of these operations actually depend on the element type, so bitcasting
was not an option.
If you include the vpadd intrinsics that I updated earlier, this gets rid
of 20 intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78646 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/ARM/ARMISelDAGToDAG.cpp b/lib/Target/ARM/ARMISelDAGToDAG.cpp
index 1096e8e..a927da2 100644
--- a/lib/Target/ARM/ARMISelDAGToDAG.cpp
+++ b/lib/Target/ARM/ARMISelDAGToDAG.cpp
@@ -1466,8 +1466,7 @@
switch (IntNo) {
default: break;
- case Intrinsic::arm_neon_vtrni:
- case Intrinsic::arm_neon_vtrnf:
+ case Intrinsic::arm_neon_vtrn:
switch (VT.getSimpleVT()) {
default: return NULL;
case EVT::v8i8: Opc = ARM::VTRNd8; break;
@@ -1482,8 +1481,7 @@
return CurDAG->getTargetNode(Opc, dl, VT, VT, N->getOperand(1),
N->getOperand(2));
- case Intrinsic::arm_neon_vuzpi:
- case Intrinsic::arm_neon_vuzpf:
+ case Intrinsic::arm_neon_vuzp:
switch (VT.getSimpleVT()) {
default: return NULL;
case EVT::v8i8: Opc = ARM::VUZPd8; break;
@@ -1498,8 +1496,7 @@
return CurDAG->getTargetNode(Opc, dl, VT, VT, N->getOperand(1),
N->getOperand(2));
- case Intrinsic::arm_neon_vzipi:
- case Intrinsic::arm_neon_vzipf:
+ case Intrinsic::arm_neon_vzip:
switch (VT.getSimpleVT()) {
default: return NULL;
case EVT::v8i8: Opc = ARM::VZIPd8; break;