Lines Matching refs:SSE3
2 …s -mtriple=x86_64-unknown -mattr=+sse3 | FileCheck %s --check-prefixes=SSE3,SSE3-SLOW
3 …s -mtriple=x86_64-unknown -mattr=+sse3,fast-hops | FileCheck %s --check-prefixes=SSE3,SSE3-FAST
12 ; SSE3-LABEL: haddpd1:
13 ; SSE3: # %bb.0:
14 ; SSE3-NEXT: haddpd %xmm1, %xmm0
15 ; SSE3-NEXT: retq
28 ; SSE3-LABEL: haddpd2:
29 ; SSE3: # %bb.0:
30 ; SSE3-NEXT: haddpd %xmm1, %xmm0
31 ; SSE3-NEXT: retq
44 ; SSE3-SLOW-LABEL: haddpd3:
45 ; SSE3-SLOW: # %bb.0:
46 ; SSE3-SLOW-NEXT: movapd %xmm0, %xmm1
47 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
48 ; SSE3-SLOW-NEXT: addpd %xmm1, %xmm0
49 ; SSE3-SLOW-NEXT: retq
51 ; SSE3-FAST-LABEL: haddpd3:
52 ; SSE3-FAST: # %bb.0:
53 ; SSE3-FAST-NEXT: haddpd %xmm0, %xmm0
54 ; SSE3-FAST-NEXT: retq
73 ; SSE3-LABEL: haddps1:
74 ; SSE3: # %bb.0:
75 ; SSE3-NEXT: haddps %xmm1, %xmm0
76 ; SSE3-NEXT: retq
89 ; SSE3-LABEL: haddps2:
90 ; SSE3: # %bb.0:
91 ; SSE3-NEXT: haddps %xmm1, %xmm0
92 ; SSE3-NEXT: retq
105 ; SSE3-LABEL: haddps3:
106 ; SSE3: # %bb.0:
107 ; SSE3-NEXT: haddps %xmm0, %xmm0
108 ; SSE3-NEXT: retq
121 ; SSE3-LABEL: haddps4:
122 ; SSE3: # %bb.0:
123 ; SSE3-NEXT: haddps %xmm0, %xmm0
124 ; SSE3-NEXT: retq
137 ; SSE3-LABEL: haddps5:
138 ; SSE3: # %bb.0:
139 ; SSE3-NEXT: haddps %xmm0, %xmm0
140 ; SSE3-NEXT: retq
153 ; SSE3-SLOW-LABEL: haddps6:
154 ; SSE3-SLOW: # %bb.0:
155 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
156 ; SSE3-SLOW-NEXT: addps %xmm1, %xmm0
157 ; SSE3-SLOW-NEXT: retq
159 ; SSE3-FAST-LABEL: haddps6:
160 ; SSE3-FAST: # %bb.0:
161 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
162 ; SSE3-FAST-NEXT: retq
181 ; SSE3-LABEL: haddps7:
182 ; SSE3: # %bb.0:
183 ; SSE3-NEXT: haddps %xmm0, %xmm0
184 ; SSE3-NEXT: retq
197 ; SSE3-LABEL: hsubpd1:
198 ; SSE3: # %bb.0:
199 ; SSE3-NEXT: hsubpd %xmm1, %xmm0
200 ; SSE3-NEXT: retq
213 ; SSE3-SLOW-LABEL: hsubpd2:
214 ; SSE3-SLOW: # %bb.0:
215 ; SSE3-SLOW-NEXT: movapd %xmm0, %xmm1
216 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
217 ; SSE3-SLOW-NEXT: subpd %xmm1, %xmm0
218 ; SSE3-SLOW-NEXT: retq
220 ; SSE3-FAST-LABEL: hsubpd2:
221 ; SSE3-FAST: # %bb.0:
222 ; SSE3-FAST-NEXT: hsubpd %xmm0, %xmm0
223 ; SSE3-FAST-NEXT: retq
242 ; SSE3-LABEL: hsubps1:
243 ; SSE3: # %bb.0:
244 ; SSE3-NEXT: hsubps %xmm1, %xmm0
245 ; SSE3-NEXT: retq
258 ; SSE3-LABEL: hsubps2:
259 ; SSE3: # %bb.0:
260 ; SSE3-NEXT: hsubps %xmm0, %xmm0
261 ; SSE3-NEXT: retq
274 ; SSE3-LABEL: hsubps3:
275 ; SSE3: # %bb.0:
276 ; SSE3-NEXT: hsubps %xmm0, %xmm0
277 ; SSE3-NEXT: retq
290 ; SSE3-SLOW-LABEL: hsubps4:
291 ; SSE3-SLOW: # %bb.0:
292 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
293 ; SSE3-SLOW-NEXT: subps %xmm1, %xmm0
294 ; SSE3-SLOW-NEXT: retq
296 ; SSE3-FAST-LABEL: hsubps4:
297 ; SSE3-FAST: # %bb.0:
298 ; SSE3-FAST-NEXT: hsubps %xmm0, %xmm0
299 ; SSE3-FAST-NEXT: retq
318 ; SSE3-LABEL: vhaddps1:
319 ; SSE3: # %bb.0:
320 ; SSE3-NEXT: haddps %xmm2, %xmm0
321 ; SSE3-NEXT: haddps %xmm3, %xmm1
322 ; SSE3-NEXT: retq
335 ; SSE3-LABEL: vhaddps2:
336 ; SSE3: # %bb.0:
337 ; SSE3-NEXT: haddps %xmm2, %xmm0
338 ; SSE3-NEXT: haddps %xmm3, %xmm1
339 ; SSE3-NEXT: retq
352 ; SSE3-LABEL: vhaddps3:
353 ; SSE3: # %bb.0:
354 ; SSE3-NEXT: haddps %xmm0, %xmm0
355 ; SSE3-NEXT: haddps %xmm1, %xmm1
356 ; SSE3-NEXT: retq
369 ; SSE3-LABEL: vhsubps1:
370 ; SSE3: # %bb.0:
371 ; SSE3-NEXT: hsubps %xmm2, %xmm0
372 ; SSE3-NEXT: hsubps %xmm3, %xmm1
373 ; SSE3-NEXT: retq
386 ; SSE3-LABEL: vhsubps3:
387 ; SSE3: # %bb.0:
388 ; SSE3-NEXT: hsubps %xmm0, %xmm0
389 ; SSE3-NEXT: hsubps %xmm1, %xmm1
390 ; SSE3-NEXT: retq
403 ; SSE3-LABEL: vhaddpd1:
404 ; SSE3: # %bb.0:
405 ; SSE3-NEXT: haddpd %xmm2, %xmm0
406 ; SSE3-NEXT: haddpd %xmm3, %xmm1
407 ; SSE3-NEXT: retq
420 ; SSE3-LABEL: vhsubpd1:
421 ; SSE3: # %bb.0:
422 ; SSE3-NEXT: hsubpd %xmm2, %xmm0
423 ; SSE3-NEXT: hsubpd %xmm3, %xmm1
424 ; SSE3-NEXT: retq
437 ; SSE3-LABEL: haddps_v2f32:
438 ; SSE3: # %bb.0:
439 ; SSE3-NEXT: haddps %xmm0, %xmm0
440 ; SSE3-NEXT: retq
460 ; SSE3-SLOW-LABEL: extract_extract01_v4f32_fadd_f32:
461 ; SSE3-SLOW: # %bb.0:
462 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
463 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
464 ; SSE3-SLOW-NEXT: retq
466 ; SSE3-FAST-LABEL: extract_extract01_v4f32_fadd_f32:
467 ; SSE3-FAST: # %bb.0:
468 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
469 ; SSE3-FAST-NEXT: retq
488 ; SSE3-SLOW-LABEL: extract_extract23_v4f32_fadd_f32:
489 ; SSE3-SLOW: # %bb.0:
490 ; SSE3-SLOW-NEXT: movaps %xmm0, %xmm1
491 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
492 ; SSE3-SLOW-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
493 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
494 ; SSE3-SLOW-NEXT: retq
496 ; SSE3-FAST-LABEL: extract_extract23_v4f32_fadd_f32:
497 ; SSE3-FAST: # %bb.0:
498 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
499 ; SSE3-FAST-NEXT: movshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
500 ; SSE3-FAST-NEXT: retq
521 ; SSE3-SLOW-LABEL: extract_extract01_v4f32_fadd_f32_commute:
522 ; SSE3-SLOW: # %bb.0:
523 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
524 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
525 ; SSE3-SLOW-NEXT: retq
527 ; SSE3-FAST-LABEL: extract_extract01_v4f32_fadd_f32_commute:
528 ; SSE3-FAST: # %bb.0:
529 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
530 ; SSE3-FAST-NEXT: retq
549 ; SSE3-SLOW-LABEL: extract_extract23_v4f32_fadd_f32_commute:
550 ; SSE3-SLOW: # %bb.0:
551 ; SSE3-SLOW-NEXT: movaps %xmm0, %xmm1
552 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
553 ; SSE3-SLOW-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
554 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
555 ; SSE3-SLOW-NEXT: retq
557 ; SSE3-FAST-LABEL: extract_extract23_v4f32_fadd_f32_commute:
558 ; SSE3-FAST: # %bb.0:
559 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
560 ; SSE3-FAST-NEXT: movshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
561 ; SSE3-FAST-NEXT: retq
582 ; SSE3-SLOW-LABEL: extract_extract01_v2f64_fadd_f64:
583 ; SSE3-SLOW: # %bb.0:
584 ; SSE3-SLOW-NEXT: movapd %xmm0, %xmm1
585 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
586 ; SSE3-SLOW-NEXT: addsd %xmm1, %xmm0
587 ; SSE3-SLOW-NEXT: retq
589 ; SSE3-FAST-LABEL: extract_extract01_v2f64_fadd_f64:
590 ; SSE3-FAST: # %bb.0:
591 ; SSE3-FAST-NEXT: haddpd %xmm0, %xmm0
592 ; SSE3-FAST-NEXT: retq
611 ; SSE3-SLOW-LABEL: extract_extract01_v2f64_fadd_f64_commute:
612 ; SSE3-SLOW: # %bb.0:
613 ; SSE3-SLOW-NEXT: movapd %xmm0, %xmm1
614 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
615 ; SSE3-SLOW-NEXT: addsd %xmm1, %xmm0
616 ; SSE3-SLOW-NEXT: retq
618 ; SSE3-FAST-LABEL: extract_extract01_v2f64_fadd_f64_commute:
619 ; SSE3-FAST: # %bb.0:
620 ; SSE3-FAST-NEXT: haddpd %xmm0, %xmm0
621 ; SSE3-FAST-NEXT: retq
640 ; SSE3-SLOW-LABEL: extract_extract01_v4f32_fsub_f32:
641 ; SSE3-SLOW: # %bb.0:
642 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
643 ; SSE3-SLOW-NEXT: subss %xmm1, %xmm0
644 ; SSE3-SLOW-NEXT: retq
646 ; SSE3-FAST-LABEL: extract_extract01_v4f32_fsub_f32:
647 ; SSE3-FAST: # %bb.0:
648 ; SSE3-FAST-NEXT: hsubps %xmm0, %xmm0
649 ; SSE3-FAST-NEXT: retq
668 ; SSE3-SLOW-LABEL: extract_extract23_v4f32_fsub_f32:
669 ; SSE3-SLOW: # %bb.0:
670 ; SSE3-SLOW-NEXT: movaps %xmm0, %xmm1
671 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
672 ; SSE3-SLOW-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
673 ; SSE3-SLOW-NEXT: subss %xmm0, %xmm1
674 ; SSE3-SLOW-NEXT: movaps %xmm1, %xmm0
675 ; SSE3-SLOW-NEXT: retq
677 ; SSE3-FAST-LABEL: extract_extract23_v4f32_fsub_f32:
678 ; SSE3-FAST: # %bb.0:
679 ; SSE3-FAST-NEXT: hsubps %xmm0, %xmm0
680 ; SSE3-FAST-NEXT: movshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
681 ; SSE3-FAST-NEXT: retq
702 ; SSE3-LABEL: extract_extract01_v4f32_fsub_f32_commute:
703 ; SSE3: # %bb.0:
704 ; SSE3-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
705 ; SSE3-NEXT: subss %xmm0, %xmm1
706 ; SSE3-NEXT: movaps %xmm1, %xmm0
707 ; SSE3-NEXT: retq
721 ; SSE3-LABEL: extract_extract23_v4f32_fsub_f32_commute:
722 ; SSE3: # %bb.0:
723 ; SSE3-NEXT: movaps %xmm0, %xmm1
724 ; SSE3-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
725 ; SSE3-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
726 ; SSE3-NEXT: subss %xmm1, %xmm0
727 ; SSE3-NEXT: retq
742 ; SSE3-SLOW-LABEL: extract_extract01_v2f64_fsub_f64:
743 ; SSE3-SLOW: # %bb.0:
744 ; SSE3-SLOW-NEXT: movapd %xmm0, %xmm1
745 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
746 ; SSE3-SLOW-NEXT: subsd %xmm1, %xmm0
747 ; SSE3-SLOW-NEXT: retq
749 ; SSE3-FAST-LABEL: extract_extract01_v2f64_fsub_f64:
750 ; SSE3-FAST: # %bb.0:
751 ; SSE3-FAST-NEXT: hsubpd %xmm0, %xmm0
752 ; SSE3-FAST-NEXT: retq
771 ; SSE3-LABEL: extract_extract01_v2f64_fsub_f64_commute:
772 ; SSE3: # %bb.0:
773 ; SSE3-NEXT: movapd %xmm0, %xmm1
774 ; SSE3-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
775 ; SSE3-NEXT: subsd %xmm0, %xmm1
776 ; SSE3-NEXT: movapd %xmm1, %xmm0
777 ; SSE3-NEXT: retq
793 ; SSE3-SLOW-LABEL: extract_extract01_v8f32_fadd_f32:
794 ; SSE3-SLOW: # %bb.0:
795 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
796 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
797 ; SSE3-SLOW-NEXT: retq
799 ; SSE3-FAST-LABEL: extract_extract01_v8f32_fadd_f32:
800 ; SSE3-FAST: # %bb.0:
801 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
802 ; SSE3-FAST-NEXT: retq
823 ; SSE3-SLOW-LABEL: extract_extract23_v8f32_fadd_f32:
824 ; SSE3-SLOW: # %bb.0:
825 ; SSE3-SLOW-NEXT: movaps %xmm0, %xmm1
826 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
827 ; SSE3-SLOW-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
828 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
829 ; SSE3-SLOW-NEXT: retq
831 ; SSE3-FAST-LABEL: extract_extract23_v8f32_fadd_f32:
832 ; SSE3-FAST: # %bb.0:
833 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
834 ; SSE3-FAST-NEXT: movshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
835 ; SSE3-FAST-NEXT: retq
858 ; SSE3-SLOW-LABEL: extract_extract67_v8f32_fadd_f32:
859 ; SSE3-SLOW: # %bb.0:
860 ; SSE3-SLOW-NEXT: movaps %xmm1, %xmm0
861 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
862 ; SSE3-SLOW-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,3,3,3]
863 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
864 ; SSE3-SLOW-NEXT: retq
866 ; SSE3-FAST-LABEL: extract_extract67_v8f32_fadd_f32:
867 ; SSE3-FAST: # %bb.0:
868 ; SSE3-FAST-NEXT: haddps %xmm1, %xmm1
869 ; SSE3-FAST-NEXT: movshdup {{.*#+}} xmm0 = xmm1[1,1,3,3]
870 ; SSE3-FAST-NEXT: retq
895 ; SSE3-SLOW-LABEL: extract_extract01_v8f32_fadd_f32_commute:
896 ; SSE3-SLOW: # %bb.0:
897 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
898 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
899 ; SSE3-SLOW-NEXT: retq
901 ; SSE3-FAST-LABEL: extract_extract01_v8f32_fadd_f32_commute:
902 ; SSE3-FAST: # %bb.0:
903 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
904 ; SSE3-FAST-NEXT: retq
925 ; SSE3-SLOW-LABEL: extract_extract23_v8f32_fadd_f32_commute:
926 ; SSE3-SLOW: # %bb.0:
927 ; SSE3-SLOW-NEXT: movaps %xmm0, %xmm1
928 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
929 ; SSE3-SLOW-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
930 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
931 ; SSE3-SLOW-NEXT: retq
933 ; SSE3-FAST-LABEL: extract_extract23_v8f32_fadd_f32_commute:
934 ; SSE3-FAST: # %bb.0:
935 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
936 ; SSE3-FAST-NEXT: movshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
937 ; SSE3-FAST-NEXT: retq
960 ; SSE3-SLOW-LABEL: extract_extract67_v8f32_fadd_f32_commute:
961 ; SSE3-SLOW: # %bb.0:
962 ; SSE3-SLOW-NEXT: movaps %xmm1, %xmm0
963 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
964 ; SSE3-SLOW-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,3,3,3]
965 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
966 ; SSE3-SLOW-NEXT: retq
968 ; SSE3-FAST-LABEL: extract_extract67_v8f32_fadd_f32_commute:
969 ; SSE3-FAST: # %bb.0:
970 ; SSE3-FAST-NEXT: haddps %xmm1, %xmm1
971 ; SSE3-FAST-NEXT: movshdup {{.*#+}} xmm0 = xmm1[1,1,3,3]
972 ; SSE3-FAST-NEXT: retq
997 ; SSE3-SLOW-LABEL: extract_extract01_v4f64_fadd_f64:
998 ; SSE3-SLOW: # %bb.0:
999 ; SSE3-SLOW-NEXT: movapd %xmm0, %xmm1
1000 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1001 ; SSE3-SLOW-NEXT: addsd %xmm1, %xmm0
1002 ; SSE3-SLOW-NEXT: retq
1004 ; SSE3-FAST-LABEL: extract_extract01_v4f64_fadd_f64:
1005 ; SSE3-FAST: # %bb.0:
1006 ; SSE3-FAST-NEXT: haddpd %xmm0, %xmm0
1007 ; SSE3-FAST-NEXT: retq
1028 ; SSE3-SLOW-LABEL: extract_extract23_v4f64_fadd_f64:
1029 ; SSE3-SLOW: # %bb.0:
1030 ; SSE3-SLOW-NEXT: movapd %xmm1, %xmm0
1031 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
1032 ; SSE3-SLOW-NEXT: addsd %xmm1, %xmm0
1033 ; SSE3-SLOW-NEXT: retq
1035 ; SSE3-FAST-LABEL: extract_extract23_v4f64_fadd_f64:
1036 ; SSE3-FAST: # %bb.0:
1037 ; SSE3-FAST-NEXT: movapd %xmm1, %xmm0
1038 ; SSE3-FAST-NEXT: haddpd %xmm1, %xmm0
1039 ; SSE3-FAST-NEXT: retq
1062 ; SSE3-SLOW-LABEL: extract_extract01_v4f64_fadd_f64_commute:
1063 ; SSE3-SLOW: # %bb.0:
1064 ; SSE3-SLOW-NEXT: movapd %xmm0, %xmm1
1065 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1066 ; SSE3-SLOW-NEXT: addsd %xmm1, %xmm0
1067 ; SSE3-SLOW-NEXT: retq
1069 ; SSE3-FAST-LABEL: extract_extract01_v4f64_fadd_f64_commute:
1070 ; SSE3-FAST: # %bb.0:
1071 ; SSE3-FAST-NEXT: haddpd %xmm0, %xmm0
1072 ; SSE3-FAST-NEXT: retq
1093 ; SSE3-SLOW-LABEL: extract_extract23_v4f64_fadd_f64_commute:
1094 ; SSE3-SLOW: # %bb.0:
1095 ; SSE3-SLOW-NEXT: movapd %xmm1, %xmm0
1096 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
1097 ; SSE3-SLOW-NEXT: addsd %xmm1, %xmm0
1098 ; SSE3-SLOW-NEXT: retq
1100 ; SSE3-FAST-LABEL: extract_extract23_v4f64_fadd_f64_commute:
1101 ; SSE3-FAST: # %bb.0:
1102 ; SSE3-FAST-NEXT: movapd %xmm1, %xmm0
1103 ; SSE3-FAST-NEXT: haddpd %xmm1, %xmm0
1104 ; SSE3-FAST-NEXT: retq
1127 ; SSE3-SLOW-LABEL: extract_extract01_v8f32_fsub_f32:
1128 ; SSE3-SLOW: # %bb.0:
1129 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1130 ; SSE3-SLOW-NEXT: subss %xmm1, %xmm0
1131 ; SSE3-SLOW-NEXT: retq
1133 ; SSE3-FAST-LABEL: extract_extract01_v8f32_fsub_f32:
1134 ; SSE3-FAST: # %bb.0:
1135 ; SSE3-FAST-NEXT: hsubps %xmm0, %xmm0
1136 ; SSE3-FAST-NEXT: retq
1157 ; SSE3-SLOW-LABEL: extract_extract23_v8f32_fsub_f32:
1158 ; SSE3-SLOW: # %bb.0:
1159 ; SSE3-SLOW-NEXT: movaps %xmm0, %xmm1
1160 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1161 ; SSE3-SLOW-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]
1162 ; SSE3-SLOW-NEXT: subss %xmm0, %xmm1
1163 ; SSE3-SLOW-NEXT: movaps %xmm1, %xmm0
1164 ; SSE3-SLOW-NEXT: retq
1166 ; SSE3-FAST-LABEL: extract_extract23_v8f32_fsub_f32:
1167 ; SSE3-FAST: # %bb.0:
1168 ; SSE3-FAST-NEXT: hsubps %xmm0, %xmm0
1169 ; SSE3-FAST-NEXT: movshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
1170 ; SSE3-FAST-NEXT: retq
1193 ; SSE3-SLOW-LABEL: extract_extract45_v8f32_fsub_f32:
1194 ; SSE3-SLOW: # %bb.0:
1195 ; SSE3-SLOW-NEXT: movaps %xmm1, %xmm0
1196 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm1[1,1,3,3]
1197 ; SSE3-SLOW-NEXT: subss %xmm1, %xmm0
1198 ; SSE3-SLOW-NEXT: retq
1200 ; SSE3-FAST-LABEL: extract_extract45_v8f32_fsub_f32:
1201 ; SSE3-FAST: # %bb.0:
1202 ; SSE3-FAST-NEXT: movaps %xmm1, %xmm0
1203 ; SSE3-FAST-NEXT: hsubps %xmm1, %xmm0
1204 ; SSE3-FAST-NEXT: retq
1229 ; SSE3-LABEL: extract_extract01_v8f32_fsub_f32_commute:
1230 ; SSE3: # %bb.0:
1231 ; SSE3-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1232 ; SSE3-NEXT: subss %xmm0, %xmm1
1233 ; SSE3-NEXT: movaps %xmm1, %xmm0
1234 ; SSE3-NEXT: retq
1249 ; SSE3-SLOW-LABEL: extract_extract01_v4f64_fsub_f64:
1250 ; SSE3-SLOW: # %bb.0:
1251 ; SSE3-SLOW-NEXT: movapd %xmm0, %xmm1
1252 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1253 ; SSE3-SLOW-NEXT: subsd %xmm1, %xmm0
1254 ; SSE3-SLOW-NEXT: retq
1256 ; SSE3-FAST-LABEL: extract_extract01_v4f64_fsub_f64:
1257 ; SSE3-FAST: # %bb.0:
1258 ; SSE3-FAST-NEXT: hsubpd %xmm0, %xmm0
1259 ; SSE3-FAST-NEXT: retq
1282 ; SSE3-LABEL: extract_extract01_v4f64_fsub_f64_commute:
1283 ; SSE3: # %bb.0:
1284 ; SSE3-NEXT: movapd %xmm0, %xmm1
1285 ; SSE3-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1286 ; SSE3-NEXT: subsd %xmm0, %xmm1
1287 ; SSE3-NEXT: movapd %xmm1, %xmm0
1288 ; SSE3-NEXT: retq
1305 ; SSE3-SLOW-LABEL: extract_extract01_v16f32_fadd_f32:
1306 ; SSE3-SLOW: # %bb.0:
1307 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1308 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
1309 ; SSE3-SLOW-NEXT: retq
1311 ; SSE3-FAST-LABEL: extract_extract01_v16f32_fadd_f32:
1312 ; SSE3-FAST: # %bb.0:
1313 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
1314 ; SSE3-FAST-NEXT: retq
1335 ; SSE3-SLOW-LABEL: extract_extract01_v16f32_fadd_f32_commute:
1336 ; SSE3-SLOW: # %bb.0:
1337 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1338 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
1339 ; SSE3-SLOW-NEXT: retq
1341 ; SSE3-FAST-LABEL: extract_extract01_v16f32_fadd_f32_commute:
1342 ; SSE3-FAST: # %bb.0:
1343 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
1344 ; SSE3-FAST-NEXT: retq
1365 ; SSE3-SLOW-LABEL: extract_extract01_v8f64_fadd_f64:
1366 ; SSE3-SLOW: # %bb.0:
1367 ; SSE3-SLOW-NEXT: movapd %xmm0, %xmm1
1368 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1369 ; SSE3-SLOW-NEXT: addsd %xmm1, %xmm0
1370 ; SSE3-SLOW-NEXT: retq
1372 ; SSE3-FAST-LABEL: extract_extract01_v8f64_fadd_f64:
1373 ; SSE3-FAST: # %bb.0:
1374 ; SSE3-FAST-NEXT: haddpd %xmm0, %xmm0
1375 ; SSE3-FAST-NEXT: retq
1396 ; SSE3-SLOW-LABEL: extract_extract01_v8f64_fadd_f64_commute:
1397 ; SSE3-SLOW: # %bb.0:
1398 ; SSE3-SLOW-NEXT: movapd %xmm0, %xmm1
1399 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1400 ; SSE3-SLOW-NEXT: addsd %xmm1, %xmm0
1401 ; SSE3-SLOW-NEXT: retq
1403 ; SSE3-FAST-LABEL: extract_extract01_v8f64_fadd_f64_commute:
1404 ; SSE3-FAST: # %bb.0:
1405 ; SSE3-FAST-NEXT: haddpd %xmm0, %xmm0
1406 ; SSE3-FAST-NEXT: retq
1427 ; SSE3-SLOW-LABEL: extract_extract01_v16f32_fsub_f32:
1428 ; SSE3-SLOW: # %bb.0:
1429 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1430 ; SSE3-SLOW-NEXT: subss %xmm1, %xmm0
1431 ; SSE3-SLOW-NEXT: retq
1433 ; SSE3-FAST-LABEL: extract_extract01_v16f32_fsub_f32:
1434 ; SSE3-FAST: # %bb.0:
1435 ; SSE3-FAST-NEXT: hsubps %xmm0, %xmm0
1436 ; SSE3-FAST-NEXT: retq
1457 ; SSE3-LABEL: extract_extract01_v16f32_fsub_f32_commute:
1458 ; SSE3: # %bb.0:
1459 ; SSE3-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1460 ; SSE3-NEXT: subss %xmm0, %xmm1
1461 ; SSE3-NEXT: movaps %xmm1, %xmm0
1462 ; SSE3-NEXT: retq
1477 ; SSE3-SLOW-LABEL: extract_extract01_v8f64_fsub_f64:
1478 ; SSE3-SLOW: # %bb.0:
1479 ; SSE3-SLOW-NEXT: movapd %xmm0, %xmm1
1480 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1481 ; SSE3-SLOW-NEXT: subsd %xmm1, %xmm0
1482 ; SSE3-SLOW-NEXT: retq
1484 ; SSE3-FAST-LABEL: extract_extract01_v8f64_fsub_f64:
1485 ; SSE3-FAST: # %bb.0:
1486 ; SSE3-FAST-NEXT: hsubpd %xmm0, %xmm0
1487 ; SSE3-FAST-NEXT: retq
1508 ; SSE3-LABEL: extract_extract01_v8f64_fsub_f64_commute:
1509 ; SSE3: # %bb.0:
1510 ; SSE3-NEXT: movapd %xmm0, %xmm1
1511 ; SSE3-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1512 ; SSE3-NEXT: subsd %xmm0, %xmm1
1513 ; SSE3-NEXT: movapd %xmm1, %xmm0
1514 ; SSE3-NEXT: retq
1531 ; SSE3-SLOW-LABEL: extract_extract01_v4f32_fadd_f32_uses1:
1532 ; SSE3-SLOW: # %bb.0:
1533 ; SSE3-SLOW-NEXT: movss %xmm0, (%rdi)
1534 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1535 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
1536 ; SSE3-SLOW-NEXT: retq
1538 ; SSE3-FAST-LABEL: extract_extract01_v4f32_fadd_f32_uses1:
1539 ; SSE3-FAST: # %bb.0:
1540 ; SSE3-FAST-NEXT: movss %xmm0, (%rdi)
1541 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
1542 ; SSE3-FAST-NEXT: retq
1564 ; SSE3-SLOW-LABEL: extract_extract01_v4f32_fadd_f32_uses2:
1565 ; SSE3-SLOW: # %bb.0:
1566 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1567 ; SSE3-SLOW-NEXT: movss %xmm1, (%rdi)
1568 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
1569 ; SSE3-SLOW-NEXT: retq
1571 ; SSE3-FAST-LABEL: extract_extract01_v4f32_fadd_f32_uses2:
1572 ; SSE3-FAST: # %bb.0:
1573 ; SSE3-FAST-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1574 ; SSE3-FAST-NEXT: movss %xmm1, (%rdi)
1575 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
1576 ; SSE3-FAST-NEXT: retq
1598 ; SSE3-LABEL: extract_extract01_v4f32_fadd_f32_uses3:
1599 ; SSE3: # %bb.0:
1600 ; SSE3-NEXT: movss %xmm0, (%rdi)
1601 ; SSE3-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1602 ; SSE3-NEXT: movss %xmm1, (%rsi)
1603 ; SSE3-NEXT: addss %xmm1, %xmm0
1604 ; SSE3-NEXT: retq
1628 ; SSE3-SLOW-LABEL: fadd_reduce_v8f32:
1629 ; SSE3-SLOW: # %bb.0:
1630 ; SSE3-SLOW-NEXT: addps %xmm2, %xmm1
1631 ; SSE3-SLOW-NEXT: movaps %xmm1, %xmm2
1632 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1633 ; SSE3-SLOW-NEXT: addps %xmm1, %xmm2
1634 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm2[1,1,3,3]
1635 ; SSE3-SLOW-NEXT: addss %xmm2, %xmm1
1636 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
1637 ; SSE3-SLOW-NEXT: retq
1639 ; SSE3-FAST-LABEL: fadd_reduce_v8f32:
1640 ; SSE3-FAST: # %bb.0:
1641 ; SSE3-FAST-NEXT: haddps %xmm1, %xmm2
1642 ; SSE3-FAST-NEXT: haddps %xmm2, %xmm2
1643 ; SSE3-FAST-NEXT: haddps %xmm2, %xmm2
1644 ; SSE3-FAST-NEXT: addss %xmm2, %xmm0
1645 ; SSE3-FAST-NEXT: retq
1673 ; SSE3-SLOW-LABEL: fadd_reduce_v4f64:
1674 ; SSE3-SLOW: # %bb.0:
1675 ; SSE3-SLOW-NEXT: addpd %xmm2, %xmm1
1676 ; SSE3-SLOW-NEXT: movapd %xmm1, %xmm2
1677 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1678 ; SSE3-SLOW-NEXT: addsd %xmm1, %xmm2
1679 ; SSE3-SLOW-NEXT: addsd %xmm2, %xmm0
1680 ; SSE3-SLOW-NEXT: retq
1682 ; SSE3-FAST-LABEL: fadd_reduce_v4f64:
1683 ; SSE3-FAST: # %bb.0:
1684 ; SSE3-FAST-NEXT: haddpd %xmm1, %xmm2
1685 ; SSE3-FAST-NEXT: haddpd %xmm2, %xmm2
1686 ; SSE3-FAST-NEXT: addsd %xmm2, %xmm0
1687 ; SSE3-FAST-NEXT: retq
1730 ; SSE3-SLOW-LABEL: PR39936_v8f32:
1731 ; SSE3-SLOW: # %bb.0:
1732 ; SSE3-SLOW-NEXT: haddps %xmm1, %xmm0
1733 ; SSE3-SLOW-NEXT: haddps %xmm0, %xmm0
1734 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1735 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
1736 ; SSE3-SLOW-NEXT: retq
1738 ; SSE3-FAST-LABEL: PR39936_v8f32:
1739 ; SSE3-FAST: # %bb.0:
1740 ; SSE3-FAST-NEXT: haddps %xmm1, %xmm0
1741 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
1742 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
1743 ; SSE3-FAST-NEXT: retq
1776 ; SSE3-SLOW-LABEL: hadd32_4:
1777 ; SSE3-SLOW: # %bb.0:
1778 ; SSE3-SLOW-NEXT: movaps %xmm0, %xmm1
1779 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1780 ; SSE3-SLOW-NEXT: addps %xmm1, %xmm0
1781 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1782 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
1783 ; SSE3-SLOW-NEXT: retq
1785 ; SSE3-FAST-LABEL: hadd32_4:
1786 ; SSE3-FAST: # %bb.0:
1787 ; SSE3-FAST-NEXT: movaps %xmm0, %xmm1
1788 ; SSE3-FAST-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1789 ; SSE3-FAST-NEXT: addps %xmm1, %xmm0
1790 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
1791 ; SSE3-FAST-NEXT: retq
1816 ; SSE3-SLOW-LABEL: hadd32_8:
1817 ; SSE3-SLOW: # %bb.0:
1818 ; SSE3-SLOW-NEXT: movaps %xmm0, %xmm1
1819 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1820 ; SSE3-SLOW-NEXT: addps %xmm1, %xmm0
1821 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1822 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
1823 ; SSE3-SLOW-NEXT: retq
1825 ; SSE3-FAST-LABEL: hadd32_8:
1826 ; SSE3-FAST: # %bb.0:
1827 ; SSE3-FAST-NEXT: movaps %xmm0, %xmm1
1828 ; SSE3-FAST-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1829 ; SSE3-FAST-NEXT: addps %xmm1, %xmm0
1830 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
1831 ; SSE3-FAST-NEXT: retq
1858 ; SSE3-SLOW-LABEL: hadd32_16:
1859 ; SSE3-SLOW: # %bb.0:
1860 ; SSE3-SLOW-NEXT: movaps %xmm0, %xmm1
1861 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1862 ; SSE3-SLOW-NEXT: addps %xmm1, %xmm0
1863 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
1864 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
1865 ; SSE3-SLOW-NEXT: retq
1867 ; SSE3-FAST-LABEL: hadd32_16:
1868 ; SSE3-FAST: # %bb.0:
1869 ; SSE3-FAST-NEXT: movaps %xmm0, %xmm1
1870 ; SSE3-FAST-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1871 ; SSE3-FAST-NEXT: addps %xmm1, %xmm0
1872 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
1873 ; SSE3-FAST-NEXT: retq
1900 ; SSE3-LABEL: hadd32_4_optsize:
1901 ; SSE3: # %bb.0:
1902 ; SSE3-NEXT: movaps %xmm0, %xmm1
1903 ; SSE3-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1904 ; SSE3-NEXT: addps %xmm1, %xmm0
1905 ; SSE3-NEXT: haddps %xmm0, %xmm0
1906 ; SSE3-NEXT: retq
1923 ; SSE3-LABEL: hadd32_8_optsize:
1924 ; SSE3: # %bb.0:
1925 ; SSE3-NEXT: movaps %xmm0, %xmm1
1926 ; SSE3-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1927 ; SSE3-NEXT: addps %xmm1, %xmm0
1928 ; SSE3-NEXT: haddps %xmm0, %xmm0
1929 ; SSE3-NEXT: retq
1947 ; SSE3-LABEL: hadd32_16_optsize:
1948 ; SSE3: # %bb.0:
1949 ; SSE3-NEXT: movaps %xmm0, %xmm1
1950 ; SSE3-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1951 ; SSE3-NEXT: addps %xmm1, %xmm0
1952 ; SSE3-NEXT: haddps %xmm0, %xmm0
1953 ; SSE3-NEXT: retq
1971 ; SSE3-LABEL: hadd32_4_pgso:
1972 ; SSE3: # %bb.0:
1973 ; SSE3-NEXT: movaps %xmm0, %xmm1
1974 ; SSE3-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1975 ; SSE3-NEXT: addps %xmm1, %xmm0
1976 ; SSE3-NEXT: haddps %xmm0, %xmm0
1977 ; SSE3-NEXT: retq
1994 ; SSE3-LABEL: hadd32_8_pgso:
1995 ; SSE3: # %bb.0:
1996 ; SSE3-NEXT: movaps %xmm0, %xmm1
1997 ; SSE3-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
1998 ; SSE3-NEXT: addps %xmm1, %xmm0
1999 ; SSE3-NEXT: haddps %xmm0, %xmm0
2000 ; SSE3-NEXT: retq
2018 ; SSE3-LABEL: hadd32_16_pgso:
2019 ; SSE3: # %bb.0:
2020 ; SSE3-NEXT: movaps %xmm0, %xmm1
2021 ; SSE3-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2022 ; SSE3-NEXT: addps %xmm1, %xmm0
2023 ; SSE3-NEXT: haddps %xmm0, %xmm0
2024 ; SSE3-NEXT: retq
2042 ; SSE3-SLOW-LABEL: partial_reduction_fadd_v8f32:
2043 ; SSE3-SLOW: # %bb.0:
2044 ; SSE3-SLOW-NEXT: movaps %xmm0, %xmm1
2045 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2046 ; SSE3-SLOW-NEXT: addps %xmm1, %xmm0
2047 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
2048 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
2049 ; SSE3-SLOW-NEXT: retq
2051 ; SSE3-FAST-LABEL: partial_reduction_fadd_v8f32:
2052 ; SSE3-FAST: # %bb.0:
2053 ; SSE3-FAST-NEXT: movaps %xmm0, %xmm1
2054 ; SSE3-FAST-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2055 ; SSE3-FAST-NEXT: addps %xmm1, %xmm0
2056 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
2057 ; SSE3-FAST-NEXT: retq
2086 ; SSE3-SLOW-LABEL: partial_reduction_fadd_v8f32_wrong_flags:
2087 ; SSE3-SLOW: # %bb.0:
2088 ; SSE3-SLOW-NEXT: movaps %xmm0, %xmm1
2089 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2090 ; SSE3-SLOW-NEXT: addps %xmm1, %xmm0
2091 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
2092 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
2093 ; SSE3-SLOW-NEXT: retq
2095 ; SSE3-FAST-LABEL: partial_reduction_fadd_v8f32_wrong_flags:
2096 ; SSE3-FAST: # %bb.0:
2097 ; SSE3-FAST-NEXT: movaps %xmm0, %xmm1
2098 ; SSE3-FAST-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2099 ; SSE3-FAST-NEXT: addps %xmm1, %xmm0
2100 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
2101 ; SSE3-FAST-NEXT: retq
2128 ; SSE3-SLOW-LABEL: partial_reduction_fadd_v16f32:
2129 ; SSE3-SLOW: # %bb.0:
2130 ; SSE3-SLOW-NEXT: movaps %xmm0, %xmm1
2131 ; SSE3-SLOW-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2132 ; SSE3-SLOW-NEXT: addps %xmm1, %xmm0
2133 ; SSE3-SLOW-NEXT: movshdup {{.*#+}} xmm1 = xmm0[1,1,3,3]
2134 ; SSE3-SLOW-NEXT: addss %xmm1, %xmm0
2135 ; SSE3-SLOW-NEXT: retq
2137 ; SSE3-FAST-LABEL: partial_reduction_fadd_v16f32:
2138 ; SSE3-FAST: # %bb.0:
2139 ; SSE3-FAST-NEXT: movaps %xmm0, %xmm1
2140 ; SSE3-FAST-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]
2141 ; SSE3-FAST-NEXT: addps %xmm1, %xmm0
2142 ; SSE3-FAST-NEXT: haddps %xmm0, %xmm0
2143 ; SSE3-FAST-NEXT: retq