@@ -82,8 +82,9 @@ define <2 x i32> @utest_f64i32(<2 x double> %x) {
82
82
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
83
83
; CHECK-NEXT: pcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
84
84
; CHECK-NEXT: pand %xmm3, %xmm0
85
+ ; CHECK-NEXT: pcmpeqd %xmm2, %xmm2
85
86
; CHECK-NEXT: pand %xmm0, %xmm1
86
- ; CHECK-NEXT: pandn {{\.?LCPI[0-9]+_[0-9]+}}(%rip) , %xmm0
87
+ ; CHECK-NEXT: pandn %xmm2 , %xmm0
87
88
; CHECK-NEXT: por %xmm1, %xmm0
88
89
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
89
90
; CHECK-NEXT: retq
@@ -270,31 +271,31 @@ define <4 x i32> @utest_f32i32(<4 x float> %x) {
270
271
; CHECK-NEXT: orq %rax, %rdx
271
272
; CHECK-NEXT: movq %rdx, %xmm0
272
273
; CHECK-NEXT: punpcklqdq {{.*#+}} xmm0 = xmm0[0],xmm3[0]
273
- ; CHECK-NEXT: movdqa {{.*#+}} xmm2 = [4294967295,4294967295 ]
274
- ; CHECK-NEXT: movdqa {{.*#+}} xmm3 = [9223372039002259456,9223372039002259456]
275
- ; CHECK-NEXT: movdqa %xmm0 , %xmm4
276
- ; CHECK-NEXT: pxor %xmm3, % xmm4
277
- ; CHECK-NEXT: pshufd {{.*#+}} xmm5 = xmm4[0,0,2,2 ]
278
- ; CHECK-NEXT: movdqa {{.*#+}} xmm6 = [2147483647,2147483647,2147483647,2147483647]
279
- ; CHECK-NEXT: movdqa %xmm6 , %xmm7
280
- ; CHECK-NEXT: pcmpgtd %xmm5, %xmm7
281
- ; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm4[1,1,3,3]
282
- ; CHECK-NEXT: pcmpeqd %xmm3 , %xmm4
283
- ; CHECK-NEXT: pand %xmm7 , %xmm4
284
- ; CHECK-NEXT: pand %xmm4 , %xmm0
285
- ; CHECK-NEXT: pandn %xmm2 , %xmm4
286
- ; CHECK-NEXT: por %xmm0, %xmm4
274
+ ; CHECK-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259456,9223372039002259456 ]
275
+ ; CHECK-NEXT: movdqa %xmm0, % xmm3
276
+ ; CHECK-NEXT: pxor %xmm2 , %xmm3
277
+ ; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm3[0,0,2,2]
278
+ ; CHECK-NEXT: movdqa {{.*#+}} xmm5 = [2147483647,2147483647,2147483647,2147483647 ]
279
+ ; CHECK-NEXT: movdqa %xmm5, % xmm6
280
+ ; CHECK-NEXT: pcmpgtd %xmm4 , %xmm6
281
+ ; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm3[1,1,3,3]
282
+ ; CHECK-NEXT: pcmpeqd %xmm2, %xmm3
283
+ ; CHECK-NEXT: pand %xmm6 , %xmm3
284
+ ; CHECK-NEXT: pcmpeqd %xmm4 , %xmm4
285
+ ; CHECK-NEXT: pand %xmm3 , %xmm0
286
+ ; CHECK-NEXT: pandn %xmm4 , %xmm3
287
+ ; CHECK-NEXT: por %xmm0, %xmm3
287
288
; CHECK-NEXT: movdqa %xmm1, %xmm0
288
- ; CHECK-NEXT: pxor %xmm3 , %xmm0
289
- ; CHECK-NEXT: pshufd {{.*#+}} xmm5 = xmm0[0,0,2,2]
290
- ; CHECK-NEXT: pcmpgtd %xmm5 , %xmm6
289
+ ; CHECK-NEXT: pxor %xmm2 , %xmm0
290
+ ; CHECK-NEXT: pshufd {{.*#+}} xmm6 = xmm0[0,0,2,2]
291
+ ; CHECK-NEXT: pcmpgtd %xmm6 , %xmm5
291
292
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
292
- ; CHECK-NEXT: pcmpeqd %xmm3 , %xmm0
293
- ; CHECK-NEXT: pand %xmm6 , %xmm0
293
+ ; CHECK-NEXT: pcmpeqd %xmm2 , %xmm0
294
+ ; CHECK-NEXT: pand %xmm5 , %xmm0
294
295
; CHECK-NEXT: pand %xmm0, %xmm1
295
- ; CHECK-NEXT: pandn %xmm2 , %xmm0
296
+ ; CHECK-NEXT: pandn %xmm4 , %xmm0
296
297
; CHECK-NEXT: por %xmm1, %xmm0
297
- ; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm4 [0,2]
298
+ ; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm3 [0,2]
298
299
; CHECK-NEXT: retq
299
300
entry:
300
301
%conv = fptoui <4 x float > %x to <4 x i64 >
@@ -550,32 +551,32 @@ define <4 x i32> @utesth_f16i32(<4 x half> %x) {
550
551
; CHECK-NEXT: movq %rdx, %xmm0
551
552
; CHECK-NEXT: punpcklqdq (%rsp), %xmm0 # 16-byte Folded Reload
552
553
; CHECK-NEXT: # xmm0 = xmm0[0],mem[0]
553
- ; CHECK-NEXT: movdqa {{.*#+}} xmm1 = [4294967295,4294967295 ]
554
- ; CHECK-NEXT: movdqa {{.*#+}} xmm2 = [9223372039002259456,9223372039002259456]
555
- ; CHECK-NEXT: movdqa %xmm0 , %xmm3
556
- ; CHECK-NEXT: pxor %xmm2, % xmm3
557
- ; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm3[0,0,2,2 ]
558
- ; CHECK-NEXT: movdqa {{.*#+}} xmm5 = [2147483647,2147483647,2147483647,2147483647]
559
- ; CHECK-NEXT: movdqa %xmm5 , %xmm6
560
- ; CHECK-NEXT: pcmpgtd %xmm4, %xmm6
561
- ; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm3[1,1,3,3]
562
- ; CHECK-NEXT: pcmpeqd %xmm2 , %xmm3
563
- ; CHECK-NEXT: pand %xmm6 , %xmm3
564
- ; CHECK-NEXT: pand %xmm3 , %xmm0
565
- ; CHECK-NEXT: pandn %xmm1 , %xmm3
566
- ; CHECK-NEXT: por %xmm0, %xmm3
554
+ ; CHECK-NEXT: movdqa {{.*#+}} xmm1 = [9223372039002259456,9223372039002259456 ]
555
+ ; CHECK-NEXT: movdqa %xmm0, % xmm2
556
+ ; CHECK-NEXT: pxor %xmm1 , %xmm2
557
+ ; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm2[0,0,2,2]
558
+ ; CHECK-NEXT: movdqa {{.*#+}} xmm4 = [2147483647,2147483647,2147483647,2147483647 ]
559
+ ; CHECK-NEXT: movdqa %xmm4, % xmm5
560
+ ; CHECK-NEXT: pcmpgtd %xmm3 , %xmm5
561
+ ; CHECK-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
562
+ ; CHECK-NEXT: pcmpeqd %xmm1, %xmm2
563
+ ; CHECK-NEXT: pand %xmm5 , %xmm2
564
+ ; CHECK-NEXT: pcmpeqd %xmm3 , %xmm3
565
+ ; CHECK-NEXT: pand %xmm2 , %xmm0
566
+ ; CHECK-NEXT: pandn %xmm3 , %xmm2
567
+ ; CHECK-NEXT: por %xmm0, %xmm2
567
568
; CHECK-NEXT: movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
568
569
; CHECK-NEXT: movdqa %xmm6, %xmm0
569
- ; CHECK-NEXT: pxor %xmm2 , %xmm0
570
- ; CHECK-NEXT: pshufd {{.*#+}} xmm4 = xmm0[0,0,2,2]
571
- ; CHECK-NEXT: pcmpgtd %xmm4 , %xmm5
570
+ ; CHECK-NEXT: pxor %xmm1 , %xmm0
571
+ ; CHECK-NEXT: pshufd {{.*#+}} xmm5 = xmm0[0,0,2,2]
572
+ ; CHECK-NEXT: pcmpgtd %xmm5 , %xmm4
572
573
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
573
- ; CHECK-NEXT: pcmpeqd %xmm2 , %xmm0
574
- ; CHECK-NEXT: pand %xmm5 , %xmm0
574
+ ; CHECK-NEXT: pcmpeqd %xmm1 , %xmm0
575
+ ; CHECK-NEXT: pand %xmm4 , %xmm0
575
576
; CHECK-NEXT: pand %xmm0, %xmm6
576
- ; CHECK-NEXT: pandn %xmm1 , %xmm0
577
+ ; CHECK-NEXT: pandn %xmm3 , %xmm0
577
578
; CHECK-NEXT: por %xmm6, %xmm0
578
- ; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm3 [0,2]
579
+ ; CHECK-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm2 [0,2]
579
580
; CHECK-NEXT: addq $72, %rsp
580
581
; CHECK-NEXT: .cfi_def_cfa_offset 8
581
582
; CHECK-NEXT: retq
@@ -733,8 +734,9 @@ define <2 x i16> @utest_f64i16(<2 x double> %x) {
733
734
; CHECK-NEXT: movdqa {{.*#+}} xmm2 = <2147549183,2147549183,u,u>
734
735
; CHECK-NEXT: pcmpgtd %xmm1, %xmm2
735
736
; CHECK-NEXT: andpd %xmm2, %xmm0
736
- ; CHECK-NEXT: andnpd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
737
- ; CHECK-NEXT: orpd %xmm0, %xmm2
737
+ ; CHECK-NEXT: pcmpeqd %xmm1, %xmm1
738
+ ; CHECK-NEXT: pandn %xmm1, %xmm2
739
+ ; CHECK-NEXT: por %xmm0, %xmm2
738
740
; CHECK-NEXT: pshuflw {{.*#+}} xmm0 = xmm2[0,2,2,3,4,5,6,7]
739
741
; CHECK-NEXT: retq
740
742
entry:
@@ -802,7 +804,8 @@ define <4 x i16> @utest_f32i16(<4 x float> %x) {
802
804
; CHECK-NEXT: movdqa {{.*#+}} xmm2 = [2147549183,2147549183,2147549183,2147549183]
803
805
; CHECK-NEXT: pcmpgtd %xmm1, %xmm2
804
806
; CHECK-NEXT: pand %xmm2, %xmm0
805
- ; CHECK-NEXT: pandn {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
807
+ ; CHECK-NEXT: pcmpeqd %xmm1, %xmm1
808
+ ; CHECK-NEXT: pandn %xmm1, %xmm2
806
809
; CHECK-NEXT: por %xmm0, %xmm2
807
810
; CHECK-NEXT: pshuflw {{.*#+}} xmm0 = xmm2[0,2,2,3,4,5,6,7]
808
811
; CHECK-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]
@@ -1656,8 +1659,9 @@ define <2 x i32> @utest_f64i32_mm(<2 x double> %x) {
1656
1659
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[1,1,3,3]
1657
1660
; CHECK-NEXT: pcmpeqd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm0
1658
1661
; CHECK-NEXT: pand %xmm3, %xmm0
1662
+ ; CHECK-NEXT: pcmpeqd %xmm2, %xmm2
1659
1663
; CHECK-NEXT: pand %xmm0, %xmm1
1660
- ; CHECK-NEXT: pandn {{\.?LCPI[0-9]+_[0-9]+}}(%rip) , %xmm0
1664
+ ; CHECK-NEXT: pandn %xmm2 , %xmm0
1661
1665
; CHECK-NEXT: por %xmm1, %xmm0
1662
1666
; CHECK-NEXT: pshufd {{.*#+}} xmm0 = xmm0[0,2,2,3]
1663
1667
; CHECK-NEXT: retq
@@ -1849,7 +1853,7 @@ define <4 x i32> @utest_f32i32_mm(<4 x float> %x) {
1849
1853
; CHECK-NEXT: pshufd {{.*#+}} xmm3 = xmm3[1,1,3,3]
1850
1854
; CHECK-NEXT: pcmpeqd %xmm2, %xmm3
1851
1855
; CHECK-NEXT: pand %xmm6, %xmm3
1852
- ; CHECK-NEXT: movdqa {{.*#+}} xmm4 = [4294967295,4294967295]
1856
+ ; CHECK-NEXT: pcmpeqd % xmm4, %xmm4
1853
1857
; CHECK-NEXT: pand %xmm3, %xmm0
1854
1858
; CHECK-NEXT: pandn %xmm4, %xmm3
1855
1859
; CHECK-NEXT: por %xmm0, %xmm3
@@ -2124,7 +2128,7 @@ define <4 x i32> @utesth_f16i32_mm(<4 x half> %x) {
2124
2128
; CHECK-NEXT: pshufd {{.*#+}} xmm2 = xmm2[1,1,3,3]
2125
2129
; CHECK-NEXT: pcmpeqd %xmm1, %xmm2
2126
2130
; CHECK-NEXT: pand %xmm5, %xmm2
2127
- ; CHECK-NEXT: movdqa {{.*#+}} xmm3 = [4294967295,4294967295]
2131
+ ; CHECK-NEXT: pcmpeqd % xmm3, %xmm3
2128
2132
; CHECK-NEXT: pand %xmm2, %xmm0
2129
2133
; CHECK-NEXT: pandn %xmm3, %xmm2
2130
2134
; CHECK-NEXT: por %xmm0, %xmm2
@@ -2292,8 +2296,9 @@ define <2 x i16> @utest_f64i16_mm(<2 x double> %x) {
2292
2296
; CHECK-NEXT: movdqa {{.*#+}} xmm2 = <2147549183,2147549183,u,u>
2293
2297
; CHECK-NEXT: pcmpgtd %xmm1, %xmm2
2294
2298
; CHECK-NEXT: andpd %xmm2, %xmm0
2295
- ; CHECK-NEXT: andnpd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
2296
- ; CHECK-NEXT: orpd %xmm0, %xmm2
2299
+ ; CHECK-NEXT: pcmpeqd %xmm1, %xmm1
2300
+ ; CHECK-NEXT: pandn %xmm1, %xmm2
2301
+ ; CHECK-NEXT: por %xmm0, %xmm2
2297
2302
; CHECK-NEXT: pshuflw {{.*#+}} xmm0 = xmm2[0,2,2,3,4,5,6,7]
2298
2303
; CHECK-NEXT: retq
2299
2304
entry:
@@ -2356,7 +2361,8 @@ define <4 x i16> @utest_f32i16_mm(<4 x float> %x) {
2356
2361
; CHECK-NEXT: movdqa {{.*#+}} xmm2 = [2147549183,2147549183,2147549183,2147549183]
2357
2362
; CHECK-NEXT: pcmpgtd %xmm1, %xmm2
2358
2363
; CHECK-NEXT: pand %xmm2, %xmm0
2359
- ; CHECK-NEXT: pandn {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm2
2364
+ ; CHECK-NEXT: pcmpeqd %xmm1, %xmm1
2365
+ ; CHECK-NEXT: pandn %xmm1, %xmm2
2360
2366
; CHECK-NEXT: por %xmm0, %xmm2
2361
2367
; CHECK-NEXT: pshuflw {{.*#+}} xmm0 = xmm2[0,2,2,3,4,5,6,7]
2362
2368
; CHECK-NEXT: pshufhw {{.*#+}} xmm0 = xmm0[0,1,2,3,4,6,6,7]
0 commit comments