Lines Matching refs:RV64
5 ; RUN: -verify-machineinstrs < %s | FileCheck %s --check-prefixes=RV64
16 ; RV64-LABEL: vpscatter_nxv1i8:
17 ; RV64: # %bb.0:
18 ; RV64-NEXT: vsetvli zero, a0, e8, mf8, ta, mu
19 ; RV64-NEXT: vsoxei64.v v8, (zero), v9, v0.t
20 ; RV64-NEXT: ret
34 ; RV64-LABEL: vpscatter_nxv2i8:
35 ; RV64: # %bb.0:
36 ; RV64-NEXT: vsetvli zero, a0, e8, mf4, ta, mu
37 ; RV64-NEXT: vsoxei64.v v8, (zero), v10, v0.t
38 ; RV64-NEXT: ret
52 ; RV64-LABEL: vpscatter_nxv2i16_truncstore_nxv2i8:
53 ; RV64: # %bb.0:
54 ; RV64-NEXT: vsetvli a1, zero, e8, mf4, ta, mu
55 ; RV64-NEXT: vncvt.x.x.w v8, v8
56 ; RV64-NEXT: vsetvli zero, a0, e8, mf4, ta, mu
57 ; RV64-NEXT: vsoxei64.v v8, (zero), v10, v0.t
58 ; RV64-NEXT: ret
75 ; RV64-LABEL: vpscatter_nxv2i32_truncstore_nxv2i8:
76 ; RV64: # %bb.0:
77 ; RV64-NEXT: vsetvli a1, zero, e16, mf2, ta, mu
78 ; RV64-NEXT: vncvt.x.x.w v8, v8
79 ; RV64-NEXT: vsetvli zero, zero, e8, mf4, ta, mu
80 ; RV64-NEXT: vncvt.x.x.w v8, v8
81 ; RV64-NEXT: vsetvli zero, a0, e8, mf4, ta, mu
82 ; RV64-NEXT: vsoxei64.v v8, (zero), v10, v0.t
83 ; RV64-NEXT: ret
102 ; RV64-LABEL: vpscatter_nxv2i64_truncstore_nxv2i8:
103 ; RV64: # %bb.0:
104 ; RV64-NEXT: vsetvli a1, zero, e32, m1, ta, mu
105 ; RV64-NEXT: vncvt.x.x.w v12, v8
106 ; RV64-NEXT: vsetvli zero, zero, e16, mf2, ta, mu
107 ; RV64-NEXT: vncvt.x.x.w v8, v12
108 ; RV64-NEXT: vsetvli zero, zero, e8, mf4, ta, mu
109 ; RV64-NEXT: vncvt.x.x.w v8, v8
110 ; RV64-NEXT: vsetvli zero, a0, e8, mf4, ta, mu
111 ; RV64-NEXT: vsoxei64.v v8, (zero), v10, v0.t
112 ; RV64-NEXT: ret
127 ; RV64-LABEL: vpscatter_nxv4i8:
128 ; RV64: # %bb.0:
129 ; RV64-NEXT: vsetvli zero, a0, e8, mf2, ta, mu
130 ; RV64-NEXT: vsoxei64.v v8, (zero), v12, v0.t
131 ; RV64-NEXT: ret
143 ; RV64-LABEL: vpscatter_truemask_nxv4i8:
144 ; RV64: # %bb.0:
145 ; RV64-NEXT: vsetvli zero, a0, e8, mf2, ta, mu
146 ; RV64-NEXT: vsoxei64.v v8, (zero), v12
147 ; RV64-NEXT: ret
163 ; RV64-LABEL: vpscatter_nxv8i8:
164 ; RV64: # %bb.0:
165 ; RV64-NEXT: vsetvli zero, a0, e8, m1, ta, mu
166 ; RV64-NEXT: vsoxei64.v v8, (zero), v16, v0.t
167 ; RV64-NEXT: ret
181 ; RV64-LABEL: vpscatter_baseidx_nxv8i8:
182 ; RV64: # %bb.0:
183 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
184 ; RV64-NEXT: vsext.vf8 v16, v9
185 ; RV64-NEXT: vsetvli zero, a1, e8, m1, ta, mu
186 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
187 ; RV64-NEXT: ret
202 ; RV64-LABEL: vpscatter_nxv1i16:
203 ; RV64: # %bb.0:
204 ; RV64-NEXT: vsetvli zero, a0, e16, mf4, ta, mu
205 ; RV64-NEXT: vsoxei64.v v8, (zero), v9, v0.t
206 ; RV64-NEXT: ret
220 ; RV64-LABEL: vpscatter_nxv2i16:
221 ; RV64: # %bb.0:
222 ; RV64-NEXT: vsetvli zero, a0, e16, mf2, ta, mu
223 ; RV64-NEXT: vsoxei64.v v8, (zero), v10, v0.t
224 ; RV64-NEXT: ret
238 ; RV64-LABEL: vpscatter_nxv2i32_truncstore_nxv2i16:
239 ; RV64: # %bb.0:
240 ; RV64-NEXT: vsetvli a1, zero, e16, mf2, ta, mu
241 ; RV64-NEXT: vncvt.x.x.w v8, v8
242 ; RV64-NEXT: vsetvli zero, a0, e16, mf2, ta, mu
243 ; RV64-NEXT: vsoxei64.v v8, (zero), v10, v0.t
244 ; RV64-NEXT: ret
261 ; RV64-LABEL: vpscatter_nxv2i64_truncstore_nxv2i16:
262 ; RV64: # %bb.0:
263 ; RV64-NEXT: vsetvli a1, zero, e32, m1, ta, mu
264 ; RV64-NEXT: vncvt.x.x.w v12, v8
265 ; RV64-NEXT: vsetvli zero, zero, e16, mf2, ta, mu
266 ; RV64-NEXT: vncvt.x.x.w v8, v12
267 ; RV64-NEXT: vsetvli zero, a0, e16, mf2, ta, mu
268 ; RV64-NEXT: vsoxei64.v v8, (zero), v10, v0.t
269 ; RV64-NEXT: ret
284 ; RV64-LABEL: vpscatter_nxv4i16:
285 ; RV64: # %bb.0:
286 ; RV64-NEXT: vsetvli zero, a0, e16, m1, ta, mu
287 ; RV64-NEXT: vsoxei64.v v8, (zero), v12, v0.t
288 ; RV64-NEXT: ret
300 ; RV64-LABEL: vpscatter_truemask_nxv4i16:
301 ; RV64: # %bb.0:
302 ; RV64-NEXT: vsetvli zero, a0, e16, m1, ta, mu
303 ; RV64-NEXT: vsoxei64.v v8, (zero), v12
304 ; RV64-NEXT: ret
320 ; RV64-LABEL: vpscatter_nxv8i16:
321 ; RV64: # %bb.0:
322 ; RV64-NEXT: vsetvli zero, a0, e16, m2, ta, mu
323 ; RV64-NEXT: vsoxei64.v v8, (zero), v16, v0.t
324 ; RV64-NEXT: ret
339 ; RV64-LABEL: vpscatter_baseidx_nxv8i8_nxv8i16:
340 ; RV64: # %bb.0:
341 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
342 ; RV64-NEXT: vsext.vf8 v16, v10
343 ; RV64-NEXT: vadd.vv v16, v16, v16
344 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
345 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
346 ; RV64-NEXT: ret
362 ; RV64-LABEL: vpscatter_baseidx_sext_nxv8i8_nxv8i16:
363 ; RV64: # %bb.0:
364 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
365 ; RV64-NEXT: vsext.vf8 v16, v10
366 ; RV64-NEXT: vadd.vv v16, v16, v16
367 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
368 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
369 ; RV64-NEXT: ret
386 ; RV64-LABEL: vpscatter_baseidx_zext_nxv8i8_nxv8i16:
387 ; RV64: # %bb.0:
388 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
389 ; RV64-NEXT: vzext.vf8 v16, v10
390 ; RV64-NEXT: vadd.vv v16, v16, v16
391 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
392 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
393 ; RV64-NEXT: ret
410 ; RV64-LABEL: vpscatter_baseidx_nxv8i16:
411 ; RV64: # %bb.0:
412 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
413 ; RV64-NEXT: vsext.vf4 v16, v10
414 ; RV64-NEXT: vadd.vv v16, v16, v16
415 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
416 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
417 ; RV64-NEXT: ret
432 ; RV64-LABEL: vpscatter_nxv1i32:
433 ; RV64: # %bb.0:
434 ; RV64-NEXT: vsetvli zero, a0, e32, mf2, ta, mu
435 ; RV64-NEXT: vsoxei64.v v8, (zero), v9, v0.t
436 ; RV64-NEXT: ret
450 ; RV64-LABEL: vpscatter_nxv2i32:
451 ; RV64: # %bb.0:
452 ; RV64-NEXT: vsetvli zero, a0, e32, m1, ta, mu
453 ; RV64-NEXT: vsoxei64.v v8, (zero), v10, v0.t
454 ; RV64-NEXT: ret
468 ; RV64-LABEL: vpscatter_nxv2i64_truncstore_nxv2i32:
469 ; RV64: # %bb.0:
470 ; RV64-NEXT: vsetvli a1, zero, e32, m1, ta, mu
471 ; RV64-NEXT: vncvt.x.x.w v12, v8
472 ; RV64-NEXT: vsetvli zero, a0, e32, m1, ta, mu
473 ; RV64-NEXT: vsoxei64.v v12, (zero), v10, v0.t
474 ; RV64-NEXT: ret
489 ; RV64-LABEL: vpscatter_nxv4i32:
490 ; RV64: # %bb.0:
491 ; RV64-NEXT: vsetvli zero, a0, e32, m2, ta, mu
492 ; RV64-NEXT: vsoxei64.v v8, (zero), v12, v0.t
493 ; RV64-NEXT: ret
505 ; RV64-LABEL: vpscatter_truemask_nxv4i32:
506 ; RV64: # %bb.0:
507 ; RV64-NEXT: vsetvli zero, a0, e32, m2, ta, mu
508 ; RV64-NEXT: vsoxei64.v v8, (zero), v12
509 ; RV64-NEXT: ret
525 ; RV64-LABEL: vpscatter_nxv8i32:
526 ; RV64: # %bb.0:
527 ; RV64-NEXT: vsetvli zero, a0, e32, m4, ta, mu
528 ; RV64-NEXT: vsoxei64.v v8, (zero), v16, v0.t
529 ; RV64-NEXT: ret
544 ; RV64-LABEL: vpscatter_baseidx_nxv8i8_nxv8i32:
545 ; RV64: # %bb.0:
546 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
547 ; RV64-NEXT: vsext.vf8 v16, v12
548 ; RV64-NEXT: vsll.vi v16, v16, 2
549 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
550 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
551 ; RV64-NEXT: ret
567 ; RV64-LABEL: vpscatter_baseidx_sext_nxv8i8_nxv8i32:
568 ; RV64: # %bb.0:
569 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
570 ; RV64-NEXT: vsext.vf8 v16, v12
571 ; RV64-NEXT: vsll.vi v16, v16, 2
572 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
573 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
574 ; RV64-NEXT: ret
591 ; RV64-LABEL: vpscatter_baseidx_zext_nxv8i8_nxv8i32:
592 ; RV64: # %bb.0:
593 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
594 ; RV64-NEXT: vzext.vf8 v16, v12
595 ; RV64-NEXT: vsll.vi v16, v16, 2
596 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
597 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
598 ; RV64-NEXT: ret
615 ; RV64-LABEL: vpscatter_baseidx_nxv8i16_nxv8i32:
616 ; RV64: # %bb.0:
617 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
618 ; RV64-NEXT: vsext.vf4 v16, v12
619 ; RV64-NEXT: vsll.vi v16, v16, 2
620 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
621 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
622 ; RV64-NEXT: ret
638 ; RV64-LABEL: vpscatter_baseidx_sext_nxv8i16_nxv8i32:
639 ; RV64: # %bb.0:
640 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
641 ; RV64-NEXT: vsext.vf4 v16, v12
642 ; RV64-NEXT: vsll.vi v16, v16, 2
643 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
644 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
645 ; RV64-NEXT: ret
662 ; RV64-LABEL: vpscatter_baseidx_zext_nxv8i16_nxv8i32:
663 ; RV64: # %bb.0:
664 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
665 ; RV64-NEXT: vzext.vf4 v16, v12
666 ; RV64-NEXT: vsll.vi v16, v16, 2
667 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
668 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
669 ; RV64-NEXT: ret
685 ; RV64-LABEL: vpscatter_baseidx_nxv8i32:
686 ; RV64: # %bb.0:
687 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
688 ; RV64-NEXT: vsext.vf2 v16, v12
689 ; RV64-NEXT: vsll.vi v16, v16, 2
690 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
691 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
692 ; RV64-NEXT: ret
707 ; RV64-LABEL: vpscatter_nxv1i64:
708 ; RV64: # %bb.0:
709 ; RV64-NEXT: vsetvli zero, a0, e64, m1, ta, mu
710 ; RV64-NEXT: vsoxei64.v v8, (zero), v9, v0.t
711 ; RV64-NEXT: ret
725 ; RV64-LABEL: vpscatter_nxv2i64:
726 ; RV64: # %bb.0:
727 ; RV64-NEXT: vsetvli zero, a0, e64, m2, ta, mu
728 ; RV64-NEXT: vsoxei64.v v8, (zero), v10, v0.t
729 ; RV64-NEXT: ret
743 ; RV64-LABEL: vpscatter_nxv4i64:
744 ; RV64: # %bb.0:
745 ; RV64-NEXT: vsetvli zero, a0, e64, m4, ta, mu
746 ; RV64-NEXT: vsoxei64.v v8, (zero), v12, v0.t
747 ; RV64-NEXT: ret
759 ; RV64-LABEL: vpscatter_truemask_nxv4i64:
760 ; RV64: # %bb.0:
761 ; RV64-NEXT: vsetvli zero, a0, e64, m4, ta, mu
762 ; RV64-NEXT: vsoxei64.v v8, (zero), v12
763 ; RV64-NEXT: ret
779 ; RV64-LABEL: vpscatter_nxv8i64:
780 ; RV64: # %bb.0:
781 ; RV64-NEXT: vsetvli zero, a0, e64, m8, ta, mu
782 ; RV64-NEXT: vsoxei64.v v8, (zero), v16, v0.t
783 ; RV64-NEXT: ret
798 ; RV64-LABEL: vpscatter_baseidx_nxv8i8_nxv8i64:
799 ; RV64: # %bb.0:
800 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
801 ; RV64-NEXT: vsext.vf8 v24, v16
802 ; RV64-NEXT: vsll.vi v16, v24, 3
803 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
804 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
805 ; RV64-NEXT: ret
823 ; RV64-LABEL: vpscatter_baseidx_sext_nxv8i8_nxv8i64:
824 ; RV64: # %bb.0:
825 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
826 ; RV64-NEXT: vsext.vf8 v24, v16
827 ; RV64-NEXT: vsll.vi v16, v24, 3
828 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
829 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
830 ; RV64-NEXT: ret
849 ; RV64-LABEL: vpscatter_baseidx_zext_nxv8i8_nxv8i64:
850 ; RV64: # %bb.0:
851 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
852 ; RV64-NEXT: vzext.vf8 v24, v16
853 ; RV64-NEXT: vsll.vi v16, v24, 3
854 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
855 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
856 ; RV64-NEXT: ret
873 ; RV64-LABEL: vpscatter_baseidx_nxv8i16_nxv8i64:
874 ; RV64: # %bb.0:
875 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
876 ; RV64-NEXT: vsext.vf4 v24, v16
877 ; RV64-NEXT: vsll.vi v16, v24, 3
878 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
879 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
880 ; RV64-NEXT: ret
898 ; RV64-LABEL: vpscatter_baseidx_sext_nxv8i16_nxv8i64:
899 ; RV64: # %bb.0:
900 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
901 ; RV64-NEXT: vsext.vf4 v24, v16
902 ; RV64-NEXT: vsll.vi v16, v24, 3
903 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
904 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
905 ; RV64-NEXT: ret
924 ; RV64-LABEL: vpscatter_baseidx_zext_nxv8i16_nxv8i64:
925 ; RV64: # %bb.0:
926 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
927 ; RV64-NEXT: vzext.vf4 v24, v16
928 ; RV64-NEXT: vsll.vi v16, v24, 3
929 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
930 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
931 ; RV64-NEXT: ret
947 ; RV64-LABEL: vpscatter_baseidx_nxv8i32_nxv8i64:
948 ; RV64: # %bb.0:
949 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
950 ; RV64-NEXT: vsext.vf2 v24, v16
951 ; RV64-NEXT: vsll.vi v16, v24, 3
952 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
953 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
954 ; RV64-NEXT: ret
972 ; RV64-LABEL: vpscatter_baseidx_sext_nxv8i32_nxv8i64:
973 ; RV64: # %bb.0:
974 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
975 ; RV64-NEXT: vsext.vf2 v24, v16
976 ; RV64-NEXT: vsll.vi v16, v24, 3
977 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
978 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
979 ; RV64-NEXT: ret
998 ; RV64-LABEL: vpscatter_baseidx_zext_nxv8i32_nxv8i64:
999 ; RV64: # %bb.0:
1000 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1001 ; RV64-NEXT: vzext.vf2 v24, v16
1002 ; RV64-NEXT: vsll.vi v16, v24, 3
1003 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1004 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1005 ; RV64-NEXT: ret
1023 ; RV64-LABEL: vpscatter_baseidx_nxv8i64:
1024 ; RV64: # %bb.0:
1025 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1026 ; RV64-NEXT: vsll.vi v16, v16, 3
1027 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1028 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1029 ; RV64-NEXT: ret
1044 ; RV64-LABEL: vpscatter_nxv1f16:
1045 ; RV64: # %bb.0:
1046 ; RV64-NEXT: vsetvli zero, a0, e16, mf4, ta, mu
1047 ; RV64-NEXT: vsoxei64.v v8, (zero), v9, v0.t
1048 ; RV64-NEXT: ret
1062 ; RV64-LABEL: vpscatter_nxv2f16:
1063 ; RV64: # %bb.0:
1064 ; RV64-NEXT: vsetvli zero, a0, e16, mf2, ta, mu
1065 ; RV64-NEXT: vsoxei64.v v8, (zero), v10, v0.t
1066 ; RV64-NEXT: ret
1080 ; RV64-LABEL: vpscatter_nxv4f16:
1081 ; RV64: # %bb.0:
1082 ; RV64-NEXT: vsetvli zero, a0, e16, m1, ta, mu
1083 ; RV64-NEXT: vsoxei64.v v8, (zero), v12, v0.t
1084 ; RV64-NEXT: ret
1096 ; RV64-LABEL: vpscatter_truemask_nxv4f16:
1097 ; RV64: # %bb.0:
1098 ; RV64-NEXT: vsetvli zero, a0, e16, m1, ta, mu
1099 ; RV64-NEXT: vsoxei64.v v8, (zero), v12
1100 ; RV64-NEXT: ret
1116 ; RV64-LABEL: vpscatter_nxv8f16:
1117 ; RV64: # %bb.0:
1118 ; RV64-NEXT: vsetvli zero, a0, e16, m2, ta, mu
1119 ; RV64-NEXT: vsoxei64.v v8, (zero), v16, v0.t
1120 ; RV64-NEXT: ret
1135 ; RV64-LABEL: vpscatter_baseidx_nxv8i8_nxv8f16:
1136 ; RV64: # %bb.0:
1137 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1138 ; RV64-NEXT: vsext.vf8 v16, v10
1139 ; RV64-NEXT: vadd.vv v16, v16, v16
1140 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
1141 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1142 ; RV64-NEXT: ret
1158 ; RV64-LABEL: vpscatter_baseidx_sext_nxv8i8_nxv8f16:
1159 ; RV64: # %bb.0:
1160 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1161 ; RV64-NEXT: vsext.vf8 v16, v10
1162 ; RV64-NEXT: vadd.vv v16, v16, v16
1163 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
1164 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1165 ; RV64-NEXT: ret
1182 ; RV64-LABEL: vpscatter_baseidx_zext_nxv8i8_nxv8f16:
1183 ; RV64: # %bb.0:
1184 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1185 ; RV64-NEXT: vzext.vf8 v16, v10
1186 ; RV64-NEXT: vadd.vv v16, v16, v16
1187 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
1188 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1189 ; RV64-NEXT: ret
1206 ; RV64-LABEL: vpscatter_baseidx_nxv8f16:
1207 ; RV64: # %bb.0:
1208 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1209 ; RV64-NEXT: vsext.vf4 v16, v10
1210 ; RV64-NEXT: vadd.vv v16, v16, v16
1211 ; RV64-NEXT: vsetvli zero, a1, e16, m2, ta, mu
1212 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1213 ; RV64-NEXT: ret
1228 ; RV64-LABEL: vpscatter_nxv1f32:
1229 ; RV64: # %bb.0:
1230 ; RV64-NEXT: vsetvli zero, a0, e32, mf2, ta, mu
1231 ; RV64-NEXT: vsoxei64.v v8, (zero), v9, v0.t
1232 ; RV64-NEXT: ret
1246 ; RV64-LABEL: vpscatter_nxv2f32:
1247 ; RV64: # %bb.0:
1248 ; RV64-NEXT: vsetvli zero, a0, e32, m1, ta, mu
1249 ; RV64-NEXT: vsoxei64.v v8, (zero), v10, v0.t
1250 ; RV64-NEXT: ret
1264 ; RV64-LABEL: vpscatter_nxv4f32:
1265 ; RV64: # %bb.0:
1266 ; RV64-NEXT: vsetvli zero, a0, e32, m2, ta, mu
1267 ; RV64-NEXT: vsoxei64.v v8, (zero), v12, v0.t
1268 ; RV64-NEXT: ret
1280 ; RV64-LABEL: vpscatter_truemask_nxv4f32:
1281 ; RV64: # %bb.0:
1282 ; RV64-NEXT: vsetvli zero, a0, e32, m2, ta, mu
1283 ; RV64-NEXT: vsoxei64.v v8, (zero), v12
1284 ; RV64-NEXT: ret
1300 ; RV64-LABEL: vpscatter_nxv8f32:
1301 ; RV64: # %bb.0:
1302 ; RV64-NEXT: vsetvli zero, a0, e32, m4, ta, mu
1303 ; RV64-NEXT: vsoxei64.v v8, (zero), v16, v0.t
1304 ; RV64-NEXT: ret
1319 ; RV64-LABEL: vpscatter_baseidx_nxv8i8_nxv8f32:
1320 ; RV64: # %bb.0:
1321 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1322 ; RV64-NEXT: vsext.vf8 v16, v12
1323 ; RV64-NEXT: vsll.vi v16, v16, 2
1324 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1325 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1326 ; RV64-NEXT: ret
1342 ; RV64-LABEL: vpscatter_baseidx_sext_nxv8i8_nxv8f32:
1343 ; RV64: # %bb.0:
1344 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1345 ; RV64-NEXT: vsext.vf8 v16, v12
1346 ; RV64-NEXT: vsll.vi v16, v16, 2
1347 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1348 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1349 ; RV64-NEXT: ret
1366 ; RV64-LABEL: vpscatter_baseidx_zext_nxv8i8_nxv8f32:
1367 ; RV64: # %bb.0:
1368 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1369 ; RV64-NEXT: vzext.vf8 v16, v12
1370 ; RV64-NEXT: vsll.vi v16, v16, 2
1371 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1372 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1373 ; RV64-NEXT: ret
1390 ; RV64-LABEL: vpscatter_baseidx_nxv8i16_nxv8f32:
1391 ; RV64: # %bb.0:
1392 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1393 ; RV64-NEXT: vsext.vf4 v16, v12
1394 ; RV64-NEXT: vsll.vi v16, v16, 2
1395 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1396 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1397 ; RV64-NEXT: ret
1413 ; RV64-LABEL: vpscatter_baseidx_sext_nxv8i16_nxv8f32:
1414 ; RV64: # %bb.0:
1415 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1416 ; RV64-NEXT: vsext.vf4 v16, v12
1417 ; RV64-NEXT: vsll.vi v16, v16, 2
1418 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1419 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1420 ; RV64-NEXT: ret
1437 ; RV64-LABEL: vpscatter_baseidx_zext_nxv8i16_nxv8f32:
1438 ; RV64: # %bb.0:
1439 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1440 ; RV64-NEXT: vzext.vf4 v16, v12
1441 ; RV64-NEXT: vsll.vi v16, v16, 2
1442 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1443 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1444 ; RV64-NEXT: ret
1460 ; RV64-LABEL: vpscatter_baseidx_nxv8f32:
1461 ; RV64: # %bb.0:
1462 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1463 ; RV64-NEXT: vsext.vf2 v16, v12
1464 ; RV64-NEXT: vsll.vi v16, v16, 2
1465 ; RV64-NEXT: vsetvli zero, a1, e32, m4, ta, mu
1466 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1467 ; RV64-NEXT: ret
1482 ; RV64-LABEL: vpscatter_nxv1f64:
1483 ; RV64: # %bb.0:
1484 ; RV64-NEXT: vsetvli zero, a0, e64, m1, ta, mu
1485 ; RV64-NEXT: vsoxei64.v v8, (zero), v9, v0.t
1486 ; RV64-NEXT: ret
1500 ; RV64-LABEL: vpscatter_nxv2f64:
1501 ; RV64: # %bb.0:
1502 ; RV64-NEXT: vsetvli zero, a0, e64, m2, ta, mu
1503 ; RV64-NEXT: vsoxei64.v v8, (zero), v10, v0.t
1504 ; RV64-NEXT: ret
1518 ; RV64-LABEL: vpscatter_nxv4f64:
1519 ; RV64: # %bb.0:
1520 ; RV64-NEXT: vsetvli zero, a0, e64, m4, ta, mu
1521 ; RV64-NEXT: vsoxei64.v v8, (zero), v12, v0.t
1522 ; RV64-NEXT: ret
1534 ; RV64-LABEL: vpscatter_truemask_nxv4f64:
1535 ; RV64: # %bb.0:
1536 ; RV64-NEXT: vsetvli zero, a0, e64, m4, ta, mu
1537 ; RV64-NEXT: vsoxei64.v v8, (zero), v12
1538 ; RV64-NEXT: ret
1554 ; RV64-LABEL: vpscatter_nxv6f64:
1555 ; RV64: # %bb.0:
1556 ; RV64-NEXT: vsetvli zero, a0, e64, m8, ta, mu
1557 ; RV64-NEXT: vsoxei64.v v8, (zero), v16, v0.t
1558 ; RV64-NEXT: ret
1573 ; RV64-LABEL: vpscatter_baseidx_nxv6i8_nxv6f64:
1574 ; RV64: # %bb.0:
1575 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1576 ; RV64-NEXT: vsext.vf8 v24, v16
1577 ; RV64-NEXT: vsll.vi v16, v24, 3
1578 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1579 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1580 ; RV64-NEXT: ret
1598 ; RV64-LABEL: vpscatter_baseidx_sext_nxv6i8_nxv6f64:
1599 ; RV64: # %bb.0:
1600 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1601 ; RV64-NEXT: vsext.vf8 v24, v16
1602 ; RV64-NEXT: vsll.vi v16, v24, 3
1603 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1604 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1605 ; RV64-NEXT: ret
1624 ; RV64-LABEL: vpscatter_baseidx_zext_nxv6i8_nxv6f64:
1625 ; RV64: # %bb.0:
1626 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1627 ; RV64-NEXT: vzext.vf8 v24, v16
1628 ; RV64-NEXT: vsll.vi v16, v24, 3
1629 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1630 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1631 ; RV64-NEXT: ret
1648 ; RV64-LABEL: vpscatter_baseidx_nxv6i16_nxv6f64:
1649 ; RV64: # %bb.0:
1650 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1651 ; RV64-NEXT: vsext.vf4 v24, v16
1652 ; RV64-NEXT: vsll.vi v16, v24, 3
1653 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1654 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1655 ; RV64-NEXT: ret
1673 ; RV64-LABEL: vpscatter_baseidx_sext_nxv6i16_nxv6f64:
1674 ; RV64: # %bb.0:
1675 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1676 ; RV64-NEXT: vsext.vf4 v24, v16
1677 ; RV64-NEXT: vsll.vi v16, v24, 3
1678 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1679 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1680 ; RV64-NEXT: ret
1699 ; RV64-LABEL: vpscatter_baseidx_zext_nxv6i16_nxv6f64:
1700 ; RV64: # %bb.0:
1701 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1702 ; RV64-NEXT: vzext.vf4 v24, v16
1703 ; RV64-NEXT: vsll.vi v16, v24, 3
1704 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1705 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1706 ; RV64-NEXT: ret
1722 ; RV64-LABEL: vpscatter_baseidx_nxv6i32_nxv6f64:
1723 ; RV64: # %bb.0:
1724 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1725 ; RV64-NEXT: vsext.vf2 v24, v16
1726 ; RV64-NEXT: vsll.vi v16, v24, 3
1727 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1728 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1729 ; RV64-NEXT: ret
1747 ; RV64-LABEL: vpscatter_baseidx_sext_nxv6i32_nxv6f64:
1748 ; RV64: # %bb.0:
1749 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1750 ; RV64-NEXT: vsext.vf2 v24, v16
1751 ; RV64-NEXT: vsll.vi v16, v24, 3
1752 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1753 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1754 ; RV64-NEXT: ret
1773 ; RV64-LABEL: vpscatter_baseidx_zext_nxv6i32_nxv6f64:
1774 ; RV64: # %bb.0:
1775 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1776 ; RV64-NEXT: vzext.vf2 v24, v16
1777 ; RV64-NEXT: vsll.vi v16, v24, 3
1778 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1779 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1780 ; RV64-NEXT: ret
1798 ; RV64-LABEL: vpscatter_baseidx_nxv6f64:
1799 ; RV64: # %bb.0:
1800 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1801 ; RV64-NEXT: vsll.vi v16, v16, 3
1802 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1803 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1804 ; RV64-NEXT: ret
1819 ; RV64-LABEL: vpscatter_nxv8f64:
1820 ; RV64: # %bb.0:
1821 ; RV64-NEXT: vsetvli zero, a0, e64, m8, ta, mu
1822 ; RV64-NEXT: vsoxei64.v v8, (zero), v16, v0.t
1823 ; RV64-NEXT: ret
1838 ; RV64-LABEL: vpscatter_baseidx_nxv8i8_nxv8f64:
1839 ; RV64: # %bb.0:
1840 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1841 ; RV64-NEXT: vsext.vf8 v24, v16
1842 ; RV64-NEXT: vsll.vi v16, v24, 3
1843 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1844 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1845 ; RV64-NEXT: ret
1863 ; RV64-LABEL: vpscatter_baseidx_sext_nxv8i8_nxv8f64:
1864 ; RV64: # %bb.0:
1865 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1866 ; RV64-NEXT: vsext.vf8 v24, v16
1867 ; RV64-NEXT: vsll.vi v16, v24, 3
1868 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1869 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1870 ; RV64-NEXT: ret
1889 ; RV64-LABEL: vpscatter_baseidx_zext_nxv8i8_nxv8f64:
1890 ; RV64: # %bb.0:
1891 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1892 ; RV64-NEXT: vzext.vf8 v24, v16
1893 ; RV64-NEXT: vsll.vi v16, v24, 3
1894 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1895 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1896 ; RV64-NEXT: ret
1913 ; RV64-LABEL: vpscatter_baseidx_nxv8i16_nxv8f64:
1914 ; RV64: # %bb.0:
1915 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1916 ; RV64-NEXT: vsext.vf4 v24, v16
1917 ; RV64-NEXT: vsll.vi v16, v24, 3
1918 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1919 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1920 ; RV64-NEXT: ret
1938 ; RV64-LABEL: vpscatter_baseidx_sext_nxv8i16_nxv8f64:
1939 ; RV64: # %bb.0:
1940 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1941 ; RV64-NEXT: vsext.vf4 v24, v16
1942 ; RV64-NEXT: vsll.vi v16, v24, 3
1943 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1944 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1945 ; RV64-NEXT: ret
1964 ; RV64-LABEL: vpscatter_baseidx_zext_nxv8i16_nxv8f64:
1965 ; RV64: # %bb.0:
1966 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1967 ; RV64-NEXT: vzext.vf4 v24, v16
1968 ; RV64-NEXT: vsll.vi v16, v24, 3
1969 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1970 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1971 ; RV64-NEXT: ret
1987 ; RV64-LABEL: vpscatter_baseidx_nxv8i32_nxv8f64:
1988 ; RV64: # %bb.0:
1989 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
1990 ; RV64-NEXT: vsext.vf2 v24, v16
1991 ; RV64-NEXT: vsll.vi v16, v24, 3
1992 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
1993 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
1994 ; RV64-NEXT: ret
2012 ; RV64-LABEL: vpscatter_baseidx_sext_nxv8i32_nxv8f64:
2013 ; RV64: # %bb.0:
2014 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2015 ; RV64-NEXT: vsext.vf2 v24, v16
2016 ; RV64-NEXT: vsll.vi v16, v24, 3
2017 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2018 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
2019 ; RV64-NEXT: ret
2038 ; RV64-LABEL: vpscatter_baseidx_zext_nxv8i32_nxv8f64:
2039 ; RV64: # %bb.0:
2040 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2041 ; RV64-NEXT: vzext.vf2 v24, v16
2042 ; RV64-NEXT: vsll.vi v16, v24, 3
2043 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2044 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
2045 ; RV64-NEXT: ret
2063 ; RV64-LABEL: vpscatter_baseidx_nxv8f64:
2064 ; RV64: # %bb.0:
2065 ; RV64-NEXT: vsetvli a2, zero, e64, m8, ta, mu
2066 ; RV64-NEXT: vsll.vi v16, v16, 3
2067 ; RV64-NEXT: vsetvli zero, a1, e64, m8, ta, mu
2068 ; RV64-NEXT: vsoxei64.v v8, (a0), v16, v0.t
2069 ; RV64-NEXT: ret
2102 ; RV64-LABEL: vpscatter_nxv16f64:
2103 ; RV64: # %bb.0:
2104 ; RV64-NEXT: addi sp, sp, -16
2105 ; RV64-NEXT: .cfi_def_cfa_offset 16
2106 ; RV64-NEXT: csrr a1, vlenb
2107 ; RV64-NEXT: slli a1, a1, 3
2108 ; RV64-NEXT: sub sp, sp, a1
2109 ; RV64-NEXT: addi a1, sp, 16
2110 ; RV64-NEXT: vs8r.v v16, (a1) # Unknown-size Folded Spill
2111 ; RV64-NEXT: vl8re64.v v16, (a0)
2112 ; RV64-NEXT: csrr a1, vlenb
2113 ; RV64-NEXT: slli a3, a1, 3
2114 ; RV64-NEXT: add a0, a0, a3
2115 ; RV64-NEXT: mv a3, a2
2116 ; RV64-NEXT: bltu a2, a1, .LBB95_2
2117 ; RV64-NEXT: # %bb.1:
2118 ; RV64-NEXT: mv a3, a1
2119 ; RV64-NEXT: .LBB95_2:
2120 ; RV64-NEXT: li a4, 0
2121 ; RV64-NEXT: vl8re64.v v24, (a0)
2122 ; RV64-NEXT: vsetvli zero, a3, e64, m8, ta, mu
2123 ; RV64-NEXT: vsoxei64.v v8, (zero), v16, v0.t
2124 ; RV64-NEXT: srli a3, a1, 3
2125 ; RV64-NEXT: vsetvli a0, zero, e8, mf4, ta, mu
2126 ; RV64-NEXT: sub a0, a2, a1
2127 ; RV64-NEXT: vslidedown.vx v0, v0, a3
2128 ; RV64-NEXT: bltu a2, a0, .LBB95_4
2129 ; RV64-NEXT: # %bb.3:
2130 ; RV64-NEXT: mv a4, a0
2131 ; RV64-NEXT: .LBB95_4:
2132 ; RV64-NEXT: vsetvli zero, a4, e64, m8, ta, mu
2133 ; RV64-NEXT: addi a0, sp, 16
2134 ; RV64-NEXT: vl8re8.v v8, (a0) # Unknown-size Folded Reload
2135 ; RV64-NEXT: vsoxei64.v v8, (zero), v24, v0.t
2136 ; RV64-NEXT: csrr a0, vlenb
2137 ; RV64-NEXT: slli a0, a0, 3
2138 ; RV64-NEXT: add sp, sp, a0
2139 ; RV64-NEXT: addi sp, sp, 16
2140 ; RV64-NEXT: ret
2173 ; RV64-LABEL: vpscatter_baseidx_nxv16i16_nxv16f64:
2174 ; RV64: # %bb.0:
2175 ; RV64-NEXT: vl4re16.v v4, (a1)
2176 ; RV64-NEXT: csrr a1, vlenb
2177 ; RV64-NEXT: mv a3, a2
2178 ; RV64-NEXT: bltu a2, a1, .LBB96_2
2179 ; RV64-NEXT: # %bb.1:
2180 ; RV64-NEXT: mv a3, a1
2181 ; RV64-NEXT: .LBB96_2:
2182 ; RV64-NEXT: li a4, 0
2183 ; RV64-NEXT: vsetvli a5, zero, e64, m8, ta, mu
2184 ; RV64-NEXT: vsext.vf4 v24, v4
2185 ; RV64-NEXT: vsll.vi v24, v24, 3
2186 ; RV64-NEXT: vsetvli zero, a3, e64, m8, ta, mu
2187 ; RV64-NEXT: vsoxei64.v v8, (a0), v24, v0.t
2188 ; RV64-NEXT: srli a3, a1, 3
2189 ; RV64-NEXT: vsetvli a5, zero, e8, mf4, ta, mu
2190 ; RV64-NEXT: sub a1, a2, a1
2191 ; RV64-NEXT: vslidedown.vx v0, v0, a3
2192 ; RV64-NEXT: bltu a2, a1, .LBB96_4
2193 ; RV64-NEXT: # %bb.3:
2194 ; RV64-NEXT: mv a4, a1
2195 ; RV64-NEXT: .LBB96_4:
2196 ; RV64-NEXT: vsetvli a1, zero, e64, m8, ta, mu
2197 ; RV64-NEXT: vsext.vf4 v8, v6
2198 ; RV64-NEXT: vsll.vi v8, v8, 3
2199 ; RV64-NEXT: vsetvli zero, a4, e64, m8, ta, mu
2200 ; RV64-NEXT: vsoxei64.v v16, (a0), v8, v0.t
2201 ; RV64-NEXT: ret
2265 ; RV64-LABEL: vpscatter_baseidx_sext_nxv16i16_nxv16f64:
2266 ; RV64: # %bb.0:
2267 ; RV64-NEXT: addi sp, sp, -16
2268 ; RV64-NEXT: .cfi_def_cfa_offset 16
2269 ; RV64-NEXT: csrr a3, vlenb
2270 ; RV64-NEXT: slli a3, a3, 4
2271 ; RV64-NEXT: sub sp, sp, a3
2272 ; RV64-NEXT: vl4re16.v v24, (a1)
2273 ; RV64-NEXT: csrr a1, vlenb
2274 ; RV64-NEXT: slli a1, a1, 3
2275 ; RV64-NEXT: add a1, sp, a1
2276 ; RV64-NEXT: addi a1, a1, 16
2277 ; RV64-NEXT: vs8r.v v16, (a1) # Unknown-size Folded Spill
2278 ; RV64-NEXT: addi a1, sp, 16
2279 ; RV64-NEXT: vs8r.v v8, (a1) # Unknown-size Folded Spill
2280 ; RV64-NEXT: vsetvli a1, zero, e64, m8, ta, mu
2281 ; RV64-NEXT: csrr a1, vlenb
2282 ; RV64-NEXT: vsext.vf4 v8, v24
2283 ; RV64-NEXT: mv a3, a2
2284 ; RV64-NEXT: bltu a2, a1, .LBB97_2
2285 ; RV64-NEXT: # %bb.1:
2286 ; RV64-NEXT: mv a3, a1
2287 ; RV64-NEXT: .LBB97_2:
2288 ; RV64-NEXT: li a4, 0
2289 ; RV64-NEXT: vsext.vf4 v16, v26
2290 ; RV64-NEXT: vsll.vi v8, v8, 3
2291 ; RV64-NEXT: vsetvli zero, a3, e64, m8, ta, mu
2292 ; RV64-NEXT: addi a3, sp, 16
2293 ; RV64-NEXT: vl8re8.v v24, (a3) # Unknown-size Folded Reload
2294 ; RV64-NEXT: vsoxei64.v v24, (a0), v8, v0.t
2295 ; RV64-NEXT: srli a3, a1, 3
2296 ; RV64-NEXT: vsetvli a5, zero, e8, mf4, ta, mu
2297 ; RV64-NEXT: sub a1, a2, a1
2298 ; RV64-NEXT: vslidedown.vx v0, v0, a3
2299 ; RV64-NEXT: bltu a2, a1, .LBB97_4
2300 ; RV64-NEXT: # %bb.3:
2301 ; RV64-NEXT: mv a4, a1
2302 ; RV64-NEXT: .LBB97_4:
2303 ; RV64-NEXT: vsetvli a1, zero, e64, m8, ta, mu
2304 ; RV64-NEXT: vsll.vi v8, v16, 3
2305 ; RV64-NEXT: vsetvli zero, a4, e64, m8, ta, mu
2306 ; RV64-NEXT: csrr a1, vlenb
2307 ; RV64-NEXT: slli a1, a1, 3
2308 ; RV64-NEXT: add a1, sp, a1
2309 ; RV64-NEXT: addi a1, a1, 16
2310 ; RV64-NEXT: vl8re8.v v16, (a1) # Unknown-size Folded Reload
2311 ; RV64-NEXT: vsoxei64.v v16, (a0), v8, v0.t
2312 ; RV64-NEXT: csrr a0, vlenb
2313 ; RV64-NEXT: slli a0, a0, 4
2314 ; RV64-NEXT: add sp, sp, a0
2315 ; RV64-NEXT: addi sp, sp, 16
2316 ; RV64-NEXT: ret
2381 ; RV64-LABEL: vpscatter_baseidx_zext_nxv16i16_nxv16f64:
2382 ; RV64: # %bb.0:
2383 ; RV64-NEXT: addi sp, sp, -16
2384 ; RV64-NEXT: .cfi_def_cfa_offset 16
2385 ; RV64-NEXT: csrr a3, vlenb
2386 ; RV64-NEXT: slli a3, a3, 4
2387 ; RV64-NEXT: sub sp, sp, a3
2388 ; RV64-NEXT: vl4re16.v v24, (a1)
2389 ; RV64-NEXT: csrr a1, vlenb
2390 ; RV64-NEXT: slli a1, a1, 3
2391 ; RV64-NEXT: add a1, sp, a1
2392 ; RV64-NEXT: addi a1, a1, 16
2393 ; RV64-NEXT: vs8r.v v16, (a1) # Unknown-size Folded Spill
2394 ; RV64-NEXT: addi a1, sp, 16
2395 ; RV64-NEXT: vs8r.v v8, (a1) # Unknown-size Folded Spill
2396 ; RV64-NEXT: vsetvli a1, zero, e64, m8, ta, mu
2397 ; RV64-NEXT: csrr a1, vlenb
2398 ; RV64-NEXT: vzext.vf4 v8, v24
2399 ; RV64-NEXT: mv a3, a2
2400 ; RV64-NEXT: bltu a2, a1, .LBB98_2
2401 ; RV64-NEXT: # %bb.1:
2402 ; RV64-NEXT: mv a3, a1
2403 ; RV64-NEXT: .LBB98_2:
2404 ; RV64-NEXT: li a4, 0
2405 ; RV64-NEXT: vzext.vf4 v16, v26
2406 ; RV64-NEXT: vsll.vi v8, v8, 3
2407 ; RV64-NEXT: vsetvli zero, a3, e64, m8, ta, mu
2408 ; RV64-NEXT: addi a3, sp, 16
2409 ; RV64-NEXT: vl8re8.v v24, (a3) # Unknown-size Folded Reload
2410 ; RV64-NEXT: vsoxei64.v v24, (a0), v8, v0.t
2411 ; RV64-NEXT: srli a3, a1, 3
2412 ; RV64-NEXT: vsetvli a5, zero, e8, mf4, ta, mu
2413 ; RV64-NEXT: sub a1, a2, a1
2414 ; RV64-NEXT: vslidedown.vx v0, v0, a3
2415 ; RV64-NEXT: bltu a2, a1, .LBB98_4
2416 ; RV64-NEXT: # %bb.3:
2417 ; RV64-NEXT: mv a4, a1
2418 ; RV64-NEXT: .LBB98_4:
2419 ; RV64-NEXT: vsetvli a1, zero, e64, m8, ta, mu
2420 ; RV64-NEXT: vsll.vi v8, v16, 3
2421 ; RV64-NEXT: vsetvli zero, a4, e64, m8, ta, mu
2422 ; RV64-NEXT: csrr a1, vlenb
2423 ; RV64-NEXT: slli a1, a1, 3
2424 ; RV64-NEXT: add a1, sp, a1
2425 ; RV64-NEXT: addi a1, a1, 16
2426 ; RV64-NEXT: vl8re8.v v16, (a1) # Unknown-size Folded Reload
2427 ; RV64-NEXT: vsoxei64.v v16, (a0), v8, v0.t
2428 ; RV64-NEXT: csrr a0, vlenb
2429 ; RV64-NEXT: slli a0, a0, 4
2430 ; RV64-NEXT: add sp, sp, a0
2431 ; RV64-NEXT: addi sp, sp, 16
2432 ; RV64-NEXT: ret