@@ -57,53 +57,53 @@ define <8 x double> @identity_test_vpermilvar_pd_512(<8 x double> %v) {
57
57
58
58
define <4 x float > @zero_test_vpermilvar_ps_zero (<4 x float > %v ) {
59
59
; CHECK-LABEL: @zero_test_vpermilvar_ps_zero(
60
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <4 x float> [[V:%.*]], <4 x float> poison, <4 x i32> zeroinitializer
61
- ; CHECK-NEXT: ret <4 x float> [[TMP1 ]]
60
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <4 x float> [[V:%.*]], <4 x float> poison, <4 x i32> zeroinitializer
61
+ ; CHECK-NEXT: ret <4 x float> [[A ]]
62
62
;
63
63
%a = tail call <4 x float > @llvm.x86.avx.vpermilvar.ps (<4 x float > %v , <4 x i32 > zeroinitializer )
64
64
ret <4 x float > %a
65
65
}
66
66
67
67
define <8 x float > @zero_test_vpermilvar_ps_256_zero (<8 x float > %v ) {
68
68
; CHECK-LABEL: @zero_test_vpermilvar_ps_256_zero(
69
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <8 x float> [[V:%.*]], <8 x float> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
70
- ; CHECK-NEXT: ret <8 x float> [[TMP1 ]]
69
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <8 x float> [[V:%.*]], <8 x float> poison, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4>
70
+ ; CHECK-NEXT: ret <8 x float> [[A ]]
71
71
;
72
72
%a = tail call <8 x float > @llvm.x86.avx.vpermilvar.ps.256 (<8 x float > %v , <8 x i32 > zeroinitializer )
73
73
ret <8 x float > %a
74
74
}
75
75
76
76
define <16 x float > @zero_test_vpermilvar_ps_512_zero (<16 x float > %v ) {
77
77
; CHECK-LABEL: @zero_test_vpermilvar_ps_512_zero(
78
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <16 x float> [[V:%.*]], <16 x float> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4, i32 8, i32 8, i32 8, i32 8, i32 12, i32 12, i32 12, i32 12>
79
- ; CHECK-NEXT: ret <16 x float> [[TMP1 ]]
78
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <16 x float> [[V:%.*]], <16 x float> poison, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 4, i32 4, i32 4, i32 4, i32 8, i32 8, i32 8, i32 8, i32 12, i32 12, i32 12, i32 12>
79
+ ; CHECK-NEXT: ret <16 x float> [[A ]]
80
80
;
81
81
%a = tail call <16 x float > @llvm.x86.avx512.vpermilvar.ps.512 (<16 x float > %v , <16 x i32 > zeroinitializer )
82
82
ret <16 x float > %a
83
83
}
84
84
85
85
define <2 x double > @zero_test_vpermilvar_pd_zero (<2 x double > %v ) {
86
86
; CHECK-LABEL: @zero_test_vpermilvar_pd_zero(
87
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <2 x double> [[V:%.*]], <2 x double> poison, <2 x i32> zeroinitializer
88
- ; CHECK-NEXT: ret <2 x double> [[TMP1 ]]
87
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <2 x double> [[V:%.*]], <2 x double> poison, <2 x i32> zeroinitializer
88
+ ; CHECK-NEXT: ret <2 x double> [[A ]]
89
89
;
90
90
%a = tail call <2 x double > @llvm.x86.avx.vpermilvar.pd (<2 x double > %v , <2 x i64 > zeroinitializer )
91
91
ret <2 x double > %a
92
92
}
93
93
94
94
define <4 x double > @zero_test_vpermilvar_pd_256_zero (<4 x double > %v ) {
95
95
; CHECK-LABEL: @zero_test_vpermilvar_pd_256_zero(
96
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <4 x double> [[V:%.*]], <4 x double> poison, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
97
- ; CHECK-NEXT: ret <4 x double> [[TMP1 ]]
96
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <4 x double> [[V:%.*]], <4 x double> poison, <4 x i32> <i32 0, i32 0, i32 2, i32 2>
97
+ ; CHECK-NEXT: ret <4 x double> [[A ]]
98
98
;
99
99
%a = tail call <4 x double > @llvm.x86.avx.vpermilvar.pd.256 (<4 x double > %v , <4 x i64 > zeroinitializer )
100
100
ret <4 x double > %a
101
101
}
102
102
103
103
define <8 x double > @zero_test_vpermilvar_pd_512_zero (<8 x double > %v ) {
104
104
; CHECK-LABEL: @zero_test_vpermilvar_pd_512_zero(
105
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <8 x double> [[V:%.*]], <8 x double> poison, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
106
- ; CHECK-NEXT: ret <8 x double> [[TMP1 ]]
105
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <8 x double> [[V:%.*]], <8 x double> poison, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6>
106
+ ; CHECK-NEXT: ret <8 x double> [[A ]]
107
107
;
108
108
%a = tail call <8 x double > @llvm.x86.avx512.vpermilvar.pd.512 (<8 x double > %v , <8 x i64 > zeroinitializer )
109
109
ret <8 x double > %a
@@ -113,53 +113,53 @@ define <8 x double> @zero_test_vpermilvar_pd_512_zero(<8 x double> %v) {
113
113
114
114
define <4 x float > @test_vpermilvar_ps (<4 x float > %v ) {
115
115
; CHECK-LABEL: @test_vpermilvar_ps(
116
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <4 x float> [[V:%.*]], <4 x float> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
117
- ; CHECK-NEXT: ret <4 x float> [[TMP1 ]]
116
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <4 x float> [[V:%.*]], <4 x float> poison, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
117
+ ; CHECK-NEXT: ret <4 x float> [[A ]]
118
118
;
119
119
%a = tail call <4 x float > @llvm.x86.avx.vpermilvar.ps (<4 x float > %v , <4 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 >)
120
120
ret <4 x float > %a
121
121
}
122
122
123
123
define <8 x float > @test_vpermilvar_ps_256 (<8 x float > %v ) {
124
124
; CHECK-LABEL: @test_vpermilvar_ps_256(
125
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <8 x float> [[V:%.*]], <8 x float> poison, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4>
126
- ; CHECK-NEXT: ret <8 x float> [[TMP1 ]]
125
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <8 x float> [[V:%.*]], <8 x float> poison, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4>
126
+ ; CHECK-NEXT: ret <8 x float> [[A ]]
127
127
;
128
128
%a = tail call <8 x float > @llvm.x86.avx.vpermilvar.ps.256 (<8 x float > %v , <8 x i32 > <i32 7 , i32 6 , i32 5 , i32 4 , i32 3 , i32 2 , i32 1 , i32 0 >)
129
129
ret <8 x float > %a
130
130
}
131
131
132
132
define <16 x float > @test_vpermilvar_ps_512 (<16 x float > %v ) {
133
133
; CHECK-LABEL: @test_vpermilvar_ps_512(
134
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <16 x float> [[V:%.*]], <16 x float> poison, <16 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4, i32 11, i32 10, i32 9, i32 8, i32 15, i32 14, i32 13, i32 12>
135
- ; CHECK-NEXT: ret <16 x float> [[TMP1 ]]
134
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <16 x float> [[V:%.*]], <16 x float> poison, <16 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4, i32 11, i32 10, i32 9, i32 8, i32 15, i32 14, i32 13, i32 12>
135
+ ; CHECK-NEXT: ret <16 x float> [[A ]]
136
136
;
137
137
%a = tail call <16 x float > @llvm.x86.avx512.vpermilvar.ps.512 (<16 x float > %v , <16 x i32 > <i32 15 , i32 14 , i32 13 , i32 12 , i32 11 , i32 10 , i32 9 , i32 8 , i32 7 , i32 6 , i32 5 , i32 4 , i32 3 , i32 2 , i32 1 , i32 0 >)
138
138
ret <16 x float > %a
139
139
}
140
140
141
141
define <2 x double > @test_vpermilvar_pd (<2 x double > %v ) {
142
142
; CHECK-LABEL: @test_vpermilvar_pd(
143
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <2 x double> [[V:%.*]], <2 x double> poison, <2 x i32> <i32 1, i32 0>
144
- ; CHECK-NEXT: ret <2 x double> [[TMP1 ]]
143
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <2 x double> [[V:%.*]], <2 x double> poison, <2 x i32> <i32 1, i32 0>
144
+ ; CHECK-NEXT: ret <2 x double> [[A ]]
145
145
;
146
146
%a = tail call <2 x double > @llvm.x86.avx.vpermilvar.pd (<2 x double > %v , <2 x i64 > <i64 2 , i64 0 >)
147
147
ret <2 x double > %a
148
148
}
149
149
150
150
define <4 x double > @test_vpermilvar_pd_256 (<4 x double > %v ) {
151
151
; CHECK-LABEL: @test_vpermilvar_pd_256(
152
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <4 x double> [[V:%.*]], <4 x double> poison, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
153
- ; CHECK-NEXT: ret <4 x double> [[TMP1 ]]
152
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <4 x double> [[V:%.*]], <4 x double> poison, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
153
+ ; CHECK-NEXT: ret <4 x double> [[A ]]
154
154
;
155
155
%a = tail call <4 x double > @llvm.x86.avx.vpermilvar.pd.256 (<4 x double > %v , <4 x i64 > <i64 3 , i64 1 , i64 2 , i64 0 >)
156
156
ret <4 x double > %a
157
157
}
158
158
159
159
define <8 x double > @test_vpermilvar_pd_512 (<8 x double > %v ) {
160
160
; CHECK-LABEL: @test_vpermilvar_pd_512(
161
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <8 x double> [[V:%.*]], <8 x double> poison, <8 x i32> <i32 1, i32 0, i32 3, i32 2, i32 5, i32 4, i32 7, i32 6>
162
- ; CHECK-NEXT: ret <8 x double> [[TMP1 ]]
161
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <8 x double> [[V:%.*]], <8 x double> poison, <8 x i32> <i32 1, i32 0, i32 3, i32 2, i32 5, i32 4, i32 7, i32 6>
162
+ ; CHECK-NEXT: ret <8 x double> [[A ]]
163
163
;
164
164
%a = tail call <8 x double > @llvm.x86.avx512.vpermilvar.pd.512 (<8 x double > %v , <8 x i64 > <i64 3 , i64 1 , i64 2 , i64 0 , i64 7 , i64 5 , i64 6 , i64 4 >)
165
165
ret <8 x double > %a
@@ -169,53 +169,53 @@ define <8 x double> @test_vpermilvar_pd_512(<8 x double> %v) {
169
169
170
170
define <4 x float > @undef_test_vpermilvar_ps (<4 x float > %v ) {
171
171
; CHECK-LABEL: @undef_test_vpermilvar_ps(
172
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <4 x float> [[V:%.*]], <4 x float> poison, <4 x i32> <i32 poison, i32 2, i32 1, i32 poison>
173
- ; CHECK-NEXT: ret <4 x float> [[TMP1 ]]
172
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <4 x float> [[V:%.*]], <4 x float> poison, <4 x i32> <i32 poison, i32 2, i32 1, i32 poison>
173
+ ; CHECK-NEXT: ret <4 x float> [[A ]]
174
174
;
175
175
%a = tail call <4 x float > @llvm.x86.avx.vpermilvar.ps (<4 x float > %v , <4 x i32 > <i32 undef , i32 2 , i32 1 , i32 undef >)
176
176
ret <4 x float > %a
177
177
}
178
178
179
179
define <8 x float > @undef_test_vpermilvar_ps_256 (<8 x float > %v ) {
180
180
; CHECK-LABEL: @undef_test_vpermilvar_ps_256(
181
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <8 x float> [[V:%.*]], <8 x float> poison, <8 x i32> <i32 poison, i32 2, i32 1, i32 poison, i32 7, i32 6, i32 5, i32 4>
182
- ; CHECK-NEXT: ret <8 x float> [[TMP1 ]]
181
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <8 x float> [[V:%.*]], <8 x float> poison, <8 x i32> <i32 poison, i32 2, i32 1, i32 poison, i32 7, i32 6, i32 5, i32 4>
182
+ ; CHECK-NEXT: ret <8 x float> [[A ]]
183
183
;
184
184
%a = tail call <8 x float > @llvm.x86.avx.vpermilvar.ps.256 (<8 x float > %v , <8 x i32 > <i32 undef , i32 6 , i32 5 , i32 undef , i32 3 , i32 2 , i32 1 , i32 0 >)
185
185
ret <8 x float > %a
186
186
}
187
187
188
188
define <16 x float > @undef_test_vpermilvar_ps_512 (<16 x float > %v ) {
189
189
; CHECK-LABEL: @undef_test_vpermilvar_ps_512(
190
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <16 x float> [[V:%.*]], <16 x float> poison, <16 x i32> <i32 poison, i32 2, i32 1, i32 poison, i32 7, i32 6, i32 5, i32 4, i32 poison, i32 10, i32 9, i32 poison, i32 15, i32 14, i32 13, i32 12>
191
- ; CHECK-NEXT: ret <16 x float> [[TMP1 ]]
190
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <16 x float> [[V:%.*]], <16 x float> poison, <16 x i32> <i32 poison, i32 2, i32 1, i32 poison, i32 7, i32 6, i32 5, i32 4, i32 poison, i32 10, i32 9, i32 poison, i32 15, i32 14, i32 13, i32 12>
191
+ ; CHECK-NEXT: ret <16 x float> [[A ]]
192
192
;
193
193
%a = tail call <16 x float > @llvm.x86.avx512.vpermilvar.ps.512 (<16 x float > %v , <16 x i32 > <i32 undef , i32 6 , i32 5 , i32 undef , i32 3 , i32 2 , i32 1 , i32 0 , i32 undef , i32 6 , i32 5 , i32 undef , i32 3 , i32 2 , i32 1 , i32 0 >)
194
194
ret <16 x float > %a
195
195
}
196
196
197
197
define <2 x double > @undef_test_vpermilvar_pd (<2 x double > %v ) {
198
198
; CHECK-LABEL: @undef_test_vpermilvar_pd(
199
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <2 x double> [[V:%.*]], <2 x double> poison, <2 x i32> <i32 poison, i32 0>
200
- ; CHECK-NEXT: ret <2 x double> [[TMP1 ]]
199
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <2 x double> [[V:%.*]], <2 x double> poison, <2 x i32> <i32 poison, i32 0>
200
+ ; CHECK-NEXT: ret <2 x double> [[A ]]
201
201
;
202
202
%a = tail call <2 x double > @llvm.x86.avx.vpermilvar.pd (<2 x double > %v , <2 x i64 > <i64 undef , i64 0 >)
203
203
ret <2 x double > %a
204
204
}
205
205
206
206
define <4 x double > @undef_test_vpermilvar_pd_256 (<4 x double > %v ) {
207
207
; CHECK-LABEL: @undef_test_vpermilvar_pd_256(
208
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <4 x double> [[V:%.*]], <4 x double> poison, <4 x i32> <i32 poison, i32 0, i32 3, i32 poison>
209
- ; CHECK-NEXT: ret <4 x double> [[TMP1 ]]
208
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <4 x double> [[V:%.*]], <4 x double> poison, <4 x i32> <i32 poison, i32 0, i32 3, i32 poison>
209
+ ; CHECK-NEXT: ret <4 x double> [[A ]]
210
210
;
211
211
%a = tail call <4 x double > @llvm.x86.avx.vpermilvar.pd.256 (<4 x double > %v , <4 x i64 > <i64 undef , i64 1 , i64 2 , i64 undef >)
212
212
ret <4 x double > %a
213
213
}
214
214
215
215
define <8 x double > @undef_test_vpermilvar_pd_512 (<8 x double > %v ) {
216
216
; CHECK-LABEL: @undef_test_vpermilvar_pd_512(
217
- ; CHECK-NEXT: [[TMP1 :%.*]] = shufflevector <8 x double> [[V:%.*]], <8 x double> poison, <8 x i32> <i32 poison, i32 0, i32 3, i32 poison, i32 poison, i32 4, i32 7, i32 poison>
218
- ; CHECK-NEXT: ret <8 x double> [[TMP1 ]]
217
+ ; CHECK-NEXT: [[A :%.*]] = shufflevector <8 x double> [[V:%.*]], <8 x double> poison, <8 x i32> <i32 poison, i32 0, i32 3, i32 poison, i32 poison, i32 4, i32 7, i32 poison>
218
+ ; CHECK-NEXT: ret <8 x double> [[A ]]
219
219
;
220
220
%a = tail call <8 x double > @llvm.x86.avx512.vpermilvar.pd.512 (<8 x double > %v , <8 x i64 > <i64 undef , i64 1 , i64 2 , i64 undef , i64 undef , i64 1 , i64 2 , i64 undef >)
221
221
ret <8 x double > %a
0 commit comments