Lines Matching refs:SSE41
3 …: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse4.1 | FileCheck %s --check-prefixes=SSE,SSE41
28 ; SSE41-LABEL: test_v2f32:
29 ; SSE41: # %bb.0:
30 ; SSE41-NEXT: movshdup {{.*#+}} xmm2 = xmm0[1,1,3,3]
31 ; SSE41-NEXT: movaps %xmm0, %xmm1
32 ; SSE41-NEXT: cmpunordss %xmm0, %xmm1
33 ; SSE41-NEXT: movaps %xmm1, %xmm3
34 ; SSE41-NEXT: andps %xmm2, %xmm3
35 ; SSE41-NEXT: minss %xmm0, %xmm2
36 ; SSE41-NEXT: andnps %xmm2, %xmm1
37 ; SSE41-NEXT: orps %xmm3, %xmm1
38 ; SSE41-NEXT: movaps %xmm1, %xmm0
39 ; SSE41-NEXT: retq
93 ; SSE41-LABEL: test_v4f32:
94 ; SSE41: # %bb.0:
95 ; SSE41-NEXT: movaps %xmm0, %xmm2
96 ; SSE41-NEXT: movshdup {{.*#+}} xmm3 = xmm0[1,1,3,3]
97 ; SSE41-NEXT: movaps %xmm0, %xmm1
98 ; SSE41-NEXT: cmpunordss %xmm0, %xmm1
99 ; SSE41-NEXT: movaps %xmm1, %xmm4
100 ; SSE41-NEXT: andps %xmm3, %xmm4
101 ; SSE41-NEXT: minss %xmm0, %xmm3
102 ; SSE41-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
103 ; SSE41-NEXT: movhlps {{.*#+}} xmm2 = xmm2[1,1]
104 ; SSE41-NEXT: andnps %xmm3, %xmm1
105 ; SSE41-NEXT: orps %xmm4, %xmm1
106 ; SSE41-NEXT: movaps %xmm2, %xmm3
107 ; SSE41-NEXT: minss %xmm1, %xmm3
108 ; SSE41-NEXT: cmpunordss %xmm1, %xmm1
109 ; SSE41-NEXT: movaps %xmm1, %xmm4
110 ; SSE41-NEXT: andnps %xmm3, %xmm4
111 ; SSE41-NEXT: andps %xmm2, %xmm1
112 ; SSE41-NEXT: orps %xmm4, %xmm1
113 ; SSE41-NEXT: movaps %xmm0, %xmm2
114 ; SSE41-NEXT: minss %xmm1, %xmm2
115 ; SSE41-NEXT: cmpunordss %xmm1, %xmm1
116 ; SSE41-NEXT: movaps %xmm1, %xmm3
117 ; SSE41-NEXT: andnps %xmm2, %xmm3
118 ; SSE41-NEXT: andps %xmm0, %xmm1
119 ; SSE41-NEXT: orps %xmm3, %xmm1
120 ; SSE41-NEXT: movaps %xmm1, %xmm0
121 ; SSE41-NEXT: retq
194 ; SSE41-LABEL: test_v8f32:
195 ; SSE41: # %bb.0:
196 ; SSE41-NEXT: movaps %xmm1, %xmm2
197 ; SSE41-NEXT: minps %xmm0, %xmm2
198 ; SSE41-NEXT: cmpunordps %xmm0, %xmm0
199 ; SSE41-NEXT: blendvps %xmm0, %xmm1, %xmm2
200 ; SSE41-NEXT: movshdup {{.*#+}} xmm1 = xmm2[1,1,3,3]
201 ; SSE41-NEXT: movaps %xmm2, %xmm0
202 ; SSE41-NEXT: cmpunordss %xmm2, %xmm0
203 ; SSE41-NEXT: movaps %xmm0, %xmm3
204 ; SSE41-NEXT: andps %xmm1, %xmm3
205 ; SSE41-NEXT: minss %xmm2, %xmm1
206 ; SSE41-NEXT: andnps %xmm1, %xmm0
207 ; SSE41-NEXT: orps %xmm3, %xmm0
208 ; SSE41-NEXT: movaps %xmm2, %xmm1
209 ; SSE41-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
210 ; SSE41-NEXT: movaps %xmm1, %xmm3
211 ; SSE41-NEXT: minss %xmm0, %xmm3
212 ; SSE41-NEXT: cmpunordss %xmm0, %xmm0
213 ; SSE41-NEXT: movaps %xmm0, %xmm4
214 ; SSE41-NEXT: andnps %xmm3, %xmm4
215 ; SSE41-NEXT: andps %xmm1, %xmm0
216 ; SSE41-NEXT: orps %xmm4, %xmm0
217 ; SSE41-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3,3,3]
218 ; SSE41-NEXT: movaps %xmm2, %xmm1
219 ; SSE41-NEXT: minss %xmm0, %xmm1
220 ; SSE41-NEXT: cmpunordss %xmm0, %xmm0
221 ; SSE41-NEXT: movaps %xmm0, %xmm3
222 ; SSE41-NEXT: andnps %xmm1, %xmm3
223 ; SSE41-NEXT: andps %xmm2, %xmm0
224 ; SSE41-NEXT: orps %xmm3, %xmm0
225 ; SSE41-NEXT: retq
377 ; SSE41-LABEL: test_v16f32:
378 ; SSE41: # %bb.0:
379 ; SSE41-NEXT: movaps %xmm2, %xmm4
380 ; SSE41-NEXT: minps %xmm0, %xmm4
381 ; SSE41-NEXT: cmpunordps %xmm0, %xmm0
382 ; SSE41-NEXT: blendvps %xmm0, %xmm2, %xmm4
383 ; SSE41-NEXT: movaps %xmm3, %xmm2
384 ; SSE41-NEXT: minps %xmm1, %xmm2
385 ; SSE41-NEXT: cmpunordps %xmm1, %xmm1
386 ; SSE41-NEXT: movaps %xmm1, %xmm0
387 ; SSE41-NEXT: blendvps %xmm0, %xmm3, %xmm2
388 ; SSE41-NEXT: movaps %xmm2, %xmm1
389 ; SSE41-NEXT: minps %xmm4, %xmm1
390 ; SSE41-NEXT: cmpunordps %xmm4, %xmm4
391 ; SSE41-NEXT: movaps %xmm4, %xmm0
392 ; SSE41-NEXT: blendvps %xmm0, %xmm2, %xmm1
393 ; SSE41-NEXT: movshdup {{.*#+}} xmm2 = xmm1[1,1,3,3]
394 ; SSE41-NEXT: movaps %xmm1, %xmm0
395 ; SSE41-NEXT: cmpunordss %xmm1, %xmm0
396 ; SSE41-NEXT: movaps %xmm0, %xmm3
397 ; SSE41-NEXT: andps %xmm2, %xmm3
398 ; SSE41-NEXT: minss %xmm1, %xmm2
399 ; SSE41-NEXT: andnps %xmm2, %xmm0
400 ; SSE41-NEXT: orps %xmm3, %xmm0
401 ; SSE41-NEXT: movaps %xmm1, %xmm2
402 ; SSE41-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
403 ; SSE41-NEXT: movaps %xmm2, %xmm3
404 ; SSE41-NEXT: minss %xmm0, %xmm3
405 ; SSE41-NEXT: cmpunordss %xmm0, %xmm0
406 ; SSE41-NEXT: movaps %xmm0, %xmm4
407 ; SSE41-NEXT: andnps %xmm3, %xmm4
408 ; SSE41-NEXT: andps %xmm2, %xmm0
409 ; SSE41-NEXT: orps %xmm4, %xmm0
410 ; SSE41-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,3,3,3]
411 ; SSE41-NEXT: movaps %xmm1, %xmm2
412 ; SSE41-NEXT: minss %xmm0, %xmm2
413 ; SSE41-NEXT: cmpunordss %xmm0, %xmm0
414 ; SSE41-NEXT: movaps %xmm0, %xmm3
415 ; SSE41-NEXT: andnps %xmm2, %xmm3
416 ; SSE41-NEXT: andps %xmm1, %xmm0
417 ; SSE41-NEXT: orps %xmm3, %xmm0
418 ; SSE41-NEXT: retq
650 ; SSE41-LABEL: test_v3f64:
651 ; SSE41: # %bb.0:
652 ; SSE41-NEXT: unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0]
653 ; SSE41-NEXT: blendpd {{.*#+}} xmm2 = xmm2[0],mem[1]
654 ; SSE41-NEXT: movapd %xmm2, %xmm1
655 ; SSE41-NEXT: minpd %xmm0, %xmm1
656 ; SSE41-NEXT: cmpunordpd %xmm0, %xmm0
657 ; SSE41-NEXT: blendvpd %xmm0, %xmm2, %xmm1
658 ; SSE41-NEXT: movapd %xmm1, %xmm2
659 ; SSE41-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
660 ; SSE41-NEXT: movapd %xmm1, %xmm0
661 ; SSE41-NEXT: cmpunordsd %xmm1, %xmm0
662 ; SSE41-NEXT: movapd %xmm0, %xmm3
663 ; SSE41-NEXT: andpd %xmm2, %xmm3
664 ; SSE41-NEXT: minsd %xmm1, %xmm2
665 ; SSE41-NEXT: andnpd %xmm2, %xmm0
666 ; SSE41-NEXT: orpd %xmm3, %xmm0
667 ; SSE41-NEXT: retq
718 ; SSE41-LABEL: test_v4f64:
719 ; SSE41: # %bb.0:
720 ; SSE41-NEXT: movapd %xmm1, %xmm2
721 ; SSE41-NEXT: minpd %xmm0, %xmm2
722 ; SSE41-NEXT: cmpunordpd %xmm0, %xmm0
723 ; SSE41-NEXT: blendvpd %xmm0, %xmm1, %xmm2
724 ; SSE41-NEXT: movapd %xmm2, %xmm1
725 ; SSE41-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
726 ; SSE41-NEXT: movapd %xmm2, %xmm0
727 ; SSE41-NEXT: cmpunordsd %xmm2, %xmm0
728 ; SSE41-NEXT: movapd %xmm0, %xmm3
729 ; SSE41-NEXT: andpd %xmm1, %xmm3
730 ; SSE41-NEXT: minsd %xmm2, %xmm1
731 ; SSE41-NEXT: andnpd %xmm1, %xmm0
732 ; SSE41-NEXT: orpd %xmm3, %xmm0
733 ; SSE41-NEXT: retq
804 ; SSE41-LABEL: test_v8f64:
805 ; SSE41: # %bb.0:
806 ; SSE41-NEXT: movapd %xmm2, %xmm4
807 ; SSE41-NEXT: minpd %xmm0, %xmm4
808 ; SSE41-NEXT: cmpunordpd %xmm0, %xmm0
809 ; SSE41-NEXT: blendvpd %xmm0, %xmm2, %xmm4
810 ; SSE41-NEXT: movapd %xmm3, %xmm2
811 ; SSE41-NEXT: minpd %xmm1, %xmm2
812 ; SSE41-NEXT: cmpunordpd %xmm1, %xmm1
813 ; SSE41-NEXT: movapd %xmm1, %xmm0
814 ; SSE41-NEXT: blendvpd %xmm0, %xmm3, %xmm2
815 ; SSE41-NEXT: movapd %xmm2, %xmm1
816 ; SSE41-NEXT: minpd %xmm4, %xmm1
817 ; SSE41-NEXT: cmpunordpd %xmm4, %xmm4
818 ; SSE41-NEXT: movapd %xmm4, %xmm0
819 ; SSE41-NEXT: blendvpd %xmm0, %xmm2, %xmm1
820 ; SSE41-NEXT: movapd %xmm1, %xmm2
821 ; SSE41-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
822 ; SSE41-NEXT: movapd %xmm1, %xmm0
823 ; SSE41-NEXT: cmpunordsd %xmm1, %xmm0
824 ; SSE41-NEXT: movapd %xmm0, %xmm3
825 ; SSE41-NEXT: andpd %xmm2, %xmm3
826 ; SSE41-NEXT: minsd %xmm1, %xmm2
827 ; SSE41-NEXT: andnpd %xmm2, %xmm0
828 ; SSE41-NEXT: orpd %xmm3, %xmm0
829 ; SSE41-NEXT: retq
976 ; SSE41-LABEL: test_v16f64:
977 ; SSE41: # %bb.0:
978 ; SSE41-NEXT: movapd %xmm3, %xmm8
979 ; SSE41-NEXT: movapd %xmm4, %xmm3
980 ; SSE41-NEXT: minpd %xmm0, %xmm3
981 ; SSE41-NEXT: cmpunordpd %xmm0, %xmm0
982 ; SSE41-NEXT: blendvpd %xmm0, %xmm4, %xmm3
983 ; SSE41-NEXT: movapd %xmm6, %xmm4
984 ; SSE41-NEXT: minpd %xmm2, %xmm4
985 ; SSE41-NEXT: cmpunordpd %xmm2, %xmm2
986 ; SSE41-NEXT: movapd %xmm2, %xmm0
987 ; SSE41-NEXT: blendvpd %xmm0, %xmm6, %xmm4
988 ; SSE41-NEXT: movapd %xmm4, %xmm2
989 ; SSE41-NEXT: minpd %xmm3, %xmm2
990 ; SSE41-NEXT: cmpunordpd %xmm3, %xmm3
991 ; SSE41-NEXT: movapd %xmm3, %xmm0
992 ; SSE41-NEXT: blendvpd %xmm0, %xmm4, %xmm2
993 ; SSE41-NEXT: movapd %xmm5, %xmm3
994 ; SSE41-NEXT: minpd %xmm1, %xmm3
995 ; SSE41-NEXT: cmpunordpd %xmm1, %xmm1
996 ; SSE41-NEXT: movapd %xmm1, %xmm0
997 ; SSE41-NEXT: blendvpd %xmm0, %xmm5, %xmm3
998 ; SSE41-NEXT: movapd %xmm7, %xmm1
999 ; SSE41-NEXT: minpd %xmm8, %xmm1
1000 ; SSE41-NEXT: cmpunordpd %xmm8, %xmm8
1001 ; SSE41-NEXT: movapd %xmm8, %xmm0
1002 ; SSE41-NEXT: blendvpd %xmm0, %xmm7, %xmm1
1003 ; SSE41-NEXT: movapd %xmm1, %xmm4
1004 ; SSE41-NEXT: minpd %xmm3, %xmm4
1005 ; SSE41-NEXT: cmpunordpd %xmm3, %xmm3
1006 ; SSE41-NEXT: movapd %xmm3, %xmm0
1007 ; SSE41-NEXT: blendvpd %xmm0, %xmm1, %xmm4
1008 ; SSE41-NEXT: movapd %xmm4, %xmm1
1009 ; SSE41-NEXT: minpd %xmm2, %xmm1
1010 ; SSE41-NEXT: cmpunordpd %xmm2, %xmm2
1011 ; SSE41-NEXT: movapd %xmm2, %xmm0
1012 ; SSE41-NEXT: blendvpd %xmm0, %xmm4, %xmm1
1013 ; SSE41-NEXT: movapd %xmm1, %xmm2
1014 ; SSE41-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1015 ; SSE41-NEXT: movapd %xmm1, %xmm0
1016 ; SSE41-NEXT: cmpunordsd %xmm1, %xmm0
1017 ; SSE41-NEXT: movapd %xmm0, %xmm3
1018 ; SSE41-NEXT: andpd %xmm2, %xmm3
1019 ; SSE41-NEXT: minsd %xmm1, %xmm2
1020 ; SSE41-NEXT: andnpd %xmm2, %xmm0
1021 ; SSE41-NEXT: orpd %xmm3, %xmm0
1022 ; SSE41-NEXT: retq