@@ -2666,14 +2666,13 @@ define <4 x i32> @umulo_v4i24(<4 x i24> %a0, <4 x i24> %a1, <4 x i24>* %p2) noun
2666
2666
; SSE2-NEXT: pxor %xmm4, %xmm4
2667
2667
; SSE2-NEXT: pcmpeqd %xmm4, %xmm3
2668
2668
; SSE2-NEXT: pcmpeqd %xmm5, %xmm5
2669
- ; SSE2-NEXT: pxor %xmm5 , %xmm3
2669
+ ; SSE2-NEXT: pxor %xmm3 , %xmm5
2670
2670
; SSE2-NEXT: pshufd {{.*#+}} xmm0 = xmm2[0,2,2,3]
2671
- ; SSE2-NEXT: pshufd {{.*#+}} xmm6 = xmm1[0,2,2,3]
2672
- ; SSE2-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm6 [0],xmm0[1],xmm6 [1]
2671
+ ; SSE2-NEXT: pshufd {{.*#+}} xmm3 = xmm1[0,2,2,3]
2672
+ ; SSE2-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3 [0],xmm0[1],xmm3 [1]
2673
2673
; SSE2-NEXT: psrld $24, %xmm0
2674
- ; SSE2-NEXT: pcmpeqd %xmm4, %xmm0
2675
- ; SSE2-NEXT: pxor %xmm5, %xmm0
2676
- ; SSE2-NEXT: por %xmm3, %xmm0
2674
+ ; SSE2-NEXT: pcmpgtd %xmm4, %xmm0
2675
+ ; SSE2-NEXT: por %xmm5, %xmm0
2677
2676
; SSE2-NEXT: movd %xmm2, %eax
2678
2677
; SSE2-NEXT: movw %ax, (%rdi)
2679
2678
; SSE2-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,3,2,3]
@@ -2710,14 +2709,13 @@ define <4 x i32> @umulo_v4i24(<4 x i24> %a0, <4 x i24> %a1, <4 x i24>* %p2) noun
2710
2709
; SSSE3-NEXT: pxor %xmm4, %xmm4
2711
2710
; SSSE3-NEXT: pcmpeqd %xmm4, %xmm3
2712
2711
; SSSE3-NEXT: pcmpeqd %xmm5, %xmm5
2713
- ; SSSE3-NEXT: pxor %xmm5 , %xmm3
2712
+ ; SSSE3-NEXT: pxor %xmm3 , %xmm5
2714
2713
; SSSE3-NEXT: pshufd {{.*#+}} xmm0 = xmm2[0,2,2,3]
2715
- ; SSSE3-NEXT: pshufd {{.*#+}} xmm6 = xmm1[0,2,2,3]
2716
- ; SSSE3-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm6 [0],xmm0[1],xmm6 [1]
2714
+ ; SSSE3-NEXT: pshufd {{.*#+}} xmm3 = xmm1[0,2,2,3]
2715
+ ; SSSE3-NEXT: punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3 [0],xmm0[1],xmm3 [1]
2717
2716
; SSSE3-NEXT: psrld $24, %xmm0
2718
- ; SSSE3-NEXT: pcmpeqd %xmm4, %xmm0
2719
- ; SSSE3-NEXT: pxor %xmm5, %xmm0
2720
- ; SSSE3-NEXT: por %xmm3, %xmm0
2717
+ ; SSSE3-NEXT: pcmpgtd %xmm4, %xmm0
2718
+ ; SSSE3-NEXT: por %xmm5, %xmm0
2721
2719
; SSSE3-NEXT: movd %xmm2, %eax
2722
2720
; SSSE3-NEXT: movw %ax, (%rdi)
2723
2721
; SSSE3-NEXT: pshufd {{.*#+}} xmm2 = xmm2[2,3,2,3]
@@ -2751,19 +2749,18 @@ define <4 x i32> @umulo_v4i24(<4 x i24> %a0, <4 x i24> %a1, <4 x i24>* %p2) noun
2751
2749
; SSE41-NEXT: pmuludq %xmm1, %xmm0
2752
2750
; SSE41-NEXT: pshufd {{.*#+}} xmm4 = xmm0[1,1,3,3]
2753
2751
; SSE41-NEXT: pblendw {{.*#+}} xmm4 = xmm4[0,1],xmm3[2,3],xmm4[4,5],xmm3[6,7]
2754
- ; SSE41-NEXT: pxor %xmm0 , %xmm0
2755
- ; SSE41-NEXT: pcmpeqd %xmm0 , %xmm4
2756
- ; SSE41-NEXT: pcmpeqd %xmm3 , %xmm3
2757
- ; SSE41-NEXT: pxor %xmm3 , %xmm4
2752
+ ; SSE41-NEXT: pxor %xmm3 , %xmm3
2753
+ ; SSE41-NEXT: pcmpeqd %xmm3 , %xmm4
2754
+ ; SSE41-NEXT: pcmpeqd %xmm0 , %xmm0
2755
+ ; SSE41-NEXT: pxor %xmm4 , %xmm0
2758
2756
; SSE41-NEXT: pmulld %xmm2, %xmm1
2759
2757
; SSE41-NEXT: pextrd $3, %xmm1, %eax
2760
2758
; SSE41-NEXT: pextrd $2, %xmm1, %ecx
2761
2759
; SSE41-NEXT: pextrd $1, %xmm1, %edx
2762
2760
; SSE41-NEXT: movd %xmm1, %esi
2763
2761
; SSE41-NEXT: psrld $24, %xmm1
2764
- ; SSE41-NEXT: pcmpeqd %xmm1, %xmm0
2765
- ; SSE41-NEXT: pxor %xmm3, %xmm0
2766
- ; SSE41-NEXT: por %xmm4, %xmm0
2762
+ ; SSE41-NEXT: pcmpgtd %xmm3, %xmm1
2763
+ ; SSE41-NEXT: por %xmm1, %xmm0
2767
2764
; SSE41-NEXT: movw %ax, 9(%rdi)
2768
2765
; SSE41-NEXT: movw %cx, 6(%rdi)
2769
2766
; SSE41-NEXT: movw %dx, 3(%rdi)
@@ -2795,8 +2792,7 @@ define <4 x i32> @umulo_v4i24(<4 x i24> %a0, <4 x i24> %a1, <4 x i24>* %p2) noun
2795
2792
; AVX1-NEXT: vpxor %xmm4, %xmm2, %xmm2
2796
2793
; AVX1-NEXT: vpmulld %xmm1, %xmm0, %xmm1
2797
2794
; AVX1-NEXT: vpsrld $24, %xmm1, %xmm0
2798
- ; AVX1-NEXT: vpcmpeqd %xmm3, %xmm0, %xmm0
2799
- ; AVX1-NEXT: vpxor %xmm4, %xmm0, %xmm0
2795
+ ; AVX1-NEXT: vpcmpgtd %xmm3, %xmm0, %xmm0
2800
2796
; AVX1-NEXT: vpor %xmm2, %xmm0, %xmm0
2801
2797
; AVX1-NEXT: vpextrd $3, %xmm1, %eax
2802
2798
; AVX1-NEXT: movw %ax, 9(%rdi)
@@ -2833,8 +2829,7 @@ define <4 x i32> @umulo_v4i24(<4 x i24> %a0, <4 x i24> %a1, <4 x i24>* %p2) noun
2833
2829
; AVX2-NEXT: vpxor %xmm4, %xmm2, %xmm2
2834
2830
; AVX2-NEXT: vpmulld %xmm1, %xmm0, %xmm1
2835
2831
; AVX2-NEXT: vpsrld $24, %xmm1, %xmm0
2836
- ; AVX2-NEXT: vpcmpeqd %xmm3, %xmm0, %xmm0
2837
- ; AVX2-NEXT: vpxor %xmm4, %xmm0, %xmm0
2832
+ ; AVX2-NEXT: vpcmpgtd %xmm3, %xmm0, %xmm0
2838
2833
; AVX2-NEXT: vpor %xmm2, %xmm0, %xmm0
2839
2834
; AVX2-NEXT: vpextrd $3, %xmm1, %eax
2840
2835
; AVX2-NEXT: movw %ax, 9(%rdi)
0 commit comments