diff options
Diffstat (limited to 'llvm/test/CodeGen/X86/widen_conv-3.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/widen_conv-3.ll | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/llvm/test/CodeGen/X86/widen_conv-3.ll b/llvm/test/CodeGen/X86/widen_conv-3.ll index 038c6cb33b6..3585d306d72 100644 --- a/llvm/test/CodeGen/X86/widen_conv-3.ll +++ b/llvm/test/CodeGen/X86/widen_conv-3.ll @@ -47,15 +47,16 @@ define void @convert_v3i8_to_v3f32(<3 x float>* %dst.addr, <3 x i8>* %src.addr) ; X86-SSE2-NEXT: movd %edx, %xmm0 ; X86-SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7] ; X86-SSE2-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3] -; X86-SSE2-NEXT: movzbl 2(%ecx), %ecx ; X86-SSE2-NEXT: movdqa %xmm0, (%esp) -; X86-SSE2-NEXT: movl {{[0-9]+}}(%esp), %edx +; X86-SSE2-NEXT: movl (%esp), %edx +; X86-SSE2-NEXT: movl {{[0-9]+}}(%esp), %esi +; X86-SSE2-NEXT: shll $8, %esi ; X86-SSE2-NEXT: shll $8, %edx -; X86-SSE2-NEXT: movzbl (%esp), %esi -; X86-SSE2-NEXT: orl %edx, %esi -; X86-SSE2-NEXT: movd %esi, %xmm0 -; X86-SSE2-NEXT: pinsrw $1, %ecx, %xmm0 -; X86-SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7] +; X86-SSE2-NEXT: movd %edx, %xmm0 +; X86-SSE2-NEXT: pinsrw $1, %esi, %xmm0 +; X86-SSE2-NEXT: movzbl 2(%ecx), %ecx +; X86-SSE2-NEXT: shll $8, %ecx +; X86-SSE2-NEXT: pinsrw $2, %ecx, %xmm0 ; X86-SSE2-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3] ; X86-SSE2-NEXT: psrad $24, %xmm0 ; X86-SSE2-NEXT: cvtdq2ps %xmm0, %xmm0 @@ -95,15 +96,16 @@ define void @convert_v3i8_to_v3f32(<3 x float>* %dst.addr, <3 x i8>* %src.addr) ; X64-SSE2-NEXT: movq %rax, %xmm0 ; X64-SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7] ; X64-SSE2-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3] -; X64-SSE2-NEXT: movzbl 2(%rsi), %eax ; X64-SSE2-NEXT: movdqa %xmm0, -{{[0-9]+}}(%rsp) +; X64-SSE2-NEXT: movl -{{[0-9]+}}(%rsp), %eax ; X64-SSE2-NEXT: movl -{{[0-9]+}}(%rsp), %ecx ; X64-SSE2-NEXT: shll $8, %ecx -; X64-SSE2-NEXT: movzbl -{{[0-9]+}}(%rsp), %edx -; X64-SSE2-NEXT: orl %ecx, %edx -; X64-SSE2-NEXT: movd %edx, %xmm0 -; X64-SSE2-NEXT: pinsrw $1, %eax, %xmm0 -; X64-SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7] +; X64-SSE2-NEXT: shll $8, %eax +; X64-SSE2-NEXT: movd %eax, %xmm0 +; X64-SSE2-NEXT: pinsrw $1, %ecx, %xmm0 +; X64-SSE2-NEXT: movzbl 2(%rsi), %eax +; X64-SSE2-NEXT: shll $8, %eax +; X64-SSE2-NEXT: pinsrw $2, %eax, %xmm0 ; X64-SSE2-NEXT: punpcklwd {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3] ; X64-SSE2-NEXT: psrad $24, %xmm0 ; X64-SSE2-NEXT: cvtdq2ps %xmm0, %xmm0 |

