@@ -10,15 +10,9 @@ define <8 x half> @test_UINT_TO_FP_no_inf8(<8 x i32> %a) {
1010; AVX-NEXT: vpsrld $16, %xmm2, %xmm2
1111; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm1, %ymm1
1212; AVX-NEXT: vcvtdq2ps %ymm1, %ymm1
13- ; AVX-NEXT: vcvtps2ph $4, %ymm1, %xmm1
14- ; AVX-NEXT: vcvtph2ps %xmm1, %ymm1
1513; AVX-NEXT: vmulps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm1, %ymm1
16- ; AVX-NEXT: vcvtps2ph $4, %ymm1, %xmm1
17- ; AVX-NEXT: vcvtph2ps %xmm1, %ymm1
1814; AVX-NEXT: vandps {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %ymm0, %ymm0
1915; AVX-NEXT: vcvtdq2ps %ymm0, %ymm0
20- ; AVX-NEXT: vcvtps2ph $4, %ymm0, %xmm0
21- ; AVX-NEXT: vcvtph2ps %xmm0, %ymm0
2216; AVX-NEXT: vaddps %ymm0, %ymm1, %ymm0
2317; AVX-NEXT: vcvtps2ph $4, %ymm0, %xmm0
2418; AVX-NEXT: vzeroupper
@@ -65,39 +59,27 @@ entry:
6559define <16 x half > @test_UINT_TO_FP_no_inf16 (<16 x i32 > %a ) {
6660; AVX-LABEL: test_UINT_TO_FP_no_inf16:
6761; AVX: # %bb.0: # %entry
68- ; AVX-NEXT: vbroadcastss {{.*#+}} ymm2 = [65535,65535,65535,65535,65535,65535,65535,65535]
69- ; AVX-NEXT: vandps %ymm2 , %ymm0, %ymm3
70- ; AVX-NEXT: vcvtdq2ps %ymm3 , %ymm3
71- ; AVX-NEXT: vcvtps2ph $4 , %ymm3 , %xmm3
72- ; AVX-NEXT: vcvtph2ps %xmm3 , %ymm3
73- ; AVX-NEXT: vpsrld $16, %xmm0, %xmm4
74- ; AVX-NEXT: vextractf128 $1 , %ymm0 , %xmm0
75- ; AVX-NEXT: vpsrld $16, %xmm0, %xmm0
76- ; AVX-NEXT: vinsertf128 $1, %xmm0 , %ymm4 , %ymm0
62+ ; AVX-NEXT: vpsrld $16, %xmm0, %xmm2
63+ ; AVX-NEXT: vextractf128 $1 , %ymm0, %xmm3
64+ ; AVX-NEXT: vpsrld $16, %xmm3 , %xmm3
65+ ; AVX-NEXT: vinsertf128 $1 , %xmm3 , %ymm2, %ymm2
66+ ; AVX-NEXT: vcvtdq2ps %ymm2 , %ymm2
67+ ; AVX-NEXT: vbroadcastss {{.*#+}} ymm3 = [6.5536E+4,6.5536E+4,6.5536E+4,6.5536E+4,6.5536E+4,6.5536E+4,6.5536E+4,6.5536E+4]
68+ ; AVX-NEXT: vmulps %ymm3 , %ymm2 , %ymm2
69+ ; AVX-NEXT: vbroadcastss {{.*#+}} ymm4 = [65535,65535,65535,65535,65535,65535,65535,65535]
70+ ; AVX-NEXT: vandps %ymm4 , %ymm0 , %ymm0
7771; AVX-NEXT: vcvtdq2ps %ymm0, %ymm0
72+ ; AVX-NEXT: vaddps %ymm0, %ymm2, %ymm0
7873; AVX-NEXT: vcvtps2ph $4, %ymm0, %xmm0
79- ; AVX-NEXT: vcvtph2ps %xmm0, %ymm0
80- ; AVX-NEXT: vbroadcastss {{.*#+}} ymm4 = [+Inf,+Inf,+Inf,+Inf,+Inf,+Inf,+Inf,+Inf]
81- ; AVX-NEXT: vmulps %ymm4, %ymm0, %ymm0
82- ; AVX-NEXT: vcvtps2ph $4, %ymm0, %xmm0
83- ; AVX-NEXT: vcvtph2ps %xmm0, %ymm0
84- ; AVX-NEXT: vaddps %ymm3, %ymm0, %ymm0
85- ; AVX-NEXT: vcvtps2ph $4, %ymm0, %xmm0
86- ; AVX-NEXT: vandps %ymm2, %ymm1, %ymm2
74+ ; AVX-NEXT: vpsrld $16, %xmm1, %xmm2
75+ ; AVX-NEXT: vextractf128 $1, %ymm1, %xmm5
76+ ; AVX-NEXT: vpsrld $16, %xmm5, %xmm5
77+ ; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm2, %ymm2
8778; AVX-NEXT: vcvtdq2ps %ymm2, %ymm2
88- ; AVX-NEXT: vcvtps2ph $4, %ymm2, %xmm2
89- ; AVX-NEXT: vcvtph2ps %xmm2, %ymm2
90- ; AVX-NEXT: vpsrld $16, %xmm1, %xmm3
91- ; AVX-NEXT: vextractf128 $1, %ymm1, %xmm1
92- ; AVX-NEXT: vpsrld $16, %xmm1, %xmm1
93- ; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm3, %ymm1
79+ ; AVX-NEXT: vmulps %ymm3, %ymm2, %ymm2
80+ ; AVX-NEXT: vandps %ymm4, %ymm1, %ymm1
9481; AVX-NEXT: vcvtdq2ps %ymm1, %ymm1
95- ; AVX-NEXT: vcvtps2ph $4, %ymm1, %xmm1
96- ; AVX-NEXT: vcvtph2ps %xmm1, %ymm1
97- ; AVX-NEXT: vmulps %ymm4, %ymm1, %ymm1
98- ; AVX-NEXT: vcvtps2ph $4, %ymm1, %xmm1
99- ; AVX-NEXT: vcvtph2ps %xmm1, %ymm1
100- ; AVX-NEXT: vaddps %ymm2, %ymm1, %ymm1
82+ ; AVX-NEXT: vaddps %ymm1, %ymm2, %ymm1
10183; AVX-NEXT: vcvtps2ph $4, %ymm1, %xmm1
10284; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0
10385; AVX-NEXT: retq
0 commit comments