• Home
  • Raw
  • Download

Lines Matching refs:SSE41

3 …: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse4.1 | FileCheck %s --check-prefixes=SSE,SSE41
36 ; SSE41-LABEL: test_v2f32:
37 ; SSE41: # %bb.0:
38 ; SSE41-NEXT: movshdup {{.*#+}} xmm2 = xmm0[1,1,3,3]
39 ; SSE41-NEXT: movaps %xmm0, %xmm1
40 ; SSE41-NEXT: cmpunordss %xmm0, %xmm1
41 ; SSE41-NEXT: movaps %xmm1, %xmm3
42 ; SSE41-NEXT: andps %xmm2, %xmm3
43 ; SSE41-NEXT: maxss %xmm0, %xmm2
44 ; SSE41-NEXT: andnps %xmm2, %xmm1
45 ; SSE41-NEXT: orps %xmm3, %xmm1
46 ; SSE41-NEXT: movaps %xmm1, %xmm0
47 ; SSE41-NEXT: retq
92 ; SSE41-LABEL: test_v3f32:
93 ; SSE41: # %bb.0:
94 ; SSE41-NEXT: movshdup {{.*#+}} xmm2 = xmm0[1,1,3,3]
95 ; SSE41-NEXT: movaps %xmm0, %xmm1
96 ; SSE41-NEXT: cmpunordss %xmm0, %xmm1
97 ; SSE41-NEXT: movaps %xmm1, %xmm3
98 ; SSE41-NEXT: andps %xmm2, %xmm3
99 ; SSE41-NEXT: maxss %xmm0, %xmm2
100 ; SSE41-NEXT: andnps %xmm2, %xmm1
101 ; SSE41-NEXT: orps %xmm3, %xmm1
102 ; SSE41-NEXT: movhlps {{.*#+}} xmm0 = xmm0[1,1]
103 ; SSE41-NEXT: movaps %xmm0, %xmm2
104 ; SSE41-NEXT: maxss %xmm1, %xmm2
105 ; SSE41-NEXT: cmpunordss %xmm1, %xmm1
106 ; SSE41-NEXT: movaps %xmm1, %xmm3
107 ; SSE41-NEXT: andnps %xmm2, %xmm3
108 ; SSE41-NEXT: andps %xmm0, %xmm1
109 ; SSE41-NEXT: orps %xmm3, %xmm1
110 ; SSE41-NEXT: movaps %xmm1, %xmm0
111 ; SSE41-NEXT: retq
172 ; SSE41-LABEL: test_v4f32:
173 ; SSE41: # %bb.0:
174 ; SSE41-NEXT: movaps %xmm0, %xmm2
175 ; SSE41-NEXT: movshdup {{.*#+}} xmm3 = xmm0[1,1,3,3]
176 ; SSE41-NEXT: movaps %xmm0, %xmm1
177 ; SSE41-NEXT: cmpunordss %xmm0, %xmm1
178 ; SSE41-NEXT: movaps %xmm1, %xmm4
179 ; SSE41-NEXT: andps %xmm3, %xmm4
180 ; SSE41-NEXT: maxss %xmm0, %xmm3
181 ; SSE41-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
182 ; SSE41-NEXT: movhlps {{.*#+}} xmm2 = xmm2[1,1]
183 ; SSE41-NEXT: andnps %xmm3, %xmm1
184 ; SSE41-NEXT: orps %xmm4, %xmm1
185 ; SSE41-NEXT: movaps %xmm2, %xmm3
186 ; SSE41-NEXT: maxss %xmm1, %xmm3
187 ; SSE41-NEXT: cmpunordss %xmm1, %xmm1
188 ; SSE41-NEXT: movaps %xmm1, %xmm4
189 ; SSE41-NEXT: andnps %xmm3, %xmm4
190 ; SSE41-NEXT: andps %xmm2, %xmm1
191 ; SSE41-NEXT: orps %xmm4, %xmm1
192 ; SSE41-NEXT: movaps %xmm0, %xmm2
193 ; SSE41-NEXT: maxss %xmm1, %xmm2
194 ; SSE41-NEXT: cmpunordss %xmm1, %xmm1
195 ; SSE41-NEXT: movaps %xmm1, %xmm3
196 ; SSE41-NEXT: andnps %xmm2, %xmm3
197 ; SSE41-NEXT: andps %xmm0, %xmm1
198 ; SSE41-NEXT: orps %xmm3, %xmm1
199 ; SSE41-NEXT: movaps %xmm1, %xmm0
200 ; SSE41-NEXT: retq
273 ; SSE41-LABEL: test_v8f32:
274 ; SSE41: # %bb.0:
275 ; SSE41-NEXT: movaps %xmm1, %xmm2
276 ; SSE41-NEXT: maxps %xmm0, %xmm2
277 ; SSE41-NEXT: cmpunordps %xmm0, %xmm0
278 ; SSE41-NEXT: blendvps %xmm0, %xmm1, %xmm2
279 ; SSE41-NEXT: movshdup {{.*#+}} xmm1 = xmm2[1,1,3,3]
280 ; SSE41-NEXT: movaps %xmm2, %xmm0
281 ; SSE41-NEXT: cmpunordss %xmm2, %xmm0
282 ; SSE41-NEXT: movaps %xmm0, %xmm3
283 ; SSE41-NEXT: andps %xmm1, %xmm3
284 ; SSE41-NEXT: maxss %xmm2, %xmm1
285 ; SSE41-NEXT: andnps %xmm1, %xmm0
286 ; SSE41-NEXT: orps %xmm3, %xmm0
287 ; SSE41-NEXT: movaps %xmm2, %xmm1
288 ; SSE41-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
289 ; SSE41-NEXT: movaps %xmm1, %xmm3
290 ; SSE41-NEXT: maxss %xmm0, %xmm3
291 ; SSE41-NEXT: cmpunordss %xmm0, %xmm0
292 ; SSE41-NEXT: movaps %xmm0, %xmm4
293 ; SSE41-NEXT: andnps %xmm3, %xmm4
294 ; SSE41-NEXT: andps %xmm1, %xmm0
295 ; SSE41-NEXT: orps %xmm4, %xmm0
296 ; SSE41-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3,3,3]
297 ; SSE41-NEXT: movaps %xmm2, %xmm1
298 ; SSE41-NEXT: maxss %xmm0, %xmm1
299 ; SSE41-NEXT: cmpunordss %xmm0, %xmm0
300 ; SSE41-NEXT: movaps %xmm0, %xmm3
301 ; SSE41-NEXT: andnps %xmm1, %xmm3
302 ; SSE41-NEXT: andps %xmm2, %xmm0
303 ; SSE41-NEXT: orps %xmm3, %xmm0
304 ; SSE41-NEXT: retq
456 ; SSE41-LABEL: test_v16f32:
457 ; SSE41: # %bb.0:
458 ; SSE41-NEXT: movaps %xmm2, %xmm4
459 ; SSE41-NEXT: maxps %xmm0, %xmm4
460 ; SSE41-NEXT: cmpunordps %xmm0, %xmm0
461 ; SSE41-NEXT: blendvps %xmm0, %xmm2, %xmm4
462 ; SSE41-NEXT: movaps %xmm3, %xmm2
463 ; SSE41-NEXT: maxps %xmm1, %xmm2
464 ; SSE41-NEXT: cmpunordps %xmm1, %xmm1
465 ; SSE41-NEXT: movaps %xmm1, %xmm0
466 ; SSE41-NEXT: blendvps %xmm0, %xmm3, %xmm2
467 ; SSE41-NEXT: movaps %xmm2, %xmm1
468 ; SSE41-NEXT: maxps %xmm4, %xmm1
469 ; SSE41-NEXT: cmpunordps %xmm4, %xmm4
470 ; SSE41-NEXT: movaps %xmm4, %xmm0
471 ; SSE41-NEXT: blendvps %xmm0, %xmm2, %xmm1
472 ; SSE41-NEXT: movshdup {{.*#+}} xmm2 = xmm1[1,1,3,3]
473 ; SSE41-NEXT: movaps %xmm1, %xmm0
474 ; SSE41-NEXT: cmpunordss %xmm1, %xmm0
475 ; SSE41-NEXT: movaps %xmm0, %xmm3
476 ; SSE41-NEXT: andps %xmm2, %xmm3
477 ; SSE41-NEXT: maxss %xmm1, %xmm2
478 ; SSE41-NEXT: andnps %xmm2, %xmm0
479 ; SSE41-NEXT: orps %xmm3, %xmm0
480 ; SSE41-NEXT: movaps %xmm1, %xmm2
481 ; SSE41-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
482 ; SSE41-NEXT: movaps %xmm2, %xmm3
483 ; SSE41-NEXT: maxss %xmm0, %xmm3
484 ; SSE41-NEXT: cmpunordss %xmm0, %xmm0
485 ; SSE41-NEXT: movaps %xmm0, %xmm4
486 ; SSE41-NEXT: andnps %xmm3, %xmm4
487 ; SSE41-NEXT: andps %xmm2, %xmm0
488 ; SSE41-NEXT: orps %xmm4, %xmm0
489 ; SSE41-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,3,3,3]
490 ; SSE41-NEXT: movaps %xmm1, %xmm2
491 ; SSE41-NEXT: maxss %xmm0, %xmm2
492 ; SSE41-NEXT: cmpunordss %xmm0, %xmm0
493 ; SSE41-NEXT: movaps %xmm0, %xmm3
494 ; SSE41-NEXT: andnps %xmm2, %xmm3
495 ; SSE41-NEXT: andps %xmm1, %xmm0
496 ; SSE41-NEXT: orps %xmm3, %xmm0
497 ; SSE41-NEXT: retq
727 ; SSE41-LABEL: test_v4f64:
728 ; SSE41: # %bb.0:
729 ; SSE41-NEXT: movapd %xmm1, %xmm2
730 ; SSE41-NEXT: maxpd %xmm0, %xmm2
731 ; SSE41-NEXT: cmpunordpd %xmm0, %xmm0
732 ; SSE41-NEXT: blendvpd %xmm0, %xmm1, %xmm2
733 ; SSE41-NEXT: movapd %xmm2, %xmm1
734 ; SSE41-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
735 ; SSE41-NEXT: movapd %xmm2, %xmm0
736 ; SSE41-NEXT: cmpunordsd %xmm2, %xmm0
737 ; SSE41-NEXT: movapd %xmm0, %xmm3
738 ; SSE41-NEXT: andpd %xmm1, %xmm3
739 ; SSE41-NEXT: maxsd %xmm2, %xmm1
740 ; SSE41-NEXT: andnpd %xmm1, %xmm0
741 ; SSE41-NEXT: orpd %xmm3, %xmm0
742 ; SSE41-NEXT: retq
813 ; SSE41-LABEL: test_v8f64:
814 ; SSE41: # %bb.0:
815 ; SSE41-NEXT: movapd %xmm2, %xmm4
816 ; SSE41-NEXT: maxpd %xmm0, %xmm4
817 ; SSE41-NEXT: cmpunordpd %xmm0, %xmm0
818 ; SSE41-NEXT: blendvpd %xmm0, %xmm2, %xmm4
819 ; SSE41-NEXT: movapd %xmm3, %xmm2
820 ; SSE41-NEXT: maxpd %xmm1, %xmm2
821 ; SSE41-NEXT: cmpunordpd %xmm1, %xmm1
822 ; SSE41-NEXT: movapd %xmm1, %xmm0
823 ; SSE41-NEXT: blendvpd %xmm0, %xmm3, %xmm2
824 ; SSE41-NEXT: movapd %xmm2, %xmm1
825 ; SSE41-NEXT: maxpd %xmm4, %xmm1
826 ; SSE41-NEXT: cmpunordpd %xmm4, %xmm4
827 ; SSE41-NEXT: movapd %xmm4, %xmm0
828 ; SSE41-NEXT: blendvpd %xmm0, %xmm2, %xmm1
829 ; SSE41-NEXT: movapd %xmm1, %xmm2
830 ; SSE41-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
831 ; SSE41-NEXT: movapd %xmm1, %xmm0
832 ; SSE41-NEXT: cmpunordsd %xmm1, %xmm0
833 ; SSE41-NEXT: movapd %xmm0, %xmm3
834 ; SSE41-NEXT: andpd %xmm2, %xmm3
835 ; SSE41-NEXT: maxsd %xmm1, %xmm2
836 ; SSE41-NEXT: andnpd %xmm2, %xmm0
837 ; SSE41-NEXT: orpd %xmm3, %xmm0
838 ; SSE41-NEXT: retq
985 ; SSE41-LABEL: test_v16f64:
986 ; SSE41: # %bb.0:
987 ; SSE41-NEXT: movapd %xmm3, %xmm8
988 ; SSE41-NEXT: movapd %xmm4, %xmm3
989 ; SSE41-NEXT: maxpd %xmm0, %xmm3
990 ; SSE41-NEXT: cmpunordpd %xmm0, %xmm0
991 ; SSE41-NEXT: blendvpd %xmm0, %xmm4, %xmm3
992 ; SSE41-NEXT: movapd %xmm6, %xmm4
993 ; SSE41-NEXT: maxpd %xmm2, %xmm4
994 ; SSE41-NEXT: cmpunordpd %xmm2, %xmm2
995 ; SSE41-NEXT: movapd %xmm2, %xmm0
996 ; SSE41-NEXT: blendvpd %xmm0, %xmm6, %xmm4
997 ; SSE41-NEXT: movapd %xmm4, %xmm2
998 ; SSE41-NEXT: maxpd %xmm3, %xmm2
999 ; SSE41-NEXT: cmpunordpd %xmm3, %xmm3
1000 ; SSE41-NEXT: movapd %xmm3, %xmm0
1001 ; SSE41-NEXT: blendvpd %xmm0, %xmm4, %xmm2
1002 ; SSE41-NEXT: movapd %xmm5, %xmm3
1003 ; SSE41-NEXT: maxpd %xmm1, %xmm3
1004 ; SSE41-NEXT: cmpunordpd %xmm1, %xmm1
1005 ; SSE41-NEXT: movapd %xmm1, %xmm0
1006 ; SSE41-NEXT: blendvpd %xmm0, %xmm5, %xmm3
1007 ; SSE41-NEXT: movapd %xmm7, %xmm1
1008 ; SSE41-NEXT: maxpd %xmm8, %xmm1
1009 ; SSE41-NEXT: cmpunordpd %xmm8, %xmm8
1010 ; SSE41-NEXT: movapd %xmm8, %xmm0
1011 ; SSE41-NEXT: blendvpd %xmm0, %xmm7, %xmm1
1012 ; SSE41-NEXT: movapd %xmm1, %xmm4
1013 ; SSE41-NEXT: maxpd %xmm3, %xmm4
1014 ; SSE41-NEXT: cmpunordpd %xmm3, %xmm3
1015 ; SSE41-NEXT: movapd %xmm3, %xmm0
1016 ; SSE41-NEXT: blendvpd %xmm0, %xmm1, %xmm4
1017 ; SSE41-NEXT: movapd %xmm4, %xmm1
1018 ; SSE41-NEXT: maxpd %xmm2, %xmm1
1019 ; SSE41-NEXT: cmpunordpd %xmm2, %xmm2
1020 ; SSE41-NEXT: movapd %xmm2, %xmm0
1021 ; SSE41-NEXT: blendvpd %xmm0, %xmm4, %xmm1
1022 ; SSE41-NEXT: movapd %xmm1, %xmm2
1023 ; SSE41-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1024 ; SSE41-NEXT: movapd %xmm1, %xmm0
1025 ; SSE41-NEXT: cmpunordsd %xmm1, %xmm0
1026 ; SSE41-NEXT: movapd %xmm0, %xmm3
1027 ; SSE41-NEXT: andpd %xmm2, %xmm3
1028 ; SSE41-NEXT: maxsd %xmm1, %xmm2
1029 ; SSE41-NEXT: andnpd %xmm2, %xmm0
1030 ; SSE41-NEXT: orpd %xmm3, %xmm0
1031 ; SSE41-NEXT: retq