@@ -659,57 +659,57 @@ define <9 x double> @test_mul3x3_f64(<9 x double> %a0, <9 x double> %a1) nounwin
659
659
; AVX2: # %bb.0: # %entry
660
660
; AVX2-NEXT: movq %rdi, %rax
661
661
; AVX2-NEXT: vmovsd {{.*#+}} xmm8 = mem[0],zero
662
- ; AVX2-NEXT: vunpcklpd {{.*#+}} xmm1 = xmm0[0],xmm1[0]
662
+ ; AVX2-NEXT: vunpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0]
663
663
; AVX2-NEXT: vmovddup {{.*#+}} xmm9 = mem[0,0]
664
- ; AVX2-NEXT: vmulpd %xmm1 , %xmm9, %xmm0
665
- ; AVX2-NEXT: vunpcklpd {{.*#+}} xmm3 = xmm3[0],xmm4[0]
666
- ; AVX2-NEXT: vmovddup {{.*#+}} xmm4 = mem[0,0]
667
- ; AVX2-NEXT: vmulpd %xmm4 , %xmm3 , %xmm10
668
- ; AVX2-NEXT: vaddpd %xmm0 , %xmm10, %xmm0
664
+ ; AVX2-NEXT: vmulpd %xmm0 , %xmm9, %xmm10
665
+ ; AVX2-NEXT: vunpcklpd {{.*#+}} xmm1 = xmm3[0],xmm4[0]
666
+ ; AVX2-NEXT: vmovddup {{.*#+}} xmm3 = mem[0,0]
667
+ ; AVX2-NEXT: vmulpd %xmm3 , %xmm1 , %xmm4
668
+ ; AVX2-NEXT: vaddpd %xmm4 , %xmm10, %xmm4
669
669
; AVX2-NEXT: vunpcklpd {{.*#+}} xmm6 = xmm6[0],xmm7[0]
670
670
; AVX2-NEXT: vmovddup {{.*#+}} xmm7 = mem[0,0]
671
671
; AVX2-NEXT: vmulpd %xmm7, %xmm6, %xmm10
672
- ; AVX2-NEXT: vaddpd %xmm0 , %xmm10, %xmm0
672
+ ; AVX2-NEXT: vaddpd %xmm4 , %xmm10, %xmm4
673
673
; AVX2-NEXT: vmulsd %xmm2, %xmm9, %xmm9
674
- ; AVX2-NEXT: vmulsd %xmm4 , %xmm5, %xmm4
675
- ; AVX2-NEXT: vaddsd %xmm4 , %xmm9, %xmm4
674
+ ; AVX2-NEXT: vmulsd %xmm3 , %xmm5, %xmm3
675
+ ; AVX2-NEXT: vaddsd %xmm3 , %xmm9, %xmm3
676
676
; AVX2-NEXT: vmulsd %xmm7, %xmm8, %xmm7
677
- ; AVX2-NEXT: vaddsd %xmm7, %xmm4, %xmm4
678
- ; AVX2-NEXT: vinsertf128 $1, %xmm4, %ymm0, %ymm4
679
- ; AVX2-NEXT: vmovddup {{.*#+}} xmm7 = mem[0,0]
680
- ; AVX2-NEXT: vmulpd %xmm7, %xmm1, %xmm9
677
+ ; AVX2-NEXT: vaddsd %xmm7, %xmm3, %xmm3
678
+ ; AVX2-NEXT: vinsertf128 $1, %xmm3, %ymm4, %ymm3
679
+ ; AVX2-NEXT: vmovddup {{.*#+}} xmm4 = mem[0,0]
680
+ ; AVX2-NEXT: vmulpd %xmm4, %xmm0, %xmm7
681
+ ; AVX2-NEXT: vmovddup {{.*#+}} xmm9 = mem[0,0]
682
+ ; AVX2-NEXT: vmulpd %xmm1, %xmm9, %xmm10
683
+ ; AVX2-NEXT: vaddpd %xmm7, %xmm10, %xmm7
681
684
; AVX2-NEXT: vmovddup {{.*#+}} xmm10 = mem[0,0]
682
- ; AVX2-NEXT: vmulpd %xmm3, %xmm10, %xmm11
683
- ; AVX2-NEXT: vaddpd %xmm11, %xmm9, %xmm9
684
- ; AVX2-NEXT: vmovddup {{.*#+}} xmm11 = mem[0,0]
685
- ; AVX2-NEXT: vmulpd %xmm6, %xmm11, %xmm12
686
- ; AVX2-NEXT: vaddpd %xmm12, %xmm9, %xmm9
687
- ; AVX2-NEXT: vmulsd %xmm7, %xmm2, %xmm7
688
- ; AVX2-NEXT: vmulsd %xmm5, %xmm10, %xmm10
689
- ; AVX2-NEXT: vaddsd %xmm7, %xmm10, %xmm7
690
- ; AVX2-NEXT: vmulsd %xmm11, %xmm8, %xmm10
691
- ; AVX2-NEXT: vaddsd %xmm7, %xmm10, %xmm7
685
+ ; AVX2-NEXT: vmulpd %xmm6, %xmm10, %xmm11
686
+ ; AVX2-NEXT: vaddpd %xmm7, %xmm11, %xmm7
687
+ ; AVX2-NEXT: vmulsd %xmm4, %xmm2, %xmm4
688
+ ; AVX2-NEXT: vmulsd %xmm5, %xmm9, %xmm9
689
+ ; AVX2-NEXT: vaddsd %xmm4, %xmm9, %xmm4
690
+ ; AVX2-NEXT: vmulsd %xmm10, %xmm8, %xmm9
691
+ ; AVX2-NEXT: vaddsd %xmm4, %xmm9, %xmm4
692
+ ; AVX2-NEXT: vmovddup {{.*#+}} xmm9 = mem[0,0]
693
+ ; AVX2-NEXT: vmulpd %xmm0, %xmm9, %xmm0
692
694
; AVX2-NEXT: vmovddup {{.*#+}} xmm10 = mem[0,0]
693
695
; AVX2-NEXT: vmulpd %xmm1, %xmm10, %xmm1
694
- ; AVX2-NEXT: vmovddup {{.*#+}} xmm11 = mem[0,0]
695
- ; AVX2-NEXT: vmulpd %xmm3, %xmm11, %xmm3
696
- ; AVX2-NEXT: vaddpd %xmm3, %xmm1, %xmm1
697
- ; AVX2-NEXT: vmovddup {{.*#+}} xmm3 = mem[0,0]
698
- ; AVX2-NEXT: vmulpd %xmm3, %xmm6, %xmm6
699
- ; AVX2-NEXT: vaddpd %xmm6, %xmm1, %xmm1
700
- ; AVX2-NEXT: vmulsd %xmm2, %xmm10, %xmm2
701
- ; AVX2-NEXT: vmulsd %xmm5, %xmm11, %xmm5
696
+ ; AVX2-NEXT: vaddpd %xmm1, %xmm0, %xmm0
697
+ ; AVX2-NEXT: vmovddup {{.*#+}} xmm1 = mem[0,0]
698
+ ; AVX2-NEXT: vmulpd %xmm1, %xmm6, %xmm6
699
+ ; AVX2-NEXT: vaddpd %xmm6, %xmm0, %xmm0
700
+ ; AVX2-NEXT: vmulsd %xmm2, %xmm9, %xmm2
701
+ ; AVX2-NEXT: vmulsd %xmm5, %xmm10, %xmm5
702
702
; AVX2-NEXT: vaddsd %xmm5, %xmm2, %xmm2
703
- ; AVX2-NEXT: vmulsd %xmm3 , %xmm8, %xmm3
704
- ; AVX2-NEXT: vaddsd %xmm3 , %xmm2, %xmm2
705
- ; AVX2-NEXT: vinsertf128 $1, %xmm9 , %ymm0, %ymm0
706
- ; AVX2-NEXT: vshufpd {{.*#+}} ymm0 = ymm4[0],ymm0[1],ymm4[ 2],ymm0[2 ]
707
- ; AVX2-NEXT: vinsertf128 $1, %xmm1 , %ymm7 , %ymm3
708
- ; AVX2-NEXT: vinsertf128 $1, %xmm1 , %ymm9 , %ymm1
709
- ; AVX2-NEXT: vshufpd {{.*#+}} ymm1 = ymm1 [1],ymm3[0],ymm1 [2],ymm3[3]
710
- ; AVX2-NEXT: vmovsd %xmm2 , 64(%rdi)
711
- ; AVX2-NEXT: vmovapd %ymm1 , 32(%rdi)
712
- ; AVX2-NEXT: vmovapd %ymm0 , (%rdi)
703
+ ; AVX2-NEXT: vmulsd %xmm1 , %xmm8, %xmm1
704
+ ; AVX2-NEXT: vaddsd %xmm1 , %xmm2, %xmm1
705
+ ; AVX2-NEXT: vbroadcastsd %xmm7 , %ymm2
706
+ ; AVX2-NEXT: vblendpd {{.*#+}} ymm2 = ymm3[0,1, 2],ymm2[3 ]
707
+ ; AVX2-NEXT: vinsertf128 $1, %xmm0 , %ymm4 , %ymm3
708
+ ; AVX2-NEXT: vinsertf128 $1, %xmm0 , %ymm7 , %ymm0
709
+ ; AVX2-NEXT: vshufpd {{.*#+}} ymm0 = ymm0 [1],ymm3[0],ymm0 [2],ymm3[3]
710
+ ; AVX2-NEXT: vmovsd %xmm1 , 64(%rdi)
711
+ ; AVX2-NEXT: vmovapd %ymm0 , 32(%rdi)
712
+ ; AVX2-NEXT: vmovapd %ymm2 , (%rdi)
713
713
; AVX2-NEXT: vzeroupper
714
714
; AVX2-NEXT: retq
715
715
;
0 commit comments