Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/test/CodeGen/X86/oddshuffles.ll
Show First 20 Lines • Show All 1,765 Lines • ▼ Show 20 Lines | ; XOP-NEXT: retq | ||||
%m3 = load <8 x double>, <8 x double>* %P, align 64 | %m3 = load <8 x double>, <8 x double>* %P, align 64 | ||||
%m4 = shufflevector <8 x double> %m3, <8 x double> undef, <2 x i32> <i32 2, i32 0> | %m4 = shufflevector <8 x double> %m3, <8 x double> undef, <2 x i32> <i32 2, i32 0> | ||||
ret <2 x double> %m4 | ret <2 x double> %m4 | ||||
} | } | ||||
define void @PR41097() { | define void @PR41097() { | ||||
; SSE2-LABEL: PR41097: | ; SSE2-LABEL: PR41097: | ||||
; SSE2: # %bb.0: | ; SSE2: # %bb.0: | ||||
; SSE2-NEXT: movss {{.*#+}} xmm0 = mem[0],zero,zero,zero | ; SSE2-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero | ||||
; SSE2-NEXT: movzwl (%rax), %eax | |||||
; SSE2-NEXT: movd %eax, %xmm1 | |||||
; SSE2-NEXT: shufps {{.*#+}} xmm1 = xmm1[0,0],xmm0[2,0] | |||||
; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,1,1,3,4,5,6,7] | |||||
; SSE2-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,1],xmm1[0,2] | |||||
; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,2,2,3,4,5,6,7] | |||||
; SSE2-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7] | |||||
; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3] | |||||
; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7] | ; SSE2-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7] | ||||
; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,2,3,4,5,6,7] | ; SSE2-NEXT: pshuflw {{.*#+}} xmm0 = xmm0[0,0,2,3,4,5,6,7] | ||||
; SSE2-NEXT: psrad $24, %xmm0 | ; SSE2-NEXT: psrad $24, %xmm0 | ||||
; SSE2-NEXT: xorps %xmm1, %xmm1 | ; SSE2-NEXT: pxor %xmm1, %xmm1 | ||||
; SSE2-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1] | ; SSE2-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1] | ||||
; SSE2-NEXT: movdqu %xmm0, (%rax) | ; SSE2-NEXT: movdqu %xmm0, (%rax) | ||||
; SSE2-NEXT: retq | ; SSE2-NEXT: retq | ||||
; | ; | ||||
; SSE42-LABEL: PR41097: | ; SSE42-LABEL: PR41097: | ||||
; SSE42: # %bb.0: | ; SSE42: # %bb.0: | ||||
; SSE42-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero | ; SSE42-NEXT: movd {{.*#+}} xmm0 = mem[0],zero,zero,zero | ||||
; SSE42-NEXT: pshufb {{.*#+}} xmm0 = xmm0[0,3,u,u,u,u,u,u,u,u,u,u,u,u,u,u] | ; SSE42-NEXT: pshufb {{.*#+}} xmm0 = xmm0[0,3,u,u,u,u,u,u,u,u,u,u,u,u,u,u] | ||||
Show All 29 Lines |