@@ -3533,6 +3533,58 @@ define <4 x i32> @PR63700(i128 %0) {
35333533 ret <4 x i32 > %shuffle.i11
35343534}
35353535
3536+ define <16 x i8 > @PR107289 (<16 x i8 > %0 ) {
3537+ ; SSE2-LABEL: PR107289:
3538+ ; SSE2: # %bb.0:
3539+ ; SSE2-NEXT: movq %xmm0, %rax
3540+ ; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
3541+ ; SSE2-NEXT: movq %xmm0, %rcx
3542+ ; SSE2-NEXT: shldq $8, %rax, %rcx
3543+ ; SSE2-NEXT: shlq $8, %rax
3544+ ; SSE2-NEXT: movq %rcx, %xmm1
3545+ ; SSE2-NEXT: movq %rax, %xmm0
3546+ ; SSE2-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
3547+ ; SSE2-NEXT: retq
3548+ ;
3549+ ; SSSE3-LABEL: PR107289:
3550+ ; SSSE3: # %bb.0:
3551+ ; SSSE3-NEXT: movq %xmm0, %rax
3552+ ; SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]
3553+ ; SSSE3-NEXT: movq %xmm0, %rcx
3554+ ; SSSE3-NEXT: shldq $8, %rax, %rcx
3555+ ; SSSE3-NEXT: shlq $8, %rax
3556+ ; SSSE3-NEXT: movq %rcx, %xmm1
3557+ ; SSSE3-NEXT: movq %rax, %xmm0
3558+ ; SSSE3-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
3559+ ; SSSE3-NEXT: retq
3560+ ;
3561+ ; SSE41-LABEL: PR107289:
3562+ ; SSE41: # %bb.0:
3563+ ; SSE41-NEXT: pextrq $1, %xmm0, %rax
3564+ ; SSE41-NEXT: movq %xmm0, %rcx
3565+ ; SSE41-NEXT: shldq $8, %rcx, %rax
3566+ ; SSE41-NEXT: shlq $8, %rcx
3567+ ; SSE41-NEXT: movq %rax, %xmm1
3568+ ; SSE41-NEXT: movq %rcx, %xmm0
3569+ ; SSE41-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm1[0]
3570+ ; SSE41-NEXT: retq
3571+ ;
3572+ ; AVX-LABEL: PR107289:
3573+ ; AVX: # %bb.0:
3574+ ; AVX-NEXT: vpextrq $1, %xmm0, %rax
3575+ ; AVX-NEXT: vmovq %xmm0, %rcx
3576+ ; AVX-NEXT: shldq $8, %rcx, %rax
3577+ ; AVX-NEXT: shlq $8, %rcx
3578+ ; AVX-NEXT: vmovq %rax, %xmm0
3579+ ; AVX-NEXT: vmovq %rcx, %xmm1
3580+ ; AVX-NEXT: vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
3581+ ; AVX-NEXT: retq
3582+ %src = bitcast <16 x i8 > %0 to i128
3583+ %shl = shl i128 %src , 8
3584+ %res = bitcast i128 %shl to <16 x i8 >
3585+ ret <16 x i8 > %res
3586+ }
3587+
35363588; Test case reported on D105827
35373589define void @SpinningCube () {
35383590; SSE2-LABEL: SpinningCube:
@@ -3641,9 +3693,9 @@ define void @autogen_SD25931() {
36413693; CHECK-LABEL: autogen_SD25931:
36423694; CHECK: # %bb.0: # %BB
36433695; CHECK-NEXT: .p2align 4, 0x90
3644- ; CHECK-NEXT: .LBB141_1 : # %CF242
3696+ ; CHECK-NEXT: .LBB142_1 : # %CF242
36453697; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
3646- ; CHECK-NEXT: jmp .LBB141_1
3698+ ; CHECK-NEXT: jmp .LBB142_1
36473699BB:
36483700 %Cmp16 = icmp uge <2 x i1 > zeroinitializer , zeroinitializer
36493701 %Shuff19 = shufflevector <2 x i1 > zeroinitializer , <2 x i1 > %Cmp16 , <2 x i32 > <i32 3 , i32 1 >
0 commit comments