Lines Matching refs:RV64
3 …lc -mtriple=riscv64 -mattr=+v -verify-machineinstrs < %s | FileCheck %s --check-prefixes=CHECK,RV64
101 ; RV64-LABEL: bswap_nxv1i32:
102 ; RV64: # %bb.0:
103 ; RV64-NEXT: vsetvli a0, zero, e32, mf2, ta, mu
104 ; RV64-NEXT: vsrl.vi v9, v8, 8
105 ; RV64-NEXT: lui a0, 16
106 ; RV64-NEXT: addiw a0, a0, -256
107 ; RV64-NEXT: vand.vx v9, v9, a0
108 ; RV64-NEXT: vsrl.vi v10, v8, 24
109 ; RV64-NEXT: vor.vv v9, v9, v10
110 ; RV64-NEXT: vsll.vi v10, v8, 8
111 ; RV64-NEXT: lui a0, 4080
112 ; RV64-NEXT: vand.vx v10, v10, a0
113 ; RV64-NEXT: vsll.vi v8, v8, 24
114 ; RV64-NEXT: vor.vv v8, v8, v10
115 ; RV64-NEXT: vor.vv v8, v8, v9
116 ; RV64-NEXT: ret
140 ; RV64-LABEL: bswap_nxv2i32:
141 ; RV64: # %bb.0:
142 ; RV64-NEXT: vsetvli a0, zero, e32, m1, ta, mu
143 ; RV64-NEXT: vsrl.vi v9, v8, 8
144 ; RV64-NEXT: lui a0, 16
145 ; RV64-NEXT: addiw a0, a0, -256
146 ; RV64-NEXT: vand.vx v9, v9, a0
147 ; RV64-NEXT: vsrl.vi v10, v8, 24
148 ; RV64-NEXT: vor.vv v9, v9, v10
149 ; RV64-NEXT: vsll.vi v10, v8, 8
150 ; RV64-NEXT: lui a0, 4080
151 ; RV64-NEXT: vand.vx v10, v10, a0
152 ; RV64-NEXT: vsll.vi v8, v8, 24
153 ; RV64-NEXT: vor.vv v8, v8, v10
154 ; RV64-NEXT: vor.vv v8, v8, v9
155 ; RV64-NEXT: ret
179 ; RV64-LABEL: bswap_nxv4i32:
180 ; RV64: # %bb.0:
181 ; RV64-NEXT: vsetvli a0, zero, e32, m2, ta, mu
182 ; RV64-NEXT: vsrl.vi v10, v8, 8
183 ; RV64-NEXT: lui a0, 16
184 ; RV64-NEXT: addiw a0, a0, -256
185 ; RV64-NEXT: vand.vx v10, v10, a0
186 ; RV64-NEXT: vsrl.vi v12, v8, 24
187 ; RV64-NEXT: vor.vv v10, v10, v12
188 ; RV64-NEXT: vsll.vi v12, v8, 8
189 ; RV64-NEXT: lui a0, 4080
190 ; RV64-NEXT: vand.vx v12, v12, a0
191 ; RV64-NEXT: vsll.vi v8, v8, 24
192 ; RV64-NEXT: vor.vv v8, v8, v12
193 ; RV64-NEXT: vor.vv v8, v8, v10
194 ; RV64-NEXT: ret
218 ; RV64-LABEL: bswap_nxv8i32:
219 ; RV64: # %bb.0:
220 ; RV64-NEXT: vsetvli a0, zero, e32, m4, ta, mu
221 ; RV64-NEXT: vsrl.vi v12, v8, 8
222 ; RV64-NEXT: lui a0, 16
223 ; RV64-NEXT: addiw a0, a0, -256
224 ; RV64-NEXT: vand.vx v12, v12, a0
225 ; RV64-NEXT: vsrl.vi v16, v8, 24
226 ; RV64-NEXT: vor.vv v12, v12, v16
227 ; RV64-NEXT: vsll.vi v16, v8, 8
228 ; RV64-NEXT: lui a0, 4080
229 ; RV64-NEXT: vand.vx v16, v16, a0
230 ; RV64-NEXT: vsll.vi v8, v8, 24
231 ; RV64-NEXT: vor.vv v8, v8, v16
232 ; RV64-NEXT: vor.vv v8, v8, v12
233 ; RV64-NEXT: ret
257 ; RV64-LABEL: bswap_nxv16i32:
258 ; RV64: # %bb.0:
259 ; RV64-NEXT: vsetvli a0, zero, e32, m8, ta, mu
260 ; RV64-NEXT: vsrl.vi v16, v8, 8
261 ; RV64-NEXT: lui a0, 16
262 ; RV64-NEXT: addiw a0, a0, -256
263 ; RV64-NEXT: vand.vx v16, v16, a0
264 ; RV64-NEXT: vsrl.vi v24, v8, 24
265 ; RV64-NEXT: vor.vv v16, v16, v24
266 ; RV64-NEXT: vsll.vi v24, v8, 8
267 ; RV64-NEXT: lui a0, 4080
268 ; RV64-NEXT: vand.vx v24, v24, a0
269 ; RV64-NEXT: vsll.vi v8, v8, 24
270 ; RV64-NEXT: vor.vv v8, v8, v24
271 ; RV64-NEXT: vor.vv v8, v8, v16
272 ; RV64-NEXT: ret
326 ; RV64-LABEL: bswap_nxv1i64:
327 ; RV64: # %bb.0:
328 ; RV64-NEXT: li a0, 56
329 ; RV64-NEXT: vsetvli a1, zero, e64, m1, ta, mu
330 ; RV64-NEXT: vsrl.vx v9, v8, a0
331 ; RV64-NEXT: li a1, 40
332 ; RV64-NEXT: vsrl.vx v10, v8, a1
333 ; RV64-NEXT: lui a2, 16
334 ; RV64-NEXT: addiw a2, a2, -256
335 ; RV64-NEXT: vand.vx v10, v10, a2
336 ; RV64-NEXT: vor.vv v9, v10, v9
337 ; RV64-NEXT: vsrl.vi v10, v8, 24
338 ; RV64-NEXT: lui a2, 4080
339 ; RV64-NEXT: vand.vx v10, v10, a2
340 ; RV64-NEXT: vsrl.vi v11, v8, 8
341 ; RV64-NEXT: li a2, 255
342 ; RV64-NEXT: slli a3, a2, 24
343 ; RV64-NEXT: vand.vx v11, v11, a3
344 ; RV64-NEXT: vor.vv v10, v11, v10
345 ; RV64-NEXT: vor.vv v9, v10, v9
346 ; RV64-NEXT: vsll.vi v10, v8, 8
347 ; RV64-NEXT: slli a3, a2, 32
348 ; RV64-NEXT: vand.vx v10, v10, a3
349 ; RV64-NEXT: vsll.vi v11, v8, 24
350 ; RV64-NEXT: slli a3, a2, 40
351 ; RV64-NEXT: vand.vx v11, v11, a3
352 ; RV64-NEXT: vor.vv v10, v11, v10
353 ; RV64-NEXT: vsll.vx v11, v8, a0
354 ; RV64-NEXT: vsll.vx v8, v8, a1
355 ; RV64-NEXT: slli a0, a2, 48
356 ; RV64-NEXT: vand.vx v8, v8, a0
357 ; RV64-NEXT: vor.vv v8, v11, v8
358 ; RV64-NEXT: vor.vv v8, v8, v10
359 ; RV64-NEXT: vor.vv v8, v8, v9
360 ; RV64-NEXT: ret
414 ; RV64-LABEL: bswap_nxv2i64:
415 ; RV64: # %bb.0:
416 ; RV64-NEXT: li a0, 56
417 ; RV64-NEXT: vsetvli a1, zero, e64, m2, ta, mu
418 ; RV64-NEXT: vsrl.vx v10, v8, a0
419 ; RV64-NEXT: li a1, 40
420 ; RV64-NEXT: vsrl.vx v12, v8, a1
421 ; RV64-NEXT: lui a2, 16
422 ; RV64-NEXT: addiw a2, a2, -256
423 ; RV64-NEXT: vand.vx v12, v12, a2
424 ; RV64-NEXT: vor.vv v10, v12, v10
425 ; RV64-NEXT: vsrl.vi v12, v8, 24
426 ; RV64-NEXT: lui a2, 4080
427 ; RV64-NEXT: vand.vx v12, v12, a2
428 ; RV64-NEXT: vsrl.vi v14, v8, 8
429 ; RV64-NEXT: li a2, 255
430 ; RV64-NEXT: slli a3, a2, 24
431 ; RV64-NEXT: vand.vx v14, v14, a3
432 ; RV64-NEXT: vor.vv v12, v14, v12
433 ; RV64-NEXT: vor.vv v10, v12, v10
434 ; RV64-NEXT: vsll.vi v12, v8, 8
435 ; RV64-NEXT: slli a3, a2, 32
436 ; RV64-NEXT: vand.vx v12, v12, a3
437 ; RV64-NEXT: vsll.vi v14, v8, 24
438 ; RV64-NEXT: slli a3, a2, 40
439 ; RV64-NEXT: vand.vx v14, v14, a3
440 ; RV64-NEXT: vor.vv v12, v14, v12
441 ; RV64-NEXT: vsll.vx v14, v8, a0
442 ; RV64-NEXT: vsll.vx v8, v8, a1
443 ; RV64-NEXT: slli a0, a2, 48
444 ; RV64-NEXT: vand.vx v8, v8, a0
445 ; RV64-NEXT: vor.vv v8, v14, v8
446 ; RV64-NEXT: vor.vv v8, v8, v12
447 ; RV64-NEXT: vor.vv v8, v8, v10
448 ; RV64-NEXT: ret
502 ; RV64-LABEL: bswap_nxv4i64:
503 ; RV64: # %bb.0:
504 ; RV64-NEXT: li a0, 56
505 ; RV64-NEXT: vsetvli a1, zero, e64, m4, ta, mu
506 ; RV64-NEXT: vsrl.vx v12, v8, a0
507 ; RV64-NEXT: li a1, 40
508 ; RV64-NEXT: vsrl.vx v16, v8, a1
509 ; RV64-NEXT: lui a2, 16
510 ; RV64-NEXT: addiw a2, a2, -256
511 ; RV64-NEXT: vand.vx v16, v16, a2
512 ; RV64-NEXT: vor.vv v12, v16, v12
513 ; RV64-NEXT: vsrl.vi v16, v8, 24
514 ; RV64-NEXT: lui a2, 4080
515 ; RV64-NEXT: vand.vx v16, v16, a2
516 ; RV64-NEXT: vsrl.vi v20, v8, 8
517 ; RV64-NEXT: li a2, 255
518 ; RV64-NEXT: slli a3, a2, 24
519 ; RV64-NEXT: vand.vx v20, v20, a3
520 ; RV64-NEXT: vor.vv v16, v20, v16
521 ; RV64-NEXT: vor.vv v12, v16, v12
522 ; RV64-NEXT: vsll.vi v16, v8, 8
523 ; RV64-NEXT: slli a3, a2, 32
524 ; RV64-NEXT: vand.vx v16, v16, a3
525 ; RV64-NEXT: vsll.vi v20, v8, 24
526 ; RV64-NEXT: slli a3, a2, 40
527 ; RV64-NEXT: vand.vx v20, v20, a3
528 ; RV64-NEXT: vor.vv v16, v20, v16
529 ; RV64-NEXT: vsll.vx v20, v8, a0
530 ; RV64-NEXT: vsll.vx v8, v8, a1
531 ; RV64-NEXT: slli a0, a2, 48
532 ; RV64-NEXT: vand.vx v8, v8, a0
533 ; RV64-NEXT: vor.vv v8, v20, v8
534 ; RV64-NEXT: vor.vv v8, v8, v16
535 ; RV64-NEXT: vor.vv v8, v8, v12
536 ; RV64-NEXT: ret
620 ; RV64-LABEL: bswap_nxv8i64:
621 ; RV64: # %bb.0:
622 ; RV64-NEXT: li a0, 56
623 ; RV64-NEXT: vsetvli a1, zero, e64, m8, ta, mu
624 ; RV64-NEXT: vsrl.vx v16, v8, a0
625 ; RV64-NEXT: li a1, 40
626 ; RV64-NEXT: vsrl.vx v24, v8, a1
627 ; RV64-NEXT: lui a2, 16
628 ; RV64-NEXT: addiw a2, a2, -256
629 ; RV64-NEXT: vand.vx v24, v24, a2
630 ; RV64-NEXT: vor.vv v16, v24, v16
631 ; RV64-NEXT: vsrl.vi v24, v8, 24
632 ; RV64-NEXT: lui a2, 4080
633 ; RV64-NEXT: vand.vx v24, v24, a2
634 ; RV64-NEXT: vsrl.vi v0, v8, 8
635 ; RV64-NEXT: li a2, 255
636 ; RV64-NEXT: slli a3, a2, 24
637 ; RV64-NEXT: vand.vx v0, v0, a3
638 ; RV64-NEXT: vor.vv v24, v0, v24
639 ; RV64-NEXT: vor.vv v16, v24, v16
640 ; RV64-NEXT: vsll.vi v24, v8, 8
641 ; RV64-NEXT: slli a3, a2, 32
642 ; RV64-NEXT: vand.vx v24, v24, a3
643 ; RV64-NEXT: vsll.vi v0, v8, 24
644 ; RV64-NEXT: slli a3, a2, 40
645 ; RV64-NEXT: vand.vx v0, v0, a3
646 ; RV64-NEXT: vor.vv v24, v0, v24
647 ; RV64-NEXT: vsll.vx v0, v8, a0
648 ; RV64-NEXT: vsll.vx v8, v8, a1
649 ; RV64-NEXT: slli a0, a2, 48
650 ; RV64-NEXT: vand.vx v8, v8, a0
651 ; RV64-NEXT: vor.vv v8, v0, v8
652 ; RV64-NEXT: vor.vv v8, v8, v24
653 ; RV64-NEXT: vor.vv v8, v8, v16
654 ; RV64-NEXT: ret