Lines Matching full:64

3 …N: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse2 -O3 | FileCheck %s --check-prefixes=SSE-64
5 …UN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx -O3 | FileCheck %s --check-prefixes=AVX-64
7 …6_64-unknown-unknown -mattr=+avx512f -mattr=+avx512vl -O3 | FileCheck %s --check-prefixes=AVX512-64
9 …< %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f -O3 | FileCheck %s --check-prefixes=AVX512F-64
26 ; SSE-64-LABEL: test_v4f32_oeq_q:
27 ; SSE-64: # %bb.0:
28 ; SSE-64-NEXT: cmpeqps %xmm3, %xmm2
29 ; SSE-64-NEXT: andps %xmm2, %xmm0
30 ; SSE-64-NEXT: andnps %xmm1, %xmm2
31 ; SSE-64-NEXT: orps %xmm2, %xmm0
32 ; SSE-64-NEXT: retq
46 ; AVX-64-LABEL: test_v4f32_oeq_q:
47 ; AVX-64: # %bb.0:
48 ; AVX-64-NEXT: vcmpeqps %xmm3, %xmm2, %xmm2
49 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
50 ; AVX-64-NEXT: retq
64 ; AVX512-64-LABEL: test_v4f32_oeq_q:
65 ; AVX512-64: # %bb.0:
66 ; AVX512-64-NEXT: vcmpeqps %xmm3, %xmm2, %k1
67 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
68 ; AVX512-64-NEXT: retq
87 ; AVX512F-64-LABEL: test_v4f32_oeq_q:
88 ; AVX512F-64: # %bb.0:
89 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
90 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
91 ; AVX512F-64-NEXT: vcmpeqps %xmm3, %xmm2, %xmm2
92 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
93 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
94 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
95 ; AVX512F-64-NEXT: vzeroupper
96 ; AVX512F-64-NEXT: retq
149 ; SSE-64-LABEL: test_v4f32_ogt_q:
150 ; SSE-64: # %bb.0:
151 ; SSE-64-NEXT: movaps %xmm3, %xmm4
152 ; SSE-64-NEXT: shufps {{.*#+}} xmm4 = xmm4[3,3],xmm3[3,3]
153 ; SSE-64-NEXT: movaps %xmm2, %xmm5
154 ; SSE-64-NEXT: shufps {{.*#+}} xmm5 = xmm5[3,3],xmm2[3,3]
155 ; SSE-64-NEXT: xorl %eax, %eax
156 ; SSE-64-NEXT: ucomiss %xmm4, %xmm5
157 ; SSE-64-NEXT: movl $-1, %ecx
158 ; SSE-64-NEXT: movl $0, %edx
159 ; SSE-64-NEXT: cmoval %ecx, %edx
160 ; SSE-64-NEXT: movd %edx, %xmm4
161 ; SSE-64-NEXT: movaps %xmm3, %xmm5
162 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm3[1]
163 ; SSE-64-NEXT: movaps %xmm2, %xmm6
164 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm2[1]
165 ; SSE-64-NEXT: ucomiss %xmm5, %xmm6
166 ; SSE-64-NEXT: movl $0, %edx
167 ; SSE-64-NEXT: cmoval %ecx, %edx
168 ; SSE-64-NEXT: movd %edx, %xmm5
169 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
170 ; SSE-64-NEXT: ucomiss %xmm3, %xmm2
171 ; SSE-64-NEXT: movl $0, %edx
172 ; SSE-64-NEXT: cmoval %ecx, %edx
173 ; SSE-64-NEXT: movd %edx, %xmm4
174 ; SSE-64-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,1,1,1]
175 ; SSE-64-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,1,1,1]
176 ; SSE-64-NEXT: ucomiss %xmm3, %xmm2
177 ; SSE-64-NEXT: cmoval %ecx, %eax
178 ; SSE-64-NEXT: movd %eax, %xmm2
179 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
180 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm5[0]
181 ; SSE-64-NEXT: pand %xmm4, %xmm0
182 ; SSE-64-NEXT: pandn %xmm1, %xmm4
183 ; SSE-64-NEXT: por %xmm4, %xmm0
184 ; SSE-64-NEXT: retq
199 ; AVX-64-LABEL: test_v4f32_ogt_q:
200 ; AVX-64: # %bb.0:
201 ; AVX-64-NEXT: vcmplt_oqps %xmm2, %xmm3, %xmm2
202 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
203 ; AVX-64-NEXT: retq
217 ; AVX512-64-LABEL: test_v4f32_ogt_q:
218 ; AVX512-64: # %bb.0:
219 ; AVX512-64-NEXT: vcmplt_oqps %xmm2, %xmm3, %k1
220 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
221 ; AVX512-64-NEXT: retq
241 ; AVX512F-64-LABEL: test_v4f32_ogt_q:
242 ; AVX512F-64: # %bb.0:
243 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
244 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
245 ; AVX512F-64-NEXT: vcmplt_oqps %xmm2, %xmm3, %xmm2
246 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
247 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
248 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
249 ; AVX512F-64-NEXT: vzeroupper
250 ; AVX512F-64-NEXT: retq
303 ; SSE-64-LABEL: test_v4f32_oge_q:
304 ; SSE-64: # %bb.0:
305 ; SSE-64-NEXT: movaps %xmm3, %xmm4
306 ; SSE-64-NEXT: shufps {{.*#+}} xmm4 = xmm4[3,3],xmm3[3,3]
307 ; SSE-64-NEXT: movaps %xmm2, %xmm5
308 ; SSE-64-NEXT: shufps {{.*#+}} xmm5 = xmm5[3,3],xmm2[3,3]
309 ; SSE-64-NEXT: xorl %eax, %eax
310 ; SSE-64-NEXT: ucomiss %xmm4, %xmm5
311 ; SSE-64-NEXT: movl $-1, %ecx
312 ; SSE-64-NEXT: movl $0, %edx
313 ; SSE-64-NEXT: cmovael %ecx, %edx
314 ; SSE-64-NEXT: movd %edx, %xmm4
315 ; SSE-64-NEXT: movaps %xmm3, %xmm5
316 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm3[1]
317 ; SSE-64-NEXT: movaps %xmm2, %xmm6
318 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm2[1]
319 ; SSE-64-NEXT: ucomiss %xmm5, %xmm6
320 ; SSE-64-NEXT: movl $0, %edx
321 ; SSE-64-NEXT: cmovael %ecx, %edx
322 ; SSE-64-NEXT: movd %edx, %xmm5
323 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
324 ; SSE-64-NEXT: ucomiss %xmm3, %xmm2
325 ; SSE-64-NEXT: movl $0, %edx
326 ; SSE-64-NEXT: cmovael %ecx, %edx
327 ; SSE-64-NEXT: movd %edx, %xmm4
328 ; SSE-64-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,1,1,1]
329 ; SSE-64-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,1,1,1]
330 ; SSE-64-NEXT: ucomiss %xmm3, %xmm2
331 ; SSE-64-NEXT: cmovael %ecx, %eax
332 ; SSE-64-NEXT: movd %eax, %xmm2
333 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
334 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm5[0]
335 ; SSE-64-NEXT: pand %xmm4, %xmm0
336 ; SSE-64-NEXT: pandn %xmm1, %xmm4
337 ; SSE-64-NEXT: por %xmm4, %xmm0
338 ; SSE-64-NEXT: retq
353 ; AVX-64-LABEL: test_v4f32_oge_q:
354 ; AVX-64: # %bb.0:
355 ; AVX-64-NEXT: vcmple_oqps %xmm2, %xmm3, %xmm2
356 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
357 ; AVX-64-NEXT: retq
371 ; AVX512-64-LABEL: test_v4f32_oge_q:
372 ; AVX512-64: # %bb.0:
373 ; AVX512-64-NEXT: vcmple_oqps %xmm2, %xmm3, %k1
374 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
375 ; AVX512-64-NEXT: retq
395 ; AVX512F-64-LABEL: test_v4f32_oge_q:
396 ; AVX512F-64: # %bb.0:
397 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
398 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
399 ; AVX512F-64-NEXT: vcmple_oqps %xmm2, %xmm3, %xmm2
400 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
401 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
402 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
403 ; AVX512F-64-NEXT: vzeroupper
404 ; AVX512F-64-NEXT: retq
457 ; SSE-64-LABEL: test_v4f32_olt_q:
458 ; SSE-64: # %bb.0:
459 ; SSE-64-NEXT: movaps %xmm2, %xmm4
460 ; SSE-64-NEXT: shufps {{.*#+}} xmm4 = xmm4[3,3],xmm2[3,3]
461 ; SSE-64-NEXT: movaps %xmm3, %xmm5
462 ; SSE-64-NEXT: shufps {{.*#+}} xmm5 = xmm5[3,3],xmm3[3,3]
463 ; SSE-64-NEXT: xorl %eax, %eax
464 ; SSE-64-NEXT: ucomiss %xmm4, %xmm5
465 ; SSE-64-NEXT: movl $-1, %ecx
466 ; SSE-64-NEXT: movl $0, %edx
467 ; SSE-64-NEXT: cmoval %ecx, %edx
468 ; SSE-64-NEXT: movd %edx, %xmm4
469 ; SSE-64-NEXT: movaps %xmm2, %xmm5
470 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm2[1]
471 ; SSE-64-NEXT: movaps %xmm3, %xmm6
472 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm3[1]
473 ; SSE-64-NEXT: ucomiss %xmm5, %xmm6
474 ; SSE-64-NEXT: movl $0, %edx
475 ; SSE-64-NEXT: cmoval %ecx, %edx
476 ; SSE-64-NEXT: movd %edx, %xmm5
477 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
478 ; SSE-64-NEXT: ucomiss %xmm2, %xmm3
479 ; SSE-64-NEXT: movl $0, %edx
480 ; SSE-64-NEXT: cmoval %ecx, %edx
481 ; SSE-64-NEXT: movd %edx, %xmm4
482 ; SSE-64-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,1,1,1]
483 ; SSE-64-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,1,1,1]
484 ; SSE-64-NEXT: ucomiss %xmm2, %xmm3
485 ; SSE-64-NEXT: cmoval %ecx, %eax
486 ; SSE-64-NEXT: movd %eax, %xmm2
487 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
488 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm5[0]
489 ; SSE-64-NEXT: pand %xmm4, %xmm0
490 ; SSE-64-NEXT: pandn %xmm1, %xmm4
491 ; SSE-64-NEXT: por %xmm4, %xmm0
492 ; SSE-64-NEXT: retq
506 ; AVX-64-LABEL: test_v4f32_olt_q:
507 ; AVX-64: # %bb.0:
508 ; AVX-64-NEXT: vcmplt_oqps %xmm3, %xmm2, %xmm2
509 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
510 ; AVX-64-NEXT: retq
524 ; AVX512-64-LABEL: test_v4f32_olt_q:
525 ; AVX512-64: # %bb.0:
526 ; AVX512-64-NEXT: vcmplt_oqps %xmm3, %xmm2, %k1
527 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
528 ; AVX512-64-NEXT: retq
547 ; AVX512F-64-LABEL: test_v4f32_olt_q:
548 ; AVX512F-64: # %bb.0:
549 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
550 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
551 ; AVX512F-64-NEXT: vcmplt_oqps %xmm3, %xmm2, %xmm2
552 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
553 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
554 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
555 ; AVX512F-64-NEXT: vzeroupper
556 ; AVX512F-64-NEXT: retq
609 ; SSE-64-LABEL: test_v4f32_ole_q:
610 ; SSE-64: # %bb.0:
611 ; SSE-64-NEXT: movaps %xmm2, %xmm4
612 ; SSE-64-NEXT: shufps {{.*#+}} xmm4 = xmm4[3,3],xmm2[3,3]
613 ; SSE-64-NEXT: movaps %xmm3, %xmm5
614 ; SSE-64-NEXT: shufps {{.*#+}} xmm5 = xmm5[3,3],xmm3[3,3]
615 ; SSE-64-NEXT: xorl %eax, %eax
616 ; SSE-64-NEXT: ucomiss %xmm4, %xmm5
617 ; SSE-64-NEXT: movl $-1, %ecx
618 ; SSE-64-NEXT: movl $0, %edx
619 ; SSE-64-NEXT: cmovael %ecx, %edx
620 ; SSE-64-NEXT: movd %edx, %xmm4
621 ; SSE-64-NEXT: movaps %xmm2, %xmm5
622 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm2[1]
623 ; SSE-64-NEXT: movaps %xmm3, %xmm6
624 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm3[1]
625 ; SSE-64-NEXT: ucomiss %xmm5, %xmm6
626 ; SSE-64-NEXT: movl $0, %edx
627 ; SSE-64-NEXT: cmovael %ecx, %edx
628 ; SSE-64-NEXT: movd %edx, %xmm5
629 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
630 ; SSE-64-NEXT: ucomiss %xmm2, %xmm3
631 ; SSE-64-NEXT: movl $0, %edx
632 ; SSE-64-NEXT: cmovael %ecx, %edx
633 ; SSE-64-NEXT: movd %edx, %xmm4
634 ; SSE-64-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,1,1,1]
635 ; SSE-64-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,1,1,1]
636 ; SSE-64-NEXT: ucomiss %xmm2, %xmm3
637 ; SSE-64-NEXT: cmovael %ecx, %eax
638 ; SSE-64-NEXT: movd %eax, %xmm2
639 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
640 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm5[0]
641 ; SSE-64-NEXT: pand %xmm4, %xmm0
642 ; SSE-64-NEXT: pandn %xmm1, %xmm4
643 ; SSE-64-NEXT: por %xmm4, %xmm0
644 ; SSE-64-NEXT: retq
658 ; AVX-64-LABEL: test_v4f32_ole_q:
659 ; AVX-64: # %bb.0:
660 ; AVX-64-NEXT: vcmple_oqps %xmm3, %xmm2, %xmm2
661 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
662 ; AVX-64-NEXT: retq
676 ; AVX512-64-LABEL: test_v4f32_ole_q:
677 ; AVX512-64: # %bb.0:
678 ; AVX512-64-NEXT: vcmple_oqps %xmm3, %xmm2, %k1
679 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
680 ; AVX512-64-NEXT: retq
699 ; AVX512F-64-LABEL: test_v4f32_ole_q:
700 ; AVX512F-64: # %bb.0:
701 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
702 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
703 ; AVX512F-64-NEXT: vcmple_oqps %xmm3, %xmm2, %xmm2
704 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
705 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
706 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
707 ; AVX512F-64-NEXT: vzeroupper
708 ; AVX512F-64-NEXT: retq
735 ; SSE-64-LABEL: test_v4f32_one_q:
736 ; SSE-64: # %bb.0:
737 ; SSE-64-NEXT: movaps %xmm2, %xmm4
738 ; SSE-64-NEXT: cmpneqps %xmm3, %xmm4
739 ; SSE-64-NEXT: cmpordps %xmm3, %xmm2
740 ; SSE-64-NEXT: andps %xmm4, %xmm2
741 ; SSE-64-NEXT: andps %xmm2, %xmm0
742 ; SSE-64-NEXT: andnps %xmm1, %xmm2
743 ; SSE-64-NEXT: orps %xmm2, %xmm0
744 ; SSE-64-NEXT: retq
758 ; AVX-64-LABEL: test_v4f32_one_q:
759 ; AVX-64: # %bb.0:
760 ; AVX-64-NEXT: vcmpneq_oqps %xmm3, %xmm2, %xmm2
761 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
762 ; AVX-64-NEXT: retq
776 ; AVX512-64-LABEL: test_v4f32_one_q:
777 ; AVX512-64: # %bb.0:
778 ; AVX512-64-NEXT: vcmpneq_oqps %xmm3, %xmm2, %k1
779 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
780 ; AVX512-64-NEXT: retq
799 ; AVX512F-64-LABEL: test_v4f32_one_q:
800 ; AVX512F-64: # %bb.0:
801 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
802 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
803 ; AVX512F-64-NEXT: vcmpneq_oqps %xmm3, %xmm2, %xmm2
804 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
805 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
806 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
807 ; AVX512F-64-NEXT: vzeroupper
808 ; AVX512F-64-NEXT: retq
831 ; SSE-64-LABEL: test_v4f32_ord_q:
832 ; SSE-64: # %bb.0:
833 ; SSE-64-NEXT: cmpordps %xmm3, %xmm2
834 ; SSE-64-NEXT: andps %xmm2, %xmm0
835 ; SSE-64-NEXT: andnps %xmm1, %xmm2
836 ; SSE-64-NEXT: orps %xmm2, %xmm0
837 ; SSE-64-NEXT: retq
851 ; AVX-64-LABEL: test_v4f32_ord_q:
852 ; AVX-64: # %bb.0:
853 ; AVX-64-NEXT: vcmpordps %xmm3, %xmm2, %xmm2
854 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
855 ; AVX-64-NEXT: retq
869 ; AVX512-64-LABEL: test_v4f32_ord_q:
870 ; AVX512-64: # %bb.0:
871 ; AVX512-64-NEXT: vcmpordps %xmm3, %xmm2, %k1
872 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
873 ; AVX512-64-NEXT: retq
892 ; AVX512F-64-LABEL: test_v4f32_ord_q:
893 ; AVX512F-64: # %bb.0:
894 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
895 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
896 ; AVX512F-64-NEXT: vcmpordps %xmm3, %xmm2, %xmm2
897 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
898 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
899 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
900 ; AVX512F-64-NEXT: vzeroupper
901 ; AVX512F-64-NEXT: retq
928 ; SSE-64-LABEL: test_v4f32_ueq_q:
929 ; SSE-64: # %bb.0:
930 ; SSE-64-NEXT: movaps %xmm2, %xmm4
931 ; SSE-64-NEXT: cmpeqps %xmm3, %xmm4
932 ; SSE-64-NEXT: cmpunordps %xmm3, %xmm2
933 ; SSE-64-NEXT: orps %xmm4, %xmm2
934 ; SSE-64-NEXT: andps %xmm2, %xmm0
935 ; SSE-64-NEXT: andnps %xmm1, %xmm2
936 ; SSE-64-NEXT: orps %xmm2, %xmm0
937 ; SSE-64-NEXT: retq
951 ; AVX-64-LABEL: test_v4f32_ueq_q:
952 ; AVX-64: # %bb.0:
953 ; AVX-64-NEXT: vcmpeq_uqps %xmm3, %xmm2, %xmm2
954 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
955 ; AVX-64-NEXT: retq
969 ; AVX512-64-LABEL: test_v4f32_ueq_q:
970 ; AVX512-64: # %bb.0:
971 ; AVX512-64-NEXT: vcmpeq_uqps %xmm3, %xmm2, %k1
972 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
973 ; AVX512-64-NEXT: retq
992 ; AVX512F-64-LABEL: test_v4f32_ueq_q:
993 ; AVX512F-64: # %bb.0:
994 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
995 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
996 ; AVX512F-64-NEXT: vcmpeq_uqps %xmm3, %xmm2, %xmm2
997 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
998 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
999 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
1000 ; AVX512F-64-NEXT: vzeroupper
1001 ; AVX512F-64-NEXT: retq
1054 ; SSE-64-LABEL: test_v4f32_ugt_q:
1055 ; SSE-64: # %bb.0:
1056 ; SSE-64-NEXT: movaps %xmm2, %xmm4
1057 ; SSE-64-NEXT: shufps {{.*#+}} xmm4 = xmm4[3,3],xmm2[3,3]
1058 ; SSE-64-NEXT: movaps %xmm3, %xmm5
1059 ; SSE-64-NEXT: shufps {{.*#+}} xmm5 = xmm5[3,3],xmm3[3,3]
1060 ; SSE-64-NEXT: xorl %eax, %eax
1061 ; SSE-64-NEXT: ucomiss %xmm4, %xmm5
1062 ; SSE-64-NEXT: movl $-1, %ecx
1063 ; SSE-64-NEXT: movl $0, %edx
1064 ; SSE-64-NEXT: cmovbl %ecx, %edx
1065 ; SSE-64-NEXT: movd %edx, %xmm4
1066 ; SSE-64-NEXT: movaps %xmm2, %xmm5
1067 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm2[1]
1068 ; SSE-64-NEXT: movaps %xmm3, %xmm6
1069 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm3[1]
1070 ; SSE-64-NEXT: ucomiss %xmm5, %xmm6
1071 ; SSE-64-NEXT: movl $0, %edx
1072 ; SSE-64-NEXT: cmovbl %ecx, %edx
1073 ; SSE-64-NEXT: movd %edx, %xmm5
1074 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
1075 ; SSE-64-NEXT: ucomiss %xmm2, %xmm3
1076 ; SSE-64-NEXT: movl $0, %edx
1077 ; SSE-64-NEXT: cmovbl %ecx, %edx
1078 ; SSE-64-NEXT: movd %edx, %xmm4
1079 ; SSE-64-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,1,1,1]
1080 ; SSE-64-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,1,1,1]
1081 ; SSE-64-NEXT: ucomiss %xmm2, %xmm3
1082 ; SSE-64-NEXT: cmovbl %ecx, %eax
1083 ; SSE-64-NEXT: movd %eax, %xmm2
1084 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
1085 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm5[0]
1086 ; SSE-64-NEXT: pand %xmm4, %xmm0
1087 ; SSE-64-NEXT: pandn %xmm1, %xmm4
1088 ; SSE-64-NEXT: por %xmm4, %xmm0
1089 ; SSE-64-NEXT: retq
1103 ; AVX-64-LABEL: test_v4f32_ugt_q:
1104 ; AVX-64: # %bb.0:
1105 ; AVX-64-NEXT: vcmpnle_uqps %xmm3, %xmm2, %xmm2
1106 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
1107 ; AVX-64-NEXT: retq
1121 ; AVX512-64-LABEL: test_v4f32_ugt_q:
1122 ; AVX512-64: # %bb.0:
1123 ; AVX512-64-NEXT: vcmpnle_uqps %xmm3, %xmm2, %k1
1124 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
1125 ; AVX512-64-NEXT: retq
1144 ; AVX512F-64-LABEL: test_v4f32_ugt_q:
1145 ; AVX512F-64: # %bb.0:
1146 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
1147 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
1148 ; AVX512F-64-NEXT: vcmpnle_uqps %xmm3, %xmm2, %xmm2
1149 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
1150 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
1151 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
1152 ; AVX512F-64-NEXT: vzeroupper
1153 ; AVX512F-64-NEXT: retq
1206 ; SSE-64-LABEL: test_v4f32_uge_q:
1207 ; SSE-64: # %bb.0:
1208 ; SSE-64-NEXT: movaps %xmm2, %xmm4
1209 ; SSE-64-NEXT: shufps {{.*#+}} xmm4 = xmm4[3,3],xmm2[3,3]
1210 ; SSE-64-NEXT: movaps %xmm3, %xmm5
1211 ; SSE-64-NEXT: shufps {{.*#+}} xmm5 = xmm5[3,3],xmm3[3,3]
1212 ; SSE-64-NEXT: xorl %eax, %eax
1213 ; SSE-64-NEXT: ucomiss %xmm4, %xmm5
1214 ; SSE-64-NEXT: movl $-1, %ecx
1215 ; SSE-64-NEXT: movl $0, %edx
1216 ; SSE-64-NEXT: cmovbel %ecx, %edx
1217 ; SSE-64-NEXT: movd %edx, %xmm4
1218 ; SSE-64-NEXT: movaps %xmm2, %xmm5
1219 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm2[1]
1220 ; SSE-64-NEXT: movaps %xmm3, %xmm6
1221 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm3[1]
1222 ; SSE-64-NEXT: ucomiss %xmm5, %xmm6
1223 ; SSE-64-NEXT: movl $0, %edx
1224 ; SSE-64-NEXT: cmovbel %ecx, %edx
1225 ; SSE-64-NEXT: movd %edx, %xmm5
1226 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
1227 ; SSE-64-NEXT: ucomiss %xmm2, %xmm3
1228 ; SSE-64-NEXT: movl $0, %edx
1229 ; SSE-64-NEXT: cmovbel %ecx, %edx
1230 ; SSE-64-NEXT: movd %edx, %xmm4
1231 ; SSE-64-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,1,1,1]
1232 ; SSE-64-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,1,1,1]
1233 ; SSE-64-NEXT: ucomiss %xmm2, %xmm3
1234 ; SSE-64-NEXT: cmovbel %ecx, %eax
1235 ; SSE-64-NEXT: movd %eax, %xmm2
1236 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
1237 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm5[0]
1238 ; SSE-64-NEXT: pand %xmm4, %xmm0
1239 ; SSE-64-NEXT: pandn %xmm1, %xmm4
1240 ; SSE-64-NEXT: por %xmm4, %xmm0
1241 ; SSE-64-NEXT: retq
1255 ; AVX-64-LABEL: test_v4f32_uge_q:
1256 ; AVX-64: # %bb.0:
1257 ; AVX-64-NEXT: vcmpnlt_uqps %xmm3, %xmm2, %xmm2
1258 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
1259 ; AVX-64-NEXT: retq
1273 ; AVX512-64-LABEL: test_v4f32_uge_q:
1274 ; AVX512-64: # %bb.0:
1275 ; AVX512-64-NEXT: vcmpnlt_uqps %xmm3, %xmm2, %k1
1276 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
1277 ; AVX512-64-NEXT: retq
1296 ; AVX512F-64-LABEL: test_v4f32_uge_q:
1297 ; AVX512F-64: # %bb.0:
1298 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
1299 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
1300 ; AVX512F-64-NEXT: vcmpnlt_uqps %xmm3, %xmm2, %xmm2
1301 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
1302 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
1303 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
1304 ; AVX512F-64-NEXT: vzeroupper
1305 ; AVX512F-64-NEXT: retq
1358 ; SSE-64-LABEL: test_v4f32_ult_q:
1359 ; SSE-64: # %bb.0:
1360 ; SSE-64-NEXT: movaps %xmm3, %xmm4
1361 ; SSE-64-NEXT: shufps {{.*#+}} xmm4 = xmm4[3,3],xmm3[3,3]
1362 ; SSE-64-NEXT: movaps %xmm2, %xmm5
1363 ; SSE-64-NEXT: shufps {{.*#+}} xmm5 = xmm5[3,3],xmm2[3,3]
1364 ; SSE-64-NEXT: xorl %eax, %eax
1365 ; SSE-64-NEXT: ucomiss %xmm4, %xmm5
1366 ; SSE-64-NEXT: movl $-1, %ecx
1367 ; SSE-64-NEXT: movl $0, %edx
1368 ; SSE-64-NEXT: cmovbl %ecx, %edx
1369 ; SSE-64-NEXT: movd %edx, %xmm4
1370 ; SSE-64-NEXT: movaps %xmm3, %xmm5
1371 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm3[1]
1372 ; SSE-64-NEXT: movaps %xmm2, %xmm6
1373 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm2[1]
1374 ; SSE-64-NEXT: ucomiss %xmm5, %xmm6
1375 ; SSE-64-NEXT: movl $0, %edx
1376 ; SSE-64-NEXT: cmovbl %ecx, %edx
1377 ; SSE-64-NEXT: movd %edx, %xmm5
1378 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
1379 ; SSE-64-NEXT: ucomiss %xmm3, %xmm2
1380 ; SSE-64-NEXT: movl $0, %edx
1381 ; SSE-64-NEXT: cmovbl %ecx, %edx
1382 ; SSE-64-NEXT: movd %edx, %xmm4
1383 ; SSE-64-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,1,1,1]
1384 ; SSE-64-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,1,1,1]
1385 ; SSE-64-NEXT: ucomiss %xmm3, %xmm2
1386 ; SSE-64-NEXT: cmovbl %ecx, %eax
1387 ; SSE-64-NEXT: movd %eax, %xmm2
1388 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
1389 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm5[0]
1390 ; SSE-64-NEXT: pand %xmm4, %xmm0
1391 ; SSE-64-NEXT: pandn %xmm1, %xmm4
1392 ; SSE-64-NEXT: por %xmm4, %xmm0
1393 ; SSE-64-NEXT: retq
1408 ; AVX-64-LABEL: test_v4f32_ult_q:
1409 ; AVX-64: # %bb.0:
1410 ; AVX-64-NEXT: vcmpnle_uqps %xmm2, %xmm3, %xmm2
1411 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
1412 ; AVX-64-NEXT: retq
1426 ; AVX512-64-LABEL: test_v4f32_ult_q:
1427 ; AVX512-64: # %bb.0:
1428 ; AVX512-64-NEXT: vcmpnle_uqps %xmm2, %xmm3, %k1
1429 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
1430 ; AVX512-64-NEXT: retq
1450 ; AVX512F-64-LABEL: test_v4f32_ult_q:
1451 ; AVX512F-64: # %bb.0:
1452 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
1453 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
1454 ; AVX512F-64-NEXT: vcmpnle_uqps %xmm2, %xmm3, %xmm2
1455 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
1456 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
1457 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
1458 ; AVX512F-64-NEXT: vzeroupper
1459 ; AVX512F-64-NEXT: retq
1512 ; SSE-64-LABEL: test_v4f32_ule_q:
1513 ; SSE-64: # %bb.0:
1514 ; SSE-64-NEXT: movaps %xmm3, %xmm4
1515 ; SSE-64-NEXT: shufps {{.*#+}} xmm4 = xmm4[3,3],xmm3[3,3]
1516 ; SSE-64-NEXT: movaps %xmm2, %xmm5
1517 ; SSE-64-NEXT: shufps {{.*#+}} xmm5 = xmm5[3,3],xmm2[3,3]
1518 ; SSE-64-NEXT: xorl %eax, %eax
1519 ; SSE-64-NEXT: ucomiss %xmm4, %xmm5
1520 ; SSE-64-NEXT: movl $-1, %ecx
1521 ; SSE-64-NEXT: movl $0, %edx
1522 ; SSE-64-NEXT: cmovbel %ecx, %edx
1523 ; SSE-64-NEXT: movd %edx, %xmm4
1524 ; SSE-64-NEXT: movaps %xmm3, %xmm5
1525 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm3[1]
1526 ; SSE-64-NEXT: movaps %xmm2, %xmm6
1527 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm2[1]
1528 ; SSE-64-NEXT: ucomiss %xmm5, %xmm6
1529 ; SSE-64-NEXT: movl $0, %edx
1530 ; SSE-64-NEXT: cmovbel %ecx, %edx
1531 ; SSE-64-NEXT: movd %edx, %xmm5
1532 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm5 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
1533 ; SSE-64-NEXT: ucomiss %xmm3, %xmm2
1534 ; SSE-64-NEXT: movl $0, %edx
1535 ; SSE-64-NEXT: cmovbel %ecx, %edx
1536 ; SSE-64-NEXT: movd %edx, %xmm4
1537 ; SSE-64-NEXT: shufps {{.*#+}} xmm3 = xmm3[1,1,1,1]
1538 ; SSE-64-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,1,1,1]
1539 ; SSE-64-NEXT: ucomiss %xmm3, %xmm2
1540 ; SSE-64-NEXT: cmovbel %ecx, %eax
1541 ; SSE-64-NEXT: movd %eax, %xmm2
1542 ; SSE-64-NEXT: punpckldq {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
1543 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm5[0]
1544 ; SSE-64-NEXT: pand %xmm4, %xmm0
1545 ; SSE-64-NEXT: pandn %xmm1, %xmm4
1546 ; SSE-64-NEXT: por %xmm4, %xmm0
1547 ; SSE-64-NEXT: retq
1562 ; AVX-64-LABEL: test_v4f32_ule_q:
1563 ; AVX-64: # %bb.0:
1564 ; AVX-64-NEXT: vcmpnlt_uqps %xmm2, %xmm3, %xmm2
1565 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
1566 ; AVX-64-NEXT: retq
1580 ; AVX512-64-LABEL: test_v4f32_ule_q:
1581 ; AVX512-64: # %bb.0:
1582 ; AVX512-64-NEXT: vcmpnlt_uqps %xmm2, %xmm3, %k1
1583 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
1584 ; AVX512-64-NEXT: retq
1604 ; AVX512F-64-LABEL: test_v4f32_ule_q:
1605 ; AVX512F-64: # %bb.0:
1606 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
1607 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
1608 ; AVX512F-64-NEXT: vcmpnlt_uqps %xmm2, %xmm3, %xmm2
1609 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
1610 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
1611 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
1612 ; AVX512F-64-NEXT: vzeroupper
1613 ; AVX512F-64-NEXT: retq
1636 ; SSE-64-LABEL: test_v4f32_une_q:
1637 ; SSE-64: # %bb.0:
1638 ; SSE-64-NEXT: cmpneqps %xmm3, %xmm2
1639 ; SSE-64-NEXT: andps %xmm2, %xmm0
1640 ; SSE-64-NEXT: andnps %xmm1, %xmm2
1641 ; SSE-64-NEXT: orps %xmm2, %xmm0
1642 ; SSE-64-NEXT: retq
1656 ; AVX-64-LABEL: test_v4f32_une_q:
1657 ; AVX-64: # %bb.0:
1658 ; AVX-64-NEXT: vcmpneqps %xmm3, %xmm2, %xmm2
1659 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
1660 ; AVX-64-NEXT: retq
1674 ; AVX512-64-LABEL: test_v4f32_une_q:
1675 ; AVX512-64: # %bb.0:
1676 ; AVX512-64-NEXT: vcmpneqps %xmm3, %xmm2, %k1
1677 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
1678 ; AVX512-64-NEXT: retq
1697 ; AVX512F-64-LABEL: test_v4f32_une_q:
1698 ; AVX512F-64: # %bb.0:
1699 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
1700 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
1701 ; AVX512F-64-NEXT: vcmpneqps %xmm3, %xmm2, %xmm2
1702 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
1703 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
1704 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
1705 ; AVX512F-64-NEXT: vzeroupper
1706 ; AVX512F-64-NEXT: retq
1729 ; SSE-64-LABEL: test_v4f32_uno_q:
1730 ; SSE-64: # %bb.0:
1731 ; SSE-64-NEXT: cmpunordps %xmm3, %xmm2
1732 ; SSE-64-NEXT: andps %xmm2, %xmm0
1733 ; SSE-64-NEXT: andnps %xmm1, %xmm2
1734 ; SSE-64-NEXT: orps %xmm2, %xmm0
1735 ; SSE-64-NEXT: retq
1749 ; AVX-64-LABEL: test_v4f32_uno_q:
1750 ; AVX-64: # %bb.0:
1751 ; AVX-64-NEXT: vcmpunordps %xmm3, %xmm2, %xmm2
1752 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
1753 ; AVX-64-NEXT: retq
1767 ; AVX512-64-LABEL: test_v4f32_uno_q:
1768 ; AVX512-64: # %bb.0:
1769 ; AVX512-64-NEXT: vcmpunordps %xmm3, %xmm2, %k1
1770 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
1771 ; AVX512-64-NEXT: retq
1790 ; AVX512F-64-LABEL: test_v4f32_uno_q:
1791 ; AVX512F-64: # %bb.0:
1792 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
1793 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
1794 ; AVX512F-64-NEXT: vcmpunordps %xmm3, %xmm2, %xmm2
1795 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
1796 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
1797 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
1798 ; AVX512F-64-NEXT: vzeroupper
1799 ; AVX512F-64-NEXT: retq
1822 ; SSE-64-LABEL: test_v2f64_oeq_q:
1823 ; SSE-64: # %bb.0:
1824 ; SSE-64-NEXT: cmpeqpd %xmm3, %xmm2
1825 ; SSE-64-NEXT: andpd %xmm2, %xmm0
1826 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
1827 ; SSE-64-NEXT: orpd %xmm2, %xmm0
1828 ; SSE-64-NEXT: retq
1842 ; AVX-64-LABEL: test_v2f64_oeq_q:
1843 ; AVX-64: # %bb.0:
1844 ; AVX-64-NEXT: vcmpeqpd %xmm3, %xmm2, %xmm2
1845 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
1846 ; AVX-64-NEXT: retq
1860 ; AVX512-64-LABEL: test_v2f64_oeq_q:
1861 ; AVX512-64: # %bb.0:
1862 ; AVX512-64-NEXT: vcmpeqpd %xmm3, %xmm2, %k1
1863 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
1864 ; AVX512-64-NEXT: retq
1883 ; AVX512F-64-LABEL: test_v2f64_oeq_q:
1884 ; AVX512F-64: # %bb.0:
1885 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
1886 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
1887 ; AVX512F-64-NEXT: vcmpeqpd %xmm3, %xmm2, %xmm2
1888 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
1889 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
1890 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
1891 ; AVX512F-64-NEXT: vzeroupper
1892 ; AVX512F-64-NEXT: retq
1929 ; SSE-64-LABEL: test_v2f64_ogt_q:
1930 ; SSE-64: # %bb.0:
1931 ; SSE-64-NEXT: xorl %eax, %eax
1932 ; SSE-64-NEXT: ucomisd %xmm3, %xmm2
1933 ; SSE-64-NEXT: movq $-1, %rcx
1934 ; SSE-64-NEXT: movl $0, %edx
1935 ; SSE-64-NEXT: cmovaq %rcx, %rdx
1936 ; SSE-64-NEXT: movq %rdx, %xmm4
1937 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1,1]
1938 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1,1]
1939 ; SSE-64-NEXT: ucomisd %xmm3, %xmm2
1940 ; SSE-64-NEXT: cmovaq %rcx, %rax
1941 ; SSE-64-NEXT: movq %rax, %xmm2
1942 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm2[0]
1943 ; SSE-64-NEXT: pand %xmm4, %xmm0
1944 ; SSE-64-NEXT: pandn %xmm1, %xmm4
1945 ; SSE-64-NEXT: por %xmm4, %xmm0
1946 ; SSE-64-NEXT: retq
1961 ; AVX-64-LABEL: test_v2f64_ogt_q:
1962 ; AVX-64: # %bb.0:
1963 ; AVX-64-NEXT: vcmplt_oqpd %xmm2, %xmm3, %xmm2
1964 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
1965 ; AVX-64-NEXT: retq
1979 ; AVX512-64-LABEL: test_v2f64_ogt_q:
1980 ; AVX512-64: # %bb.0:
1981 ; AVX512-64-NEXT: vcmplt_oqpd %xmm2, %xmm3, %k1
1982 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
1983 ; AVX512-64-NEXT: retq
2003 ; AVX512F-64-LABEL: test_v2f64_ogt_q:
2004 ; AVX512F-64: # %bb.0:
2005 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
2006 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
2007 ; AVX512F-64-NEXT: vcmplt_oqpd %xmm2, %xmm3, %xmm2
2008 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
2009 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
2010 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
2011 ; AVX512F-64-NEXT: vzeroupper
2012 ; AVX512F-64-NEXT: retq
2049 ; SSE-64-LABEL: test_v2f64_oge_q:
2050 ; SSE-64: # %bb.0:
2051 ; SSE-64-NEXT: xorl %eax, %eax
2052 ; SSE-64-NEXT: ucomisd %xmm3, %xmm2
2053 ; SSE-64-NEXT: movq $-1, %rcx
2054 ; SSE-64-NEXT: movl $0, %edx
2055 ; SSE-64-NEXT: cmovaeq %rcx, %rdx
2056 ; SSE-64-NEXT: movq %rdx, %xmm4
2057 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1,1]
2058 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1,1]
2059 ; SSE-64-NEXT: ucomisd %xmm3, %xmm2
2060 ; SSE-64-NEXT: cmovaeq %rcx, %rax
2061 ; SSE-64-NEXT: movq %rax, %xmm2
2062 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm2[0]
2063 ; SSE-64-NEXT: pand %xmm4, %xmm0
2064 ; SSE-64-NEXT: pandn %xmm1, %xmm4
2065 ; SSE-64-NEXT: por %xmm4, %xmm0
2066 ; SSE-64-NEXT: retq
2081 ; AVX-64-LABEL: test_v2f64_oge_q:
2082 ; AVX-64: # %bb.0:
2083 ; AVX-64-NEXT: vcmple_oqpd %xmm2, %xmm3, %xmm2
2084 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
2085 ; AVX-64-NEXT: retq
2099 ; AVX512-64-LABEL: test_v2f64_oge_q:
2100 ; AVX512-64: # %bb.0:
2101 ; AVX512-64-NEXT: vcmple_oqpd %xmm2, %xmm3, %k1
2102 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
2103 ; AVX512-64-NEXT: retq
2123 ; AVX512F-64-LABEL: test_v2f64_oge_q:
2124 ; AVX512F-64: # %bb.0:
2125 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
2126 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
2127 ; AVX512F-64-NEXT: vcmple_oqpd %xmm2, %xmm3, %xmm2
2128 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
2129 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
2130 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
2131 ; AVX512F-64-NEXT: vzeroupper
2132 ; AVX512F-64-NEXT: retq
2169 ; SSE-64-LABEL: test_v2f64_olt_q:
2170 ; SSE-64: # %bb.0:
2171 ; SSE-64-NEXT: xorl %eax, %eax
2172 ; SSE-64-NEXT: ucomisd %xmm2, %xmm3
2173 ; SSE-64-NEXT: movq $-1, %rcx
2174 ; SSE-64-NEXT: movl $0, %edx
2175 ; SSE-64-NEXT: cmovaq %rcx, %rdx
2176 ; SSE-64-NEXT: movq %rdx, %xmm4
2177 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1,1]
2178 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1,1]
2179 ; SSE-64-NEXT: ucomisd %xmm2, %xmm3
2180 ; SSE-64-NEXT: cmovaq %rcx, %rax
2181 ; SSE-64-NEXT: movq %rax, %xmm2
2182 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm2[0]
2183 ; SSE-64-NEXT: pand %xmm4, %xmm0
2184 ; SSE-64-NEXT: pandn %xmm1, %xmm4
2185 ; SSE-64-NEXT: por %xmm4, %xmm0
2186 ; SSE-64-NEXT: retq
2200 ; AVX-64-LABEL: test_v2f64_olt_q:
2201 ; AVX-64: # %bb.0:
2202 ; AVX-64-NEXT: vcmplt_oqpd %xmm3, %xmm2, %xmm2
2203 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
2204 ; AVX-64-NEXT: retq
2218 ; AVX512-64-LABEL: test_v2f64_olt_q:
2219 ; AVX512-64: # %bb.0:
2220 ; AVX512-64-NEXT: vcmplt_oqpd %xmm3, %xmm2, %k1
2221 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
2222 ; AVX512-64-NEXT: retq
2241 ; AVX512F-64-LABEL: test_v2f64_olt_q:
2242 ; AVX512F-64: # %bb.0:
2243 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
2244 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
2245 ; AVX512F-64-NEXT: vcmplt_oqpd %xmm3, %xmm2, %xmm2
2246 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
2247 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
2248 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
2249 ; AVX512F-64-NEXT: vzeroupper
2250 ; AVX512F-64-NEXT: retq
2287 ; SSE-64-LABEL: test_v2f64_ole_q:
2288 ; SSE-64: # %bb.0:
2289 ; SSE-64-NEXT: xorl %eax, %eax
2290 ; SSE-64-NEXT: ucomisd %xmm2, %xmm3
2291 ; SSE-64-NEXT: movq $-1, %rcx
2292 ; SSE-64-NEXT: movl $0, %edx
2293 ; SSE-64-NEXT: cmovaeq %rcx, %rdx
2294 ; SSE-64-NEXT: movq %rdx, %xmm4
2295 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1,1]
2296 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1,1]
2297 ; SSE-64-NEXT: ucomisd %xmm2, %xmm3
2298 ; SSE-64-NEXT: cmovaeq %rcx, %rax
2299 ; SSE-64-NEXT: movq %rax, %xmm2
2300 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm2[0]
2301 ; SSE-64-NEXT: pand %xmm4, %xmm0
2302 ; SSE-64-NEXT: pandn %xmm1, %xmm4
2303 ; SSE-64-NEXT: por %xmm4, %xmm0
2304 ; SSE-64-NEXT: retq
2318 ; AVX-64-LABEL: test_v2f64_ole_q:
2319 ; AVX-64: # %bb.0:
2320 ; AVX-64-NEXT: vcmple_oqpd %xmm3, %xmm2, %xmm2
2321 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
2322 ; AVX-64-NEXT: retq
2336 ; AVX512-64-LABEL: test_v2f64_ole_q:
2337 ; AVX512-64: # %bb.0:
2338 ; AVX512-64-NEXT: vcmple_oqpd %xmm3, %xmm2, %k1
2339 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
2340 ; AVX512-64-NEXT: retq
2359 ; AVX512F-64-LABEL: test_v2f64_ole_q:
2360 ; AVX512F-64: # %bb.0:
2361 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
2362 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
2363 ; AVX512F-64-NEXT: vcmple_oqpd %xmm3, %xmm2, %xmm2
2364 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
2365 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
2366 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
2367 ; AVX512F-64-NEXT: vzeroupper
2368 ; AVX512F-64-NEXT: retq
2395 ; SSE-64-LABEL: test_v2f64_one_q:
2396 ; SSE-64: # %bb.0:
2397 ; SSE-64-NEXT: movapd %xmm2, %xmm4
2398 ; SSE-64-NEXT: cmpneqpd %xmm3, %xmm4
2399 ; SSE-64-NEXT: cmpordpd %xmm3, %xmm2
2400 ; SSE-64-NEXT: andpd %xmm4, %xmm2
2401 ; SSE-64-NEXT: andpd %xmm2, %xmm0
2402 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
2403 ; SSE-64-NEXT: orpd %xmm2, %xmm0
2404 ; SSE-64-NEXT: retq
2418 ; AVX-64-LABEL: test_v2f64_one_q:
2419 ; AVX-64: # %bb.0:
2420 ; AVX-64-NEXT: vcmpneq_oqpd %xmm3, %xmm2, %xmm2
2421 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
2422 ; AVX-64-NEXT: retq
2436 ; AVX512-64-LABEL: test_v2f64_one_q:
2437 ; AVX512-64: # %bb.0:
2438 ; AVX512-64-NEXT: vcmpneq_oqpd %xmm3, %xmm2, %k1
2439 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
2440 ; AVX512-64-NEXT: retq
2459 ; AVX512F-64-LABEL: test_v2f64_one_q:
2460 ; AVX512F-64: # %bb.0:
2461 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
2462 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
2463 ; AVX512F-64-NEXT: vcmpneq_oqpd %xmm3, %xmm2, %xmm2
2464 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
2465 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
2466 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
2467 ; AVX512F-64-NEXT: vzeroupper
2468 ; AVX512F-64-NEXT: retq
2491 ; SSE-64-LABEL: test_v2f64_ord_q:
2492 ; SSE-64: # %bb.0:
2493 ; SSE-64-NEXT: cmpordpd %xmm3, %xmm2
2494 ; SSE-64-NEXT: andpd %xmm2, %xmm0
2495 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
2496 ; SSE-64-NEXT: orpd %xmm2, %xmm0
2497 ; SSE-64-NEXT: retq
2511 ; AVX-64-LABEL: test_v2f64_ord_q:
2512 ; AVX-64: # %bb.0:
2513 ; AVX-64-NEXT: vcmpordpd %xmm3, %xmm2, %xmm2
2514 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
2515 ; AVX-64-NEXT: retq
2529 ; AVX512-64-LABEL: test_v2f64_ord_q:
2530 ; AVX512-64: # %bb.0:
2531 ; AVX512-64-NEXT: vcmpordpd %xmm3, %xmm2, %k1
2532 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
2533 ; AVX512-64-NEXT: retq
2552 ; AVX512F-64-LABEL: test_v2f64_ord_q:
2553 ; AVX512F-64: # %bb.0:
2554 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
2555 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
2556 ; AVX512F-64-NEXT: vcmpordpd %xmm3, %xmm2, %xmm2
2557 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
2558 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
2559 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
2560 ; AVX512F-64-NEXT: vzeroupper
2561 ; AVX512F-64-NEXT: retq
2588 ; SSE-64-LABEL: test_v2f64_ueq_q:
2589 ; SSE-64: # %bb.0:
2590 ; SSE-64-NEXT: movapd %xmm2, %xmm4
2591 ; SSE-64-NEXT: cmpeqpd %xmm3, %xmm4
2592 ; SSE-64-NEXT: cmpunordpd %xmm3, %xmm2
2593 ; SSE-64-NEXT: orpd %xmm4, %xmm2
2594 ; SSE-64-NEXT: andpd %xmm2, %xmm0
2595 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
2596 ; SSE-64-NEXT: orpd %xmm2, %xmm0
2597 ; SSE-64-NEXT: retq
2611 ; AVX-64-LABEL: test_v2f64_ueq_q:
2612 ; AVX-64: # %bb.0:
2613 ; AVX-64-NEXT: vcmpeq_uqpd %xmm3, %xmm2, %xmm2
2614 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
2615 ; AVX-64-NEXT: retq
2629 ; AVX512-64-LABEL: test_v2f64_ueq_q:
2630 ; AVX512-64: # %bb.0:
2631 ; AVX512-64-NEXT: vcmpeq_uqpd %xmm3, %xmm2, %k1
2632 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
2633 ; AVX512-64-NEXT: retq
2652 ; AVX512F-64-LABEL: test_v2f64_ueq_q:
2653 ; AVX512F-64: # %bb.0:
2654 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
2655 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
2656 ; AVX512F-64-NEXT: vcmpeq_uqpd %xmm3, %xmm2, %xmm2
2657 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
2658 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
2659 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
2660 ; AVX512F-64-NEXT: vzeroupper
2661 ; AVX512F-64-NEXT: retq
2698 ; SSE-64-LABEL: test_v2f64_ugt_q:
2699 ; SSE-64: # %bb.0:
2700 ; SSE-64-NEXT: xorl %eax, %eax
2701 ; SSE-64-NEXT: ucomisd %xmm2, %xmm3
2702 ; SSE-64-NEXT: movq $-1, %rcx
2703 ; SSE-64-NEXT: movl $0, %edx
2704 ; SSE-64-NEXT: cmovbq %rcx, %rdx
2705 ; SSE-64-NEXT: movq %rdx, %xmm4
2706 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1,1]
2707 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1,1]
2708 ; SSE-64-NEXT: ucomisd %xmm2, %xmm3
2709 ; SSE-64-NEXT: cmovbq %rcx, %rax
2710 ; SSE-64-NEXT: movq %rax, %xmm2
2711 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm2[0]
2712 ; SSE-64-NEXT: pand %xmm4, %xmm0
2713 ; SSE-64-NEXT: pandn %xmm1, %xmm4
2714 ; SSE-64-NEXT: por %xmm4, %xmm0
2715 ; SSE-64-NEXT: retq
2729 ; AVX-64-LABEL: test_v2f64_ugt_q:
2730 ; AVX-64: # %bb.0:
2731 ; AVX-64-NEXT: vcmpnle_uqpd %xmm3, %xmm2, %xmm2
2732 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
2733 ; AVX-64-NEXT: retq
2747 ; AVX512-64-LABEL: test_v2f64_ugt_q:
2748 ; AVX512-64: # %bb.0:
2749 ; AVX512-64-NEXT: vcmpnle_uqpd %xmm3, %xmm2, %k1
2750 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
2751 ; AVX512-64-NEXT: retq
2770 ; AVX512F-64-LABEL: test_v2f64_ugt_q:
2771 ; AVX512F-64: # %bb.0:
2772 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
2773 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
2774 ; AVX512F-64-NEXT: vcmpnle_uqpd %xmm3, %xmm2, %xmm2
2775 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
2776 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
2777 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
2778 ; AVX512F-64-NEXT: vzeroupper
2779 ; AVX512F-64-NEXT: retq
2816 ; SSE-64-LABEL: test_v2f64_uge_q:
2817 ; SSE-64: # %bb.0:
2818 ; SSE-64-NEXT: xorl %eax, %eax
2819 ; SSE-64-NEXT: ucomisd %xmm2, %xmm3
2820 ; SSE-64-NEXT: movq $-1, %rcx
2821 ; SSE-64-NEXT: movl $0, %edx
2822 ; SSE-64-NEXT: cmovbeq %rcx, %rdx
2823 ; SSE-64-NEXT: movq %rdx, %xmm4
2824 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1,1]
2825 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1,1]
2826 ; SSE-64-NEXT: ucomisd %xmm2, %xmm3
2827 ; SSE-64-NEXT: cmovbeq %rcx, %rax
2828 ; SSE-64-NEXT: movq %rax, %xmm2
2829 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm2[0]
2830 ; SSE-64-NEXT: pand %xmm4, %xmm0
2831 ; SSE-64-NEXT: pandn %xmm1, %xmm4
2832 ; SSE-64-NEXT: por %xmm4, %xmm0
2833 ; SSE-64-NEXT: retq
2847 ; AVX-64-LABEL: test_v2f64_uge_q:
2848 ; AVX-64: # %bb.0:
2849 ; AVX-64-NEXT: vcmpnlt_uqpd %xmm3, %xmm2, %xmm2
2850 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
2851 ; AVX-64-NEXT: retq
2865 ; AVX512-64-LABEL: test_v2f64_uge_q:
2866 ; AVX512-64: # %bb.0:
2867 ; AVX512-64-NEXT: vcmpnlt_uqpd %xmm3, %xmm2, %k1
2868 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
2869 ; AVX512-64-NEXT: retq
2888 ; AVX512F-64-LABEL: test_v2f64_uge_q:
2889 ; AVX512F-64: # %bb.0:
2890 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
2891 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
2892 ; AVX512F-64-NEXT: vcmpnlt_uqpd %xmm3, %xmm2, %xmm2
2893 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
2894 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
2895 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
2896 ; AVX512F-64-NEXT: vzeroupper
2897 ; AVX512F-64-NEXT: retq
2934 ; SSE-64-LABEL: test_v2f64_ult_q:
2935 ; SSE-64: # %bb.0:
2936 ; SSE-64-NEXT: xorl %eax, %eax
2937 ; SSE-64-NEXT: ucomisd %xmm3, %xmm2
2938 ; SSE-64-NEXT: movq $-1, %rcx
2939 ; SSE-64-NEXT: movl $0, %edx
2940 ; SSE-64-NEXT: cmovbq %rcx, %rdx
2941 ; SSE-64-NEXT: movq %rdx, %xmm4
2942 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1,1]
2943 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1,1]
2944 ; SSE-64-NEXT: ucomisd %xmm3, %xmm2
2945 ; SSE-64-NEXT: cmovbq %rcx, %rax
2946 ; SSE-64-NEXT: movq %rax, %xmm2
2947 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm2[0]
2948 ; SSE-64-NEXT: pand %xmm4, %xmm0
2949 ; SSE-64-NEXT: pandn %xmm1, %xmm4
2950 ; SSE-64-NEXT: por %xmm4, %xmm0
2951 ; SSE-64-NEXT: retq
2966 ; AVX-64-LABEL: test_v2f64_ult_q:
2967 ; AVX-64: # %bb.0:
2968 ; AVX-64-NEXT: vcmpnle_uqpd %xmm2, %xmm3, %xmm2
2969 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
2970 ; AVX-64-NEXT: retq
2984 ; AVX512-64-LABEL: test_v2f64_ult_q:
2985 ; AVX512-64: # %bb.0:
2986 ; AVX512-64-NEXT: vcmpnle_uqpd %xmm2, %xmm3, %k1
2987 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
2988 ; AVX512-64-NEXT: retq
3008 ; AVX512F-64-LABEL: test_v2f64_ult_q:
3009 ; AVX512F-64: # %bb.0:
3010 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
3011 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
3012 ; AVX512F-64-NEXT: vcmpnle_uqpd %xmm2, %xmm3, %xmm2
3013 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
3014 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
3015 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
3016 ; AVX512F-64-NEXT: vzeroupper
3017 ; AVX512F-64-NEXT: retq
3054 ; SSE-64-LABEL: test_v2f64_ule_q:
3055 ; SSE-64: # %bb.0:
3056 ; SSE-64-NEXT: xorl %eax, %eax
3057 ; SSE-64-NEXT: ucomisd %xmm3, %xmm2
3058 ; SSE-64-NEXT: movq $-1, %rcx
3059 ; SSE-64-NEXT: movl $0, %edx
3060 ; SSE-64-NEXT: cmovbeq %rcx, %rdx
3061 ; SSE-64-NEXT: movq %rdx, %xmm4
3062 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1,1]
3063 ; SSE-64-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1,1]
3064 ; SSE-64-NEXT: ucomisd %xmm3, %xmm2
3065 ; SSE-64-NEXT: cmovbeq %rcx, %rax
3066 ; SSE-64-NEXT: movq %rax, %xmm2
3067 ; SSE-64-NEXT: punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm2[0]
3068 ; SSE-64-NEXT: pand %xmm4, %xmm0
3069 ; SSE-64-NEXT: pandn %xmm1, %xmm4
3070 ; SSE-64-NEXT: por %xmm4, %xmm0
3071 ; SSE-64-NEXT: retq
3086 ; AVX-64-LABEL: test_v2f64_ule_q:
3087 ; AVX-64: # %bb.0:
3088 ; AVX-64-NEXT: vcmpnlt_uqpd %xmm2, %xmm3, %xmm2
3089 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
3090 ; AVX-64-NEXT: retq
3104 ; AVX512-64-LABEL: test_v2f64_ule_q:
3105 ; AVX512-64: # %bb.0:
3106 ; AVX512-64-NEXT: vcmpnlt_uqpd %xmm2, %xmm3, %k1
3107 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
3108 ; AVX512-64-NEXT: retq
3128 ; AVX512F-64-LABEL: test_v2f64_ule_q:
3129 ; AVX512F-64: # %bb.0:
3130 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
3131 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
3132 ; AVX512F-64-NEXT: vcmpnlt_uqpd %xmm2, %xmm3, %xmm2
3133 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
3134 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
3135 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
3136 ; AVX512F-64-NEXT: vzeroupper
3137 ; AVX512F-64-NEXT: retq
3160 ; SSE-64-LABEL: test_v2f64_une_q:
3161 ; SSE-64: # %bb.0:
3162 ; SSE-64-NEXT: cmpneqpd %xmm3, %xmm2
3163 ; SSE-64-NEXT: andpd %xmm2, %xmm0
3164 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
3165 ; SSE-64-NEXT: orpd %xmm2, %xmm0
3166 ; SSE-64-NEXT: retq
3180 ; AVX-64-LABEL: test_v2f64_une_q:
3181 ; AVX-64: # %bb.0:
3182 ; AVX-64-NEXT: vcmpneqpd %xmm3, %xmm2, %xmm2
3183 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
3184 ; AVX-64-NEXT: retq
3198 ; AVX512-64-LABEL: test_v2f64_une_q:
3199 ; AVX512-64: # %bb.0:
3200 ; AVX512-64-NEXT: vcmpneqpd %xmm3, %xmm2, %k1
3201 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
3202 ; AVX512-64-NEXT: retq
3221 ; AVX512F-64-LABEL: test_v2f64_une_q:
3222 ; AVX512F-64: # %bb.0:
3223 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
3224 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
3225 ; AVX512F-64-NEXT: vcmpneqpd %xmm3, %xmm2, %xmm2
3226 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
3227 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
3228 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
3229 ; AVX512F-64-NEXT: vzeroupper
3230 ; AVX512F-64-NEXT: retq
3253 ; SSE-64-LABEL: test_v2f64_uno_q:
3254 ; SSE-64: # %bb.0:
3255 ; SSE-64-NEXT: cmpunordpd %xmm3, %xmm2
3256 ; SSE-64-NEXT: andpd %xmm2, %xmm0
3257 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
3258 ; SSE-64-NEXT: orpd %xmm2, %xmm0
3259 ; SSE-64-NEXT: retq
3273 ; AVX-64-LABEL: test_v2f64_uno_q:
3274 ; AVX-64: # %bb.0:
3275 ; AVX-64-NEXT: vcmpunordpd %xmm3, %xmm2, %xmm2
3276 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
3277 ; AVX-64-NEXT: retq
3291 ; AVX512-64-LABEL: test_v2f64_uno_q:
3292 ; AVX512-64: # %bb.0:
3293 ; AVX512-64-NEXT: vcmpunordpd %xmm3, %xmm2, %k1
3294 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
3295 ; AVX512-64-NEXT: retq
3314 ; AVX512F-64-LABEL: test_v2f64_uno_q:
3315 ; AVX512F-64: # %bb.0:
3316 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
3317 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
3318 ; AVX512F-64-NEXT: vcmpunordpd %xmm3, %xmm2, %xmm2
3319 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
3320 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
3321 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
3322 ; AVX512F-64-NEXT: vzeroupper
3323 ; AVX512F-64-NEXT: retq
3349 ; SSE-64-LABEL: test_v4f32_oeq_s:
3350 ; SSE-64: # %bb.0:
3351 ; SSE-64-NEXT: movaps %xmm2, %xmm4
3352 ; SSE-64-NEXT: cmpltps %xmm3, %xmm4
3353 ; SSE-64-NEXT: cmpeqps %xmm3, %xmm2
3354 ; SSE-64-NEXT: andps %xmm2, %xmm0
3355 ; SSE-64-NEXT: andnps %xmm1, %xmm2
3356 ; SSE-64-NEXT: orps %xmm2, %xmm0
3357 ; SSE-64-NEXT: retq
3371 ; AVX-64-LABEL: test_v4f32_oeq_s:
3372 ; AVX-64: # %bb.0:
3373 ; AVX-64-NEXT: vcmpeq_osps %xmm3, %xmm2, %xmm2
3374 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
3375 ; AVX-64-NEXT: retq
3389 ; AVX512-64-LABEL: test_v4f32_oeq_s:
3390 ; AVX512-64: # %bb.0:
3391 ; AVX512-64-NEXT: vcmpeq_osps %xmm3, %xmm2, %k1
3392 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
3393 ; AVX512-64-NEXT: retq
3412 ; AVX512F-64-LABEL: test_v4f32_oeq_s:
3413 ; AVX512F-64: # %bb.0:
3414 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
3415 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
3416 ; AVX512F-64-NEXT: vcmpeq_osps %xmm3, %xmm2, %xmm2
3417 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
3418 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
3419 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
3420 ; AVX512F-64-NEXT: vzeroupper
3421 ; AVX512F-64-NEXT: retq
3445 ; SSE-64-LABEL: test_v4f32_ogt_s:
3446 ; SSE-64: # %bb.0:
3447 ; SSE-64-NEXT: cmpltps %xmm2, %xmm3
3448 ; SSE-64-NEXT: andps %xmm3, %xmm0
3449 ; SSE-64-NEXT: andnps %xmm1, %xmm3
3450 ; SSE-64-NEXT: orps %xmm3, %xmm0
3451 ; SSE-64-NEXT: retq
3466 ; AVX-64-LABEL: test_v4f32_ogt_s:
3467 ; AVX-64: # %bb.0:
3468 ; AVX-64-NEXT: vcmpltps %xmm2, %xmm3, %xmm2
3469 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
3470 ; AVX-64-NEXT: retq
3484 ; AVX512-64-LABEL: test_v4f32_ogt_s:
3485 ; AVX512-64: # %bb.0:
3486 ; AVX512-64-NEXT: vcmpltps %xmm2, %xmm3, %k1
3487 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
3488 ; AVX512-64-NEXT: retq
3508 ; AVX512F-64-LABEL: test_v4f32_ogt_s:
3509 ; AVX512F-64: # %bb.0:
3510 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
3511 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
3512 ; AVX512F-64-NEXT: vcmpltps %xmm2, %xmm3, %xmm2
3513 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
3514 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
3515 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
3516 ; AVX512F-64-NEXT: vzeroupper
3517 ; AVX512F-64-NEXT: retq
3541 ; SSE-64-LABEL: test_v4f32_oge_s:
3542 ; SSE-64: # %bb.0:
3543 ; SSE-64-NEXT: cmpleps %xmm2, %xmm3
3544 ; SSE-64-NEXT: andps %xmm3, %xmm0
3545 ; SSE-64-NEXT: andnps %xmm1, %xmm3
3546 ; SSE-64-NEXT: orps %xmm3, %xmm0
3547 ; SSE-64-NEXT: retq
3562 ; AVX-64-LABEL: test_v4f32_oge_s:
3563 ; AVX-64: # %bb.0:
3564 ; AVX-64-NEXT: vcmpleps %xmm2, %xmm3, %xmm2
3565 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
3566 ; AVX-64-NEXT: retq
3580 ; AVX512-64-LABEL: test_v4f32_oge_s:
3581 ; AVX512-64: # %bb.0:
3582 ; AVX512-64-NEXT: vcmpleps %xmm2, %xmm3, %k1
3583 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
3584 ; AVX512-64-NEXT: retq
3604 ; AVX512F-64-LABEL: test_v4f32_oge_s:
3605 ; AVX512F-64: # %bb.0:
3606 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
3607 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
3608 ; AVX512F-64-NEXT: vcmpleps %xmm2, %xmm3, %xmm2
3609 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
3610 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
3611 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
3612 ; AVX512F-64-NEXT: vzeroupper
3613 ; AVX512F-64-NEXT: retq
3636 ; SSE-64-LABEL: test_v4f32_olt_s:
3637 ; SSE-64: # %bb.0:
3638 ; SSE-64-NEXT: cmpltps %xmm3, %xmm2
3639 ; SSE-64-NEXT: andps %xmm2, %xmm0
3640 ; SSE-64-NEXT: andnps %xmm1, %xmm2
3641 ; SSE-64-NEXT: orps %xmm2, %xmm0
3642 ; SSE-64-NEXT: retq
3656 ; AVX-64-LABEL: test_v4f32_olt_s:
3657 ; AVX-64: # %bb.0:
3658 ; AVX-64-NEXT: vcmpltps %xmm3, %xmm2, %xmm2
3659 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
3660 ; AVX-64-NEXT: retq
3674 ; AVX512-64-LABEL: test_v4f32_olt_s:
3675 ; AVX512-64: # %bb.0:
3676 ; AVX512-64-NEXT: vcmpltps %xmm3, %xmm2, %k1
3677 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
3678 ; AVX512-64-NEXT: retq
3697 ; AVX512F-64-LABEL: test_v4f32_olt_s:
3698 ; AVX512F-64: # %bb.0:
3699 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
3700 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
3701 ; AVX512F-64-NEXT: vcmpltps %xmm3, %xmm2, %xmm2
3702 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
3703 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
3704 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
3705 ; AVX512F-64-NEXT: vzeroupper
3706 ; AVX512F-64-NEXT: retq
3729 ; SSE-64-LABEL: test_v4f32_ole_s:
3730 ; SSE-64: # %bb.0:
3731 ; SSE-64-NEXT: cmpleps %xmm3, %xmm2
3732 ; SSE-64-NEXT: andps %xmm2, %xmm0
3733 ; SSE-64-NEXT: andnps %xmm1, %xmm2
3734 ; SSE-64-NEXT: orps %xmm2, %xmm0
3735 ; SSE-64-NEXT: retq
3749 ; AVX-64-LABEL: test_v4f32_ole_s:
3750 ; AVX-64: # %bb.0:
3751 ; AVX-64-NEXT: vcmpleps %xmm3, %xmm2, %xmm2
3752 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
3753 ; AVX-64-NEXT: retq
3767 ; AVX512-64-LABEL: test_v4f32_ole_s:
3768 ; AVX512-64: # %bb.0:
3769 ; AVX512-64-NEXT: vcmpleps %xmm3, %xmm2, %k1
3770 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
3771 ; AVX512-64-NEXT: retq
3790 ; AVX512F-64-LABEL: test_v4f32_ole_s:
3791 ; AVX512F-64: # %bb.0:
3792 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
3793 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
3794 ; AVX512F-64-NEXT: vcmpleps %xmm3, %xmm2, %xmm2
3795 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
3796 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
3797 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
3798 ; AVX512F-64-NEXT: vzeroupper
3799 ; AVX512F-64-NEXT: retq
3828 ; SSE-64-LABEL: test_v4f32_one_s:
3829 ; SSE-64: # %bb.0:
3830 ; SSE-64-NEXT: movaps %xmm2, %xmm4
3831 ; SSE-64-NEXT: cmpltps %xmm3, %xmm4
3832 ; SSE-64-NEXT: movaps %xmm2, %xmm4
3833 ; SSE-64-NEXT: cmpneqps %xmm3, %xmm4
3834 ; SSE-64-NEXT: cmpordps %xmm3, %xmm2
3835 ; SSE-64-NEXT: andps %xmm4, %xmm2
3836 ; SSE-64-NEXT: andps %xmm2, %xmm0
3837 ; SSE-64-NEXT: andnps %xmm1, %xmm2
3838 ; SSE-64-NEXT: orps %xmm2, %xmm0
3839 ; SSE-64-NEXT: retq
3853 ; AVX-64-LABEL: test_v4f32_one_s:
3854 ; AVX-64: # %bb.0:
3855 ; AVX-64-NEXT: vcmpneq_osps %xmm3, %xmm2, %xmm2
3856 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
3857 ; AVX-64-NEXT: retq
3871 ; AVX512-64-LABEL: test_v4f32_one_s:
3872 ; AVX512-64: # %bb.0:
3873 ; AVX512-64-NEXT: vcmpneq_osps %xmm3, %xmm2, %k1
3874 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
3875 ; AVX512-64-NEXT: retq
3894 ; AVX512F-64-LABEL: test_v4f32_one_s:
3895 ; AVX512F-64: # %bb.0:
3896 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
3897 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
3898 ; AVX512F-64-NEXT: vcmpneq_osps %xmm3, %xmm2, %xmm2
3899 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
3900 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
3901 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
3902 ; AVX512F-64-NEXT: vzeroupper
3903 ; AVX512F-64-NEXT: retq
3929 ; SSE-64-LABEL: test_v4f32_ord_s:
3930 ; SSE-64: # %bb.0:
3931 ; SSE-64-NEXT: movaps %xmm2, %xmm4
3932 ; SSE-64-NEXT: cmpltps %xmm3, %xmm4
3933 ; SSE-64-NEXT: cmpordps %xmm3, %xmm2
3934 ; SSE-64-NEXT: andps %xmm2, %xmm0
3935 ; SSE-64-NEXT: andnps %xmm1, %xmm2
3936 ; SSE-64-NEXT: orps %xmm2, %xmm0
3937 ; SSE-64-NEXT: retq
3951 ; AVX-64-LABEL: test_v4f32_ord_s:
3952 ; AVX-64: # %bb.0:
3953 ; AVX-64-NEXT: vcmpord_sps %xmm3, %xmm2, %xmm2
3954 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
3955 ; AVX-64-NEXT: retq
3969 ; AVX512-64-LABEL: test_v4f32_ord_s:
3970 ; AVX512-64: # %bb.0:
3971 ; AVX512-64-NEXT: vcmpord_sps %xmm3, %xmm2, %k1
3972 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
3973 ; AVX512-64-NEXT: retq
3992 ; AVX512F-64-LABEL: test_v4f32_ord_s:
3993 ; AVX512F-64: # %bb.0:
3994 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
3995 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
3996 ; AVX512F-64-NEXT: vcmpord_sps %xmm3, %xmm2, %xmm2
3997 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
3998 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
3999 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
4000 ; AVX512F-64-NEXT: vzeroupper
4001 ; AVX512F-64-NEXT: retq
4030 ; SSE-64-LABEL: test_v4f32_ueq_s:
4031 ; SSE-64: # %bb.0:
4032 ; SSE-64-NEXT: movaps %xmm2, %xmm4
4033 ; SSE-64-NEXT: cmpltps %xmm3, %xmm4
4034 ; SSE-64-NEXT: movaps %xmm2, %xmm4
4035 ; SSE-64-NEXT: cmpeqps %xmm3, %xmm4
4036 ; SSE-64-NEXT: cmpunordps %xmm3, %xmm2
4037 ; SSE-64-NEXT: orps %xmm4, %xmm2
4038 ; SSE-64-NEXT: andps %xmm2, %xmm0
4039 ; SSE-64-NEXT: andnps %xmm1, %xmm2
4040 ; SSE-64-NEXT: orps %xmm2, %xmm0
4041 ; SSE-64-NEXT: retq
4055 ; AVX-64-LABEL: test_v4f32_ueq_s:
4056 ; AVX-64: # %bb.0:
4057 ; AVX-64-NEXT: vcmpeq_usps %xmm3, %xmm2, %xmm2
4058 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
4059 ; AVX-64-NEXT: retq
4073 ; AVX512-64-LABEL: test_v4f32_ueq_s:
4074 ; AVX512-64: # %bb.0:
4075 ; AVX512-64-NEXT: vcmpeq_usps %xmm3, %xmm2, %k1
4076 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
4077 ; AVX512-64-NEXT: retq
4096 ; AVX512F-64-LABEL: test_v4f32_ueq_s:
4097 ; AVX512F-64: # %bb.0:
4098 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
4099 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
4100 ; AVX512F-64-NEXT: vcmpeq_usps %xmm3, %xmm2, %xmm2
4101 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
4102 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
4103 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
4104 ; AVX512F-64-NEXT: vzeroupper
4105 ; AVX512F-64-NEXT: retq
4128 ; SSE-64-LABEL: test_v4f32_ugt_s:
4129 ; SSE-64: # %bb.0:
4130 ; SSE-64-NEXT: cmpnleps %xmm3, %xmm2
4131 ; SSE-64-NEXT: andps %xmm2, %xmm0
4132 ; SSE-64-NEXT: andnps %xmm1, %xmm2
4133 ; SSE-64-NEXT: orps %xmm2, %xmm0
4134 ; SSE-64-NEXT: retq
4148 ; AVX-64-LABEL: test_v4f32_ugt_s:
4149 ; AVX-64: # %bb.0:
4150 ; AVX-64-NEXT: vcmpnleps %xmm3, %xmm2, %xmm2
4151 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
4152 ; AVX-64-NEXT: retq
4166 ; AVX512-64-LABEL: test_v4f32_ugt_s:
4167 ; AVX512-64: # %bb.0:
4168 ; AVX512-64-NEXT: vcmpnleps %xmm3, %xmm2, %k1
4169 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
4170 ; AVX512-64-NEXT: retq
4189 ; AVX512F-64-LABEL: test_v4f32_ugt_s:
4190 ; AVX512F-64: # %bb.0:
4191 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
4192 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
4193 ; AVX512F-64-NEXT: vcmpnleps %xmm3, %xmm2, %xmm2
4194 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
4195 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
4196 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
4197 ; AVX512F-64-NEXT: vzeroupper
4198 ; AVX512F-64-NEXT: retq
4221 ; SSE-64-LABEL: test_v4f32_uge_s:
4222 ; SSE-64: # %bb.0:
4223 ; SSE-64-NEXT: cmpnltps %xmm3, %xmm2
4224 ; SSE-64-NEXT: andps %xmm2, %xmm0
4225 ; SSE-64-NEXT: andnps %xmm1, %xmm2
4226 ; SSE-64-NEXT: orps %xmm2, %xmm0
4227 ; SSE-64-NEXT: retq
4241 ; AVX-64-LABEL: test_v4f32_uge_s:
4242 ; AVX-64: # %bb.0:
4243 ; AVX-64-NEXT: vcmpnltps %xmm3, %xmm2, %xmm2
4244 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
4245 ; AVX-64-NEXT: retq
4259 ; AVX512-64-LABEL: test_v4f32_uge_s:
4260 ; AVX512-64: # %bb.0:
4261 ; AVX512-64-NEXT: vcmpnltps %xmm3, %xmm2, %k1
4262 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
4263 ; AVX512-64-NEXT: retq
4282 ; AVX512F-64-LABEL: test_v4f32_uge_s:
4283 ; AVX512F-64: # %bb.0:
4284 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
4285 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
4286 ; AVX512F-64-NEXT: vcmpnltps %xmm3, %xmm2, %xmm2
4287 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
4288 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
4289 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
4290 ; AVX512F-64-NEXT: vzeroupper
4291 ; AVX512F-64-NEXT: retq
4315 ; SSE-64-LABEL: test_v4f32_ult_s:
4316 ; SSE-64: # %bb.0:
4317 ; SSE-64-NEXT: cmpnleps %xmm2, %xmm3
4318 ; SSE-64-NEXT: andps %xmm3, %xmm0
4319 ; SSE-64-NEXT: andnps %xmm1, %xmm3
4320 ; SSE-64-NEXT: orps %xmm3, %xmm0
4321 ; SSE-64-NEXT: retq
4336 ; AVX-64-LABEL: test_v4f32_ult_s:
4337 ; AVX-64: # %bb.0:
4338 ; AVX-64-NEXT: vcmpnleps %xmm2, %xmm3, %xmm2
4339 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
4340 ; AVX-64-NEXT: retq
4354 ; AVX512-64-LABEL: test_v4f32_ult_s:
4355 ; AVX512-64: # %bb.0:
4356 ; AVX512-64-NEXT: vcmpnleps %xmm2, %xmm3, %k1
4357 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
4358 ; AVX512-64-NEXT: retq
4378 ; AVX512F-64-LABEL: test_v4f32_ult_s:
4379 ; AVX512F-64: # %bb.0:
4380 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
4381 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
4382 ; AVX512F-64-NEXT: vcmpnleps %xmm2, %xmm3, %xmm2
4383 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
4384 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
4385 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
4386 ; AVX512F-64-NEXT: vzeroupper
4387 ; AVX512F-64-NEXT: retq
4411 ; SSE-64-LABEL: test_v4f32_ule_s:
4412 ; SSE-64: # %bb.0:
4413 ; SSE-64-NEXT: cmpnltps %xmm2, %xmm3
4414 ; SSE-64-NEXT: andps %xmm3, %xmm0
4415 ; SSE-64-NEXT: andnps %xmm1, %xmm3
4416 ; SSE-64-NEXT: orps %xmm3, %xmm0
4417 ; SSE-64-NEXT: retq
4432 ; AVX-64-LABEL: test_v4f32_ule_s:
4433 ; AVX-64: # %bb.0:
4434 ; AVX-64-NEXT: vcmpnltps %xmm2, %xmm3, %xmm2
4435 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
4436 ; AVX-64-NEXT: retq
4450 ; AVX512-64-LABEL: test_v4f32_ule_s:
4451 ; AVX512-64: # %bb.0:
4452 ; AVX512-64-NEXT: vcmpnltps %xmm2, %xmm3, %k1
4453 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
4454 ; AVX512-64-NEXT: retq
4474 ; AVX512F-64-LABEL: test_v4f32_ule_s:
4475 ; AVX512F-64: # %bb.0:
4476 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
4477 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
4478 ; AVX512F-64-NEXT: vcmpnltps %xmm2, %xmm3, %xmm2
4479 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
4480 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
4481 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
4482 ; AVX512F-64-NEXT: vzeroupper
4483 ; AVX512F-64-NEXT: retq
4509 ; SSE-64-LABEL: test_v4f32_une_s:
4510 ; SSE-64: # %bb.0:
4511 ; SSE-64-NEXT: movaps %xmm2, %xmm4
4512 ; SSE-64-NEXT: cmpltps %xmm3, %xmm4
4513 ; SSE-64-NEXT: cmpneqps %xmm3, %xmm2
4514 ; SSE-64-NEXT: andps %xmm2, %xmm0
4515 ; SSE-64-NEXT: andnps %xmm1, %xmm2
4516 ; SSE-64-NEXT: orps %xmm2, %xmm0
4517 ; SSE-64-NEXT: retq
4531 ; AVX-64-LABEL: test_v4f32_une_s:
4532 ; AVX-64: # %bb.0:
4533 ; AVX-64-NEXT: vcmpneq_usps %xmm3, %xmm2, %xmm2
4534 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
4535 ; AVX-64-NEXT: retq
4549 ; AVX512-64-LABEL: test_v4f32_une_s:
4550 ; AVX512-64: # %bb.0:
4551 ; AVX512-64-NEXT: vcmpneq_usps %xmm3, %xmm2, %k1
4552 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
4553 ; AVX512-64-NEXT: retq
4572 ; AVX512F-64-LABEL: test_v4f32_une_s:
4573 ; AVX512F-64: # %bb.0:
4574 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
4575 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
4576 ; AVX512F-64-NEXT: vcmpneq_usps %xmm3, %xmm2, %xmm2
4577 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
4578 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
4579 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
4580 ; AVX512F-64-NEXT: vzeroupper
4581 ; AVX512F-64-NEXT: retq
4607 ; SSE-64-LABEL: test_v4f32_uno_s:
4608 ; SSE-64: # %bb.0:
4609 ; SSE-64-NEXT: movaps %xmm2, %xmm4
4610 ; SSE-64-NEXT: cmpltps %xmm3, %xmm4
4611 ; SSE-64-NEXT: cmpunordps %xmm3, %xmm2
4612 ; SSE-64-NEXT: andps %xmm2, %xmm0
4613 ; SSE-64-NEXT: andnps %xmm1, %xmm2
4614 ; SSE-64-NEXT: orps %xmm2, %xmm0
4615 ; SSE-64-NEXT: retq
4629 ; AVX-64-LABEL: test_v4f32_uno_s:
4630 ; AVX-64: # %bb.0:
4631 ; AVX-64-NEXT: vcmpunord_sps %xmm3, %xmm2, %xmm2
4632 ; AVX-64-NEXT: vblendvps %xmm2, %xmm0, %xmm1, %xmm0
4633 ; AVX-64-NEXT: retq
4647 ; AVX512-64-LABEL: test_v4f32_uno_s:
4648 ; AVX512-64: # %bb.0:
4649 ; AVX512-64-NEXT: vcmpunord_sps %xmm3, %xmm2, %k1
4650 ; AVX512-64-NEXT: vpblendmd %xmm0, %xmm1, %xmm0 {%k1}
4651 ; AVX512-64-NEXT: retq
4670 ; AVX512F-64-LABEL: test_v4f32_uno_s:
4671 ; AVX512F-64: # %bb.0:
4672 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
4673 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
4674 ; AVX512F-64-NEXT: vcmpunord_sps %xmm3, %xmm2, %xmm2
4675 ; AVX512F-64-NEXT: vptestmd %zmm2, %zmm2, %k1
4676 ; AVX512F-64-NEXT: vpblendmd %zmm0, %zmm1, %zmm0 {%k1}
4677 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
4678 ; AVX512F-64-NEXT: vzeroupper
4679 ; AVX512F-64-NEXT: retq
4705 ; SSE-64-LABEL: test_v2f64_oeq_s:
4706 ; SSE-64: # %bb.0:
4707 ; SSE-64-NEXT: movapd %xmm2, %xmm4
4708 ; SSE-64-NEXT: cmpltpd %xmm3, %xmm4
4709 ; SSE-64-NEXT: cmpeqpd %xmm3, %xmm2
4710 ; SSE-64-NEXT: andpd %xmm2, %xmm0
4711 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
4712 ; SSE-64-NEXT: orpd %xmm2, %xmm0
4713 ; SSE-64-NEXT: retq
4727 ; AVX-64-LABEL: test_v2f64_oeq_s:
4728 ; AVX-64: # %bb.0:
4729 ; AVX-64-NEXT: vcmpeq_ospd %xmm3, %xmm2, %xmm2
4730 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
4731 ; AVX-64-NEXT: retq
4745 ; AVX512-64-LABEL: test_v2f64_oeq_s:
4746 ; AVX512-64: # %bb.0:
4747 ; AVX512-64-NEXT: vcmpeq_ospd %xmm3, %xmm2, %k1
4748 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
4749 ; AVX512-64-NEXT: retq
4768 ; AVX512F-64-LABEL: test_v2f64_oeq_s:
4769 ; AVX512F-64: # %bb.0:
4770 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
4771 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
4772 ; AVX512F-64-NEXT: vcmpeq_ospd %xmm3, %xmm2, %xmm2
4773 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
4774 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
4775 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
4776 ; AVX512F-64-NEXT: vzeroupper
4777 ; AVX512F-64-NEXT: retq
4801 ; SSE-64-LABEL: test_v2f64_ogt_s:
4802 ; SSE-64: # %bb.0:
4803 ; SSE-64-NEXT: cmpltpd %xmm2, %xmm3
4804 ; SSE-64-NEXT: andpd %xmm3, %xmm0
4805 ; SSE-64-NEXT: andnpd %xmm1, %xmm3
4806 ; SSE-64-NEXT: orpd %xmm3, %xmm0
4807 ; SSE-64-NEXT: retq
4822 ; AVX-64-LABEL: test_v2f64_ogt_s:
4823 ; AVX-64: # %bb.0:
4824 ; AVX-64-NEXT: vcmpltpd %xmm2, %xmm3, %xmm2
4825 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
4826 ; AVX-64-NEXT: retq
4840 ; AVX512-64-LABEL: test_v2f64_ogt_s:
4841 ; AVX512-64: # %bb.0:
4842 ; AVX512-64-NEXT: vcmpltpd %xmm2, %xmm3, %k1
4843 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
4844 ; AVX512-64-NEXT: retq
4864 ; AVX512F-64-LABEL: test_v2f64_ogt_s:
4865 ; AVX512F-64: # %bb.0:
4866 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
4867 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
4868 ; AVX512F-64-NEXT: vcmpltpd %xmm2, %xmm3, %xmm2
4869 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
4870 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
4871 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
4872 ; AVX512F-64-NEXT: vzeroupper
4873 ; AVX512F-64-NEXT: retq
4897 ; SSE-64-LABEL: test_v2f64_oge_s:
4898 ; SSE-64: # %bb.0:
4899 ; SSE-64-NEXT: cmplepd %xmm2, %xmm3
4900 ; SSE-64-NEXT: andpd %xmm3, %xmm0
4901 ; SSE-64-NEXT: andnpd %xmm1, %xmm3
4902 ; SSE-64-NEXT: orpd %xmm3, %xmm0
4903 ; SSE-64-NEXT: retq
4918 ; AVX-64-LABEL: test_v2f64_oge_s:
4919 ; AVX-64: # %bb.0:
4920 ; AVX-64-NEXT: vcmplepd %xmm2, %xmm3, %xmm2
4921 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
4922 ; AVX-64-NEXT: retq
4936 ; AVX512-64-LABEL: test_v2f64_oge_s:
4937 ; AVX512-64: # %bb.0:
4938 ; AVX512-64-NEXT: vcmplepd %xmm2, %xmm3, %k1
4939 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
4940 ; AVX512-64-NEXT: retq
4960 ; AVX512F-64-LABEL: test_v2f64_oge_s:
4961 ; AVX512F-64: # %bb.0:
4962 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
4963 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
4964 ; AVX512F-64-NEXT: vcmplepd %xmm2, %xmm3, %xmm2
4965 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
4966 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
4967 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
4968 ; AVX512F-64-NEXT: vzeroupper
4969 ; AVX512F-64-NEXT: retq
4992 ; SSE-64-LABEL: test_v2f64_olt_s:
4993 ; SSE-64: # %bb.0:
4994 ; SSE-64-NEXT: cmpltpd %xmm3, %xmm2
4995 ; SSE-64-NEXT: andpd %xmm2, %xmm0
4996 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
4997 ; SSE-64-NEXT: orpd %xmm2, %xmm0
4998 ; SSE-64-NEXT: retq
5012 ; AVX-64-LABEL: test_v2f64_olt_s:
5013 ; AVX-64: # %bb.0:
5014 ; AVX-64-NEXT: vcmpltpd %xmm3, %xmm2, %xmm2
5015 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
5016 ; AVX-64-NEXT: retq
5030 ; AVX512-64-LABEL: test_v2f64_olt_s:
5031 ; AVX512-64: # %bb.0:
5032 ; AVX512-64-NEXT: vcmpltpd %xmm3, %xmm2, %k1
5033 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
5034 ; AVX512-64-NEXT: retq
5053 ; AVX512F-64-LABEL: test_v2f64_olt_s:
5054 ; AVX512F-64: # %bb.0:
5055 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
5056 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
5057 ; AVX512F-64-NEXT: vcmpltpd %xmm3, %xmm2, %xmm2
5058 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
5059 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
5060 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
5061 ; AVX512F-64-NEXT: vzeroupper
5062 ; AVX512F-64-NEXT: retq
5085 ; SSE-64-LABEL: test_v2f64_ole_s:
5086 ; SSE-64: # %bb.0:
5087 ; SSE-64-NEXT: cmplepd %xmm3, %xmm2
5088 ; SSE-64-NEXT: andpd %xmm2, %xmm0
5089 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
5090 ; SSE-64-NEXT: orpd %xmm2, %xmm0
5091 ; SSE-64-NEXT: retq
5105 ; AVX-64-LABEL: test_v2f64_ole_s:
5106 ; AVX-64: # %bb.0:
5107 ; AVX-64-NEXT: vcmplepd %xmm3, %xmm2, %xmm2
5108 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
5109 ; AVX-64-NEXT: retq
5123 ; AVX512-64-LABEL: test_v2f64_ole_s:
5124 ; AVX512-64: # %bb.0:
5125 ; AVX512-64-NEXT: vcmplepd %xmm3, %xmm2, %k1
5126 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
5127 ; AVX512-64-NEXT: retq
5146 ; AVX512F-64-LABEL: test_v2f64_ole_s:
5147 ; AVX512F-64: # %bb.0:
5148 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
5149 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
5150 ; AVX512F-64-NEXT: vcmplepd %xmm3, %xmm2, %xmm2
5151 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
5152 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
5153 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
5154 ; AVX512F-64-NEXT: vzeroupper
5155 ; AVX512F-64-NEXT: retq
5184 ; SSE-64-LABEL: test_v2f64_one_s:
5185 ; SSE-64: # %bb.0:
5186 ; SSE-64-NEXT: movapd %xmm2, %xmm4
5187 ; SSE-64-NEXT: cmpltpd %xmm3, %xmm4
5188 ; SSE-64-NEXT: movapd %xmm2, %xmm4
5189 ; SSE-64-NEXT: cmpneqpd %xmm3, %xmm4
5190 ; SSE-64-NEXT: cmpordpd %xmm3, %xmm2
5191 ; SSE-64-NEXT: andpd %xmm4, %xmm2
5192 ; SSE-64-NEXT: andpd %xmm2, %xmm0
5193 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
5194 ; SSE-64-NEXT: orpd %xmm2, %xmm0
5195 ; SSE-64-NEXT: retq
5209 ; AVX-64-LABEL: test_v2f64_one_s:
5210 ; AVX-64: # %bb.0:
5211 ; AVX-64-NEXT: vcmpneq_ospd %xmm3, %xmm2, %xmm2
5212 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
5213 ; AVX-64-NEXT: retq
5227 ; AVX512-64-LABEL: test_v2f64_one_s:
5228 ; AVX512-64: # %bb.0:
5229 ; AVX512-64-NEXT: vcmpneq_ospd %xmm3, %xmm2, %k1
5230 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
5231 ; AVX512-64-NEXT: retq
5250 ; AVX512F-64-LABEL: test_v2f64_one_s:
5251 ; AVX512F-64: # %bb.0:
5252 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
5253 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
5254 ; AVX512F-64-NEXT: vcmpneq_ospd %xmm3, %xmm2, %xmm2
5255 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
5256 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
5257 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
5258 ; AVX512F-64-NEXT: vzeroupper
5259 ; AVX512F-64-NEXT: retq
5285 ; SSE-64-LABEL: test_v2f64_ord_s:
5286 ; SSE-64: # %bb.0:
5287 ; SSE-64-NEXT: movapd %xmm2, %xmm4
5288 ; SSE-64-NEXT: cmpltpd %xmm3, %xmm4
5289 ; SSE-64-NEXT: cmpordpd %xmm3, %xmm2
5290 ; SSE-64-NEXT: andpd %xmm2, %xmm0
5291 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
5292 ; SSE-64-NEXT: orpd %xmm2, %xmm0
5293 ; SSE-64-NEXT: retq
5307 ; AVX-64-LABEL: test_v2f64_ord_s:
5308 ; AVX-64: # %bb.0:
5309 ; AVX-64-NEXT: vcmpord_spd %xmm3, %xmm2, %xmm2
5310 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
5311 ; AVX-64-NEXT: retq
5325 ; AVX512-64-LABEL: test_v2f64_ord_s:
5326 ; AVX512-64: # %bb.0:
5327 ; AVX512-64-NEXT: vcmpord_spd %xmm3, %xmm2, %k1
5328 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
5329 ; AVX512-64-NEXT: retq
5348 ; AVX512F-64-LABEL: test_v2f64_ord_s:
5349 ; AVX512F-64: # %bb.0:
5350 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
5351 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
5352 ; AVX512F-64-NEXT: vcmpord_spd %xmm3, %xmm2, %xmm2
5353 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
5354 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
5355 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
5356 ; AVX512F-64-NEXT: vzeroupper
5357 ; AVX512F-64-NEXT: retq
5386 ; SSE-64-LABEL: test_v2f64_ueq_s:
5387 ; SSE-64: # %bb.0:
5388 ; SSE-64-NEXT: movapd %xmm2, %xmm4
5389 ; SSE-64-NEXT: cmpltpd %xmm3, %xmm4
5390 ; SSE-64-NEXT: movapd %xmm2, %xmm4
5391 ; SSE-64-NEXT: cmpeqpd %xmm3, %xmm4
5392 ; SSE-64-NEXT: cmpunordpd %xmm3, %xmm2
5393 ; SSE-64-NEXT: orpd %xmm4, %xmm2
5394 ; SSE-64-NEXT: andpd %xmm2, %xmm0
5395 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
5396 ; SSE-64-NEXT: orpd %xmm2, %xmm0
5397 ; SSE-64-NEXT: retq
5411 ; AVX-64-LABEL: test_v2f64_ueq_s:
5412 ; AVX-64: # %bb.0:
5413 ; AVX-64-NEXT: vcmpeq_uspd %xmm3, %xmm2, %xmm2
5414 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
5415 ; AVX-64-NEXT: retq
5429 ; AVX512-64-LABEL: test_v2f64_ueq_s:
5430 ; AVX512-64: # %bb.0:
5431 ; AVX512-64-NEXT: vcmpeq_uspd %xmm3, %xmm2, %k1
5432 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
5433 ; AVX512-64-NEXT: retq
5452 ; AVX512F-64-LABEL: test_v2f64_ueq_s:
5453 ; AVX512F-64: # %bb.0:
5454 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
5455 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
5456 ; AVX512F-64-NEXT: vcmpeq_uspd %xmm3, %xmm2, %xmm2
5457 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
5458 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
5459 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
5460 ; AVX512F-64-NEXT: vzeroupper
5461 ; AVX512F-64-NEXT: retq
5484 ; SSE-64-LABEL: test_v2f64_ugt_s:
5485 ; SSE-64: # %bb.0:
5486 ; SSE-64-NEXT: cmpnlepd %xmm3, %xmm2
5487 ; SSE-64-NEXT: andpd %xmm2, %xmm0
5488 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
5489 ; SSE-64-NEXT: orpd %xmm2, %xmm0
5490 ; SSE-64-NEXT: retq
5504 ; AVX-64-LABEL: test_v2f64_ugt_s:
5505 ; AVX-64: # %bb.0:
5506 ; AVX-64-NEXT: vcmpnlepd %xmm3, %xmm2, %xmm2
5507 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
5508 ; AVX-64-NEXT: retq
5522 ; AVX512-64-LABEL: test_v2f64_ugt_s:
5523 ; AVX512-64: # %bb.0:
5524 ; AVX512-64-NEXT: vcmpnlepd %xmm3, %xmm2, %k1
5525 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
5526 ; AVX512-64-NEXT: retq
5545 ; AVX512F-64-LABEL: test_v2f64_ugt_s:
5546 ; AVX512F-64: # %bb.0:
5547 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
5548 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
5549 ; AVX512F-64-NEXT: vcmpnlepd %xmm3, %xmm2, %xmm2
5550 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
5551 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
5552 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
5553 ; AVX512F-64-NEXT: vzeroupper
5554 ; AVX512F-64-NEXT: retq
5577 ; SSE-64-LABEL: test_v2f64_uge_s:
5578 ; SSE-64: # %bb.0:
5579 ; SSE-64-NEXT: cmpnltpd %xmm3, %xmm2
5580 ; SSE-64-NEXT: andpd %xmm2, %xmm0
5581 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
5582 ; SSE-64-NEXT: orpd %xmm2, %xmm0
5583 ; SSE-64-NEXT: retq
5597 ; AVX-64-LABEL: test_v2f64_uge_s:
5598 ; AVX-64: # %bb.0:
5599 ; AVX-64-NEXT: vcmpnltpd %xmm3, %xmm2, %xmm2
5600 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
5601 ; AVX-64-NEXT: retq
5615 ; AVX512-64-LABEL: test_v2f64_uge_s:
5616 ; AVX512-64: # %bb.0:
5617 ; AVX512-64-NEXT: vcmpnltpd %xmm3, %xmm2, %k1
5618 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
5619 ; AVX512-64-NEXT: retq
5638 ; AVX512F-64-LABEL: test_v2f64_uge_s:
5639 ; AVX512F-64: # %bb.0:
5640 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
5641 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
5642 ; AVX512F-64-NEXT: vcmpnltpd %xmm3, %xmm2, %xmm2
5643 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
5644 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
5645 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
5646 ; AVX512F-64-NEXT: vzeroupper
5647 ; AVX512F-64-NEXT: retq
5671 ; SSE-64-LABEL: test_v2f64_ult_s:
5672 ; SSE-64: # %bb.0:
5673 ; SSE-64-NEXT: cmpnlepd %xmm2, %xmm3
5674 ; SSE-64-NEXT: andpd %xmm3, %xmm0
5675 ; SSE-64-NEXT: andnpd %xmm1, %xmm3
5676 ; SSE-64-NEXT: orpd %xmm3, %xmm0
5677 ; SSE-64-NEXT: retq
5692 ; AVX-64-LABEL: test_v2f64_ult_s:
5693 ; AVX-64: # %bb.0:
5694 ; AVX-64-NEXT: vcmpnlepd %xmm2, %xmm3, %xmm2
5695 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
5696 ; AVX-64-NEXT: retq
5710 ; AVX512-64-LABEL: test_v2f64_ult_s:
5711 ; AVX512-64: # %bb.0:
5712 ; AVX512-64-NEXT: vcmpnlepd %xmm2, %xmm3, %k1
5713 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
5714 ; AVX512-64-NEXT: retq
5734 ; AVX512F-64-LABEL: test_v2f64_ult_s:
5735 ; AVX512F-64: # %bb.0:
5736 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
5737 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
5738 ; AVX512F-64-NEXT: vcmpnlepd %xmm2, %xmm3, %xmm2
5739 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
5740 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
5741 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
5742 ; AVX512F-64-NEXT: vzeroupper
5743 ; AVX512F-64-NEXT: retq
5767 ; SSE-64-LABEL: test_v2f64_ule_s:
5768 ; SSE-64: # %bb.0:
5769 ; SSE-64-NEXT: cmpnltpd %xmm2, %xmm3
5770 ; SSE-64-NEXT: andpd %xmm3, %xmm0
5771 ; SSE-64-NEXT: andnpd %xmm1, %xmm3
5772 ; SSE-64-NEXT: orpd %xmm3, %xmm0
5773 ; SSE-64-NEXT: retq
5788 ; AVX-64-LABEL: test_v2f64_ule_s:
5789 ; AVX-64: # %bb.0:
5790 ; AVX-64-NEXT: vcmpnltpd %xmm2, %xmm3, %xmm2
5791 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
5792 ; AVX-64-NEXT: retq
5806 ; AVX512-64-LABEL: test_v2f64_ule_s:
5807 ; AVX512-64: # %bb.0:
5808 ; AVX512-64-NEXT: vcmpnltpd %xmm2, %xmm3, %k1
5809 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
5810 ; AVX512-64-NEXT: retq
5830 ; AVX512F-64-LABEL: test_v2f64_ule_s:
5831 ; AVX512F-64: # %bb.0:
5832 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
5833 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
5834 ; AVX512F-64-NEXT: vcmpnltpd %xmm2, %xmm3, %xmm2
5835 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
5836 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
5837 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
5838 ; AVX512F-64-NEXT: vzeroupper
5839 ; AVX512F-64-NEXT: retq
5865 ; SSE-64-LABEL: test_v2f64_une_s:
5866 ; SSE-64: # %bb.0:
5867 ; SSE-64-NEXT: movapd %xmm2, %xmm4
5868 ; SSE-64-NEXT: cmpltpd %xmm3, %xmm4
5869 ; SSE-64-NEXT: cmpneqpd %xmm3, %xmm2
5870 ; SSE-64-NEXT: andpd %xmm2, %xmm0
5871 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
5872 ; SSE-64-NEXT: orpd %xmm2, %xmm0
5873 ; SSE-64-NEXT: retq
5887 ; AVX-64-LABEL: test_v2f64_une_s:
5888 ; AVX-64: # %bb.0:
5889 ; AVX-64-NEXT: vcmpneq_uspd %xmm3, %xmm2, %xmm2
5890 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
5891 ; AVX-64-NEXT: retq
5905 ; AVX512-64-LABEL: test_v2f64_une_s:
5906 ; AVX512-64: # %bb.0:
5907 ; AVX512-64-NEXT: vcmpneq_uspd %xmm3, %xmm2, %k1
5908 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
5909 ; AVX512-64-NEXT: retq
5928 ; AVX512F-64-LABEL: test_v2f64_une_s:
5929 ; AVX512F-64: # %bb.0:
5930 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
5931 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
5932 ; AVX512F-64-NEXT: vcmpneq_uspd %xmm3, %xmm2, %xmm2
5933 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
5934 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
5935 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
5936 ; AVX512F-64-NEXT: vzeroupper
5937 ; AVX512F-64-NEXT: retq
5963 ; SSE-64-LABEL: test_v2f64_uno_s:
5964 ; SSE-64: # %bb.0:
5965 ; SSE-64-NEXT: movapd %xmm2, %xmm4
5966 ; SSE-64-NEXT: cmpltpd %xmm3, %xmm4
5967 ; SSE-64-NEXT: cmpunordpd %xmm3, %xmm2
5968 ; SSE-64-NEXT: andpd %xmm2, %xmm0
5969 ; SSE-64-NEXT: andnpd %xmm1, %xmm2
5970 ; SSE-64-NEXT: orpd %xmm2, %xmm0
5971 ; SSE-64-NEXT: retq
5985 ; AVX-64-LABEL: test_v2f64_uno_s:
5986 ; AVX-64: # %bb.0:
5987 ; AVX-64-NEXT: vcmpunord_spd %xmm3, %xmm2, %xmm2
5988 ; AVX-64-NEXT: vblendvpd %xmm2, %xmm0, %xmm1, %xmm0
5989 ; AVX-64-NEXT: retq
6003 ; AVX512-64-LABEL: test_v2f64_uno_s:
6004 ; AVX512-64: # %bb.0:
6005 ; AVX512-64-NEXT: vcmpunord_spd %xmm3, %xmm2, %k1
6006 ; AVX512-64-NEXT: vpblendmq %xmm0, %xmm1, %xmm0 {%k1}
6007 ; AVX512-64-NEXT: retq
6026 ; AVX512F-64-LABEL: test_v2f64_uno_s:
6027 ; AVX512F-64: # %bb.0:
6028 ; AVX512F-64-NEXT: # kill: def $xmm1 killed $xmm1 def $zmm1
6029 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 def $zmm0
6030 ; AVX512F-64-NEXT: vcmpunord_spd %xmm3, %xmm2, %xmm2
6031 ; AVX512F-64-NEXT: vptestmq %zmm2, %zmm2, %k1
6032 ; AVX512F-64-NEXT: vpblendmq %zmm0, %zmm1, %zmm0 {%k1}
6033 ; AVX512F-64-NEXT: # kill: def $xmm0 killed $xmm0 killed $zmm0
6034 ; AVX512F-64-NEXT: vzeroupper
6035 ; AVX512F-64-NEXT: retq