Lines Matching refs:RV64

5 ; RUN:     -verify-machineinstrs < %s | FileCheck %s --check-prefixes=RV64
17 ; RV64-LABEL: vpgather_nxv1i8:
18 ; RV64: # %bb.0:
19 ; RV64-NEXT: vsetvli zero, a0, e8, mf8, ta, mu
20 ; RV64-NEXT: vluxei64.v v9, (zero), v8, v0.t
21 ; RV64-NEXT: vmv1r.v v8, v9
22 ; RV64-NEXT: ret
37 ; RV64-LABEL: vpgather_nxv2i8:
38 ; RV64: # %bb.0:
39 ; RV64-NEXT: vsetvli zero, a0, e8, mf4, ta, mu
40 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
41 ; RV64-NEXT: vmv1r.v v8, v10
42 ; RV64-NEXT: ret
56 ; RV64-LABEL: vpgather_nxv2i8_sextload_nxv2i16:
57 ; RV64: # %bb.0:
58 ; RV64-NEXT: vsetvli zero, a0, e8, mf4, ta, mu
59 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
60 ; RV64-NEXT: vsetvli a0, zero, e16, mf2, ta, mu
61 ; RV64-NEXT: vsext.vf2 v8, v10
62 ; RV64-NEXT: ret
77 ; RV64-LABEL: vpgather_nxv2i8_zextload_nxv2i16:
78 ; RV64: # %bb.0:
79 ; RV64-NEXT: vsetvli zero, a0, e8, mf4, ta, mu
80 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
81 ; RV64-NEXT: vsetvli a0, zero, e16, mf2, ta, mu
82 ; RV64-NEXT: vzext.vf2 v8, v10
83 ; RV64-NEXT: ret
98 ; RV64-LABEL: vpgather_nxv2i8_sextload_nxv2i32:
99 ; RV64: # %bb.0:
100 ; RV64-NEXT: vsetvli zero, a0, e8, mf4, ta, mu
101 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
102 ; RV64-NEXT: vsetvli a0, zero, e32, m1, ta, mu
103 ; RV64-NEXT: vsext.vf4 v8, v10
104 ; RV64-NEXT: ret
119 ; RV64-LABEL: vpgather_nxv2i8_zextload_nxv2i32:
120 ; RV64: # %bb.0:
121 ; RV64-NEXT: vsetvli zero, a0, e8, mf4, ta, mu
122 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
123 ; RV64-NEXT: vsetvli a0, zero, e32, m1, ta, mu
124 ; RV64-NEXT: vzext.vf4 v8, v10
125 ; RV64-NEXT: ret
140 ; RV64-LABEL: vpgather_nxv2i8_sextload_nxv2i64:
141 ; RV64: # %bb.0:
142 ; RV64-NEXT: vsetvli zero, a0, e8, mf4, ta, mu
143 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
144 ; RV64-NEXT: vsetvli a0, zero, e64, m2, ta, mu
145 ; RV64-NEXT: vsext.vf8 v8, v10
146 ; RV64-NEXT: ret
161 ; RV64-LABEL: vpgather_nxv2i8_zextload_nxv2i64:
162 ; RV64: # %bb.0:
163 ; RV64-NEXT: vsetvli zero, a0, e8, mf4, ta, mu
164 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
165 ; RV64-NEXT: vsetvli a0, zero, e64, m2, ta, mu
166 ; RV64-NEXT: vzext.vf8 v8, v10
167 ; RV64-NEXT: ret
183 ; RV64-LABEL: vpgather_nxv4i8:
184 ; RV64: # %bb.0:
185 ; RV64-NEXT: vsetvli zero, a0, e8, mf2, ta, mu
186 ; RV64-NEXT: vluxei64.v v12, (zero), v8, v0.t
187 ; RV64-NEXT: vmv1r.v v8, v12
188 ; RV64-NEXT: ret
201 ; RV64-LABEL: vpgather_truemask_nxv4i8:
202 ; RV64: # %bb.0:
203 ; RV64-NEXT: vsetvli zero, a0, e8, mf2, ta, mu
204 ; RV64-NEXT: vluxei64.v v12, (zero), v8
205 ; RV64-NEXT: vmv1r.v v8, v12
206 ; RV64-NEXT: ret
223 ; RV64-LABEL: vpgather_nxv8i8:
224 ; RV64: # %bb.0:
225 ; RV64-NEXT: vsetvli zero, a0, e8, m1, ta, mu
226 ; RV64-NEXT: vluxei64.v v16, (zero), v8, v0.t
227 ; RV64-NEXT: vmv.v.v v8, v16
228 ; RV64-NEXT: ret
242 ; RV64-LABEL: vpgather_baseidx_nxv8i8:
243 ; RV64: # %bb.0:
244 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
245 ; RV64-NEXT: vsext.vf8 v16, v8
246 ; RV64-NEXT: vsetvli zero, a1, e8, m1, ta, mu
247 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
248 ; RV64-NEXT: ret
287 ; RV64-LABEL: vpgather_baseidx_nxv32i8:
288 ; RV64: # %bb.0:
289 ; RV64-NEXT: csrr a3, vlenb
290 ; RV64-NEXT: slli a5, a3, 1
291 ; RV64-NEXT: sub a6, a1, a5
292 ; RV64-NEXT: vmv1r.v v12, v0
293 ; RV64-NEXT: li a4, 0
294 ; RV64-NEXT: li a2, 0
295 ; RV64-NEXT: bltu a1, a6, .LBB12_2
296 ; RV64-NEXT: # %bb.1:
297 ; RV64-NEXT: mv a2, a6
298 ; RV64-NEXT: .LBB12_2:
299 ; RV64-NEXT: sub a6, a2, a3
300 ; RV64-NEXT: mv a7, a4
301 ; RV64-NEXT: bltu a2, a6, .LBB12_4
302 ; RV64-NEXT: # %bb.3:
303 ; RV64-NEXT: mv a7, a6
304 ; RV64-NEXT: .LBB12_4:
305 ; RV64-NEXT: srli a6, a3, 2
306 ; RV64-NEXT: vsetvli t0, zero, e8, mf2, ta, mu
307 ; RV64-NEXT: vslidedown.vx v13, v12, a6
308 ; RV64-NEXT: srli a6, a3, 3
309 ; RV64-NEXT: vsetvli t0, zero, e8, mf4, ta, mu
310 ; RV64-NEXT: vslidedown.vx v0, v13, a6
311 ; RV64-NEXT: vsetvli t0, zero, e64, m8, ta, mu
312 ; RV64-NEXT: vsext.vf8 v24, v11
313 ; RV64-NEXT: vsetvli zero, a7, e8, m1, ta, mu
314 ; RV64-NEXT: vluxei64.v v19, (a0), v24, v0.t
315 ; RV64-NEXT: bltu a1, a5, .LBB12_6
316 ; RV64-NEXT: # %bb.5:
317 ; RV64-NEXT: mv a1, a5
318 ; RV64-NEXT: .LBB12_6:
319 ; RV64-NEXT: sub a5, a1, a3
320 ; RV64-NEXT: bltu a1, a5, .LBB12_8
321 ; RV64-NEXT: # %bb.7:
322 ; RV64-NEXT: mv a4, a5
323 ; RV64-NEXT: .LBB12_8:
324 ; RV64-NEXT: vsetvli a5, zero, e8, mf4, ta, mu
325 ; RV64-NEXT: vslidedown.vx v0, v12, a6
326 ; RV64-NEXT: vsetvli a5, zero, e64, m8, ta, mu
327 ; RV64-NEXT: vsext.vf8 v24, v9
328 ; RV64-NEXT: vsetvli zero, a4, e8, m1, ta, mu
329 ; RV64-NEXT: vluxei64.v v17, (a0), v24, v0.t
330 ; RV64-NEXT: bltu a1, a3, .LBB12_10
331 ; RV64-NEXT: # %bb.9:
332 ; RV64-NEXT: mv a1, a3
333 ; RV64-NEXT: .LBB12_10:
334 ; RV64-NEXT: vsetvli a4, zero, e64, m8, ta, mu
335 ; RV64-NEXT: vsext.vf8 v24, v8
336 ; RV64-NEXT: vsetvli zero, a1, e8, m1, ta, mu
337 ; RV64-NEXT: vmv1r.v v0, v12
338 ; RV64-NEXT: vluxei64.v v16, (a0), v24, v0.t
339 ; RV64-NEXT: bltu a2, a3, .LBB12_12
340 ; RV64-NEXT: # %bb.11:
341 ; RV64-NEXT: mv a2, a3
342 ; RV64-NEXT: .LBB12_12:
343 ; RV64-NEXT: vsetvli a1, zero, e64, m8, ta, mu
344 ; RV64-NEXT: vsext.vf8 v24, v10
345 ; RV64-NEXT: vsetvli zero, a2, e8, m1, ta, mu
346 ; RV64-NEXT: vmv1r.v v0, v13
347 ; RV64-NEXT: vluxei64.v v18, (a0), v24, v0.t
348 ; RV64-NEXT: vmv4r.v v8, v16
349 ; RV64-NEXT: ret
365 ; RV64-LABEL: vpgather_nxv1i16:
366 ; RV64: # %bb.0:
367 ; RV64-NEXT: vsetvli zero, a0, e16, mf4, ta, mu
368 ; RV64-NEXT: vluxei64.v v9, (zero), v8, v0.t
369 ; RV64-NEXT: vmv1r.v v8, v9
370 ; RV64-NEXT: ret
385 ; RV64-LABEL: vpgather_nxv2i16:
386 ; RV64: # %bb.0:
387 ; RV64-NEXT: vsetvli zero, a0, e16, mf2, ta, mu
388 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
389 ; RV64-NEXT: vmv1r.v v8, v10
390 ; RV64-NEXT: ret
404 ; RV64-LABEL: vpgather_nxv2i16_sextload_nxv2i32:
405 ; RV64: # %bb.0:
406 ; RV64-NEXT: vsetvli zero, a0, e16, mf2, ta, mu
407 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
408 ; RV64-NEXT: vsetvli a0, zero, e32, m1, ta, mu
409 ; RV64-NEXT: vsext.vf2 v8, v10
410 ; RV64-NEXT: ret
425 ; RV64-LABEL: vpgather_nxv2i16_zextload_nxv2i32:
426 ; RV64: # %bb.0:
427 ; RV64-NEXT: vsetvli zero, a0, e16, mf2, ta, mu
428 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
429 ; RV64-NEXT: vsetvli a0, zero, e32, m1, ta, mu
430 ; RV64-NEXT: vzext.vf2 v8, v10
431 ; RV64-NEXT: ret
446 ; RV64-LABEL: vpgather_nxv2i16_sextload_nxv2i64:
447 ; RV64: # %bb.0:
448 ; RV64-NEXT: vsetvli zero, a0, e16, mf2, ta, mu
449 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
450 ; RV64-NEXT: vsetvli a0, zero, e64, m2, ta, mu
451 ; RV64-NEXT: vsext.vf4 v8, v10
452 ; RV64-NEXT: ret
467 ; RV64-LABEL: vpgather_nxv2i16_zextload_nxv2i64:
468 ; RV64: # %bb.0:
469 ; RV64-NEXT: vsetvli zero, a0, e16, mf2, ta, mu
470 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
471 ; RV64-NEXT: vsetvli a0, zero, e64, m2, ta, mu
472 ; RV64-NEXT: vzext.vf4 v8, v10
473 ; RV64-NEXT: ret
489 ; RV64-LABEL: vpgather_nxv4i16:
490 ; RV64: # %bb.0:
491 ; RV64-NEXT: vsetvli zero, a0, e16, m1, ta, mu
492 ; RV64-NEXT: vluxei64.v v12, (zero), v8, v0.t
493 ; RV64-NEXT: vmv.v.v v8, v12
494 ; RV64-NEXT: ret
507 ; RV64-LABEL: vpgather_truemask_nxv4i16:
508 ; RV64: # %bb.0:
509 ; RV64-NEXT: vsetvli zero, a0, e16, m1, ta, mu
510 ; RV64-NEXT: vluxei64.v v12, (zero), v8
511 ; RV64-NEXT: vmv.v.v v8, v12
512 ; RV64-NEXT: ret
529 ; RV64-LABEL: vpgather_nxv8i16:
530 ; RV64: # %bb.0:
531 ; RV64-NEXT: vsetvli zero, a0, e16, m2, ta, mu
532 ; RV64-NEXT: vluxei64.v v16, (zero), v8, v0.t
533 ; RV64-NEXT: vmv.v.v v8, v16
534 ; RV64-NEXT: ret
549 ; RV64-LABEL: vpgather_baseidx_nxv8i8_nxv8i16:
550 ; RV64: # %bb.0:
551 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
552 ; RV64-NEXT: vsext.vf8 v16, v8
553 ; RV64-NEXT: vadd.vv v16, v16, v16
554 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
555 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
556 ; RV64-NEXT: ret
572 ; RV64-LABEL: vpgather_baseidx_sext_nxv8i8_nxv8i16:
573 ; RV64: # %bb.0:
574 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
575 ; RV64-NEXT: vsext.vf8 v16, v8
576 ; RV64-NEXT: vadd.vv v16, v16, v16
577 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
578 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
579 ; RV64-NEXT: ret
596 ; RV64-LABEL: vpgather_baseidx_zext_nxv8i8_nxv8i16:
597 ; RV64: # %bb.0:
598 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
599 ; RV64-NEXT: vzext.vf8 v16, v8
600 ; RV64-NEXT: vadd.vv v16, v16, v16
601 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
602 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
603 ; RV64-NEXT: ret
620 ; RV64-LABEL: vpgather_baseidx_nxv8i16:
621 ; RV64: # %bb.0:
622 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
623 ; RV64-NEXT: vsext.vf4 v16, v8
624 ; RV64-NEXT: vadd.vv v16, v16, v16
625 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
626 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
627 ; RV64-NEXT: ret
642 ; RV64-LABEL: vpgather_nxv1i32:
643 ; RV64: # %bb.0:
644 ; RV64-NEXT: vsetvli zero, a0, e32, mf2, ta, mu
645 ; RV64-NEXT: vluxei64.v v9, (zero), v8, v0.t
646 ; RV64-NEXT: vmv1r.v v8, v9
647 ; RV64-NEXT: ret
661 ; RV64-LABEL: vpgather_nxv2i32:
662 ; RV64: # %bb.0:
663 ; RV64-NEXT: vsetvli zero, a0, e32, m1, ta, mu
664 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
665 ; RV64-NEXT: vmv.v.v v8, v10
666 ; RV64-NEXT: ret
680 ; RV64-LABEL: vpgather_nxv2i32_sextload_nxv2i64:
681 ; RV64: # %bb.0:
682 ; RV64-NEXT: vsetvli zero, a0, e32, m1, ta, mu
683 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
684 ; RV64-NEXT: vsetvli a0, zero, e64, m2, ta, mu
685 ; RV64-NEXT: vsext.vf2 v8, v10
686 ; RV64-NEXT: ret
701 ; RV64-LABEL: vpgather_nxv2i32_zextload_nxv2i64:
702 ; RV64: # %bb.0:
703 ; RV64-NEXT: vsetvli zero, a0, e32, m1, ta, mu
704 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
705 ; RV64-NEXT: vsetvli a0, zero, e64, m2, ta, mu
706 ; RV64-NEXT: vzext.vf2 v8, v10
707 ; RV64-NEXT: ret
722 ; RV64-LABEL: vpgather_nxv4i32:
723 ; RV64: # %bb.0:
724 ; RV64-NEXT: vsetvli zero, a0, e32, m2, ta, mu
725 ; RV64-NEXT: vluxei64.v v12, (zero), v8, v0.t
726 ; RV64-NEXT: vmv.v.v v8, v12
727 ; RV64-NEXT: ret
739 ; RV64-LABEL: vpgather_truemask_nxv4i32:
740 ; RV64: # %bb.0:
741 ; RV64-NEXT: vsetvli zero, a0, e32, m2, ta, mu
742 ; RV64-NEXT: vluxei64.v v12, (zero), v8
743 ; RV64-NEXT: vmv.v.v v8, v12
744 ; RV64-NEXT: ret
760 ; RV64-LABEL: vpgather_nxv8i32:
761 ; RV64: # %bb.0:
762 ; RV64-NEXT: vsetvli zero, a0, e32, m4, ta, mu
763 ; RV64-NEXT: vluxei64.v v16, (zero), v8, v0.t
764 ; RV64-NEXT: vmv.v.v v8, v16
765 ; RV64-NEXT: ret
780 ; RV64-LABEL: vpgather_baseidx_nxv8i8_nxv8i32:
781 ; RV64: # %bb.0:
782 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
783 ; RV64-NEXT: vsext.vf8 v16, v8
784 ; RV64-NEXT: vsll.vi v16, v16, 2
785 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
786 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
787 ; RV64-NEXT: ret
803 ; RV64-LABEL: vpgather_baseidx_sext_nxv8i8_nxv8i32:
804 ; RV64: # %bb.0:
805 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
806 ; RV64-NEXT: vsext.vf8 v16, v8
807 ; RV64-NEXT: vsll.vi v16, v16, 2
808 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
809 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
810 ; RV64-NEXT: ret
827 ; RV64-LABEL: vpgather_baseidx_zext_nxv8i8_nxv8i32:
828 ; RV64: # %bb.0:
829 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
830 ; RV64-NEXT: vzext.vf8 v16, v8
831 ; RV64-NEXT: vsll.vi v16, v16, 2
832 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
833 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
834 ; RV64-NEXT: ret
851 ; RV64-LABEL: vpgather_baseidx_nxv8i16_nxv8i32:
852 ; RV64: # %bb.0:
853 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
854 ; RV64-NEXT: vsext.vf4 v16, v8
855 ; RV64-NEXT: vsll.vi v16, v16, 2
856 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
857 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
858 ; RV64-NEXT: ret
874 ; RV64-LABEL: vpgather_baseidx_sext_nxv8i16_nxv8i32:
875 ; RV64: # %bb.0:
876 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
877 ; RV64-NEXT: vsext.vf4 v16, v8
878 ; RV64-NEXT: vsll.vi v16, v16, 2
879 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
880 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
881 ; RV64-NEXT: ret
898 ; RV64-LABEL: vpgather_baseidx_zext_nxv8i16_nxv8i32:
899 ; RV64: # %bb.0:
900 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
901 ; RV64-NEXT: vzext.vf4 v16, v8
902 ; RV64-NEXT: vsll.vi v16, v16, 2
903 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
904 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
905 ; RV64-NEXT: ret
921 ; RV64-LABEL: vpgather_baseidx_nxv8i32:
922 ; RV64: # %bb.0:
923 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
924 ; RV64-NEXT: vsext.vf2 v16, v8
925 ; RV64-NEXT: vsll.vi v16, v16, 2
926 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
927 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
928 ; RV64-NEXT: ret
944 ; RV64-LABEL: vpgather_nxv1i64:
945 ; RV64: # %bb.0:
946 ; RV64-NEXT: vsetvli zero, a0, e64, m1, ta, mu
947 ; RV64-NEXT: vluxei64.v v8, (zero), v8, v0.t
948 ; RV64-NEXT: ret
963 ; RV64-LABEL: vpgather_nxv2i64:
964 ; RV64: # %bb.0:
965 ; RV64-NEXT: vsetvli zero, a0, e64, m2, ta, mu
966 ; RV64-NEXT: vluxei64.v v8, (zero), v8, v0.t
967 ; RV64-NEXT: ret
982 ; RV64-LABEL: vpgather_nxv4i64:
983 ; RV64: # %bb.0:
984 ; RV64-NEXT: vsetvli zero, a0, e64, m4, ta, mu
985 ; RV64-NEXT: vluxei64.v v8, (zero), v8, v0.t
986 ; RV64-NEXT: ret
999 ; RV64-LABEL: vpgather_truemask_nxv4i64:
1000 ; RV64: # %bb.0:
1001 ; RV64-NEXT: vsetvli zero, a0, e64, m4, ta, mu
1002 ; RV64-NEXT: vluxei64.v v8, (zero), v8
1003 ; RV64-NEXT: ret
1020 ; RV64-LABEL: vpgather_nxv8i64:
1021 ; RV64: # %bb.0:
1022 ; RV64-NEXT: vsetvli zero, a0, e64, m8, ta, mu
1023 ; RV64-NEXT: vluxei64.v v8, (zero), v8, v0.t
1024 ; RV64-NEXT: ret
1039 ; RV64-LABEL: vpgather_baseidx_nxv8i8_nxv8i64:
1040 ; RV64: # %bb.0:
1041 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1042 ; RV64-NEXT: vsext.vf8 v16, v8
1043 ; RV64-NEXT: vsll.vi v8, v16, 3
1044 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1045 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1046 ; RV64-NEXT: ret
1064 ; RV64-LABEL: vpgather_baseidx_sext_nxv8i8_nxv8i64:
1065 ; RV64: # %bb.0:
1066 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1067 ; RV64-NEXT: vsext.vf8 v16, v8
1068 ; RV64-NEXT: vsll.vi v8, v16, 3
1069 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1070 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1071 ; RV64-NEXT: ret
1090 ; RV64-LABEL: vpgather_baseidx_zext_nxv8i8_nxv8i64:
1091 ; RV64: # %bb.0:
1092 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1093 ; RV64-NEXT: vzext.vf8 v16, v8
1094 ; RV64-NEXT: vsll.vi v8, v16, 3
1095 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1096 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1097 ; RV64-NEXT: ret
1114 ; RV64-LABEL: vpgather_baseidx_nxv8i16_nxv8i64:
1115 ; RV64: # %bb.0:
1116 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1117 ; RV64-NEXT: vsext.vf4 v16, v8
1118 ; RV64-NEXT: vsll.vi v8, v16, 3
1119 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1120 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1121 ; RV64-NEXT: ret
1139 ; RV64-LABEL: vpgather_baseidx_sext_nxv8i16_nxv8i64:
1140 ; RV64: # %bb.0:
1141 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1142 ; RV64-NEXT: vsext.vf4 v16, v8
1143 ; RV64-NEXT: vsll.vi v8, v16, 3
1144 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1145 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1146 ; RV64-NEXT: ret
1165 ; RV64-LABEL: vpgather_baseidx_zext_nxv8i16_nxv8i64:
1166 ; RV64: # %bb.0:
1167 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1168 ; RV64-NEXT: vzext.vf4 v16, v8
1169 ; RV64-NEXT: vsll.vi v8, v16, 3
1170 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1171 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1172 ; RV64-NEXT: ret
1188 ; RV64-LABEL: vpgather_baseidx_nxv8i32_nxv8i64:
1189 ; RV64: # %bb.0:
1190 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1191 ; RV64-NEXT: vsext.vf2 v16, v8
1192 ; RV64-NEXT: vsll.vi v8, v16, 3
1193 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1194 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1195 ; RV64-NEXT: ret
1213 ; RV64-LABEL: vpgather_baseidx_sext_nxv8i32_nxv8i64:
1214 ; RV64: # %bb.0:
1215 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1216 ; RV64-NEXT: vsext.vf2 v16, v8
1217 ; RV64-NEXT: vsll.vi v8, v16, 3
1218 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1219 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1220 ; RV64-NEXT: ret
1239 ; RV64-LABEL: vpgather_baseidx_zext_nxv8i32_nxv8i64:
1240 ; RV64: # %bb.0:
1241 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1242 ; RV64-NEXT: vzext.vf2 v16, v8
1243 ; RV64-NEXT: vsll.vi v8, v16, 3
1244 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1245 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1246 ; RV64-NEXT: ret
1264 ; RV64-LABEL: vpgather_baseidx_nxv8i64:
1265 ; RV64: # %bb.0:
1266 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1267 ; RV64-NEXT: vsll.vi v8, v8, 3
1268 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1269 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1270 ; RV64-NEXT: ret
1286 ; RV64-LABEL: vpgather_nxv1f16:
1287 ; RV64: # %bb.0:
1288 ; RV64-NEXT: vsetvli zero, a0, e16, mf4, ta, mu
1289 ; RV64-NEXT: vluxei64.v v9, (zero), v8, v0.t
1290 ; RV64-NEXT: vmv1r.v v8, v9
1291 ; RV64-NEXT: ret
1306 ; RV64-LABEL: vpgather_nxv2f16:
1307 ; RV64: # %bb.0:
1308 ; RV64-NEXT: vsetvli zero, a0, e16, mf2, ta, mu
1309 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
1310 ; RV64-NEXT: vmv1r.v v8, v10
1311 ; RV64-NEXT: ret
1326 ; RV64-LABEL: vpgather_nxv4f16:
1327 ; RV64: # %bb.0:
1328 ; RV64-NEXT: vsetvli zero, a0, e16, m1, ta, mu
1329 ; RV64-NEXT: vluxei64.v v12, (zero), v8, v0.t
1330 ; RV64-NEXT: vmv.v.v v8, v12
1331 ; RV64-NEXT: ret
1344 ; RV64-LABEL: vpgather_truemask_nxv4f16:
1345 ; RV64: # %bb.0:
1346 ; RV64-NEXT: vsetvli zero, a0, e16, m1, ta, mu
1347 ; RV64-NEXT: vluxei64.v v12, (zero), v8
1348 ; RV64-NEXT: vmv.v.v v8, v12
1349 ; RV64-NEXT: ret
1366 ; RV64-LABEL: vpgather_nxv8f16:
1367 ; RV64: # %bb.0:
1368 ; RV64-NEXT: vsetvli zero, a0, e16, m2, ta, mu
1369 ; RV64-NEXT: vluxei64.v v16, (zero), v8, v0.t
1370 ; RV64-NEXT: vmv.v.v v8, v16
1371 ; RV64-NEXT: ret
1386 ; RV64-LABEL: vpgather_baseidx_nxv8i8_nxv8f16:
1387 ; RV64: # %bb.0:
1388 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1389 ; RV64-NEXT: vsext.vf8 v16, v8
1390 ; RV64-NEXT: vadd.vv v16, v16, v16
1391 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
1392 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
1393 ; RV64-NEXT: ret
1409 ; RV64-LABEL: vpgather_baseidx_sext_nxv8i8_nxv8f16:
1410 ; RV64: # %bb.0:
1411 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1412 ; RV64-NEXT: vsext.vf8 v16, v8
1413 ; RV64-NEXT: vadd.vv v16, v16, v16
1414 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
1415 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
1416 ; RV64-NEXT: ret
1433 ; RV64-LABEL: vpgather_baseidx_zext_nxv8i8_nxv8f16:
1434 ; RV64: # %bb.0:
1435 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1436 ; RV64-NEXT: vzext.vf8 v16, v8
1437 ; RV64-NEXT: vadd.vv v16, v16, v16
1438 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
1439 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
1440 ; RV64-NEXT: ret
1457 ; RV64-LABEL: vpgather_baseidx_nxv8f16:
1458 ; RV64: # %bb.0:
1459 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1460 ; RV64-NEXT: vsext.vf4 v16, v8
1461 ; RV64-NEXT: vadd.vv v16, v16, v16
1462 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
1463 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
1464 ; RV64-NEXT: ret
1479 ; RV64-LABEL: vpgather_nxv1f32:
1480 ; RV64: # %bb.0:
1481 ; RV64-NEXT: vsetvli zero, a0, e32, mf2, ta, mu
1482 ; RV64-NEXT: vluxei64.v v9, (zero), v8, v0.t
1483 ; RV64-NEXT: vmv1r.v v8, v9
1484 ; RV64-NEXT: ret
1498 ; RV64-LABEL: vpgather_nxv2f32:
1499 ; RV64: # %bb.0:
1500 ; RV64-NEXT: vsetvli zero, a0, e32, m1, ta, mu
1501 ; RV64-NEXT: vluxei64.v v10, (zero), v8, v0.t
1502 ; RV64-NEXT: vmv.v.v v8, v10
1503 ; RV64-NEXT: ret
1517 ; RV64-LABEL: vpgather_nxv4f32:
1518 ; RV64: # %bb.0:
1519 ; RV64-NEXT: vsetvli zero, a0, e32, m2, ta, mu
1520 ; RV64-NEXT: vluxei64.v v12, (zero), v8, v0.t
1521 ; RV64-NEXT: vmv.v.v v8, v12
1522 ; RV64-NEXT: ret
1534 ; RV64-LABEL: vpgather_truemask_nxv4f32:
1535 ; RV64: # %bb.0:
1536 ; RV64-NEXT: vsetvli zero, a0, e32, m2, ta, mu
1537 ; RV64-NEXT: vluxei64.v v12, (zero), v8
1538 ; RV64-NEXT: vmv.v.v v8, v12
1539 ; RV64-NEXT: ret
1555 ; RV64-LABEL: vpgather_nxv8f32:
1556 ; RV64: # %bb.0:
1557 ; RV64-NEXT: vsetvli zero, a0, e32, m4, ta, mu
1558 ; RV64-NEXT: vluxei64.v v16, (zero), v8, v0.t
1559 ; RV64-NEXT: vmv.v.v v8, v16
1560 ; RV64-NEXT: ret
1575 ; RV64-LABEL: vpgather_baseidx_nxv8i8_nxv8f32:
1576 ; RV64: # %bb.0:
1577 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1578 ; RV64-NEXT: vsext.vf8 v16, v8
1579 ; RV64-NEXT: vsll.vi v16, v16, 2
1580 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1581 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
1582 ; RV64-NEXT: ret
1598 ; RV64-LABEL: vpgather_baseidx_sext_nxv8i8_nxv8f32:
1599 ; RV64: # %bb.0:
1600 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1601 ; RV64-NEXT: vsext.vf8 v16, v8
1602 ; RV64-NEXT: vsll.vi v16, v16, 2
1603 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1604 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
1605 ; RV64-NEXT: ret
1622 ; RV64-LABEL: vpgather_baseidx_zext_nxv8i8_nxv8f32:
1623 ; RV64: # %bb.0:
1624 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1625 ; RV64-NEXT: vzext.vf8 v16, v8
1626 ; RV64-NEXT: vsll.vi v16, v16, 2
1627 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1628 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
1629 ; RV64-NEXT: ret
1646 ; RV64-LABEL: vpgather_baseidx_nxv8i16_nxv8f32:
1647 ; RV64: # %bb.0:
1648 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1649 ; RV64-NEXT: vsext.vf4 v16, v8
1650 ; RV64-NEXT: vsll.vi v16, v16, 2
1651 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1652 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
1653 ; RV64-NEXT: ret
1669 ; RV64-LABEL: vpgather_baseidx_sext_nxv8i16_nxv8f32:
1670 ; RV64: # %bb.0:
1671 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1672 ; RV64-NEXT: vsext.vf4 v16, v8
1673 ; RV64-NEXT: vsll.vi v16, v16, 2
1674 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1675 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
1676 ; RV64-NEXT: ret
1693 ; RV64-LABEL: vpgather_baseidx_zext_nxv8i16_nxv8f32:
1694 ; RV64: # %bb.0:
1695 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1696 ; RV64-NEXT: vzext.vf4 v16, v8
1697 ; RV64-NEXT: vsll.vi v16, v16, 2
1698 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1699 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
1700 ; RV64-NEXT: ret
1716 ; RV64-LABEL: vpgather_baseidx_nxv8f32:
1717 ; RV64: # %bb.0:
1718 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1719 ; RV64-NEXT: vsext.vf2 v16, v8
1720 ; RV64-NEXT: vsll.vi v16, v16, 2
1721 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1722 ; RV64-NEXT: vluxei64.v v8, (a0), v16, v0.t
1723 ; RV64-NEXT: ret
1739 ; RV64-LABEL: vpgather_nxv1f64:
1740 ; RV64: # %bb.0:
1741 ; RV64-NEXT: vsetvli zero, a0, e64, m1, ta, mu
1742 ; RV64-NEXT: vluxei64.v v8, (zero), v8, v0.t
1743 ; RV64-NEXT: ret
1758 ; RV64-LABEL: vpgather_nxv2f64:
1759 ; RV64: # %bb.0:
1760 ; RV64-NEXT: vsetvli zero, a0, e64, m2, ta, mu
1761 ; RV64-NEXT: vluxei64.v v8, (zero), v8, v0.t
1762 ; RV64-NEXT: ret
1777 ; RV64-LABEL: vpgather_nxv4f64:
1778 ; RV64: # %bb.0:
1779 ; RV64-NEXT: vsetvli zero, a0, e64, m4, ta, mu
1780 ; RV64-NEXT: vluxei64.v v8, (zero), v8, v0.t
1781 ; RV64-NEXT: ret
1794 ; RV64-LABEL: vpgather_truemask_nxv4f64:
1795 ; RV64: # %bb.0:
1796 ; RV64-NEXT: vsetvli zero, a0, e64, m4, ta, mu
1797 ; RV64-NEXT: vluxei64.v v8, (zero), v8
1798 ; RV64-NEXT: ret
1815 ; RV64-LABEL: vpgather_nxv6f64:
1816 ; RV64: # %bb.0:
1817 ; RV64-NEXT: vsetvli zero, a0, e64, m8, ta, mu
1818 ; RV64-NEXT: vluxei64.v v8, (zero), v8, v0.t
1819 ; RV64-NEXT: ret
1834 ; RV64-LABEL: vpgather_baseidx_nxv6i8_nxv6f64:
1835 ; RV64: # %bb.0:
1836 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1837 ; RV64-NEXT: vsext.vf8 v16, v8
1838 ; RV64-NEXT: vsll.vi v8, v16, 3
1839 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1840 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1841 ; RV64-NEXT: ret
1859 ; RV64-LABEL: vpgather_baseidx_sext_nxv6i8_nxv6f64:
1860 ; RV64: # %bb.0:
1861 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1862 ; RV64-NEXT: vsext.vf8 v16, v8
1863 ; RV64-NEXT: vsll.vi v8, v16, 3
1864 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1865 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1866 ; RV64-NEXT: ret
1885 ; RV64-LABEL: vpgather_baseidx_zext_nxv6i8_nxv6f64:
1886 ; RV64: # %bb.0:
1887 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1888 ; RV64-NEXT: vzext.vf8 v16, v8
1889 ; RV64-NEXT: vsll.vi v8, v16, 3
1890 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1891 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1892 ; RV64-NEXT: ret
1909 ; RV64-LABEL: vpgather_baseidx_nxv6i16_nxv6f64:
1910 ; RV64: # %bb.0:
1911 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1912 ; RV64-NEXT: vsext.vf4 v16, v8
1913 ; RV64-NEXT: vsll.vi v8, v16, 3
1914 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1915 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1916 ; RV64-NEXT: ret
1934 ; RV64-LABEL: vpgather_baseidx_sext_nxv6i16_nxv6f64:
1935 ; RV64: # %bb.0:
1936 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1937 ; RV64-NEXT: vsext.vf4 v16, v8
1938 ; RV64-NEXT: vsll.vi v8, v16, 3
1939 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1940 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1941 ; RV64-NEXT: ret
1960 ; RV64-LABEL: vpgather_baseidx_zext_nxv6i16_nxv6f64:
1961 ; RV64: # %bb.0:
1962 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1963 ; RV64-NEXT: vzext.vf4 v16, v8
1964 ; RV64-NEXT: vsll.vi v8, v16, 3
1965 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1966 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1967 ; RV64-NEXT: ret
1983 ; RV64-LABEL: vpgather_baseidx_nxv6i32_nxv6f64:
1984 ; RV64: # %bb.0:
1985 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1986 ; RV64-NEXT: vsext.vf2 v16, v8
1987 ; RV64-NEXT: vsll.vi v8, v16, 3
1988 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1989 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
1990 ; RV64-NEXT: ret
2008 ; RV64-LABEL: vpgather_baseidx_sext_nxv6i32_nxv6f64:
2009 ; RV64: # %bb.0:
2010 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2011 ; RV64-NEXT: vsext.vf2 v16, v8
2012 ; RV64-NEXT: vsll.vi v8, v16, 3
2013 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2014 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
2015 ; RV64-NEXT: ret
2034 ; RV64-LABEL: vpgather_baseidx_zext_nxv6i32_nxv6f64:
2035 ; RV64: # %bb.0:
2036 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2037 ; RV64-NEXT: vzext.vf2 v16, v8
2038 ; RV64-NEXT: vsll.vi v8, v16, 3
2039 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2040 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
2041 ; RV64-NEXT: ret
2059 ; RV64-LABEL: vpgather_baseidx_nxv6f64:
2060 ; RV64: # %bb.0:
2061 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2062 ; RV64-NEXT: vsll.vi v8, v8, 3
2063 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2064 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
2065 ; RV64-NEXT: ret
2081 ; RV64-LABEL: vpgather_nxv8f64:
2082 ; RV64: # %bb.0:
2083 ; RV64-NEXT: vsetvli zero, a0, e64, m8, ta, mu
2084 ; RV64-NEXT: vluxei64.v v8, (zero), v8, v0.t
2085 ; RV64-NEXT: ret
2100 ; RV64-LABEL: vpgather_baseidx_nxv8i8_nxv8f64:
2101 ; RV64: # %bb.0:
2102 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2103 ; RV64-NEXT: vsext.vf8 v16, v8
2104 ; RV64-NEXT: vsll.vi v8, v16, 3
2105 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2106 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
2107 ; RV64-NEXT: ret
2125 ; RV64-LABEL: vpgather_baseidx_sext_nxv8i8_nxv8f64:
2126 ; RV64: # %bb.0:
2127 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2128 ; RV64-NEXT: vsext.vf8 v16, v8
2129 ; RV64-NEXT: vsll.vi v8, v16, 3
2130 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2131 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
2132 ; RV64-NEXT: ret
2151 ; RV64-LABEL: vpgather_baseidx_zext_nxv8i8_nxv8f64:
2152 ; RV64: # %bb.0:
2153 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2154 ; RV64-NEXT: vzext.vf8 v16, v8
2155 ; RV64-NEXT: vsll.vi v8, v16, 3
2156 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2157 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
2158 ; RV64-NEXT: ret
2175 ; RV64-LABEL: vpgather_baseidx_nxv8i16_nxv8f64:
2176 ; RV64: # %bb.0:
2177 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2178 ; RV64-NEXT: vsext.vf4 v16, v8
2179 ; RV64-NEXT: vsll.vi v8, v16, 3
2180 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2181 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
2182 ; RV64-NEXT: ret
2200 ; RV64-LABEL: vpgather_baseidx_sext_nxv8i16_nxv8f64:
2201 ; RV64: # %bb.0:
2202 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2203 ; RV64-NEXT: vsext.vf4 v16, v8
2204 ; RV64-NEXT: vsll.vi v8, v16, 3
2205 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2206 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
2207 ; RV64-NEXT: ret
2226 ; RV64-LABEL: vpgather_baseidx_zext_nxv8i16_nxv8f64:
2227 ; RV64: # %bb.0:
2228 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2229 ; RV64-NEXT: vzext.vf4 v16, v8
2230 ; RV64-NEXT: vsll.vi v8, v16, 3
2231 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2232 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
2233 ; RV64-NEXT: ret
2249 ; RV64-LABEL: vpgather_baseidx_nxv8i32_nxv8f64:
2250 ; RV64: # %bb.0:
2251 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2252 ; RV64-NEXT: vsext.vf2 v16, v8
2253 ; RV64-NEXT: vsll.vi v8, v16, 3
2254 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2255 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
2256 ; RV64-NEXT: ret
2274 ; RV64-LABEL: vpgather_baseidx_sext_nxv8i32_nxv8f64:
2275 ; RV64: # %bb.0:
2276 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2277 ; RV64-NEXT: vsext.vf2 v16, v8
2278 ; RV64-NEXT: vsll.vi v8, v16, 3
2279 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2280 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
2281 ; RV64-NEXT: ret
2300 ; RV64-LABEL: vpgather_baseidx_zext_nxv8i32_nxv8f64:
2301 ; RV64: # %bb.0:
2302 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2303 ; RV64-NEXT: vzext.vf2 v16, v8
2304 ; RV64-NEXT: vsll.vi v8, v16, 3
2305 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2306 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
2307 ; RV64-NEXT: ret
2325 ; RV64-LABEL: vpgather_baseidx_nxv8f64:
2326 ; RV64: # %bb.0:
2327 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2328 ; RV64-NEXT: vsll.vi v8, v8, 3
2329 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2330 ; RV64-NEXT: vluxei64.v v8, (a0), v8, v0.t
2331 ; RV64-NEXT: ret
2365 ; RV64-LABEL: vpgather_nxv16f64:
2366 ; RV64: # %bb.0:
2367 ; RV64-NEXT: vmv1r.v v24, v0
2368 ; RV64-NEXT: li a2, 0
2369 ; RV64-NEXT: csrr a1, vlenb
2370 ; RV64-NEXT: srli a4, a1, 3
2371 ; RV64-NEXT: vsetvli a3, zero, e8, mf4, ta, mu
2372 ; RV64-NEXT: sub a3, a0, a1
2373 ; RV64-NEXT: vslidedown.vx v0, v0, a4
2374 ; RV64-NEXT: bltu a0, a3, .LBB102_2
2375 ; RV64-NEXT: # %bb.1:
2376 ; RV64-NEXT: mv a2, a3
2377 ; RV64-NEXT: .LBB102_2:
2378 ; RV64-NEXT: vsetvli zero, a2, e64, m8, ta, mu
2379 ; RV64-NEXT: vluxei64.v v16, (zero), v16, v0.t
2380 ; RV64-NEXT: bltu a0, a1, .LBB102_4
2381 ; RV64-NEXT: # %bb.3:
2382 ; RV64-NEXT: mv a0, a1
2383 ; RV64-NEXT: .LBB102_4:
2384 ; RV64-NEXT: vsetvli zero, a0, e64, m8, ta, mu
2385 ; RV64-NEXT: vmv1r.v v0, v24
2386 ; RV64-NEXT: vluxei64.v v8, (zero), v8, v0.t
2387 ; RV64-NEXT: ret
2420 ; RV64-LABEL: vpgather_baseidx_nxv16i16_nxv16f64:
2421 ; RV64: # %bb.0:
2422 ; RV64-NEXT: vmv1r.v v12, v0
2423 ; RV64-NEXT: li a3, 0
2424 ; RV64-NEXT: csrr a2, vlenb
2425 ; RV64-NEXT: srli a5, a2, 3
2426 ; RV64-NEXT: vsetvli a4, zero, e8, mf4, ta, mu
2427 ; RV64-NEXT: sub a4, a1, a2
2428 ; RV64-NEXT: vslidedown.vx v0, v0, a5
2429 ; RV64-NEXT: bltu a1, a4, .LBB103_2
2430 ; RV64-NEXT: # %bb.1:
2431 ; RV64-NEXT: mv a3, a4
2432 ; RV64-NEXT: .LBB103_2:
2433 ; RV64-NEXT: vsetvli a4, zero, e64, m8, ta, mu
2434 ; RV64-NEXT: vsext.vf4 v16, v10
2435 ; RV64-NEXT: vsll.vi v16, v16, 3
2436 ; RV64-NEXT: vsetvli zero, a3, e64, m8, ta, mu
2437 ; RV64-NEXT: vluxei64.v v16, (a0), v16, v0.t
2438 ; RV64-NEXT: bltu a1, a2, .LBB103_4
2439 ; RV64-NEXT: # %bb.3:
2440 ; RV64-NEXT: mv a1, a2
2441 ; RV64-NEXT: .LBB103_4:
2442 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2443 ; RV64-NEXT: vsext.vf4 v24, v8
2444 ; RV64-NEXT: vsll.vi v24, v24, 3
2445 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2446 ; RV64-NEXT: vmv1r.v v0, v12
2447 ; RV64-NEXT: vluxei64.v v8, (a0), v24, v0.t
2448 ; RV64-NEXT: ret
2488 ; RV64-LABEL: vpgather_baseidx_sext_nxv16i16_nxv16f64:
2489 ; RV64: # %bb.0:
2490 ; RV64-NEXT: vmv1r.v v12, v0
2491 ; RV64-NEXT: li a3, 0
2492 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2493 ; RV64-NEXT: vsext.vf4 v16, v10
2494 ; RV64-NEXT: csrr a2, vlenb
2495 ; RV64-NEXT: srli a5, a2, 3
2496 ; RV64-NEXT: vsetvli a4, zero, e8, mf4, ta, mu
2497 ; RV64-NEXT: sub a4, a1, a2
2498 ; RV64-NEXT: vslidedown.vx v0, v0, a5
2499 ; RV64-NEXT: bltu a1, a4, .LBB104_2
2500 ; RV64-NEXT: # %bb.1:
2501 ; RV64-NEXT: mv a3, a4
2502 ; RV64-NEXT: .LBB104_2:
2503 ; RV64-NEXT: vsetvli a4, zero, e64, m8, ta, mu
2504 ; RV64-NEXT: vsext.vf4 v24, v8
2505 ; RV64-NEXT: vsll.vi v16, v16, 3
2506 ; RV64-NEXT: vsetvli zero, a3, e64, m8, ta, mu
2507 ; RV64-NEXT: vluxei64.v v16, (a0), v16, v0.t
2508 ; RV64-NEXT: bltu a1, a2, .LBB104_4
2509 ; RV64-NEXT: # %bb.3:
2510 ; RV64-NEXT: mv a1, a2
2511 ; RV64-NEXT: .LBB104_4:
2512 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2513 ; RV64-NEXT: vsll.vi v24, v24, 3
2514 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2515 ; RV64-NEXT: vmv1r.v v0, v12
2516 ; RV64-NEXT: vluxei64.v v8, (a0), v24, v0.t
2517 ; RV64-NEXT: ret
2558 ; RV64-LABEL: vpgather_baseidx_zext_nxv16i16_nxv16f64:
2559 ; RV64: # %bb.0:
2560 ; RV64-NEXT: vmv1r.v v12, v0
2561 ; RV64-NEXT: li a3, 0
2562 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2563 ; RV64-NEXT: vzext.vf4 v16, v10
2564 ; RV64-NEXT: csrr a2, vlenb
2565 ; RV64-NEXT: srli a5, a2, 3
2566 ; RV64-NEXT: vsetvli a4, zero, e8, mf4, ta, mu
2567 ; RV64-NEXT: sub a4, a1, a2
2568 ; RV64-NEXT: vslidedown.vx v0, v0, a5
2569 ; RV64-NEXT: bltu a1, a4, .LBB105_2
2570 ; RV64-NEXT: # %bb.1:
2571 ; RV64-NEXT: mv a3, a4
2572 ; RV64-NEXT: .LBB105_2:
2573 ; RV64-NEXT: vsetvli a4, zero, e64, m8, ta, mu
2574 ; RV64-NEXT: vzext.vf4 v24, v8
2575 ; RV64-NEXT: vsll.vi v16, v16, 3
2576 ; RV64-NEXT: vsetvli zero, a3, e64, m8, ta, mu
2577 ; RV64-NEXT: vluxei64.v v16, (a0), v16, v0.t
2578 ; RV64-NEXT: bltu a1, a2, .LBB105_4
2579 ; RV64-NEXT: # %bb.3:
2580 ; RV64-NEXT: mv a1, a2
2581 ; RV64-NEXT: .LBB105_4:
2582 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2583 ; RV64-NEXT: vsll.vi v24, v24, 3
2584 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2585 ; RV64-NEXT: vmv1r.v v0, v12
2586 ; RV64-NEXT: vluxei64.v v8, (a0), v24, v0.t
2587 ; RV64-NEXT: ret