Fix NEON VLD pseudo instruction itineraries that were incorrectly copied from
authorBob Wilson <bob.wilson@apple.com>
Thu, 9 Sep 2010 05:40:26 +0000 (05:40 +0000)
committerBob Wilson <bob.wilson@apple.com>
Thu, 9 Sep 2010 05:40:26 +0000 (05:40 +0000)
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

lib/Target/ARM/ARMInstrNEON.td
test/CodeGen/Thumb2/machine-licm-vdup.ll

index 4d2f1169061ffcd591cf6b3efd6cdab82184faad..d22839c23aada59d74e19ddeaa211c795b76b6ee 100644 (file)
@@ -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)
index fde2ee0ab0c9a9afd68eb65c6d08ddb23bc2ab55..f7494ec7d25dc665b33c86d05e22a1470814f69b 100644 (file)
@@ -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