2 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
3 # RUN: llvm-mca -mtriple=riscv64 -mcpu=sifive-p470 -iterations=1 < %s | FileCheck %s
5 # Simple integer reductions: varies by LMUL
6 vsetvli zero
, zero
, e32
, m1
, tu
, mu
9 vsetvli zero
, zero
, e32
, m2
, tu
, mu
12 vsetvli zero
, zero
, e32
, m4
, tu
, mu
15 vsetvli zero
, zero
, e32
, m8
, tu
, mu
18 # Advanced integer reductions: varies by LMUL and SEW
19 vsetvli zero
, zero
, e16
, m1
, tu
, mu
23 vsetvli zero
, zero
, e16
, m2
, tu
, mu
27 vsetvli zero
, zero
, e16
, m4
, tu
, mu
31 vsetvli zero
, zero
, e16
, m8
, tu
, mu
35 vsetvli zero
, zero
, e32
, m1
, tu
, mu
39 vsetvli zero
, zero
, e32
, m2
, tu
, mu
43 vsetvli zero
, zero
, e32
, m4
, tu
, mu
47 vsetvli zero
, zero
, e32
, m8
, tu
, mu
51 vsetvli zero
, zero
, e64
, m1
, tu
, mu
55 vsetvli zero
, zero
, e64
, m2
, tu
, mu
59 vsetvli zero
, zero
, e64
, m4
, tu
, mu
63 vsetvli zero
, zero
, e64
, m8
, tu
, mu
67 # Simple floating point reductions: varies by LMUL and SEW
68 vsetvli zero
, zero
, e16
, m1
, tu
, mu
69 vfredusum.vs v5
, v7
, v8
70 vfredosum.vs v5
, v7
, v8
72 vsetvli zero
, zero
, e16
, m2
, tu
, mu
73 vfredusum.vs v5
, v7
, v8
74 vfredosum.vs v5
, v7
, v8
76 vsetvli zero
, zero
, e16
, m4
, tu
, mu
77 vfredusum.vs v5
, v7
, v8
78 vfredosum.vs v5
, v7
, v8
80 vsetvli zero
, zero
, e16
, m8
, tu
, mu
81 vfredusum.vs v5
, v7
, v8
82 vfredosum.vs v5
, v7
, v8
84 vsetvli zero
, zero
, e32
, m1
, tu
, mu
85 vfredusum.vs v5
, v7
, v8
86 vfredosum.vs v5
, v7
, v8
88 vsetvli zero
, zero
, e32
, m2
, tu
, mu
89 vfredusum.vs v5
, v7
, v8
90 vfredosum.vs v5
, v7
, v8
92 vsetvli zero
, zero
, e32
, m4
, tu
, mu
93 vfredusum.vs v5
, v7
, v8
94 vfredosum.vs v5
, v7
, v8
96 vsetvli zero
, zero
, e32
, m8
, tu
, mu
97 vfredusum.vs v5
, v7
, v8
98 vfredosum.vs v5
, v7
, v8
100 vsetvli zero
, zero
, e64
, m1
, tu
, mu
101 vfredusum.vs v5
, v7
, v8
102 vfredosum.vs v5
, v7
, v8
104 vsetvli zero
, zero
, e64
, m2
, tu
, mu
105 vfredusum.vs v5
, v7
, v8
106 vfredosum.vs v5
, v7
, v8
108 vsetvli zero
, zero
, e64
, m4
, tu
, mu
109 vfredusum.vs v5
, v7
, v8
110 vfredosum.vs v5
, v7
, v8
112 vsetvli zero
, zero
, e64
, m8
, tu
, mu
113 vfredusum.vs v5
, v7
, v8
114 vfredosum.vs v5
, v7
, v8
116 # Advanced floating point reductions: varies by LMUL and SEW
117 vsetvli zero
, zero
, e16
, m1
, tu
, mu
118 vfredmin.vs v5
, v7
, v8
119 vfredmax.vs v5
, v7
, v8
121 vsetvli zero
, zero
, e16
, m2
, tu
, mu
122 vfredmin.vs v5
, v7
, v8
123 vfredmax.vs v5
, v7
, v8
125 vsetvli zero
, zero
, e16
, m4
, tu
, mu
126 vfredmin.vs v5
, v7
, v8
127 vfredmax.vs v5
, v7
, v8
129 vsetvli zero
, zero
, e16
, m8
, tu
, mu
130 vfredmin.vs v5
, v7
, v8
131 vfredmax.vs v5
, v7
, v8
133 vsetvli zero
, zero
, e32
, m1
, tu
, mu
134 vfredmin.vs v5
, v7
, v8
135 vfredmax.vs v5
, v7
, v8
137 vsetvli zero
, zero
, e32
, m2
, tu
, mu
138 vfredmin.vs v5
, v7
, v8
139 vfredmax.vs v5
, v7
, v8
141 vsetvli zero
, zero
, e32
, m4
, tu
, mu
142 vfredmin.vs v5
, v7
, v8
143 vfredmax.vs v5
, v7
, v8
145 vsetvli zero
, zero
, e32
, m8
, tu
, mu
146 vfredmin.vs v5
, v7
, v8
147 vfredmax.vs v5
, v7
, v8
149 vsetvli zero
, zero
, e64
, m1
, tu
, mu
150 vfredmin.vs v5
, v7
, v8
151 vfredmax.vs v5
, v7
, v8
153 vsetvli zero
, zero
, e64
, m2
, tu
, mu
154 vfredmin.vs v5
, v7
, v8
155 vfredmax.vs v5
, v7
, v8
157 vsetvli zero
, zero
, e64
, m4
, tu
, mu
158 vfredmin.vs v5
, v7
, v8
159 vfredmax.vs v5
, v7
, v8
161 vsetvli zero
, zero
, e64
, m8
, tu
, mu
162 vfredmin.vs v5
, v7
, v8
163 vfredmax.vs v5
, v7
, v8
165 # CHECK: Iterations: 1
166 # CHECK-NEXT: Instructions: 116
167 # CHECK-NEXT: Total Cycles: 921
168 # CHECK-NEXT: Total uOps: 116
170 # CHECK: Dispatch Width: 3
171 # CHECK-NEXT: uOps Per Cycle: 0.13
172 # CHECK-NEXT: IPC: 0.13
173 # CHECK-NEXT: Block RThroughput: 916.0
175 # CHECK: Instruction Info:
176 # CHECK-NEXT: [1]: #uOps
177 # CHECK-NEXT: [2]: Latency
178 # CHECK-NEXT: [3]: RThroughput
179 # CHECK-NEXT: [4]: MayLoad
180 # CHECK-NEXT: [5]: MayStore
181 # CHECK-NEXT: [6]: HasSideEffects (U)
183 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
184 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu
185 # CHECK-NEXT: 1 2 1.00 vredsum.vs v5, v7, v8
186 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu
187 # CHECK-NEXT: 1 4 2.00 vredsum.vs v5, v7, v8
188 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu
189 # CHECK-NEXT: 1 8 4.00 vredsum.vs v5, v7, v8
190 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m8, tu, mu
191 # CHECK-NEXT: 1 16 9.00 vredsum.vs v5, v7, v8
192 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu
193 # CHECK-NEXT: 1 8 4.00 vredmin.vs v5, v7, v8
194 # CHECK-NEXT: 1 8 4.00 vredmax.vs v5, v7, v8
195 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu
196 # CHECK-NEXT: 1 10 5.00 vredmin.vs v5, v7, v8
197 # CHECK-NEXT: 1 10 5.00 vredmax.vs v5, v7, v8
198 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m4, tu, mu
199 # CHECK-NEXT: 1 12 8.00 vredmin.vs v5, v7, v8
200 # CHECK-NEXT: 1 12 8.00 vredmax.vs v5, v7, v8
201 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m8, tu, mu
202 # CHECK-NEXT: 1 15 14.00 vredmin.vs v5, v7, v8
203 # CHECK-NEXT: 1 15 14.00 vredmax.vs v5, v7, v8
204 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu
205 # CHECK-NEXT: 1 6 3.00 vredmin.vs v5, v7, v8
206 # CHECK-NEXT: 1 6 3.00 vredmax.vs v5, v7, v8
207 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu
208 # CHECK-NEXT: 1 8 4.00 vredmin.vs v5, v7, v8
209 # CHECK-NEXT: 1 8 4.00 vredmax.vs v5, v7, v8
210 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu
211 # CHECK-NEXT: 1 10 6.00 vredmin.vs v5, v7, v8
212 # CHECK-NEXT: 1 10 6.00 vredmax.vs v5, v7, v8
213 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m8, tu, mu
214 # CHECK-NEXT: 1 13 12.00 vredmin.vs v5, v7, v8
215 # CHECK-NEXT: 1 13 12.00 vredmax.vs v5, v7, v8
216 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu
217 # CHECK-NEXT: 1 4 2.00 vredmin.vs v5, v7, v8
218 # CHECK-NEXT: 1 4 2.00 vredmax.vs v5, v7, v8
219 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu
220 # CHECK-NEXT: 1 6 3.00 vredmin.vs v5, v7, v8
221 # CHECK-NEXT: 1 6 3.00 vredmax.vs v5, v7, v8
222 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m4, tu, mu
223 # CHECK-NEXT: 1 8 5.00 vredmin.vs v5, v7, v8
224 # CHECK-NEXT: 1 8 5.00 vredmax.vs v5, v7, v8
225 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m8, tu, mu
226 # CHECK-NEXT: 1 11 10.00 vredmin.vs v5, v7, v8
227 # CHECK-NEXT: 1 11 10.00 vredmax.vs v5, v7, v8
228 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu
229 # CHECK-NEXT: 1 16 16.00 vfredusum.vs v5, v7, v8
230 # CHECK-NEXT: 1 16 16.00 vfredosum.vs v5, v7, v8
231 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu
232 # CHECK-NEXT: 1 22 16.00 vfredusum.vs v5, v7, v8
233 # CHECK-NEXT: 1 32 32.00 vfredosum.vs v5, v7, v8
234 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m4, tu, mu
235 # CHECK-NEXT: 1 28 16.00 vfredusum.vs v5, v7, v8
236 # CHECK-NEXT: 1 64 64.00 vfredosum.vs v5, v7, v8
237 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m8, tu, mu
238 # CHECK-NEXT: 1 34 16.00 vfredusum.vs v5, v7, v8
239 # CHECK-NEXT: 1 128 128.00 vfredosum.vs v5, v7, v8
240 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu
241 # CHECK-NEXT: 1 10 10.00 vfredusum.vs v5, v7, v8
242 # CHECK-NEXT: 1 10 10.00 vfredosum.vs v5, v7, v8
243 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu
244 # CHECK-NEXT: 1 16 10.00 vfredusum.vs v5, v7, v8
245 # CHECK-NEXT: 1 20 20.00 vfredosum.vs v5, v7, v8
246 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu
247 # CHECK-NEXT: 1 22 10.00 vfredusum.vs v5, v7, v8
248 # CHECK-NEXT: 1 40 40.00 vfredosum.vs v5, v7, v8
249 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m8, tu, mu
250 # CHECK-NEXT: 1 28 10.00 vfredusum.vs v5, v7, v8
251 # CHECK-NEXT: 1 80 80.00 vfredosum.vs v5, v7, v8
252 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu
253 # CHECK-NEXT: 1 6 6.00 vfredusum.vs v5, v7, v8
254 # CHECK-NEXT: 1 6 6.00 vfredosum.vs v5, v7, v8
255 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu
256 # CHECK-NEXT: 1 12 6.00 vfredusum.vs v5, v7, v8
257 # CHECK-NEXT: 1 12 12.00 vfredosum.vs v5, v7, v8
258 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m4, tu, mu
259 # CHECK-NEXT: 1 18 6.00 vfredusum.vs v5, v7, v8
260 # CHECK-NEXT: 1 24 24.00 vfredosum.vs v5, v7, v8
261 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m8, tu, mu
262 # CHECK-NEXT: 1 24 6.00 vfredusum.vs v5, v7, v8
263 # CHECK-NEXT: 1 48 48.00 vfredosum.vs v5, v7, v8
264 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m1, tu, mu
265 # CHECK-NEXT: 1 6 3.00 vfredmin.vs v5, v7, v8
266 # CHECK-NEXT: 1 6 3.00 vfredmax.vs v5, v7, v8
267 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m2, tu, mu
268 # CHECK-NEXT: 1 8 4.00 vfredmin.vs v5, v7, v8
269 # CHECK-NEXT: 1 8 4.00 vfredmax.vs v5, v7, v8
270 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m4, tu, mu
271 # CHECK-NEXT: 1 10 6.00 vfredmin.vs v5, v7, v8
272 # CHECK-NEXT: 1 10 6.00 vfredmax.vs v5, v7, v8
273 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e16, m8, tu, mu
274 # CHECK-NEXT: 1 13 12.00 vfredmin.vs v5, v7, v8
275 # CHECK-NEXT: 1 13 12.00 vfredmax.vs v5, v7, v8
276 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m1, tu, mu
277 # CHECK-NEXT: 1 6 3.00 vfredmin.vs v5, v7, v8
278 # CHECK-NEXT: 1 6 3.00 vfredmax.vs v5, v7, v8
279 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m2, tu, mu
280 # CHECK-NEXT: 1 8 4.00 vfredmin.vs v5, v7, v8
281 # CHECK-NEXT: 1 8 4.00 vfredmax.vs v5, v7, v8
282 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m4, tu, mu
283 # CHECK-NEXT: 1 10 6.00 vfredmin.vs v5, v7, v8
284 # CHECK-NEXT: 1 10 6.00 vfredmax.vs v5, v7, v8
285 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e32, m8, tu, mu
286 # CHECK-NEXT: 1 13 12.00 vfredmin.vs v5, v7, v8
287 # CHECK-NEXT: 1 13 12.00 vfredmax.vs v5, v7, v8
288 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m1, tu, mu
289 # CHECK-NEXT: 1 4 2.00 vfredmin.vs v5, v7, v8
290 # CHECK-NEXT: 1 4 2.00 vfredmax.vs v5, v7, v8
291 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m2, tu, mu
292 # CHECK-NEXT: 1 6 3.00 vfredmin.vs v5, v7, v8
293 # CHECK-NEXT: 1 6 3.00 vfredmax.vs v5, v7, v8
294 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m4, tu, mu
295 # CHECK-NEXT: 1 8 5.00 vfredmin.vs v5, v7, v8
296 # CHECK-NEXT: 1 8 5.00 vfredmax.vs v5, v7, v8
297 # CHECK-NEXT: 1 1 1.00 U vsetvli zero, zero, e64, m8, tu, mu
298 # CHECK-NEXT: 1 11 10.00 vfredmin.vs v5, v7, v8
299 # CHECK-NEXT: 1 11 10.00 vfredmax.vs v5, v7, v8
302 # CHECK-NEXT: [0] - SiFiveP400Div
303 # CHECK-NEXT: [1] - SiFiveP400FEXQ0
304 # CHECK-NEXT: [2] - SiFiveP400FloatDiv
305 # CHECK-NEXT: [3] - SiFiveP400IEXQ0
306 # CHECK-NEXT: [4] - SiFiveP400IEXQ1
307 # CHECK-NEXT: [5] - SiFiveP400IEXQ2
308 # CHECK-NEXT: [6] - SiFiveP400Load
309 # CHECK-NEXT: [7] - SiFiveP400Store
310 # CHECK-NEXT: [8] - SiFiveP400VDiv
311 # CHECK-NEXT: [9] - SiFiveP400VEXQ0
312 # CHECK-NEXT: [10] - SiFiveP400VFloatDiv
313 # CHECK-NEXT: [11] - SiFiveP400VLD
314 # CHECK-NEXT: [12] - SiFiveP400VST
316 # CHECK: Resource pressure per iteration:
317 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]
318 # CHECK-NEXT: - - - - 40.00 - - - - 916.00 - - -
320 # CHECK: Resource pressure by instruction:
321 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions:
322 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu
323 # CHECK-NEXT: - - - - - - - - - 1.00 - - - vredsum.vs v5, v7, v8
324 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu
325 # CHECK-NEXT: - - - - - - - - - 2.00 - - - vredsum.vs v5, v7, v8
326 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu
327 # CHECK-NEXT: - - - - - - - - - 4.00 - - - vredsum.vs v5, v7, v8
328 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m8, tu, mu
329 # CHECK-NEXT: - - - - - - - - - 9.00 - - - vredsum.vs v5, v7, v8
330 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu
331 # CHECK-NEXT: - - - - - - - - - 4.00 - - - vredmin.vs v5, v7, v8
332 # CHECK-NEXT: - - - - - - - - - 4.00 - - - vredmax.vs v5, v7, v8
333 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu
334 # CHECK-NEXT: - - - - - - - - - 5.00 - - - vredmin.vs v5, v7, v8
335 # CHECK-NEXT: - - - - - - - - - 5.00 - - - vredmax.vs v5, v7, v8
336 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m4, tu, mu
337 # CHECK-NEXT: - - - - - - - - - 8.00 - - - vredmin.vs v5, v7, v8
338 # CHECK-NEXT: - - - - - - - - - 8.00 - - - vredmax.vs v5, v7, v8
339 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m8, tu, mu
340 # CHECK-NEXT: - - - - - - - - - 14.00 - - - vredmin.vs v5, v7, v8
341 # CHECK-NEXT: - - - - - - - - - 14.00 - - - vredmax.vs v5, v7, v8
342 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu
343 # CHECK-NEXT: - - - - - - - - - 3.00 - - - vredmin.vs v5, v7, v8
344 # CHECK-NEXT: - - - - - - - - - 3.00 - - - vredmax.vs v5, v7, v8
345 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu
346 # CHECK-NEXT: - - - - - - - - - 4.00 - - - vredmin.vs v5, v7, v8
347 # CHECK-NEXT: - - - - - - - - - 4.00 - - - vredmax.vs v5, v7, v8
348 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu
349 # CHECK-NEXT: - - - - - - - - - 6.00 - - - vredmin.vs v5, v7, v8
350 # CHECK-NEXT: - - - - - - - - - 6.00 - - - vredmax.vs v5, v7, v8
351 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m8, tu, mu
352 # CHECK-NEXT: - - - - - - - - - 12.00 - - - vredmin.vs v5, v7, v8
353 # CHECK-NEXT: - - - - - - - - - 12.00 - - - vredmax.vs v5, v7, v8
354 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu
355 # CHECK-NEXT: - - - - - - - - - 2.00 - - - vredmin.vs v5, v7, v8
356 # CHECK-NEXT: - - - - - - - - - 2.00 - - - vredmax.vs v5, v7, v8
357 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu
358 # CHECK-NEXT: - - - - - - - - - 3.00 - - - vredmin.vs v5, v7, v8
359 # CHECK-NEXT: - - - - - - - - - 3.00 - - - vredmax.vs v5, v7, v8
360 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m4, tu, mu
361 # CHECK-NEXT: - - - - - - - - - 5.00 - - - vredmin.vs v5, v7, v8
362 # CHECK-NEXT: - - - - - - - - - 5.00 - - - vredmax.vs v5, v7, v8
363 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m8, tu, mu
364 # CHECK-NEXT: - - - - - - - - - 10.00 - - - vredmin.vs v5, v7, v8
365 # CHECK-NEXT: - - - - - - - - - 10.00 - - - vredmax.vs v5, v7, v8
366 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu
367 # CHECK-NEXT: - - - - - - - - - 16.00 - - - vfredusum.vs v5, v7, v8
368 # CHECK-NEXT: - - - - - - - - - 16.00 - - - vfredosum.vs v5, v7, v8
369 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu
370 # CHECK-NEXT: - - - - - - - - - 16.00 - - - vfredusum.vs v5, v7, v8
371 # CHECK-NEXT: - - - - - - - - - 32.00 - - - vfredosum.vs v5, v7, v8
372 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m4, tu, mu
373 # CHECK-NEXT: - - - - - - - - - 16.00 - - - vfredusum.vs v5, v7, v8
374 # CHECK-NEXT: - - - - - - - - - 64.00 - - - vfredosum.vs v5, v7, v8
375 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m8, tu, mu
376 # CHECK-NEXT: - - - - - - - - - 16.00 - - - vfredusum.vs v5, v7, v8
377 # CHECK-NEXT: - - - - - - - - - 128.00 - - - vfredosum.vs v5, v7, v8
378 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu
379 # CHECK-NEXT: - - - - - - - - - 10.00 - - - vfredusum.vs v5, v7, v8
380 # CHECK-NEXT: - - - - - - - - - 10.00 - - - vfredosum.vs v5, v7, v8
381 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu
382 # CHECK-NEXT: - - - - - - - - - 10.00 - - - vfredusum.vs v5, v7, v8
383 # CHECK-NEXT: - - - - - - - - - 20.00 - - - vfredosum.vs v5, v7, v8
384 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu
385 # CHECK-NEXT: - - - - - - - - - 10.00 - - - vfredusum.vs v5, v7, v8
386 # CHECK-NEXT: - - - - - - - - - 40.00 - - - vfredosum.vs v5, v7, v8
387 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m8, tu, mu
388 # CHECK-NEXT: - - - - - - - - - 10.00 - - - vfredusum.vs v5, v7, v8
389 # CHECK-NEXT: - - - - - - - - - 80.00 - - - vfredosum.vs v5, v7, v8
390 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu
391 # CHECK-NEXT: - - - - - - - - - 6.00 - - - vfredusum.vs v5, v7, v8
392 # CHECK-NEXT: - - - - - - - - - 6.00 - - - vfredosum.vs v5, v7, v8
393 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu
394 # CHECK-NEXT: - - - - - - - - - 6.00 - - - vfredusum.vs v5, v7, v8
395 # CHECK-NEXT: - - - - - - - - - 12.00 - - - vfredosum.vs v5, v7, v8
396 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m4, tu, mu
397 # CHECK-NEXT: - - - - - - - - - 6.00 - - - vfredusum.vs v5, v7, v8
398 # CHECK-NEXT: - - - - - - - - - 24.00 - - - vfredosum.vs v5, v7, v8
399 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m8, tu, mu
400 # CHECK-NEXT: - - - - - - - - - 6.00 - - - vfredusum.vs v5, v7, v8
401 # CHECK-NEXT: - - - - - - - - - 48.00 - - - vfredosum.vs v5, v7, v8
402 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m1, tu, mu
403 # CHECK-NEXT: - - - - - - - - - 3.00 - - - vfredmin.vs v5, v7, v8
404 # CHECK-NEXT: - - - - - - - - - 3.00 - - - vfredmax.vs v5, v7, v8
405 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m2, tu, mu
406 # CHECK-NEXT: - - - - - - - - - 4.00 - - - vfredmin.vs v5, v7, v8
407 # CHECK-NEXT: - - - - - - - - - 4.00 - - - vfredmax.vs v5, v7, v8
408 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m4, tu, mu
409 # CHECK-NEXT: - - - - - - - - - 6.00 - - - vfredmin.vs v5, v7, v8
410 # CHECK-NEXT: - - - - - - - - - 6.00 - - - vfredmax.vs v5, v7, v8
411 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e16, m8, tu, mu
412 # CHECK-NEXT: - - - - - - - - - 12.00 - - - vfredmin.vs v5, v7, v8
413 # CHECK-NEXT: - - - - - - - - - 12.00 - - - vfredmax.vs v5, v7, v8
414 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m1, tu, mu
415 # CHECK-NEXT: - - - - - - - - - 3.00 - - - vfredmin.vs v5, v7, v8
416 # CHECK-NEXT: - - - - - - - - - 3.00 - - - vfredmax.vs v5, v7, v8
417 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m2, tu, mu
418 # CHECK-NEXT: - - - - - - - - - 4.00 - - - vfredmin.vs v5, v7, v8
419 # CHECK-NEXT: - - - - - - - - - 4.00 - - - vfredmax.vs v5, v7, v8
420 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m4, tu, mu
421 # CHECK-NEXT: - - - - - - - - - 6.00 - - - vfredmin.vs v5, v7, v8
422 # CHECK-NEXT: - - - - - - - - - 6.00 - - - vfredmax.vs v5, v7, v8
423 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e32, m8, tu, mu
424 # CHECK-NEXT: - - - - - - - - - 12.00 - - - vfredmin.vs v5, v7, v8
425 # CHECK-NEXT: - - - - - - - - - 12.00 - - - vfredmax.vs v5, v7, v8
426 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m1, tu, mu
427 # CHECK-NEXT: - - - - - - - - - 2.00 - - - vfredmin.vs v5, v7, v8
428 # CHECK-NEXT: - - - - - - - - - 2.00 - - - vfredmax.vs v5, v7, v8
429 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m2, tu, mu
430 # CHECK-NEXT: - - - - - - - - - 3.00 - - - vfredmin.vs v5, v7, v8
431 # CHECK-NEXT: - - - - - - - - - 3.00 - - - vfredmax.vs v5, v7, v8
432 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m4, tu, mu
433 # CHECK-NEXT: - - - - - - - - - 5.00 - - - vfredmin.vs v5, v7, v8
434 # CHECK-NEXT: - - - - - - - - - 5.00 - - - vfredmax.vs v5, v7, v8
435 # CHECK-NEXT: - - - - 1.00 - - - - - - - - vsetvli zero, zero, e64, m8, tu, mu
436 # CHECK-NEXT: - - - - - - - - - 10.00 - - - vfredmin.vs v5, v7, v8
437 # CHECK-NEXT: - - - - - - - - - 10.00 - - - vfredmax.vs v5, v7, v8