@@ -49,8 +49,8 @@ define <4 x double> @src_ins3_v4f64_ext0_v2f64(<4 x double> %a, <2 x double> %b)
49
49
50
50
define <4 x double > @src_ins0_v4f64_ext1_v2f64 (<4 x double > %a , <2 x double > %b ) #0 {
51
51
; 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>
54
54
; SSE-NEXT: ret <4 x double> [[INS]]
55
55
;
56
56
; 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)
64
64
}
65
65
66
66
define <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]]
76
71
;
77
72
%ext = extractelement <2 x double > %b , i32 1
78
73
%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)
81
76
82
77
define <4 x double > @src_ins2_v4f64_ext1_v2f64 (<4 x double > %a , <2 x double > %b ) #0 {
83
78
; 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>
86
81
; CHECK-NEXT: ret <4 x double> [[INS]]
87
82
;
88
83
%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)
92
87
93
88
define <4 x double > @src_ins3_v4f64_ext1_v2f64 (<4 x double > %a , <2 x double > %b ) #0 {
94
89
; 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 >
97
92
; CHECK-NEXT: ret <4 x double> [[INS]]
98
93
;
99
94
%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)
114
109
115
110
define <2 x double > @src_ins0_v2f64_ext1_v4f64 (<2 x double > %a , <4 x double > %b ) {
116
111
; 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>
119
114
; CHECK-NEXT: ret <2 x double> [[INS]]
120
115
;
121
116
%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)
158
153
159
154
define <2 x double > @src_ins1_v2f64_ext1_v4f64 (<2 x double > %a , <4 x double > %b ) {
160
155
; 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 >
163
158
; CHECK-NEXT: ret <2 x double> [[INS]]
164
159
;
165
160
%ext = extractelement <4 x double > %b , i32 1
0 commit comments