@@ -49,8 +49,8 @@ define <4 x double> @src_ins3_v4f64_ext0_v2f64(<4 x double> %a, <2 x double> %b)
4949
5050define <4 x double > @src_ins0_v4f64_ext1_v2f64 (<4 x double > %a , <2 x double > %b ) #0 {
5151; SSE-LABEL: @src_ins0_v4f64_ext1_v2f64(
52- ; SSE-NEXT: [[TMP1:%.*]] = shufflevector <2 x double> [[B:%.*]], <2 x double> poison, <4 x i32> <i32 1 , i32 poison , i32 poison, i32 poison>
53- ; SSE-NEXT: [[INS:%.*]] = shufflevector <4 x double> [[A:%.*]], <4 x double> [[TMP1]], <4 x i32> <i32 4 , i32 1, i32 2, i32 3>
52+ ; SSE-NEXT: [[TMP1:%.*]] = shufflevector <2 x double> [[B:%.*]], <2 x double> poison, <4 x i32> <i32 poison , i32 1 , i32 poison, i32 poison>
53+ ; SSE-NEXT: [[INS:%.*]] = shufflevector <4 x double> [[A:%.*]], <4 x double> [[TMP1]], <4 x i32> <i32 5 , i32 1, i32 2, i32 3>
5454; SSE-NEXT: ret <4 x double> [[INS]]
5555;
5656; AVX-LABEL: @src_ins0_v4f64_ext1_v2f64(
@@ -64,15 +64,10 @@ define <4 x double> @src_ins0_v4f64_ext1_v2f64(<4 x double> %a, <2 x double> %b)
6464}
6565
6666define <4 x double > @src_ins1_v4f64_ext1_v2f64 (<4 x double > %a , <2 x double > %b ) #0 {
67- ; SSE-LABEL: @src_ins1_v4f64_ext1_v2f64(
68- ; SSE-NEXT: [[TMP1:%.*]] = shufflevector <2 x double> [[B:%.*]], <2 x double> poison, <4 x i32> <i32 1, i32 poison, i32 poison, i32 poison>
69- ; SSE-NEXT: [[INS:%.*]] = shufflevector <4 x double> [[A:%.*]], <4 x double> [[TMP1]], <4 x i32> <i32 0, i32 4, i32 2, i32 3>
70- ; SSE-NEXT: ret <4 x double> [[INS]]
71- ;
72- ; AVX-LABEL: @src_ins1_v4f64_ext1_v2f64(
73- ; AVX-NEXT: [[EXT:%.*]] = extractelement <2 x double> [[B:%.*]], i32 1
74- ; AVX-NEXT: [[INS:%.*]] = insertelement <4 x double> [[A:%.*]], double [[EXT]], i32 1
75- ; AVX-NEXT: ret <4 x double> [[INS]]
67+ ; CHECK-LABEL: @src_ins1_v4f64_ext1_v2f64(
68+ ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x double> [[B:%.*]], <2 x double> poison, <4 x i32> <i32 poison, i32 1, i32 poison, i32 poison>
69+ ; CHECK-NEXT: [[INS:%.*]] = shufflevector <4 x double> [[A:%.*]], <4 x double> [[TMP1]], <4 x i32> <i32 0, i32 5, i32 2, i32 3>
70+ ; CHECK-NEXT: ret <4 x double> [[INS]]
7671;
7772 %ext = extractelement <2 x double > %b , i32 1
7873 %ins = insertelement <4 x double > %a , double %ext , i32 1
@@ -81,8 +76,8 @@ define <4 x double> @src_ins1_v4f64_ext1_v2f64(<4 x double> %a, <2 x double> %b)
8176
8277define <4 x double > @src_ins2_v4f64_ext1_v2f64 (<4 x double > %a , <2 x double > %b ) #0 {
8378; CHECK-LABEL: @src_ins2_v4f64_ext1_v2f64(
84- ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x double> [[B:%.*]], <2 x double> poison, <4 x i32> <i32 1 , i32 poison , i32 poison, i32 poison>
85- ; CHECK-NEXT: [[INS:%.*]] = shufflevector <4 x double> [[A:%.*]], <4 x double> [[TMP1]], <4 x i32> <i32 0, i32 1, i32 4 , i32 3>
79+ ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x double> [[B:%.*]], <2 x double> poison, <4 x i32> <i32 poison , i32 1 , i32 poison, i32 poison>
80+ ; CHECK-NEXT: [[INS:%.*]] = shufflevector <4 x double> [[A:%.*]], <4 x double> [[TMP1]], <4 x i32> <i32 0, i32 1, i32 5 , i32 3>
8681; CHECK-NEXT: ret <4 x double> [[INS]]
8782;
8883 %ext = extractelement <2 x double > %b , i32 1
@@ -92,8 +87,8 @@ define <4 x double> @src_ins2_v4f64_ext1_v2f64(<4 x double> %a, <2 x double> %b)
9287
9388define <4 x double > @src_ins3_v4f64_ext1_v2f64 (<4 x double > %a , <2 x double > %b ) #0 {
9489; CHECK-LABEL: @src_ins3_v4f64_ext1_v2f64(
95- ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x double> [[B:%.*]], <2 x double> poison, <4 x i32> <i32 1 , i32 poison , i32 poison, i32 poison>
96- ; CHECK-NEXT: [[INS:%.*]] = shufflevector <4 x double> [[A:%.*]], <4 x double> [[TMP1]], <4 x i32> <i32 0, i32 1, i32 2, i32 4 >
90+ ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x double> [[B:%.*]], <2 x double> poison, <4 x i32> <i32 poison , i32 1 , i32 poison, i32 poison>
91+ ; CHECK-NEXT: [[INS:%.*]] = shufflevector <4 x double> [[A:%.*]], <4 x double> [[TMP1]], <4 x i32> <i32 0, i32 1, i32 2, i32 5 >
9792; CHECK-NEXT: ret <4 x double> [[INS]]
9893;
9994 %ext = extractelement <2 x double > %b , i32 1
@@ -114,8 +109,8 @@ define <2 x double> @src_ins0_v2f64_ext0_v4f64(<2 x double> %a, <4 x double> %b)
114109
115110define <2 x double > @src_ins0_v2f64_ext1_v4f64 (<2 x double > %a , <4 x double > %b ) {
116111; CHECK-LABEL: @src_ins0_v2f64_ext1_v4f64(
117- ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[B:%.*]], <4 x double> poison, <2 x i32> <i32 1 , i32 poison >
118- ; CHECK-NEXT: [[INS:%.*]] = shufflevector <2 x double> [[A:%.*]], <2 x double> [[TMP1]], <2 x i32> <i32 2 , i32 1>
112+ ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[B:%.*]], <4 x double> poison, <2 x i32> <i32 poison , i32 1 >
113+ ; CHECK-NEXT: [[INS:%.*]] = shufflevector <2 x double> [[A:%.*]], <2 x double> [[TMP1]], <2 x i32> <i32 3 , i32 1>
119114; CHECK-NEXT: ret <2 x double> [[INS]]
120115;
121116 %ext = extractelement <4 x double > %b , i32 1
@@ -158,8 +153,8 @@ define <2 x double> @src_ins1_v2f64_ext0_v4f64(<2 x double> %a, <4 x double> %b)
158153
159154define <2 x double > @src_ins1_v2f64_ext1_v4f64 (<2 x double > %a , <4 x double > %b ) {
160155; CHECK-LABEL: @src_ins1_v2f64_ext1_v4f64(
161- ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[B:%.*]], <4 x double> poison, <2 x i32> <i32 1 , i32 poison >
162- ; CHECK-NEXT: [[INS:%.*]] = shufflevector <2 x double> [[A:%.*]], <2 x double> [[TMP1]], <2 x i32> <i32 0, i32 2 >
156+ ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[B:%.*]], <4 x double> poison, <2 x i32> <i32 poison , i32 1 >
157+ ; CHECK-NEXT: [[INS:%.*]] = shufflevector <2 x double> [[A:%.*]], <2 x double> [[TMP1]], <2 x i32> <i32 0, i32 3 >
163158; CHECK-NEXT: ret <2 x double> [[INS]]
164159;
165160 %ext = extractelement <4 x double > %b , i32 1
0 commit comments