1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=riscv64 -mattr=+v | FileCheck %s
4 declare i64 @llvm.riscv.vsetvli(
7 define signext i32 @vsetvl_sext() {
8 ; CHECK-LABEL: vsetvl_sext:
10 ; CHECK-NEXT: vsetivli a0, 1, e16, m2, ta, ma
12 %a = call i64 @llvm.riscv.vsetvli(i64 1, i64 1, i64 1)
13 %b = trunc i64 %a to i32
17 define zeroext i32 @vsetvl_zext() {
18 ; CHECK-LABEL: vsetvl_zext:
20 ; CHECK-NEXT: vsetivli a0, 1, e16, m2, ta, ma
22 %a = call i64 @llvm.riscv.vsetvli(i64 1, i64 1, i64 1)
23 %b = trunc i64 %a to i32
27 define i64 @vsetvl_e8m1_and14bits(i64 %avl) {
28 ; CHECK-LABEL: vsetvl_e8m1_and14bits:
30 ; CHECK-NEXT: vsetvli a0, a0, e8, m1, ta, ma
32 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 0)
33 %b = and i64 %a, 16383
37 define i64 @vsetvl_e8m1_and13bits(i64 %avl) {
38 ; CHECK-LABEL: vsetvl_e8m1_and13bits:
40 ; CHECK-NEXT: vsetvli a0, a0, e8, m1, ta, ma
41 ; CHECK-NEXT: slli a0, a0, 51
42 ; CHECK-NEXT: srli a0, a0, 51
44 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 0)
49 define i64 @vsetvl_e8m1_constant_avl() {
50 ; CHECK-LABEL: vsetvl_e8m1_constant_avl:
52 ; CHECK-NEXT: vsetivli a0, 1, e8, m1, ta, ma
54 %a = call i64 @llvm.riscv.vsetvli(i64 1, i64 0, i64 0)
59 define i64 @vsetvl_e8m2_and15bits(i64 %avl) {
60 ; CHECK-LABEL: vsetvl_e8m2_and15bits:
62 ; CHECK-NEXT: vsetvli a0, a0, e8, m2, ta, ma
64 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 1)
65 %b = and i64 %a, 32767
69 define i64 @vsetvl_e8m2_and14bits(i64 %avl) {
70 ; CHECK-LABEL: vsetvl_e8m2_and14bits:
72 ; CHECK-NEXT: vsetvli a0, a0, e8, m2, ta, ma
73 ; CHECK-NEXT: slli a0, a0, 50
74 ; CHECK-NEXT: srli a0, a0, 50
76 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 1)
77 %b = and i64 %a, 16383
81 define i64 @vsetvl_e8m4_and16bits(i64 %avl) {
82 ; CHECK-LABEL: vsetvl_e8m4_and16bits:
84 ; CHECK-NEXT: vsetvli a0, a0, e8, m4, ta, ma
86 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 2)
87 %b = and i64 %a, 65535
91 define i64 @vsetvl_e8m4_and15bits(i64 %avl) {
92 ; CHECK-LABEL: vsetvl_e8m4_and15bits:
94 ; CHECK-NEXT: vsetvli a0, a0, e8, m4, ta, ma
95 ; CHECK-NEXT: slli a0, a0, 49
96 ; CHECK-NEXT: srli a0, a0, 49
98 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 2)
99 %b = and i64 %a, 32767
103 define i64 @vsetvl_e8m8_and17bits(i64 %avl) {
104 ; CHECK-LABEL: vsetvl_e8m8_and17bits:
106 ; CHECK-NEXT: vsetvli a0, a0, e8, m8, ta, ma
108 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 3)
109 %b = and i64 %a, 131071
113 define i64 @vsetvl_e8m8_and16bits(i64 %avl) {
114 ; CHECK-LABEL: vsetvl_e8m8_and16bits:
116 ; CHECK-NEXT: vsetvli a0, a0, e8, m8, ta, ma
117 ; CHECK-NEXT: slli a0, a0, 48
118 ; CHECK-NEXT: srli a0, a0, 48
120 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 3)
121 %b = and i64 %a, 65535
125 define i64 @vsetvl_e8mf2_and11bits(i64 %avl) {
126 ; CHECK-LABEL: vsetvl_e8mf2_and11bits:
128 ; CHECK-NEXT: vsetvli a0, a0, e8, mf8, ta, ma
130 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 5)
131 %b = and i64 %a, 2047
135 define i64 @vsetvl_e8mf2_and10bits(i64 %avl) {
136 ; CHECK-LABEL: vsetvl_e8mf2_and10bits:
138 ; CHECK-NEXT: vsetvli a0, a0, e8, mf8, ta, ma
139 ; CHECK-NEXT: andi a0, a0, 1023
141 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 5)
142 %b = and i64 %a, 1023
146 define i64 @vsetvl_e8mf4_and12bits(i64 %avl) {
147 ; CHECK-LABEL: vsetvl_e8mf4_and12bits:
149 ; CHECK-NEXT: vsetvli a0, a0, e8, mf4, ta, ma
151 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 6)
152 %b = and i64 %a, 4095
156 define i64 @vsetvl_e8mf4_and11bits(i64 %avl) {
157 ; CHECK-LABEL: vsetvl_e8mf4_and11bits:
159 ; CHECK-NEXT: vsetvli a0, a0, e8, mf4, ta, ma
160 ; CHECK-NEXT: andi a0, a0, 2047
162 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 6)
163 %b = and i64 %a, 2047
167 define i64 @vsetvl_e8mf8_and13bits(i64 %avl) {
168 ; CHECK-LABEL: vsetvl_e8mf8_and13bits:
170 ; CHECK-NEXT: vsetvli a0, a0, e8, mf2, ta, ma
172 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 7)
173 %b = and i64 %a, 8191
177 define i64 @vsetvl_e8mf8_and12bits(i64 %avl) {
178 ; CHECK-LABEL: vsetvl_e8mf8_and12bits:
180 ; CHECK-NEXT: vsetvli a0, a0, e8, mf2, ta, ma
181 ; CHECK-NEXT: slli a0, a0, 52
182 ; CHECK-NEXT: srli a0, a0, 52
184 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 0, i64 7)
185 %b = and i64 %a, 4095
189 define i64 @vsetvl_e16m1_and13bits(i64 %avl) {
190 ; CHECK-LABEL: vsetvl_e16m1_and13bits:
192 ; CHECK-NEXT: vsetvli a0, a0, e16, m1, ta, ma
194 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 0)
195 %b = and i64 %a, 8191
199 define i64 @vsetvl_e16m1_and12bits(i64 %avl) {
200 ; CHECK-LABEL: vsetvl_e16m1_and12bits:
202 ; CHECK-NEXT: vsetvli a0, a0, e16, m1, ta, ma
203 ; CHECK-NEXT: slli a0, a0, 52
204 ; CHECK-NEXT: srli a0, a0, 52
206 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 0)
207 %b = and i64 %a, 4095
211 define i64 @vsetvl_e16m2_and14bits(i64 %avl) {
212 ; CHECK-LABEL: vsetvl_e16m2_and14bits:
214 ; CHECK-NEXT: vsetvli a0, a0, e16, m2, ta, ma
216 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 1)
217 %b = and i64 %a, 16383
221 define i64 @vsetvl_e16m2_and13bits(i64 %avl) {
222 ; CHECK-LABEL: vsetvl_e16m2_and13bits:
224 ; CHECK-NEXT: vsetvli a0, a0, e16, m2, ta, ma
225 ; CHECK-NEXT: slli a0, a0, 51
226 ; CHECK-NEXT: srli a0, a0, 51
228 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 1)
229 %b = and i64 %a, 8191
233 define i64 @vsetvl_e16m4_and15bits(i64 %avl) {
234 ; CHECK-LABEL: vsetvl_e16m4_and15bits:
236 ; CHECK-NEXT: vsetvli a0, a0, e16, m4, ta, ma
238 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 2)
239 %b = and i64 %a, 32767
243 define i64 @vsetvl_e16m4_and14bits(i64 %avl) {
244 ; CHECK-LABEL: vsetvl_e16m4_and14bits:
246 ; CHECK-NEXT: vsetvli a0, a0, e16, m4, ta, ma
247 ; CHECK-NEXT: slli a0, a0, 50
248 ; CHECK-NEXT: srli a0, a0, 50
250 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 2)
251 %b = and i64 %a, 16383
255 define i64 @vsetvl_e16m8_and16bits(i64 %avl) {
256 ; CHECK-LABEL: vsetvl_e16m8_and16bits:
258 ; CHECK-NEXT: vsetvli a0, a0, e16, m8, ta, ma
260 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 3)
261 %b = and i64 %a, 65535
265 define i64 @vsetvl_e16m8_and15bits(i64 %avl) {
266 ; CHECK-LABEL: vsetvl_e16m8_and15bits:
268 ; CHECK-NEXT: vsetvli a0, a0, e16, m8, ta, ma
269 ; CHECK-NEXT: slli a0, a0, 49
270 ; CHECK-NEXT: srli a0, a0, 49
272 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 3)
273 %b = and i64 %a, 32767
277 define i64 @vsetvl_e16mf2_and10bits(i64 %avl) {
278 ; CHECK-LABEL: vsetvl_e16mf2_and10bits:
280 ; CHECK-NEXT: vsetvli a0, a0, e16, mf8, ta, ma
282 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 5)
283 %b = and i64 %a, 1023
287 define i64 @vsetvl_e16mf2_and9bits(i64 %avl) {
288 ; CHECK-LABEL: vsetvl_e16mf2_and9bits:
290 ; CHECK-NEXT: vsetvli a0, a0, e16, mf8, ta, ma
291 ; CHECK-NEXT: andi a0, a0, 511
293 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 5)
298 define i64 @vsetvl_e16mf4_and11bits(i64 %avl) {
299 ; CHECK-LABEL: vsetvl_e16mf4_and11bits:
301 ; CHECK-NEXT: vsetvli a0, a0, e16, mf4, ta, ma
303 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 6)
304 %b = and i64 %a, 2047
308 define i64 @vsetvl_e16mf4_and10bits(i64 %avl) {
309 ; CHECK-LABEL: vsetvl_e16mf4_and10bits:
311 ; CHECK-NEXT: vsetvli a0, a0, e16, mf4, ta, ma
312 ; CHECK-NEXT: andi a0, a0, 1023
314 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 6)
315 %b = and i64 %a, 1023
319 define i64 @vsetvl_e16mf8_and12bits(i64 %avl) {
320 ; CHECK-LABEL: vsetvl_e16mf8_and12bits:
322 ; CHECK-NEXT: vsetvli a0, a0, e16, mf2, ta, ma
324 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 7)
325 %b = and i64 %a, 4095
329 define i64 @vsetvl_e16mf8_and11bits(i64 %avl) {
330 ; CHECK-LABEL: vsetvl_e16mf8_and11bits:
332 ; CHECK-NEXT: vsetvli a0, a0, e16, mf2, ta, ma
333 ; CHECK-NEXT: andi a0, a0, 2047
335 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 1, i64 7)
336 %b = and i64 %a, 2047
340 define i64 @vsetvl_e32m1_and12bits(i64 %avl) {
341 ; CHECK-LABEL: vsetvl_e32m1_and12bits:
343 ; CHECK-NEXT: vsetvli a0, a0, e32, m1, ta, ma
345 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 0)
346 %b = and i64 %a, 4095
350 define i64 @vsetvl_e32m1_and11bits(i64 %avl) {
351 ; CHECK-LABEL: vsetvl_e32m1_and11bits:
353 ; CHECK-NEXT: vsetvli a0, a0, e32, m1, ta, ma
354 ; CHECK-NEXT: andi a0, a0, 2047
356 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 0)
357 %b = and i64 %a, 2047
361 define i64 @vsetvl_e32m2_and13bits(i64 %avl) {
362 ; CHECK-LABEL: vsetvl_e32m2_and13bits:
364 ; CHECK-NEXT: vsetvli a0, a0, e32, m2, ta, ma
366 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 1)
367 %b = and i64 %a, 8191
371 define i64 @vsetvl_e32m2_and12bits(i64 %avl) {
372 ; CHECK-LABEL: vsetvl_e32m2_and12bits:
374 ; CHECK-NEXT: vsetvli a0, a0, e32, m2, ta, ma
375 ; CHECK-NEXT: slli a0, a0, 52
376 ; CHECK-NEXT: srli a0, a0, 52
378 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 1)
379 %b = and i64 %a, 4095
383 define i64 @vsetvl_e32m4_and14bits(i64 %avl) {
384 ; CHECK-LABEL: vsetvl_e32m4_and14bits:
386 ; CHECK-NEXT: vsetvli a0, a0, e32, m4, ta, ma
388 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 2)
389 %b = and i64 %a, 16383
393 define i64 @vsetvl_e32m4_and13bits(i64 %avl) {
394 ; CHECK-LABEL: vsetvl_e32m4_and13bits:
396 ; CHECK-NEXT: vsetvli a0, a0, e32, m4, ta, ma
397 ; CHECK-NEXT: slli a0, a0, 51
398 ; CHECK-NEXT: srli a0, a0, 51
400 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 2)
401 %b = and i64 %a, 8191
405 define i64 @vsetvl_e32m8_and15bits(i64 %avl) {
406 ; CHECK-LABEL: vsetvl_e32m8_and15bits:
408 ; CHECK-NEXT: vsetvli a0, a0, e32, m8, ta, ma
410 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 3)
411 %b = and i64 %a, 32767
415 define i64 @vsetvl_e32m8_and14bits(i64 %avl) {
416 ; CHECK-LABEL: vsetvl_e32m8_and14bits:
418 ; CHECK-NEXT: vsetvli a0, a0, e32, m8, ta, ma
419 ; CHECK-NEXT: slli a0, a0, 50
420 ; CHECK-NEXT: srli a0, a0, 50
422 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 3)
423 %b = and i64 %a, 16383
427 define i64 @vsetvl_e32mf2_and9bits(i64 %avl) {
428 ; CHECK-LABEL: vsetvl_e32mf2_and9bits:
430 ; CHECK-NEXT: vsetvli a0, a0, e32, mf8, ta, ma
432 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 5)
437 define i64 @vsetvl_e32mf2_and8bits(i64 %avl) {
438 ; CHECK-LABEL: vsetvl_e32mf2_and8bits:
440 ; CHECK-NEXT: vsetvli a0, a0, e32, mf8, ta, ma
441 ; CHECK-NEXT: andi a0, a0, 255
443 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 5)
448 define i64 @vsetvl_e32mf4_and10bits(i64 %avl) {
449 ; CHECK-LABEL: vsetvl_e32mf4_and10bits:
451 ; CHECK-NEXT: vsetvli a0, a0, e32, mf4, ta, ma
453 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 6)
454 %b = and i64 %a, 1023
458 define i64 @vsetvl_e32mf4_and9bits(i64 %avl) {
459 ; CHECK-LABEL: vsetvl_e32mf4_and9bits:
461 ; CHECK-NEXT: vsetvli a0, a0, e32, mf4, ta, ma
462 ; CHECK-NEXT: andi a0, a0, 511
464 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 6)
469 define i64 @vsetvl_e32mf8_and11bits(i64 %avl) {
470 ; CHECK-LABEL: vsetvl_e32mf8_and11bits:
472 ; CHECK-NEXT: vsetvli a0, a0, e32, mf2, ta, ma
474 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 7)
475 %b = and i64 %a, 2047
479 define i64 @vsetvl_e32mf8_and10bits(i64 %avl) {
480 ; CHECK-LABEL: vsetvl_e32mf8_and10bits:
482 ; CHECK-NEXT: vsetvli a0, a0, e32, mf2, ta, ma
483 ; CHECK-NEXT: andi a0, a0, 1023
485 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 2, i64 7)
486 %b = and i64 %a, 1023
490 define i64 @vsetvl_e64m1_and11bits(i64 %avl) {
491 ; CHECK-LABEL: vsetvl_e64m1_and11bits:
493 ; CHECK-NEXT: vsetvli a0, a0, e64, m1, ta, ma
495 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 0)
496 %b = and i64 %a, 2047
500 define i64 @vsetvl_e64m1_and10bits(i64 %avl) {
501 ; CHECK-LABEL: vsetvl_e64m1_and10bits:
503 ; CHECK-NEXT: vsetvli a0, a0, e64, m1, ta, ma
504 ; CHECK-NEXT: andi a0, a0, 1023
506 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 0)
507 %b = and i64 %a, 1023
511 define i64 @vsetvl_e64m2_and12bits(i64 %avl) {
512 ; CHECK-LABEL: vsetvl_e64m2_and12bits:
514 ; CHECK-NEXT: vsetvli a0, a0, e64, m2, ta, ma
516 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 1)
517 %b = and i64 %a, 4095
521 define i64 @vsetvl_e64m2_and11bits(i64 %avl) {
522 ; CHECK-LABEL: vsetvl_e64m2_and11bits:
524 ; CHECK-NEXT: vsetvli a0, a0, e64, m2, ta, ma
525 ; CHECK-NEXT: andi a0, a0, 2047
527 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 1)
528 %b = and i64 %a, 2047
532 define i64 @vsetvl_e64m4_and13bits(i64 %avl) {
533 ; CHECK-LABEL: vsetvl_e64m4_and13bits:
535 ; CHECK-NEXT: vsetvli a0, a0, e64, m4, ta, ma
537 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 2)
538 %b = and i64 %a, 8191
542 define i64 @vsetvl_e64m4_and12bits(i64 %avl) {
543 ; CHECK-LABEL: vsetvl_e64m4_and12bits:
545 ; CHECK-NEXT: vsetvli a0, a0, e64, m4, ta, ma
546 ; CHECK-NEXT: slli a0, a0, 52
547 ; CHECK-NEXT: srli a0, a0, 52
549 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 2)
550 %b = and i64 %a, 4095
554 define i64 @vsetvl_e64m8_and14bits(i64 %avl) {
555 ; CHECK-LABEL: vsetvl_e64m8_and14bits:
557 ; CHECK-NEXT: vsetvli a0, a0, e64, m8, ta, ma
559 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 3)
560 %b = and i64 %a, 16383
564 define i64 @vsetvl_e64m8_and13bits(i64 %avl) {
565 ; CHECK-LABEL: vsetvl_e64m8_and13bits:
567 ; CHECK-NEXT: vsetvli a0, a0, e64, m8, ta, ma
568 ; CHECK-NEXT: slli a0, a0, 51
569 ; CHECK-NEXT: srli a0, a0, 51
571 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 3)
572 %b = and i64 %a, 8191
576 define i64 @vsetvl_e64mf2_and8bits(i64 %avl) {
577 ; CHECK-LABEL: vsetvl_e64mf2_and8bits:
579 ; CHECK-NEXT: vsetvli a0, a0, e64, mf8, ta, ma
581 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 5)
586 define i64 @vsetvl_e64mf2_and7bits(i64 %avl) {
587 ; CHECK-LABEL: vsetvl_e64mf2_and7bits:
589 ; CHECK-NEXT: vsetvli a0, a0, e64, mf8, ta, ma
590 ; CHECK-NEXT: andi a0, a0, 127
592 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 5)
597 define i64 @vsetvl_e64mf4_and9bits(i64 %avl) {
598 ; CHECK-LABEL: vsetvl_e64mf4_and9bits:
600 ; CHECK-NEXT: vsetvli a0, a0, e64, mf4, ta, ma
602 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 6)
607 define i64 @vsetvl_e64mf4_and8bits(i64 %avl) {
608 ; CHECK-LABEL: vsetvl_e64mf4_and8bits:
610 ; CHECK-NEXT: vsetvli a0, a0, e64, mf4, ta, ma
611 ; CHECK-NEXT: andi a0, a0, 255
613 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 6)
618 define i64 @vsetvl_e64mf8_and10bits(i64 %avl) {
619 ; CHECK-LABEL: vsetvl_e64mf8_and10bits:
621 ; CHECK-NEXT: vsetvli a0, a0, e64, mf2, ta, ma
623 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 7)
624 %b = and i64 %a, 1023
628 define i64 @vsetvl_e64mf8_and9bits(i64 %avl) {
629 ; CHECK-LABEL: vsetvl_e64mf8_and9bits:
631 ; CHECK-NEXT: vsetvli a0, a0, e64, mf2, ta, ma
632 ; CHECK-NEXT: andi a0, a0, 511
634 %a = call i64 @llvm.riscv.vsetvli(i64 %avl, i64 3, i64 7)