Lines Matching refs:AVX2

4 …-opt %s -test-vector-transpose-lowering=avx2=1 -split-input-file | FileCheck %s --check-prefix=AVX2
49 // AVX2-LABEL: func @transpose4x8
51 // AVX2: vector.extract {{.*}}[0]
52 // AVX2-NEXT: vector.extract {{.*}}[1]
53 // AVX2-NEXT: vector.extract {{.*}}[2]
54 // AVX2-NEXT: vector.extract {{.*}}[3]
55 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
56 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
57 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
58 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
59 // AVX2-NEXT: vector.shuffle {{.*}} [0, 1, 8, 9, 4, 5, 12, 13] : vector<8xf32>, vector<8xf32>
60 // AVX2-NEXT: vector.shuffle {{.*}} [2, 3, 10, 11, 6, 7, 14, 15] : vector<8xf32>, vector<8xf32>
61 // AVX2-NEXT: vector.shuffle {{.*}} [0, 1, 8, 9, 4, 5, 12, 13] : vector<8xf32>, vector<8xf32>
62 // AVX2-NEXT: vector.shuffle {{.*}} [2, 3, 10, 11, 6, 7, 14, 15] : vector<8xf32>, vector<8xf32>
63 // AVX2-NEXT: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
64 // AVX2-NEXT: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
65 // AVX2-NEXT: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
66 // AVX2-NEXT: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
67 // AVX2-NEXT: vector.insert {{.*}}[0]
68 // AVX2-NEXT: vector.insert {{.*}}[1]
69 // AVX2-NEXT: vector.insert {{.*}}[2]
70 // AVX2-NEXT: vector.insert {{.*}}[3]
71 // AVX2-NEXT: vector.shape_cast {{.*}} vector<4x8xf32> to vector<32xf32>
72 // AVX2-NEXT: vector.shape_cast {{.*}} vector<32xf32> to vector<8x4xf32>
79 // AVX2-LABEL: func @transpose021_1x4x8
81 // AVX2: vector.extract {{.*}}[0, 0]
82 // AVX2-NEXT: vector.extract {{.*}}[0, 1]
83 // AVX2-NEXT: vector.extract {{.*}}[0, 2]
84 // AVX2-NEXT: vector.extract {{.*}}[0, 3]
85 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
86 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
87 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
88 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
89 // AVX2-NEXT: vector.shuffle {{.*}} [0, 1, 8, 9, 4, 5, 12, 13] : vector<8xf32>, vector<8xf32>
90 // AVX2-NEXT: vector.shuffle {{.*}} [2, 3, 10, 11, 6, 7, 14, 15] : vector<8xf32>, vector<8xf32>
91 // AVX2-NEXT: vector.shuffle {{.*}} [0, 1, 8, 9, 4, 5, 12, 13] : vector<8xf32>, vector<8xf32>
92 // AVX2-NEXT: vector.shuffle {{.*}} [2, 3, 10, 11, 6, 7, 14, 15] : vector<8xf32>, vector<8xf32>
93 // AVX2-NEXT: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
94 // AVX2-NEXT: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
95 // AVX2-NEXT: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
96 // AVX2-NEXT: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
97 // AVX2-NEXT: vector.insert {{.*}}[0]
98 // AVX2-NEXT: vector.insert {{.*}}[1]
99 // AVX2-NEXT: vector.insert {{.*}}[2]
100 // AVX2-NEXT: vector.insert {{.*}}[3]
101 // AVX2-NEXT: vector.shape_cast {{.*}} vector<4x8xf32> to vector<32xf32>
102 // AVX2-NEXT: vector.shape_cast {{.*}} vector<32xf32> to vector<1x8x4xf32>
109 // AVX2-LABEL: func @transpose8x8
111 // AVX2: vector.extract {{.*}}[0]
112 // AVX2-NEXT: vector.extract {{.*}}[1]
113 // AVX2-NEXT: vector.extract {{.*}}[2]
114 // AVX2-NEXT: vector.extract {{.*}}[3]
115 // AVX2-NEXT: vector.extract {{.*}}[4]
116 // AVX2-NEXT: vector.extract {{.*}}[5]
117 // AVX2-NEXT: vector.extract {{.*}}[6]
118 // AVX2-NEXT: vector.extract {{.*}}[7]
119 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
120 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
121 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
122 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
123 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
124 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
125 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
126 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
127 // AVX2-COUNT-4: vector.shuffle {{.*}} [2, 3, 8, 9, 6, 7, 12, 13] : vector<8xf32>, vector<8xf32>
128 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
129 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
130 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
131 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
132 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
133 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
134 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
135 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
136 // AVX2-COUNT-4: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
137 // AVX2-COUNT-4: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
138 // AVX2-NEXT: vector.insert {{.*}}[0]
139 // AVX2-NEXT: vector.insert {{.*}}[1]
140 // AVX2-NEXT: vector.insert {{.*}}[2]
141 // AVX2-NEXT: vector.insert {{.*}}[3]
142 // AVX2-NEXT: vector.insert {{.*}}[4]
143 // AVX2-NEXT: vector.insert {{.*}}[5]
144 // AVX2-NEXT: vector.insert {{.*}}[6]
145 // AVX2-NEXT: vector.insert {{.*}}[7]
152 // AVX2-LABEL: func @transpose021_1x8x8
154 // AVX2: vector.extract {{.*}}[0, 0]
155 // AVX2-NEXT: vector.extract {{.*}}[0, 1]
156 // AVX2-NEXT: vector.extract {{.*}}[0, 2]
157 // AVX2-NEXT: vector.extract {{.*}}[0, 3]
158 // AVX2-NEXT: vector.extract {{.*}}[0, 4]
159 // AVX2-NEXT: vector.extract {{.*}}[0, 5]
160 // AVX2-NEXT: vector.extract {{.*}}[0, 6]
161 // AVX2-NEXT: vector.extract {{.*}}[0, 7]
162 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
163 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
164 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
165 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
166 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
167 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
168 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
169 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
170 // AVX2-COUNT-4: vector.shuffle {{.*}} [2, 3, 8, 9, 6, 7, 12, 13] : vector<8xf32>, vector<8xf32>
171 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
172 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
173 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
174 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
175 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
176 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
177 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
178 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
179 // AVX2-COUNT-4: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
180 // AVX2-COUNT-4: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
181 // AVX2-NEXT: vector.insert {{.*}}[0]
182 // AVX2-NEXT: vector.insert {{.*}}[1]
183 // AVX2-NEXT: vector.insert {{.*}}[2]
184 // AVX2-NEXT: vector.insert {{.*}}[3]
185 // AVX2-NEXT: vector.insert {{.*}}[4]
186 // AVX2-NEXT: vector.insert {{.*}}[5]
187 // AVX2-NEXT: vector.insert {{.*}}[6]
188 // AVX2-NEXT: vector.insert {{.*}}[7]
189 // AVX2-NEXT: vector.shape_cast %{{.*}} : vector<8x8xf32> to vector<1x8x8xf32>
196 // AVX2-LABEL: func @transpose120_8x1x8
198 // AVX2: vector.extract {{.*}}[0, 0]
199 // AVX2-NEXT: vector.extract {{.*}}[1, 0]
200 // AVX2-NEXT: vector.extract {{.*}}[2, 0]
201 // AVX2-NEXT: vector.extract {{.*}}[3, 0]
202 // AVX2-NEXT: vector.extract {{.*}}[4, 0]
203 // AVX2-NEXT: vector.extract {{.*}}[5, 0]
204 // AVX2-NEXT: vector.extract {{.*}}[6, 0]
205 // AVX2-NEXT: vector.extract {{.*}}[7, 0]
206 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
207 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
208 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
209 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
210 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
211 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
212 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
213 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
214 // AVX2-COUNT-4: vector.shuffle {{.*}} [2, 3, 8, 9, 6, 7, 12, 13] : vector<8xf32>, vector<8xf32>
215 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
216 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
217 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
218 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
219 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
220 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
221 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
222 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
223 // AVX2-COUNT-4: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
224 // AVX2-COUNT-4: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
225 // AVX2-NEXT: vector.insert {{.*}}[0]
226 // AVX2-NEXT: vector.insert {{.*}}[1]
227 // AVX2-NEXT: vector.insert {{.*}}[2]
228 // AVX2-NEXT: vector.insert {{.*}}[3]
229 // AVX2-NEXT: vector.insert {{.*}}[4]
230 // AVX2-NEXT: vector.insert {{.*}}[5]
231 // AVX2-NEXT: vector.insert {{.*}}[6]
232 // AVX2-NEXT: vector.insert {{.*}}[7]
233 // AVX2-NEXT: vector.shape_cast %{{.*}} : vector<8x8xf32> to vector<1x8x8xf32>
240 // AVX2-LABEL: func @transpose120_8x8x1
242 // AVX2: vector.shape_cast %{{.*}} : vector<8x8x1xf32> to vector<8x8xf32>
243 // AVX2-NEXT: vector.extract {{.*}}[0]
244 // AVX2-NEXT: vector.extract {{.*}}[1]
245 // AVX2-NEXT: vector.extract {{.*}}[2]
246 // AVX2-NEXT: vector.extract {{.*}}[3]
247 // AVX2-NEXT: vector.extract {{.*}}[4]
248 // AVX2-NEXT: vector.extract {{.*}}[5]
249 // AVX2-NEXT: vector.extract {{.*}}[6]
250 // AVX2-NEXT: vector.extract {{.*}}[7]
251 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
252 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
253 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
254 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
255 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
256 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
257 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
258 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
259 // AVX2-COUNT-4: vector.shuffle {{.*}} [2, 3, 8, 9, 6, 7, 12, 13] : vector<8xf32>, vector<8xf32>
260 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
261 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
262 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
263 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
264 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
265 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
266 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
267 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
268 // AVX2-COUNT-4: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
269 // AVX2-COUNT-4: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
270 // AVX2-NEXT: vector.insert {{.*}}[0]
271 // AVX2-NEXT: vector.insert {{.*}}[1]
272 // AVX2-NEXT: vector.insert {{.*}}[2]
273 // AVX2-NEXT: vector.insert {{.*}}[3]
274 // AVX2-NEXT: vector.insert {{.*}}[4]
275 // AVX2-NEXT: vector.insert {{.*}}[5]
276 // AVX2-NEXT: vector.insert {{.*}}[6]
277 // AVX2-NEXT: vector.insert {{.*}}[7]
278 // AVX2-NEXT: vector.shape_cast %{{.*}} : vector<8x8xf32> to vector<8x1x8xf32>
285 // AVX2-LABEL: func @transpose102_8x8x1
287 // AVX2: vector.shape_cast %{{.*}} : vector<8x8x1xf32> to vector<8x8xf32>
288 // AVX2-NEXT: vector.extract {{.*}}[0]
289 // AVX2-NEXT: vector.extract {{.*}}[1]
290 // AVX2-NEXT: vector.extract {{.*}}[2]
291 // AVX2-NEXT: vector.extract {{.*}}[3]
292 // AVX2-NEXT: vector.extract {{.*}}[4]
293 // AVX2-NEXT: vector.extract {{.*}}[5]
294 // AVX2-NEXT: vector.extract {{.*}}[6]
295 // AVX2-NEXT: vector.extract {{.*}}[7]
296 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
297 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
298 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
299 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
300 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
301 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
302 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
303 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
304 // AVX2-COUNT-4: vector.shuffle {{.*}} [2, 3, 8, 9, 6, 7, 12, 13] : vector<8xf32>, vector<8xf32>
305 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
306 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
307 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
308 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
309 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
310 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
311 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
312 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
313 // AVX2-COUNT-4: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
314 // AVX2-COUNT-4: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
315 // AVX2-NEXT: vector.insert {{.*}}[0]
316 // AVX2-NEXT: vector.insert {{.*}}[1]
317 // AVX2-NEXT: vector.insert {{.*}}[2]
318 // AVX2-NEXT: vector.insert {{.*}}[3]
319 // AVX2-NEXT: vector.insert {{.*}}[4]
320 // AVX2-NEXT: vector.insert {{.*}}[5]
321 // AVX2-NEXT: vector.insert {{.*}}[6]
322 // AVX2-NEXT: vector.insert {{.*}}[7]
323 // AVX2-NEXT: vector.shape_cast %{{.*}} : vector<8x8xf32> to vector<8x8x1xf32>
330 // AVX2-LABEL: func @transpose201_8x1x8
332 // AVX2: vector.extract {{.*}}[0, 0]
333 // AVX2-NEXT: vector.extract {{.*}}[1, 0]
334 // AVX2-NEXT: vector.extract {{.*}}[2, 0]
335 // AVX2-NEXT: vector.extract {{.*}}[3, 0]
336 // AVX2-NEXT: vector.extract {{.*}}[4, 0]
337 // AVX2-NEXT: vector.extract {{.*}}[5, 0]
338 // AVX2-NEXT: vector.extract {{.*}}[6, 0]
339 // AVX2-NEXT: vector.extract {{.*}}[7, 0]
340 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
341 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
342 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
343 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
344 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
345 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
346 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
347 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
348 // AVX2-COUNT-4: vector.shuffle {{.*}} [2, 3, 8, 9, 6, 7, 12, 13] : vector<8xf32>, vector<8xf32>
349 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
350 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
351 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
352 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
353 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
354 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
355 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
356 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
357 // AVX2-COUNT-4: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
358 // AVX2-COUNT-4: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
359 // AVX2-NEXT: vector.insert {{.*}}[0]
360 // AVX2-NEXT: vector.insert {{.*}}[1]
361 // AVX2-NEXT: vector.insert {{.*}}[2]
362 // AVX2-NEXT: vector.insert {{.*}}[3]
363 // AVX2-NEXT: vector.insert {{.*}}[4]
364 // AVX2-NEXT: vector.insert {{.*}}[5]
365 // AVX2-NEXT: vector.insert {{.*}}[6]
366 // AVX2-NEXT: vector.insert {{.*}}[7]
367 // AVX2-NEXT: vector.shape_cast %{{.*}} : vector<8x8xf32> to vector<8x8x1xf32>
374 // AVX2-LABEL: func @transpose201_1x8x8
376 // AVX2: vector.extract {{.*}}[0, 0]
377 // AVX2-NEXT: vector.extract {{.*}}[0, 1]
378 // AVX2-NEXT: vector.extract {{.*}}[0, 2]
379 // AVX2-NEXT: vector.extract {{.*}}[0, 3]
380 // AVX2-NEXT: vector.extract {{.*}}[0, 4]
381 // AVX2-NEXT: vector.extract {{.*}}[0, 5]
382 // AVX2-NEXT: vector.extract {{.*}}[0, 6]
383 // AVX2-NEXT: vector.extract {{.*}}[0, 7]
384 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
385 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
386 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
387 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
388 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
389 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
390 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
391 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
392 // AVX2-COUNT-4: vector.shuffle {{.*}} [2, 3, 8, 9, 6, 7, 12, 13] : vector<8xf32>, vector<8xf32>
393 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
394 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
395 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
396 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
397 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
398 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
399 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
400 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
401 // AVX2-COUNT-4: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
402 // AVX2-COUNT-4: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
403 // AVX2-NEXT: vector.insert {{.*}}[0]
404 // AVX2-NEXT: vector.insert {{.*}}[1]
405 // AVX2-NEXT: vector.insert {{.*}}[2]
406 // AVX2-NEXT: vector.insert {{.*}}[3]
407 // AVX2-NEXT: vector.insert {{.*}}[4]
408 // AVX2-NEXT: vector.insert {{.*}}[5]
409 // AVX2-NEXT: vector.insert {{.*}}[6]
410 // AVX2-NEXT: vector.insert {{.*}}[7]
411 // AVX2-NEXT: vector.shape_cast %{{.*}} : vector<8x8xf32> to vector<8x1x8xf32>
418 // AVX2-LABEL: func @transpose210_8x1x8
420 // AVX2: vector.extract {{.*}}[0, 0]
421 // AVX2-NEXT: vector.extract {{.*}}[1, 0]
422 // AVX2-NEXT: vector.extract {{.*}}[2, 0]
423 // AVX2-NEXT: vector.extract {{.*}}[3, 0]
424 // AVX2-NEXT: vector.extract {{.*}}[4, 0]
425 // AVX2-NEXT: vector.extract {{.*}}[5, 0]
426 // AVX2-NEXT: vector.extract {{.*}}[6, 0]
427 // AVX2-NEXT: vector.extract {{.*}}[7, 0]
428 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
429 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
430 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
431 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
432 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
433 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
434 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
435 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
436 // AVX2-COUNT-4: vector.shuffle {{.*}} [2, 3, 8, 9, 6, 7, 12, 13] : vector<8xf32>, vector<8xf32>
437 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
438 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
439 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
440 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
441 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
442 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
443 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
444 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
445 // AVX2-COUNT-4: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
446 // AVX2-COUNT-4: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
447 // AVX2-NEXT: vector.insert {{.*}}[0]
448 // AVX2-NEXT: vector.insert {{.*}}[1]
449 // AVX2-NEXT: vector.insert {{.*}}[2]
450 // AVX2-NEXT: vector.insert {{.*}}[3]
451 // AVX2-NEXT: vector.insert {{.*}}[4]
452 // AVX2-NEXT: vector.insert {{.*}}[5]
453 // AVX2-NEXT: vector.insert {{.*}}[6]
454 // AVX2-NEXT: vector.insert {{.*}}[7]
455 // AVX2-NEXT: vector.shape_cast %{{.*}} : vector<8x8xf32> to vector<8x1x8xf32>
462 // AVX2-LABEL: func @transpose210_8x8x1
464 // AVX2: vector.shape_cast %{{.*}} : vector<8x8x1xf32> to vector<8x8xf32>
465 // AVX2-NEXT: vector.extract {{.*}}[0]
466 // AVX2-NEXT: vector.extract {{.*}}[1]
467 // AVX2-NEXT: vector.extract {{.*}}[2]
468 // AVX2-NEXT: vector.extract {{.*}}[3]
469 // AVX2-NEXT: vector.extract {{.*}}[4]
470 // AVX2-NEXT: vector.extract {{.*}}[5]
471 // AVX2-NEXT: vector.extract {{.*}}[6]
472 // AVX2-NEXT: vector.extract {{.*}}[7]
473 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
474 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
475 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
476 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
477 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
478 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
479 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
480 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
481 // AVX2-COUNT-4: vector.shuffle {{.*}} [2, 3, 8, 9, 6, 7, 12, 13] : vector<8xf32>, vector<8xf32>
482 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
483 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
484 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
485 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
486 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
487 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
488 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
489 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
490 // AVX2-COUNT-4: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
491 // AVX2-COUNT-4: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
492 // AVX2-NEXT: vector.insert {{.*}}[0]
493 // AVX2-NEXT: vector.insert {{.*}}[1]
494 // AVX2-NEXT: vector.insert {{.*}}[2]
495 // AVX2-NEXT: vector.insert {{.*}}[3]
496 // AVX2-NEXT: vector.insert {{.*}}[4]
497 // AVX2-NEXT: vector.insert {{.*}}[5]
498 // AVX2-NEXT: vector.insert {{.*}}[6]
499 // AVX2-NEXT: vector.insert {{.*}}[7]
500 // AVX2-NEXT: vector.shape_cast %{{.*}} : vector<8x8xf32> to vector<1x8x8xf32>
507 // AVX2-LABEL: func @transpose210_1x8x8
509 // AVX2: vector.extract {{.*}}[0, 0]
510 // AVX2-NEXT: vector.extract {{.*}}[0, 1]
511 // AVX2-NEXT: vector.extract {{.*}}[0, 2]
512 // AVX2-NEXT: vector.extract {{.*}}[0, 3]
513 // AVX2-NEXT: vector.extract {{.*}}[0, 4]
514 // AVX2-NEXT: vector.extract {{.*}}[0, 5]
515 // AVX2-NEXT: vector.extract {{.*}}[0, 6]
516 // AVX2-NEXT: vector.extract {{.*}}[0, 7]
517 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
518 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
519 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
520 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
521 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
522 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
523 // AVX2-NEXT: vector.shuffle {{.*}} [0, 8, 1, 9, 4, 12, 5, 13] : vector<8xf32>, vector<8xf32>
524 // AVX2-NEXT: vector.shuffle {{.*}} [2, 10, 3, 11, 6, 14, 7, 15] : vector<8xf32>, vector<8xf32>
525 // AVX2-COUNT-4: vector.shuffle {{.*}} [2, 3, 8, 9, 6, 7, 12, 13] : vector<8xf32>, vector<8xf32>
526 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
527 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
528 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
529 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
530 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
531 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
532 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0xcc", "=x,x,x" {{.*}} : (…
533 …// AVX2-NEXT: llvm.inline_asm asm_dialect = intel "vblendps $0, $1, $2, 0x33", "=x,x,x" {{.*}} : (…
534 // AVX2-COUNT-4: vector.shuffle {{.*}} [0, 1, 2, 3, 8, 9, 10, 11] : vector<8xf32>, vector<8xf32>
535 // AVX2-COUNT-4: vector.shuffle {{.*}} [4, 5, 6, 7, 12, 13, 14, 15] : vector<8xf32>, vector<8xf32>
536 // AVX2-NEXT: vector.insert {{.*}}[0]
537 // AVX2-NEXT: vector.insert {{.*}}[1]
538 // AVX2-NEXT: vector.insert {{.*}}[2]
539 // AVX2-NEXT: vector.insert {{.*}}[3]
540 // AVX2-NEXT: vector.insert {{.*}}[4]
541 // AVX2-NEXT: vector.insert {{.*}}[5]
542 // AVX2-NEXT: vector.insert {{.*}}[6]
543 // AVX2-NEXT: vector.insert {{.*}}[7]
544 // AVX2-NEXT: vector.shape_cast %{{.*}} : vector<8x8xf32> to vector<8x8x1xf32>
556 // AVX2-NOT: vector.shuffle
560 // AVX2-LABEL: func @transpose021_8x1x8
566 // AVX2-NOT: vector.shuffle
570 // AVX2-LABEL: func @transpose021_8x8x1
576 // AVX2-NOT: vector.shuffle
581 // AVX2-LABEL: func @transpose102_1x8x8
603 // AVX2-NOT: vector.shuffle
608 // AVX2-LABEL: func @transpose102_8x1x8
630 // AVX2-NOT: vector.shuffle
635 // AVX2-LABEL: func @transpose1023_1x1x8x8
644 // AVX2-NOT: vector.shuffle
648 // AVX2-LABEL: func @transpose120_1x8x8
655 // AVX2-NOT: vector.shuffle
659 // AVX2-LABEL: func @transpose201_8x8x1
665 // AVX2-NOT: vector.shuffle