summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/widen_arith-1.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/X86/widen_arith-1.ll')
-rw-r--r--llvm/test/CodeGen/X86/widen_arith-1.ll14
1 files changed, 8 insertions, 6 deletions
diff --git a/llvm/test/CodeGen/X86/widen_arith-1.ll b/llvm/test/CodeGen/X86/widen_arith-1.ll
index a37dba14f22..d5b1cbb5548 100644
--- a/llvm/test/CodeGen/X86/widen_arith-1.ll
+++ b/llvm/test/CodeGen/X86/widen_arith-1.ll
@@ -4,9 +4,10 @@
define void @update(<3 x i8>* %dst, <3 x i8>* %src, i32 %n) nounwind {
; CHECK-LABEL: update:
; CHECK: # %bb.0: # %entry
-; CHECK-NEXT: pushl %eax
+; CHECK-NEXT: subl $12, %esp
; CHECK-NEXT: movl $0, (%esp)
; CHECK-NEXT: pcmpeqd %xmm0, %xmm0
+; CHECK-NEXT: movdqa {{.*#+}} xmm1 = <0,4,8,12,u,u,u,u,u,u,u,u,u,u,u,u>
; CHECK-NEXT: .p2align 4, 0x90
; CHECK-NEXT: .LBB0_1: # %forcond
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
@@ -18,14 +19,15 @@ define void @update(<3 x i8>* %dst, <3 x i8>* %src, i32 %n) nounwind {
; CHECK-NEXT: movl (%esp), %eax
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %ecx
; CHECK-NEXT: movl {{[0-9]+}}(%esp), %edx
-; CHECK-NEXT: movd {{.*#+}} xmm1 = mem[0],zero,zero,zero
-; CHECK-NEXT: psubb %xmm0, %xmm1
-; CHECK-NEXT: pextrb $2, %xmm1, 2(%ecx,%eax,4)
-; CHECK-NEXT: pextrw $0, %xmm1, (%ecx,%eax,4)
+; CHECK-NEXT: pmovzxbd {{.*#+}} xmm2 = mem[0],zero,zero,zero,mem[1],zero,zero,zero,mem[2],zero,zero,zero,mem[3],zero,zero,zero
+; CHECK-NEXT: psubd %xmm0, %xmm2
+; CHECK-NEXT: pextrb $8, %xmm2, 2(%ecx,%eax,4)
+; CHECK-NEXT: pshufb %xmm1, %xmm2
+; CHECK-NEXT: pextrw $0, %xmm2, (%ecx,%eax,4)
; CHECK-NEXT: incl (%esp)
; CHECK-NEXT: jmp .LBB0_1
; CHECK-NEXT: .LBB0_3: # %afterfor
-; CHECK-NEXT: popl %eax
+; CHECK-NEXT: addl $12, %esp
; CHECK-NEXT: retl
entry:
%dst.addr = alloca <3 x i8>*
OpenPOWER on IntegriCloud