@@ -3533,6 +3533,58 @@ define <4 x i32> @PR63700(i128 %0) {
3533
3533
ret <4 x i32 > %shuffle.i11
3534
3534
}
3535
3535
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
+
3536
3588
; Test case reported on D105827
3537
3589
define void @SpinningCube () {
3538
3590
; SSE2-LABEL: SpinningCube:
@@ -3641,9 +3693,9 @@ define void @autogen_SD25931() {
3641
3693
; CHECK-LABEL: autogen_SD25931:
3642
3694
; CHECK: # %bb.0: # %BB
3643
3695
; CHECK-NEXT: .p2align 4, 0x90
3644
- ; CHECK-NEXT: .LBB141_1 : # %CF242
3696
+ ; CHECK-NEXT: .LBB142_1 : # %CF242
3645
3697
; CHECK-NEXT: # =>This Inner Loop Header: Depth=1
3646
- ; CHECK-NEXT: jmp .LBB141_1
3698
+ ; CHECK-NEXT: jmp .LBB142_1
3647
3699
BB:
3648
3700
%Cmp16 = icmp uge <2 x i1 > zeroinitializer , zeroinitializer
3649
3701
%Shuff19 = shufflevector <2 x i1 > zeroinitializer , <2 x i1 > %Cmp16 , <2 x i32 > <i32 3 , i32 1 >
0 commit comments