diff options
author | Bob Wilson <bob.wilson@apple.com> | 2009-08-06 00:24:27 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@apple.com> | 2009-08-06 00:24:27 +0000 |
commit | 0cedab9a0d5127049ac1da54e2891d91796e5c61 (patch) | |
tree | 81aad9b504b0717ce8199038f6c34f6b0e878e1a | |
parent | 3765d0f1a7f43fe4b84ba423ad47870175dddde5 (diff) | |
download | external_llvm-0cedab9a0d5127049ac1da54e2891d91796e5c61.zip external_llvm-0cedab9a0d5127049ac1da54e2891d91796e5c61.tar.gz external_llvm-0cedab9a0d5127049ac1da54e2891d91796e5c61.tar.bz2 |
Neon does not actually have VLD{234}.64 instructions.
These operations will have to be synthesized from other instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78263 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/ARMISelDAGToDAG.cpp | 3 | ||||
-rw-r--r-- | lib/Target/ARM/ARMInstrNEON.td | 3 | ||||
-rw-r--r-- | lib/Target/ARM/NEONPreAllocPass.cpp | 3 |
3 files changed, 0 insertions, 9 deletions
diff --git a/lib/Target/ARM/ARMISelDAGToDAG.cpp b/lib/Target/ARM/ARMISelDAGToDAG.cpp index a773916..b2c6e12 100644 --- a/lib/Target/ARM/ARMISelDAGToDAG.cpp +++ b/lib/Target/ARM/ARMISelDAGToDAG.cpp @@ -1317,7 +1317,6 @@ SDNode *ARMDAGToDAGISel::Select(SDValue Op) { case MVT::v4i16: Opc = ARM::VLD2d16; break; case MVT::v2f32: case MVT::v2i32: Opc = ARM::VLD2d32; break; - case MVT::v1i64: Opc = ARM::VLD2d64; break; } const SDValue Ops[] = { MemAddr, MemUpdate, MemOpc }; return CurDAG->getTargetNode(Opc, dl, VT, VT, MVT::Other, Ops, 3); @@ -1335,7 +1334,6 @@ SDNode *ARMDAGToDAGISel::Select(SDValue Op) { case MVT::v4i16: Opc = ARM::VLD3d16; break; case MVT::v2f32: case MVT::v2i32: Opc = ARM::VLD3d32; break; - case MVT::v1i64: Opc = ARM::VLD3d64; break; } const SDValue Ops[] = { MemAddr, MemUpdate, MemOpc }; return CurDAG->getTargetNode(Opc, dl, VT, VT, VT, MVT::Other, Ops, 3); @@ -1353,7 +1351,6 @@ SDNode *ARMDAGToDAGISel::Select(SDValue Op) { case MVT::v4i16: Opc = ARM::VLD4d16; break; case MVT::v2f32: case MVT::v2i32: Opc = ARM::VLD4d32; break; - case MVT::v1i64: Opc = ARM::VLD4d64; break; } const SDValue Ops[] = { MemAddr, MemUpdate, MemOpc }; std::vector<MVT> ResTys(4, VT); diff --git a/lib/Target/ARM/ARMInstrNEON.td b/lib/Target/ARM/ARMInstrNEON.td index d31ec41..45284b6 100644 --- a/lib/Target/ARM/ARMInstrNEON.td +++ b/lib/Target/ARM/ARMInstrNEON.td @@ -196,7 +196,6 @@ class VLD2D<string OpcodeStr> def VLD2d8 : VLD2D<"vld2.8">; def VLD2d16 : VLD2D<"vld2.16">; def VLD2d32 : VLD2D<"vld2.32">; -def VLD2d64 : VLD2D<"vld2.64">; // VLD3 : Vector Load (multiple 3-element structures) class VLD3D<string OpcodeStr> @@ -206,7 +205,6 @@ class VLD3D<string OpcodeStr> def VLD3d8 : VLD3D<"vld3.8">; def VLD3d16 : VLD3D<"vld3.16">; def VLD3d32 : VLD3D<"vld3.32">; -def VLD3d64 : VLD3D<"vld3.64">; // VLD4 : Vector Load (multiple 4-element structures) class VLD4D<string OpcodeStr> @@ -217,7 +215,6 @@ class VLD4D<string OpcodeStr> def VLD4d8 : VLD4D<"vld4.8">; def VLD4d16 : VLD4D<"vld4.16">; def VLD4d32 : VLD4D<"vld4.32">; -def VLD4d64 : VLD4D<"vld4.64">; //===----------------------------------------------------------------------===// diff --git a/lib/Target/ARM/NEONPreAllocPass.cpp b/lib/Target/ARM/NEONPreAllocPass.cpp index 1662b76..bf9a72b 100644 --- a/lib/Target/ARM/NEONPreAllocPass.cpp +++ b/lib/Target/ARM/NEONPreAllocPass.cpp @@ -45,7 +45,6 @@ static bool isNEONMultiRegOp(int Opcode, unsigned &FirstOpnd, case ARM::VLD2d8: case ARM::VLD2d16: case ARM::VLD2d32: - case ARM::VLD2d64: FirstOpnd = 0; NumRegs = 2; return true; @@ -53,7 +52,6 @@ static bool isNEONMultiRegOp(int Opcode, unsigned &FirstOpnd, case ARM::VLD3d8: case ARM::VLD3d16: case ARM::VLD3d32: - case ARM::VLD3d64: FirstOpnd = 0; NumRegs = 3; return true; @@ -61,7 +59,6 @@ static bool isNEONMultiRegOp(int Opcode, unsigned &FirstOpnd, case ARM::VLD4d8: case ARM::VLD4d16: case ARM::VLD4d32: - case ARM::VLD4d64: FirstOpnd = 0; NumRegs = 4; return true; |