@@ -31,15 +31,10 @@ define <2 x i64> @test1(<2 x i64> %a, <2 x i64> %b) {
3131
3232
3333define <4 x i32 > @test2 (<4 x i32 > %a , <4 x i32 > %b ) {
34- ; SSE2-LABEL: test2:
35- ; SSE2: # %bb.0:
36- ; SSE2-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
37- ; SSE2-NEXT: retq
38- ;
39- ; SSE4-LABEL: test2:
40- ; SSE4: # %bb.0:
41- ; SSE4-NEXT: blendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
42- ; SSE4-NEXT: retq
34+ ; SSE-LABEL: test2:
35+ ; SSE: # %bb.0:
36+ ; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
37+ ; SSE-NEXT: retq
4338;
4439; AVX-LABEL: test2:
4540; AVX: # %bb.0:
@@ -53,15 +48,10 @@ define <4 x i32> @test2(<4 x i32> %a, <4 x i32> %b) {
5348
5449
5550define <2 x i64 > @test3 (<2 x i64 > %a , <2 x i64 > %b ) {
56- ; SSE2-LABEL: test3:
57- ; SSE2: # %bb.0:
58- ; SSE2-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
59- ; SSE2-NEXT: retq
60- ;
61- ; SSE4-LABEL: test3:
62- ; SSE4: # %bb.0:
63- ; SSE4-NEXT: blendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
64- ; SSE4-NEXT: retq
51+ ; SSE-LABEL: test3:
52+ ; SSE: # %bb.0:
53+ ; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
54+ ; SSE-NEXT: retq
6555;
6656; AVX-LABEL: test3:
6757; AVX: # %bb.0:
@@ -201,15 +191,10 @@ define <2 x i64> @test8(<2 x i64> %a, <2 x i64> %b) {
201191
202192
203193define <4 x i32 > @test9 (<4 x i32 > %a , <4 x i32 > %b ) {
204- ; SSE2-LABEL: test9:
205- ; SSE2: # %bb.0:
206- ; SSE2-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
207- ; SSE2-NEXT: retq
208- ;
209- ; SSE4-LABEL: test9:
210- ; SSE4: # %bb.0:
211- ; SSE4-NEXT: blendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
212- ; SSE4-NEXT: retq
194+ ; SSE-LABEL: test9:
195+ ; SSE: # %bb.0:
196+ ; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
197+ ; SSE-NEXT: retq
213198;
214199; AVX-LABEL: test9:
215200; AVX: # %bb.0:
@@ -223,15 +208,10 @@ define <4 x i32> @test9(<4 x i32> %a, <4 x i32> %b) {
223208
224209
225210define <2 x i64 > @test10 (<2 x i64 > %a , <2 x i64 > %b ) {
226- ; SSE2-LABEL: test10:
227- ; SSE2: # %bb.0:
228- ; SSE2-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
229- ; SSE2-NEXT: retq
230- ;
231- ; SSE4-LABEL: test10:
232- ; SSE4: # %bb.0:
233- ; SSE4-NEXT: blendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
234- ; SSE4-NEXT: retq
211+ ; SSE-LABEL: test10:
212+ ; SSE: # %bb.0:
213+ ; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
214+ ; SSE-NEXT: retq
235215;
236216; AVX-LABEL: test10:
237217; AVX: # %bb.0:
@@ -563,20 +543,25 @@ define <2 x i64> @test21(<2 x i64> %a, <2 x i64> %b) {
563543; bitcast to use the mask-or blend combine.
564544
565545define <2 x double > @test22 (<2 x double > %a0 , <2 x double > %a1 ) {
566- ; SSE2 -LABEL: test22:
567- ; SSE2 : # %bb.0:
568- ; SSE2 -NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
569- ; SSE2 -NEXT: retq
546+ ; SSE -LABEL: test22:
547+ ; SSE : # %bb.0:
548+ ; SSE -NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
549+ ; SSE -NEXT: retq
570550;
571- ; SSE4 -LABEL: test22:
572- ; SSE4 : # %bb.0:
573- ; SSE4 -NEXT: blendps {{.*#+}} xmm0 = xmm1[0,1 ],xmm0[2,3 ]
574- ; SSE4 -NEXT: retq
551+ ; AVX1 -LABEL: test22:
552+ ; AVX1 : # %bb.0:
553+ ; AVX1 -NEXT: vmovsd {{.*#+}} xmm0 = xmm1[0],xmm0[1 ]
554+ ; AVX1 -NEXT: retq
575555;
576- ; AVX-LABEL: test22:
577- ; AVX: # %bb.0:
578- ; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
579- ; AVX-NEXT: retq
556+ ; AVX2-LABEL: test22:
557+ ; AVX2: # %bb.0:
558+ ; AVX2-NEXT: vmovsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
559+ ; AVX2-NEXT: retq
560+ ;
561+ ; AVX512-LABEL: test22:
562+ ; AVX512: # %bb.0:
563+ ; AVX512-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
564+ ; AVX512-NEXT: retq
580565 %bc1 = bitcast <2 x double > %a0 to <2 x i64 >
581566 %bc2 = bitcast <2 x double > %a1 to <2 x i64 >
582567 %and1 = and <2 x i64 > %bc1 , <i64 0 , i64 -1 >
@@ -614,20 +599,25 @@ define <4 x float> @test23(<4 x float> %a0, <4 x float> %a1) {
614599
615600
616601define <4 x float > @test24 (<4 x float > %a0 , <4 x float > %a1 ) {
617- ; SSE2 -LABEL: test24:
618- ; SSE2 : # %bb.0:
619- ; SSE2 -NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
620- ; SSE2 -NEXT: retq
602+ ; SSE -LABEL: test24:
603+ ; SSE : # %bb.0:
604+ ; SSE -NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
605+ ; SSE -NEXT: retq
621606;
622- ; SSE4 -LABEL: test24:
623- ; SSE4 : # %bb.0:
624- ; SSE4 -NEXT: blendps {{.*#+}} xmm0 = xmm1[0,1 ],xmm0[2,3 ]
625- ; SSE4 -NEXT: retq
607+ ; AVX1 -LABEL: test24:
608+ ; AVX1 : # %bb.0:
609+ ; AVX1 -NEXT: vmovsd {{.*#+}} xmm0 = xmm1[0],xmm0[1 ]
610+ ; AVX1 -NEXT: retq
626611;
627- ; AVX-LABEL: test24:
628- ; AVX: # %bb.0:
629- ; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
630- ; AVX-NEXT: retq
612+ ; AVX2-LABEL: test24:
613+ ; AVX2: # %bb.0:
614+ ; AVX2-NEXT: vmovsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
615+ ; AVX2-NEXT: retq
616+ ;
617+ ; AVX512-LABEL: test24:
618+ ; AVX512: # %bb.0:
619+ ; AVX512-NEXT: vblendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
620+ ; AVX512-NEXT: retq
631621 %bc1 = bitcast <4 x float > %a0 to <2 x i64 >
632622 %bc2 = bitcast <4 x float > %a1 to <2 x i64 >
633623 %and1 = and <2 x i64 > %bc1 , <i64 0 , i64 -1 >
@@ -707,15 +697,10 @@ define <4 x i8> @test_crash(<4 x i8> %a, <4 x i8> %b) {
707697; Verify that we can fold regardless of which operand is the zeroinitializer
708698
709699define <4 x i32 > @test2b (<4 x i32 > %a , <4 x i32 > %b ) {
710- ; SSE2-LABEL: test2b:
711- ; SSE2: # %bb.0:
712- ; SSE2-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
713- ; SSE2-NEXT: retq
714- ;
715- ; SSE4-LABEL: test2b:
716- ; SSE4: # %bb.0:
717- ; SSE4-NEXT: blendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
718- ; SSE4-NEXT: retq
700+ ; SSE-LABEL: test2b:
701+ ; SSE: # %bb.0:
702+ ; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
703+ ; SSE-NEXT: retq
719704;
720705; AVX-LABEL: test2b:
721706; AVX: # %bb.0:
@@ -728,15 +713,10 @@ define <4 x i32> @test2b(<4 x i32> %a, <4 x i32> %b) {
728713}
729714
730715define <4 x i32 > @test2c (<4 x i32 > %a , <4 x i32 > %b ) {
731- ; SSE2-LABEL: test2c:
732- ; SSE2: # %bb.0:
733- ; SSE2-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
734- ; SSE2-NEXT: retq
735- ;
736- ; SSE4-LABEL: test2c:
737- ; SSE4: # %bb.0:
738- ; SSE4-NEXT: blendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
739- ; SSE4-NEXT: retq
716+ ; SSE-LABEL: test2c:
717+ ; SSE: # %bb.0:
718+ ; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
719+ ; SSE-NEXT: retq
740720;
741721; AVX-LABEL: test2c:
742722; AVX: # %bb.0:
@@ -750,15 +730,10 @@ define <4 x i32> @test2c(<4 x i32> %a, <4 x i32> %b) {
750730
751731
752732define <4 x i32 > @test2d (<4 x i32 > %a , <4 x i32 > %b ) {
753- ; SSE2-LABEL: test2d:
754- ; SSE2: # %bb.0:
755- ; SSE2-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
756- ; SSE2-NEXT: retq
757- ;
758- ; SSE4-LABEL: test2d:
759- ; SSE4: # %bb.0:
760- ; SSE4-NEXT: blendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
761- ; SSE4-NEXT: retq
733+ ; SSE-LABEL: test2d:
734+ ; SSE: # %bb.0:
735+ ; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
736+ ; SSE-NEXT: retq
762737;
763738; AVX-LABEL: test2d:
764739; AVX: # %bb.0:
@@ -773,15 +748,10 @@ define <4 x i32> @test2d(<4 x i32> %a, <4 x i32> %b) {
773748; Make sure we can have an undef where an index pointing to the zero vector should be
774749
775750define <4 x i32 > @test2e (<4 x i32 > %a , <4 x i32 > %b ) {
776- ; SSE2-LABEL: test2e:
777- ; SSE2: # %bb.0:
778- ; SSE2-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
779- ; SSE2-NEXT: retq
780- ;
781- ; SSE4-LABEL: test2e:
782- ; SSE4: # %bb.0:
783- ; SSE4-NEXT: blendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
784- ; SSE4-NEXT: retq
751+ ; SSE-LABEL: test2e:
752+ ; SSE: # %bb.0:
753+ ; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
754+ ; SSE-NEXT: retq
785755;
786756; AVX-LABEL: test2e:
787757; AVX: # %bb.0:
@@ -794,15 +764,10 @@ define <4 x i32> @test2e(<4 x i32> %a, <4 x i32> %b) {
794764}
795765
796766define <4 x i32 > @test2f (<4 x i32 > %a , <4 x i32 > %b ) {
797- ; SSE2-LABEL: test2f:
798- ; SSE2: # %bb.0:
799- ; SSE2-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
800- ; SSE2-NEXT: retq
801- ;
802- ; SSE4-LABEL: test2f:
803- ; SSE4: # %bb.0:
804- ; SSE4-NEXT: blendps {{.*#+}} xmm0 = xmm1[0,1],xmm0[2,3]
805- ; SSE4-NEXT: retq
767+ ; SSE-LABEL: test2f:
768+ ; SSE: # %bb.0:
769+ ; SSE-NEXT: movsd {{.*#+}} xmm0 = xmm1[0],xmm0[1]
770+ ; SSE-NEXT: retq
806771;
807772; AVX-LABEL: test2f:
808773; AVX: # %bb.0:
0 commit comments