mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-14 05:42:45 +00:00
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
This commit is contained in:
parent
ac1a19e18a
commit
0f1e9457a5
@ -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)
|
||||
|
@ -12,7 +12,7 @@ entry:
|
||||
|
||||
bb1:
|
||||
; CHECK-NEXT: %bb1
|
||||
; CHECK: vdup.32 q1, r3
|
||||
; CHECK: vdup.32 q{{.*}}, r3
|
||||
%indvar = phi i32 [ %indvar.next, %bb1 ], [ 0, %entry ]
|
||||
%tmp1 = shl i32 %indvar, 2
|
||||
%gep1 = getelementptr i8* %ptr1, i32 %tmp1
|
||||
|
Loading…
x
Reference in New Issue
Block a user