@@ -442,16 +442,18 @@ define void @PR48908(<4 x double> %v0, <4 x double> %v1, <4 x double> %v2, <4 x
442
442
; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %eax
443
443
; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %ecx
444
444
; X86-AVX1-NEXT: movl {{[0-9]+}}(%esp), %edx
445
- ; X86-AVX1-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm1[2,3],ymm2[0,1]
446
- ; X86-AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm4
447
- ; X86-AVX1-NEXT: vshufpd {{.*#+}} ymm3 = ymm4[1],ymm3[0],ymm4[2],ymm3[3]
448
- ; X86-AVX1-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm1[0,1],ymm0[0,1]
445
+ ; X86-AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm3
446
+ ; X86-AVX1-NEXT: vpermilpd {{.*#+}} ymm3 = ymm3[0,1,2,2]
447
+ ; X86-AVX1-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm1[2,3],ymm2[0,1]
448
+ ; X86-AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm5
449
+ ; X86-AVX1-NEXT: vshufpd {{.*#+}} ymm4 = ymm5[1],ymm4[0],ymm5[2],ymm4[3]
449
450
; X86-AVX1-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm0[0,1],ymm2[0,1]
450
- ; X86-AVX1-NEXT: vshufpd {{.*#+}} ymm4 = ymm5[0],ymm4[1],ymm5[2],ymm4[2]
451
- ; X86-AVX1-NEXT: vmovapd %ymm4, (%edx)
452
- ; X86-AVX1-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm3[2,3,0,1]
453
- ; X86-AVX1-NEXT: vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm0[2],ymm3[3]
454
- ; X86-AVX1-NEXT: vblendpd {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2],ymm4[3]
451
+ ; X86-AVX1-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3,0,1]
452
+ ; X86-AVX1-NEXT: vblendpd {{.*#+}} ymm3 = ymm5[0],ymm3[1],ymm5[2],ymm3[3]
453
+ ; X86-AVX1-NEXT: vmovapd %ymm3, (%edx)
454
+ ; X86-AVX1-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm4[2,3,0,1]
455
+ ; X86-AVX1-NEXT: vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm0[2],ymm4[3]
456
+ ; X86-AVX1-NEXT: vblendpd {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2],ymm3[3]
455
457
; X86-AVX1-NEXT: vmovapd %ymm3, (%ecx)
456
458
; X86-AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
457
459
; X86-AVX1-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[2,3]
@@ -513,16 +515,18 @@ define void @PR48908(<4 x double> %v0, <4 x double> %v1, <4 x double> %v2, <4 x
513
515
;
514
516
; X64-AVX1-LABEL: PR48908:
515
517
; X64-AVX1: # %bb.0:
516
- ; X64-AVX1-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm1[2,3],ymm2[0,1]
517
- ; X64-AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm4
518
- ; X64-AVX1-NEXT: vshufpd {{.*#+}} ymm3 = ymm4[1],ymm3[0],ymm4[2],ymm3[3]
519
- ; X64-AVX1-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm1[0,1],ymm0[0,1]
518
+ ; X64-AVX1-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm3
519
+ ; X64-AVX1-NEXT: vpermilpd {{.*#+}} ymm3 = ymm3[0,1,2,2]
520
+ ; X64-AVX1-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm1[2,3],ymm2[0,1]
521
+ ; X64-AVX1-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm5
522
+ ; X64-AVX1-NEXT: vshufpd {{.*#+}} ymm4 = ymm5[1],ymm4[0],ymm5[2],ymm4[3]
520
523
; X64-AVX1-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm0[0,1],ymm2[0,1]
521
- ; X64-AVX1-NEXT: vshufpd {{.*#+}} ymm4 = ymm5[0],ymm4[1],ymm5[2],ymm4[2]
522
- ; X64-AVX1-NEXT: vmovapd %ymm4, (%rdi)
523
- ; X64-AVX1-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm3[2,3,0,1]
524
- ; X64-AVX1-NEXT: vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm0[2],ymm3[3]
525
- ; X64-AVX1-NEXT: vblendpd {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2],ymm4[3]
524
+ ; X64-AVX1-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3,0,1]
525
+ ; X64-AVX1-NEXT: vblendpd {{.*#+}} ymm3 = ymm5[0],ymm3[1],ymm5[2],ymm3[3]
526
+ ; X64-AVX1-NEXT: vmovapd %ymm3, (%rdi)
527
+ ; X64-AVX1-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm4[2,3,0,1]
528
+ ; X64-AVX1-NEXT: vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm0[2],ymm4[3]
529
+ ; X64-AVX1-NEXT: vblendpd {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2],ymm3[3]
526
530
; X64-AVX1-NEXT: vmovapd %ymm3, (%rsi)
527
531
; X64-AVX1-NEXT: vextractf128 $1, %ymm0, %xmm0
528
532
; X64-AVX1-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm2[2,3],ymm1[2,3]
0 commit comments