@@ -48,12 +48,8 @@ define <vscale x 1 x i8> @vrem_vi_nxv1i8_0(<vscale x 1 x i8> %va) {
48
48
define <vscale x 1 x i8 > @vrem_vv_nxv1i8_sext_twice (<vscale x 1 x i8 > %va , <vscale x 1 x i8 > %vb ) {
49
49
; CHECK-LABEL: vrem_vv_nxv1i8_sext_twice:
50
50
; CHECK: # %bb.0:
51
- ; CHECK-NEXT: vsetvli a0, zero, e16, mf4, ta, ma
52
- ; CHECK-NEXT: vsext.vf2 v10, v8
53
- ; CHECK-NEXT: vsext.vf2 v8, v9
54
- ; CHECK-NEXT: vrem.vv v8, v10, v8
55
- ; CHECK-NEXT: vsetvli zero, zero, e8, mf8, ta, ma
56
- ; CHECK-NEXT: vnsrl.wi v8, v8, 0
51
+ ; CHECK-NEXT: vsetvli a0, zero, e8, mf8, ta, ma
52
+ ; CHECK-NEXT: vrem.vv v8, v8, v9
57
53
; CHECK-NEXT: ret
58
54
%sext_va = sext <vscale x 1 x i8 > %va to <vscale x 1 x i16 >
59
55
%sext_vb = sext <vscale x 1 x i8 > %vb to <vscale x 1 x i16 >
@@ -106,12 +102,8 @@ define <vscale x 2 x i8> @vrem_vi_nxv2i8_0(<vscale x 2 x i8> %va) {
106
102
define <vscale x 2 x i8 > @vrem_vv_nxv2i8_sext_twice (<vscale x 2 x i8 > %va , <vscale x 2 x i8 > %vb ) {
107
103
; CHECK-LABEL: vrem_vv_nxv2i8_sext_twice:
108
104
; CHECK: # %bb.0:
109
- ; CHECK-NEXT: vsetvli a0, zero, e16, mf2, ta, ma
110
- ; CHECK-NEXT: vsext.vf2 v10, v8
111
- ; CHECK-NEXT: vsext.vf2 v8, v9
112
- ; CHECK-NEXT: vrem.vv v8, v10, v8
113
- ; CHECK-NEXT: vsetvli zero, zero, e8, mf4, ta, ma
114
- ; CHECK-NEXT: vnsrl.wi v8, v8, 0
105
+ ; CHECK-NEXT: vsetvli a0, zero, e8, mf4, ta, ma
106
+ ; CHECK-NEXT: vrem.vv v8, v8, v9
115
107
; CHECK-NEXT: ret
116
108
%sext_va = sext <vscale x 2 x i8 > %va to <vscale x 2 x i16 >
117
109
%sext_vb = sext <vscale x 2 x i8 > %vb to <vscale x 2 x i16 >
@@ -164,12 +156,8 @@ define <vscale x 4 x i8> @vrem_vi_nxv4i8_0(<vscale x 4 x i8> %va) {
164
156
define <vscale x 4 x i8 > @vrem_vv_nxv4i8_sext_twice (<vscale x 4 x i8 > %va , <vscale x 4 x i8 > %vb ) {
165
157
; CHECK-LABEL: vrem_vv_nxv4i8_sext_twice:
166
158
; CHECK: # %bb.0:
167
- ; CHECK-NEXT: vsetvli a0, zero, e16, m1, ta, ma
168
- ; CHECK-NEXT: vsext.vf2 v10, v8
169
- ; CHECK-NEXT: vsext.vf2 v8, v9
170
- ; CHECK-NEXT: vrem.vv v8, v10, v8
171
- ; CHECK-NEXT: vsetvli zero, zero, e8, mf2, ta, ma
172
- ; CHECK-NEXT: vnsrl.wi v8, v8, 0
159
+ ; CHECK-NEXT: vsetvli a0, zero, e8, mf2, ta, ma
160
+ ; CHECK-NEXT: vrem.vv v8, v8, v9
173
161
; CHECK-NEXT: ret
174
162
%sext_va = sext <vscale x 4 x i8 > %va to <vscale x 4 x i16 >
175
163
%sext_vb = sext <vscale x 4 x i8 > %vb to <vscale x 4 x i16 >
@@ -222,12 +210,8 @@ define <vscale x 8 x i8> @vrem_vi_nxv8i8_0(<vscale x 8 x i8> %va) {
222
210
define <vscale x 8 x i8 > @vrem_vv_nxv8i8_sext_twice (<vscale x 8 x i8 > %va , <vscale x 8 x i8 > %vb ) {
223
211
; CHECK-LABEL: vrem_vv_nxv8i8_sext_twice:
224
212
; CHECK: # %bb.0:
225
- ; CHECK-NEXT: vsetvli a0, zero, e16, m2, ta, ma
226
- ; CHECK-NEXT: vsext.vf2 v10, v8
227
- ; CHECK-NEXT: vsext.vf2 v12, v9
228
- ; CHECK-NEXT: vrem.vv v10, v10, v12
229
- ; CHECK-NEXT: vsetvli zero, zero, e8, m1, ta, ma
230
- ; CHECK-NEXT: vnsrl.wi v8, v10, 0
213
+ ; CHECK-NEXT: vsetvli a0, zero, e8, m1, ta, ma
214
+ ; CHECK-NEXT: vrem.vv v8, v8, v9
231
215
; CHECK-NEXT: ret
232
216
%sext_va = sext <vscale x 8 x i8 > %va to <vscale x 8 x i16 >
233
217
%sext_vb = sext <vscale x 8 x i8 > %vb to <vscale x 8 x i16 >
@@ -280,12 +264,8 @@ define <vscale x 16 x i8> @vrem_vi_nxv16i8_0(<vscale x 16 x i8> %va) {
280
264
define <vscale x 16 x i8 > @vrem_vv_nxv16i8_sext_twice (<vscale x 16 x i8 > %va , <vscale x 16 x i8 > %vb ) {
281
265
; CHECK-LABEL: vrem_vv_nxv16i8_sext_twice:
282
266
; CHECK: # %bb.0:
283
- ; CHECK-NEXT: vsetvli a0, zero, e16, m4, ta, ma
284
- ; CHECK-NEXT: vsext.vf2 v12, v8
285
- ; CHECK-NEXT: vsext.vf2 v16, v10
286
- ; CHECK-NEXT: vrem.vv v12, v12, v16
287
- ; CHECK-NEXT: vsetvli zero, zero, e8, m2, ta, ma
288
- ; CHECK-NEXT: vnsrl.wi v8, v12, 0
267
+ ; CHECK-NEXT: vsetvli a0, zero, e8, m2, ta, ma
268
+ ; CHECK-NEXT: vrem.vv v8, v8, v10
289
269
; CHECK-NEXT: ret
290
270
%sext_va = sext <vscale x 16 x i8 > %va to <vscale x 16 x i16 >
291
271
%sext_vb = sext <vscale x 16 x i8 > %vb to <vscale x 16 x i16 >
@@ -338,12 +318,8 @@ define <vscale x 32 x i8> @vrem_vi_nxv32i8_0(<vscale x 32 x i8> %va) {
338
318
define <vscale x 32 x i8 > @vrem_vv_nxv32i8_sext_twice (<vscale x 32 x i8 > %va , <vscale x 32 x i8 > %vb ) {
339
319
; CHECK-LABEL: vrem_vv_nxv32i8_sext_twice:
340
320
; CHECK: # %bb.0:
341
- ; CHECK-NEXT: vsetvli a0, zero, e16, m8, ta, ma
342
- ; CHECK-NEXT: vsext.vf2 v16, v8
343
- ; CHECK-NEXT: vsext.vf2 v24, v12
344
- ; CHECK-NEXT: vrem.vv v16, v16, v24
345
- ; CHECK-NEXT: vsetvli zero, zero, e8, m4, ta, ma
346
- ; CHECK-NEXT: vnsrl.wi v8, v16, 0
321
+ ; CHECK-NEXT: vsetvli a0, zero, e8, m4, ta, ma
322
+ ; CHECK-NEXT: vrem.vv v8, v8, v12
347
323
; CHECK-NEXT: ret
348
324
%sext_va = sext <vscale x 32 x i8 > %va to <vscale x 32 x i16 >
349
325
%sext_vb = sext <vscale x 32 x i8 > %vb to <vscale x 32 x i16 >
@@ -450,12 +426,8 @@ define <vscale x 1 x i16> @vrem_vi_nxv1i16_0(<vscale x 1 x i16> %va) {
450
426
define <vscale x 1 x i16 > @vrem_vv_nxv1i16_sext_twice (<vscale x 1 x i16 > %va , <vscale x 1 x i16 > %vb ) {
451
427
; CHECK-LABEL: vrem_vv_nxv1i16_sext_twice:
452
428
; CHECK: # %bb.0:
453
- ; CHECK-NEXT: vsetvli a0, zero, e32, mf2, ta, ma
454
- ; CHECK-NEXT: vsext.vf2 v10, v8
455
- ; CHECK-NEXT: vsext.vf2 v8, v9
456
- ; CHECK-NEXT: vrem.vv v8, v10, v8
457
- ; CHECK-NEXT: vsetvli zero, zero, e16, mf4, ta, ma
458
- ; CHECK-NEXT: vnsrl.wi v8, v8, 0
429
+ ; CHECK-NEXT: vsetvli a0, zero, e16, mf4, ta, ma
430
+ ; CHECK-NEXT: vrem.vv v8, v8, v9
459
431
; CHECK-NEXT: ret
460
432
%sext_va = sext <vscale x 1 x i16 > %va to <vscale x 1 x i32 >
461
433
%sext_vb = sext <vscale x 1 x i16 > %vb to <vscale x 1 x i32 >
@@ -521,12 +493,8 @@ define <vscale x 2 x i16> @vrem_vi_nxv2i16_0(<vscale x 2 x i16> %va) {
521
493
define <vscale x 2 x i16 > @vrem_vv_nxv2i16_sext_twice (<vscale x 2 x i16 > %va , <vscale x 2 x i16 > %vb ) {
522
494
; CHECK-LABEL: vrem_vv_nxv2i16_sext_twice:
523
495
; CHECK: # %bb.0:
524
- ; CHECK-NEXT: vsetvli a0, zero, e32, m1, ta, ma
525
- ; CHECK-NEXT: vsext.vf2 v10, v8
526
- ; CHECK-NEXT: vsext.vf2 v8, v9
527
- ; CHECK-NEXT: vrem.vv v8, v10, v8
528
- ; CHECK-NEXT: vsetvli zero, zero, e16, mf2, ta, ma
529
- ; CHECK-NEXT: vnsrl.wi v8, v8, 0
496
+ ; CHECK-NEXT: vsetvli a0, zero, e16, mf2, ta, ma
497
+ ; CHECK-NEXT: vrem.vv v8, v8, v9
530
498
; CHECK-NEXT: ret
531
499
%sext_va = sext <vscale x 2 x i16 > %va to <vscale x 2 x i32 >
532
500
%sext_vb = sext <vscale x 2 x i16 > %vb to <vscale x 2 x i32 >
@@ -592,12 +560,8 @@ define <vscale x 4 x i16> @vrem_vi_nxv4i16_0(<vscale x 4 x i16> %va) {
592
560
define <vscale x 4 x i16 > @vrem_vv_nxv4i16_sext_twice (<vscale x 4 x i16 > %va , <vscale x 4 x i16 > %vb ) {
593
561
; CHECK-LABEL: vrem_vv_nxv4i16_sext_twice:
594
562
; CHECK: # %bb.0:
595
- ; CHECK-NEXT: vsetvli a0, zero, e32, m2, ta, ma
596
- ; CHECK-NEXT: vsext.vf2 v10, v8
597
- ; CHECK-NEXT: vsext.vf2 v12, v9
598
- ; CHECK-NEXT: vrem.vv v10, v10, v12
599
- ; CHECK-NEXT: vsetvli zero, zero, e16, m1, ta, ma
600
- ; CHECK-NEXT: vnsrl.wi v8, v10, 0
563
+ ; CHECK-NEXT: vsetvli a0, zero, e16, m1, ta, ma
564
+ ; CHECK-NEXT: vrem.vv v8, v8, v9
601
565
; CHECK-NEXT: ret
602
566
%sext_va = sext <vscale x 4 x i16 > %va to <vscale x 4 x i32 >
603
567
%sext_vb = sext <vscale x 4 x i16 > %vb to <vscale x 4 x i32 >
@@ -663,12 +627,8 @@ define <vscale x 8 x i16> @vrem_vi_nxv8i16_0(<vscale x 8 x i16> %va) {
663
627
define <vscale x 8 x i16 > @vrem_vv_nxv8i16_sext_twice (<vscale x 8 x i16 > %va , <vscale x 8 x i16 > %vb ) {
664
628
; CHECK-LABEL: vrem_vv_nxv8i16_sext_twice:
665
629
; CHECK: # %bb.0:
666
- ; CHECK-NEXT: vsetvli a0, zero, e32, m4, ta, ma
667
- ; CHECK-NEXT: vsext.vf2 v12, v8
668
- ; CHECK-NEXT: vsext.vf2 v16, v10
669
- ; CHECK-NEXT: vrem.vv v12, v12, v16
670
- ; CHECK-NEXT: vsetvli zero, zero, e16, m2, ta, ma
671
- ; CHECK-NEXT: vnsrl.wi v8, v12, 0
630
+ ; CHECK-NEXT: vsetvli a0, zero, e16, m2, ta, ma
631
+ ; CHECK-NEXT: vrem.vv v8, v8, v10
672
632
; CHECK-NEXT: ret
673
633
%sext_va = sext <vscale x 8 x i16 > %va to <vscale x 8 x i32 >
674
634
%sext_vb = sext <vscale x 8 x i16 > %vb to <vscale x 8 x i32 >
@@ -734,12 +694,8 @@ define <vscale x 16 x i16> @vrem_vi_nxv16i16_0(<vscale x 16 x i16> %va) {
734
694
define <vscale x 16 x i16 > @vrem_vv_nxv16i16_sext_twice (<vscale x 16 x i16 > %va , <vscale x 16 x i16 > %vb ) {
735
695
; CHECK-LABEL: vrem_vv_nxv16i16_sext_twice:
736
696
; CHECK: # %bb.0:
737
- ; CHECK-NEXT: vsetvli a0, zero, e32, m8, ta, ma
738
- ; CHECK-NEXT: vsext.vf2 v16, v8
739
- ; CHECK-NEXT: vsext.vf2 v24, v12
740
- ; CHECK-NEXT: vrem.vv v16, v16, v24
741
- ; CHECK-NEXT: vsetvli zero, zero, e16, m4, ta, ma
742
- ; CHECK-NEXT: vnsrl.wi v8, v16, 0
697
+ ; CHECK-NEXT: vsetvli a0, zero, e16, m4, ta, ma
698
+ ; CHECK-NEXT: vrem.vv v8, v8, v12
743
699
; CHECK-NEXT: ret
744
700
%sext_va = sext <vscale x 16 x i16 > %va to <vscale x 16 x i32 >
745
701
%sext_vb = sext <vscale x 16 x i16 > %vb to <vscale x 16 x i32 >
0 commit comments