@@ -1101,21 +1101,20 @@ define void @urem_v2i64(ptr %x, ptr %y) {
1101
1101
define void @mulhu_v16i8 (ptr %x ) {
1102
1102
; CHECK-LABEL: mulhu_v16i8:
1103
1103
; CHECK: # %bb.0:
1104
- ; CHECK-NEXT: vsetivli zero, 16, e8, m1 , ta, ma
1104
+ ; CHECK-NEXT: vsetivli zero, 16, e16, m2 , ta, ma
1105
1105
; CHECK-NEXT: vle8.v v8, (a0)
1106
1106
; CHECK-NEXT: lui a1, 3
1107
1107
; CHECK-NEXT: addi a1, a1, -2044
1108
- ; CHECK-NEXT: vsetivli zero, 1, e16, mf4, ta, ma
1109
1108
; CHECK-NEXT: vmv.s.x v0, a1
1110
- ; CHECK-NEXT: vsetivli zero, 16 , e8, m1, ta, ma
1109
+ ; CHECK-NEXT: vsetvli zero, zero , e8, m1, ta, ma
1111
1110
; CHECK-NEXT: vmv.v.i v9, 0
1112
1111
; CHECK-NEXT: li a1, -128
1113
1112
; CHECK-NEXT: vmerge.vxm v10, v9, a1, v0
1114
1113
; CHECK-NEXT: lui a1, 1
1115
1114
; CHECK-NEXT: addi a2, a1, 32
1116
- ; CHECK-NEXT: vsetivli zero, 1 , e16, mf4 , ta, ma
1115
+ ; CHECK-NEXT: vsetvli zero, zero , e16, m2 , ta, ma
1117
1116
; CHECK-NEXT: vmv.s.x v0, a2
1118
- ; CHECK-NEXT: vsetivli zero, 16 , e8, m1, ta, ma
1117
+ ; CHECK-NEXT: vsetvli zero, zero , e8, m1, ta, ma
1119
1118
; CHECK-NEXT: lui a2, %hi(.LCPI65_0)
1120
1119
; CHECK-NEXT: addi a2, a2, %lo(.LCPI65_0)
1121
1120
; CHECK-NEXT: vle8.v v11, (a2)
@@ -1126,21 +1125,21 @@ define void @mulhu_v16i8(ptr %x) {
1126
1125
; CHECK-NEXT: vmulhu.vv v8, v8, v10
1127
1126
; CHECK-NEXT: vadd.vv v8, v8, v9
1128
1127
; CHECK-NEXT: li a2, 513
1129
- ; CHECK-NEXT: vsetivli zero, 1 , e16, mf4 , ta, ma
1128
+ ; CHECK-NEXT: vsetvli zero, zero , e16, m2 , ta, ma
1130
1129
; CHECK-NEXT: vmv.s.x v0, a2
1131
- ; CHECK-NEXT: vsetivli zero, 16 , e8, m1, ta, ma
1130
+ ; CHECK-NEXT: vsetvli zero, zero , e8, m1, ta, ma
1132
1131
; CHECK-NEXT: vmv.v.i v9, 4
1133
1132
; CHECK-NEXT: vmerge.vim v9, v9, 1, v0
1134
1133
; CHECK-NEXT: addi a1, a1, 78
1135
- ; CHECK-NEXT: vsetivli zero, 1 , e16, mf4 , ta, ma
1134
+ ; CHECK-NEXT: vsetvli zero, zero , e16, m2 , ta, ma
1136
1135
; CHECK-NEXT: vmv.s.x v0, a1
1137
- ; CHECK-NEXT: vsetivli zero, 16 , e8, m1, ta, ma
1136
+ ; CHECK-NEXT: vsetvli zero, zero , e8, m1, ta, ma
1138
1137
; CHECK-NEXT: vmerge.vim v9, v9, 3, v0
1139
1138
; CHECK-NEXT: lui a1, 8
1140
1139
; CHECK-NEXT: addi a1, a1, 304
1141
- ; CHECK-NEXT: vsetivli zero, 1 , e16, mf4 , ta, ma
1140
+ ; CHECK-NEXT: vsetvli zero, zero , e16, m2 , ta, ma
1142
1141
; CHECK-NEXT: vmv.s.x v0, a1
1143
- ; CHECK-NEXT: vsetivli zero, 16 , e8, m1, ta, ma
1142
+ ; CHECK-NEXT: vsetvli zero, zero , e8, m1, ta, ma
1144
1143
; CHECK-NEXT: vmerge.vim v9, v9, 2, v0
1145
1144
; CHECK-NEXT: vsrl.vv v8, v8, v9
1146
1145
; CHECK-NEXT: vse8.v v8, (a0)
@@ -1204,9 +1203,9 @@ define void @mulhu_v6i16(ptr %x) {
1204
1203
; CHECK-NEXT: vdivu.vv v9, v10, v9
1205
1204
; CHECK-NEXT: lui a1, 45217
1206
1205
; CHECK-NEXT: addi a1, a1, -1785
1207
- ; CHECK-NEXT: vsetivli zero, 4 , e32, m1 , ta, ma
1206
+ ; CHECK-NEXT: vsetvli zero, zero , e32, mf2 , ta, ma
1208
1207
; CHECK-NEXT: vmv.s.x v10, a1
1209
- ; CHECK-NEXT: vsetvli zero, zero , e16, mf2, ta, ma
1208
+ ; CHECK-NEXT: vsetivli zero, 4 , e16, mf2, ta, ma
1210
1209
; CHECK-NEXT: vsext.vf2 v11, v10
1211
1210
; CHECK-NEXT: vdivu.vv v8, v8, v11
1212
1211
; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
@@ -1309,10 +1308,10 @@ define void @mulhs_v16i8(ptr %x) {
1309
1308
; CHECK-NEXT: vmv.v.x v9, a1
1310
1309
; CHECK-NEXT: lui a1, 5
1311
1310
; CHECK-NEXT: addi a1, a1, -1452
1312
- ; CHECK-NEXT: vsetivli zero, 1 , e16, mf4 , ta, ma
1311
+ ; CHECK-NEXT: vsetvli zero, zero , e16, m2 , ta, ma
1313
1312
; CHECK-NEXT: vmv.s.x v0, a1
1314
1313
; CHECK-NEXT: li a1, 57
1315
- ; CHECK-NEXT: vsetivli zero, 16 , e8, m1, ta, ma
1314
+ ; CHECK-NEXT: vsetvli zero, zero , e8, m1, ta, ma
1316
1315
; CHECK-NEXT: vmerge.vxm v9, v9, a1, v0
1317
1316
; CHECK-NEXT: vmulhu.vv v8, v8, v9
1318
1317
; CHECK-NEXT: vmv.v.i v9, 7
@@ -1367,9 +1366,9 @@ define void @mulhs_v6i16(ptr %x) {
1367
1366
; CHECK-NEXT: vdiv.vv v9, v9, v10
1368
1367
; CHECK-NEXT: lui a1, 1020016
1369
1368
; CHECK-NEXT: addi a1, a1, 2041
1370
- ; CHECK-NEXT: vsetivli zero, 4 , e32, m1 , ta, ma
1369
+ ; CHECK-NEXT: vsetvli zero, zero , e32, mf2 , ta, ma
1371
1370
; CHECK-NEXT: vmv.s.x v10, a1
1372
- ; CHECK-NEXT: vsetvli zero, zero , e16, mf2, ta, ma
1371
+ ; CHECK-NEXT: vsetivli zero, 4 , e16, mf2, ta, ma
1373
1372
; CHECK-NEXT: vsext.vf2 v11, v10
1374
1373
; CHECK-NEXT: vdiv.vv v8, v8, v11
1375
1374
; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
@@ -4872,45 +4871,45 @@ define void @mulhu_v32i8(ptr %x) {
4872
4871
; LMULMAX2-NEXT: vsetvli zero, a1, e8, m2, ta, ma
4873
4872
; LMULMAX2-NEXT: vle8.v v8, (a0)
4874
4873
; LMULMAX2-NEXT: vmv.v.i v10, 0
4875
- ; LMULMAX2-NEXT: lui a2 , 163907
4876
- ; LMULMAX2-NEXT: addi a2, a2 , -2044
4877
- ; LMULMAX2-NEXT: vsetivli zero, 1 , e32, mf2 , ta, ma
4878
- ; LMULMAX2-NEXT: vmv.s.x v0, a2
4879
- ; LMULMAX2-NEXT: li a2 , -128
4880
- ; LMULMAX2-NEXT: vsetvli zero, a1 , e8, m2, ta, ma
4881
- ; LMULMAX2-NEXT: vmerge.vxm v12, v10, a2 , v0
4882
- ; LMULMAX2-NEXT: lui a2 , 66049
4883
- ; LMULMAX2-NEXT: addi a2, a2 , 32
4884
- ; LMULMAX2-NEXT: vsetivli zero, 1 , e32, mf2 , ta, ma
4885
- ; LMULMAX2-NEXT: vmv.s.x v0, a2
4886
- ; LMULMAX2-NEXT: vsetvli zero, a1 , e8, m2, ta, ma
4887
- ; LMULMAX2-NEXT: lui a2 , %hi(.LCPI181_0)
4888
- ; LMULMAX2-NEXT: addi a2, a2 , %lo(.LCPI181_0)
4889
- ; LMULMAX2-NEXT: vle8.v v14, (a2 )
4874
+ ; LMULMAX2-NEXT: lui a1 , 163907
4875
+ ; LMULMAX2-NEXT: addi a1, a1 , -2044
4876
+ ; LMULMAX2-NEXT: vsetvli zero, zero , e32, m8 , ta, ma
4877
+ ; LMULMAX2-NEXT: vmv.s.x v0, a1
4878
+ ; LMULMAX2-NEXT: li a1 , -128
4879
+ ; LMULMAX2-NEXT: vsetvli zero, zero , e8, m2, ta, ma
4880
+ ; LMULMAX2-NEXT: vmerge.vxm v12, v10, a1 , v0
4881
+ ; LMULMAX2-NEXT: lui a1 , 66049
4882
+ ; LMULMAX2-NEXT: addi a1, a1 , 32
4883
+ ; LMULMAX2-NEXT: vsetvli zero, zero , e32, m8 , ta, ma
4884
+ ; LMULMAX2-NEXT: vmv.s.x v0, a1
4885
+ ; LMULMAX2-NEXT: vsetvli zero, zero , e8, m2, ta, ma
4886
+ ; LMULMAX2-NEXT: lui a1 , %hi(.LCPI181_0)
4887
+ ; LMULMAX2-NEXT: addi a1, a1 , %lo(.LCPI181_0)
4888
+ ; LMULMAX2-NEXT: vle8.v v14, (a1 )
4890
4889
; LMULMAX2-NEXT: vmerge.vim v10, v10, 1, v0
4891
4890
; LMULMAX2-NEXT: vsrl.vv v10, v8, v10
4892
4891
; LMULMAX2-NEXT: vmulhu.vv v10, v10, v14
4893
4892
; LMULMAX2-NEXT: vsub.vv v8, v8, v10
4894
4893
; LMULMAX2-NEXT: vmulhu.vv v8, v8, v12
4895
4894
; LMULMAX2-NEXT: vadd.vv v8, v8, v10
4896
4895
; LMULMAX2-NEXT: vmv.v.i v10, 4
4897
- ; LMULMAX2-NEXT: lui a2 , 8208
4898
- ; LMULMAX2-NEXT: addi a2, a2 , 513
4899
- ; LMULMAX2-NEXT: vsetivli zero, 1 , e32, mf2 , ta, ma
4900
- ; LMULMAX2-NEXT: vmv.s.x v0, a2
4901
- ; LMULMAX2-NEXT: vsetvli zero, a1 , e8, m2, ta, ma
4896
+ ; LMULMAX2-NEXT: lui a1 , 8208
4897
+ ; LMULMAX2-NEXT: addi a1, a1 , 513
4898
+ ; LMULMAX2-NEXT: vsetvli zero, zero , e32, m8 , ta, ma
4899
+ ; LMULMAX2-NEXT: vmv.s.x v0, a1
4900
+ ; LMULMAX2-NEXT: vsetvli zero, zero , e8, m2, ta, ma
4902
4901
; LMULMAX2-NEXT: vmerge.vim v10, v10, 1, v0
4903
- ; LMULMAX2-NEXT: lui a2 , 66785
4904
- ; LMULMAX2-NEXT: addi a2, a2 , 78
4905
- ; LMULMAX2-NEXT: vsetivli zero, 1 , e32, mf2 , ta, ma
4906
- ; LMULMAX2-NEXT: vmv.s.x v0, a2
4907
- ; LMULMAX2-NEXT: vsetvli zero, a1 , e8, m2, ta, ma
4902
+ ; LMULMAX2-NEXT: lui a1 , 66785
4903
+ ; LMULMAX2-NEXT: addi a1, a1 , 78
4904
+ ; LMULMAX2-NEXT: vsetvli zero, zero , e32, m8 , ta, ma
4905
+ ; LMULMAX2-NEXT: vmv.s.x v0, a1
4906
+ ; LMULMAX2-NEXT: vsetvli zero, zero , e8, m2, ta, ma
4908
4907
; LMULMAX2-NEXT: vmerge.vim v10, v10, 3, v0
4909
- ; LMULMAX2-NEXT: lui a2 , 529160
4910
- ; LMULMAX2-NEXT: addi a2, a2 , 304
4911
- ; LMULMAX2-NEXT: vsetivli zero, 1 , e32, mf2 , ta, ma
4912
- ; LMULMAX2-NEXT: vmv.s.x v0, a2
4913
- ; LMULMAX2-NEXT: vsetvli zero, a1 , e8, m2, ta, ma
4908
+ ; LMULMAX2-NEXT: lui a1 , 529160
4909
+ ; LMULMAX2-NEXT: addi a1, a1 , 304
4910
+ ; LMULMAX2-NEXT: vsetvli zero, zero , e32, m8 , ta, ma
4911
+ ; LMULMAX2-NEXT: vmv.s.x v0, a1
4912
+ ; LMULMAX2-NEXT: vsetvli zero, zero , e8, m2, ta, ma
4914
4913
; LMULMAX2-NEXT: vmerge.vim v10, v10, 2, v0
4915
4914
; LMULMAX2-NEXT: vsrl.vv v8, v8, v10
4916
4915
; LMULMAX2-NEXT: vse8.v v8, (a0)
@@ -5250,11 +5249,11 @@ define void @mulhs_v32i8(ptr %x) {
5250
5249
; LMULMAX2-NEXT: vsetvli zero, a1, e8, m2, ta, ma
5251
5250
; LMULMAX2-NEXT: vle8.v v8, (a0)
5252
5251
; LMULMAX2-NEXT: vmv.v.i v10, 7
5253
- ; LMULMAX2-NEXT: lui a2 , 304453
5254
- ; LMULMAX2-NEXT: addi a2, a2 , -1452
5255
- ; LMULMAX2-NEXT: vsetivli zero, 1 , e32, mf2 , ta, ma
5256
- ; LMULMAX2-NEXT: vmv.s.x v0, a2
5257
- ; LMULMAX2-NEXT: vsetvli zero, a1 , e8, m2, ta, ma
5252
+ ; LMULMAX2-NEXT: lui a1 , 304453
5253
+ ; LMULMAX2-NEXT: addi a1, a1 , -1452
5254
+ ; LMULMAX2-NEXT: vsetvli zero, zero , e32, m8 , ta, ma
5255
+ ; LMULMAX2-NEXT: vmv.s.x v0, a1
5256
+ ; LMULMAX2-NEXT: vsetvli zero, zero , e8, m2, ta, ma
5258
5257
; LMULMAX2-NEXT: vmerge.vim v10, v10, 1, v0
5259
5258
; LMULMAX2-NEXT: li a1, -123
5260
5259
; LMULMAX2-NEXT: vmv.v.x v12, a1
@@ -5267,15 +5266,14 @@ define void @mulhs_v32i8(ptr %x) {
5267
5266
;
5268
5267
; LMULMAX1-LABEL: mulhs_v32i8:
5269
5268
; LMULMAX1: # %bb.0:
5270
- ; LMULMAX1-NEXT: vsetivli zero, 16, e8, m1 , ta, ma
5269
+ ; LMULMAX1-NEXT: vsetivli zero, 16, e16, m2 , ta, ma
5271
5270
; LMULMAX1-NEXT: vle8.v v8, (a0)
5272
5271
; LMULMAX1-NEXT: addi a1, a0, 16
5273
5272
; LMULMAX1-NEXT: vle8.v v9, (a1)
5274
5273
; LMULMAX1-NEXT: lui a2, 5
5275
5274
; LMULMAX1-NEXT: addi a2, a2, -1452
5276
- ; LMULMAX1-NEXT: vsetivli zero, 1, e16, mf4, ta, ma
5277
5275
; LMULMAX1-NEXT: vmv.s.x v0, a2
5278
- ; LMULMAX1-NEXT: vsetivli zero, 16 , e8, m1, ta, ma
5276
+ ; LMULMAX1-NEXT: vsetvli zero, zero , e8, m1, ta, ma
5279
5277
; LMULMAX1-NEXT: vmv.v.i v10, -9
5280
5278
; LMULMAX1-NEXT: vmerge.vim v10, v10, 9, v0
5281
5279
; LMULMAX1-NEXT: vdivu.vv v9, v9, v10
0 commit comments