summaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2010-09-09 05:40:26 +0000
committerBob Wilson <bob.wilson@apple.com>2010-09-09 05:40:26 +0000
commit0f1e9457a578cbc2073107f4d3d7529cbac7e5c3 (patch)
treeaf1d3640b5ae783ad3d90daa1d42f1bf36ec83f9 /lib/Target/ARM
parentac1a19e18ad73198ae54cc4bc08000523031f84a (diff)
downloadexternal_llvm-0f1e9457a578cbc2073107f4d3d7529cbac7e5c3.zip
external_llvm-0f1e9457a578cbc2073107f4d3d7529cbac7e5c3.tar.gz
external_llvm-0f1e9457a578cbc2073107f4d3d7529cbac7e5c3.tar.bz2
Fix NEON VLD pseudo instruction itineraries that were incorrectly copied from
the VST pseudos. The VLD/VST scheduling still needs work (see pr6722), but at least we shouldn't confuse the loads with the stores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113473 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM')
-rw-r--r--lib/Target/ARM/ARMInstrNEON.td10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/Target/ARM/ARMInstrNEON.td b/lib/Target/ARM/ARMInstrNEON.td
index 4d2f116..d22839c 100644
--- a/lib/Target/ARM/ARMInstrNEON.td
+++ b/lib/Target/ARM/ARMInstrNEON.td
@@ -170,20 +170,20 @@ let mayLoad = 1, neverHasSideEffects = 1, hasExtraDefRegAllocReq = 1 in {
// Classes for VLD* pseudo-instructions with multi-register operands.
// These are expanded to real instructions after register allocation.
class VLDQPseudo
- : PseudoNLdSt<(outs QPR:$dst), (ins addrmode6:$addr), IIC_VST, "">;
+ : PseudoNLdSt<(outs QPR:$dst), (ins addrmode6:$addr), IIC_VLD2, "">;
class VLDQWBPseudo
: PseudoNLdSt<(outs QPR:$dst, GPR:$wb),
- (ins addrmode6:$addr, am6offset:$offset), IIC_VST,
+ (ins addrmode6:$addr, am6offset:$offset), IIC_VLD2,
"$addr.addr = $wb">;
class VLDQQPseudo
- : PseudoNLdSt<(outs QQPR:$dst), (ins addrmode6:$addr), IIC_VST, "">;
+ : PseudoNLdSt<(outs QQPR:$dst), (ins addrmode6:$addr), IIC_VLD4, "">;
class VLDQQWBPseudo
: PseudoNLdSt<(outs QQPR:$dst, GPR:$wb),
- (ins addrmode6:$addr, am6offset:$offset), IIC_VST,
+ (ins addrmode6:$addr, am6offset:$offset), IIC_VLD4,
"$addr.addr = $wb">;
class VLDQQQQWBPseudo
: PseudoNLdSt<(outs QQQQPR:$dst, GPR:$wb),
- (ins addrmode6:$addr, am6offset:$offset, QQQQPR:$src), IIC_VST,
+ (ins addrmode6:$addr, am6offset:$offset, QQQQPR:$src), IIC_VLD4,
"$addr.addr = $wb, $src = $dst">;
// VLD1 : Vector Load (multiple single elements)