diff options
author | Bob Wilson <bob.wilson@apple.com> | 2009-08-21 00:01:42 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@apple.com> | 2009-08-21 00:01:42 +0000 |
commit | d4b4cf524b8afc342b618254d69f48f214b60093 (patch) | |
tree | 58125d199fe0b648900233c69b822f4f6bdb14d8 /lib/Target/ARM | |
parent | 2ea20154cef8ecfb8803bcfe5223e1c199d61858 (diff) | |
download | external_llvm-d4b4cf524b8afc342b618254d69f48f214b60093.zip external_llvm-d4b4cf524b8afc342b618254d69f48f214b60093.tar.gz external_llvm-d4b4cf524b8afc342b618254d69f48f214b60093.tar.bz2 |
Remove Neon intrinsics for VZIP, VUZP, and VTRN. We will represent these as
vector shuffles. Temporarily remove the tests for these operations until the
new implementation is working.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79579 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM')
-rw-r--r-- | lib/Target/ARM/ARMISelDAGToDAG.cpp | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/lib/Target/ARM/ARMISelDAGToDAG.cpp b/lib/Target/ARM/ARMISelDAGToDAG.cpp index 5bf1781..3ef15a1 100644 --- a/lib/Target/ARM/ARMISelDAGToDAG.cpp +++ b/lib/Target/ARM/ARMISelDAGToDAG.cpp @@ -1415,63 +1415,6 @@ SDNode *ARMDAGToDAGISel::Select(SDValue Op) { N->getOperand(4), N->getOperand(5), Chain }; return CurDAG->getTargetNode(Opc, dl, MVT::Other, Ops, 8); } - - case ISD::INTRINSIC_WO_CHAIN: { - unsigned IntNo = cast<ConstantSDNode>(N->getOperand(0))->getZExtValue(); - EVT VT = N->getValueType(0); - unsigned Opc = 0; - - // Match intrinsics that return multiple values. - switch (IntNo) { - default: break; - - case Intrinsic::arm_neon_vtrn: - switch (VT.getSimpleVT().SimpleTy) { - default: return NULL; - case MVT::v8i8: Opc = ARM::VTRNd8; break; - case MVT::v4i16: Opc = ARM::VTRNd16; break; - case MVT::v2f32: - case MVT::v2i32: Opc = ARM::VTRNd32; break; - case MVT::v16i8: Opc = ARM::VTRNq8; break; - case MVT::v8i16: Opc = ARM::VTRNq16; break; - case MVT::v4f32: - case MVT::v4i32: Opc = ARM::VTRNq32; break; - } - return CurDAG->getTargetNode(Opc, dl, VT, VT, N->getOperand(1), - N->getOperand(2)); - - case Intrinsic::arm_neon_vuzp: - switch (VT.getSimpleVT().SimpleTy) { - default: return NULL; - case MVT::v8i8: Opc = ARM::VUZPd8; break; - case MVT::v4i16: Opc = ARM::VUZPd16; break; - case MVT::v2f32: - case MVT::v2i32: Opc = ARM::VUZPd32; break; - case MVT::v16i8: Opc = ARM::VUZPq8; break; - case MVT::v8i16: Opc = ARM::VUZPq16; break; - case MVT::v4f32: - case MVT::v4i32: Opc = ARM::VUZPq32; break; - } - return CurDAG->getTargetNode(Opc, dl, VT, VT, N->getOperand(1), - N->getOperand(2)); - - case Intrinsic::arm_neon_vzip: - switch (VT.getSimpleVT().SimpleTy) { - default: return NULL; - case MVT::v8i8: Opc = ARM::VZIPd8; break; - case MVT::v4i16: Opc = ARM::VZIPd16; break; - case MVT::v2f32: - case MVT::v2i32: Opc = ARM::VZIPd32; break; - case MVT::v16i8: Opc = ARM::VZIPq8; break; - case MVT::v8i16: Opc = ARM::VZIPq16; break; - case MVT::v4f32: - case MVT::v4i32: Opc = ARM::VZIPq32; break; - } - return CurDAG->getTargetNode(Opc, dl, VT, VT, N->getOperand(1), - N->getOperand(2)); - } - break; - } } return SelectCode(Op); |