@@ -1101,21 +1101,20 @@ define void @urem_v2i64(ptr %x, ptr %y) {
11011101define void @mulhu_v16i8 (ptr %x ) {
11021102; CHECK-LABEL: mulhu_v16i8:
11031103; CHECK: # %bb.0:
1104- ; CHECK-NEXT: vsetivli zero, 16, e8, m1 , ta, ma
1104+ ; CHECK-NEXT: vsetivli zero, 16, e16, m2 , ta, ma
11051105; CHECK-NEXT: vle8.v v8, (a0)
11061106; CHECK-NEXT: lui a1, 3
11071107; CHECK-NEXT: addi a1, a1, -2044
1108- ; CHECK-NEXT: vsetivli zero, 1, e16, mf4, ta, ma
11091108; 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
11111110; CHECK-NEXT: vmv.v.i v9, 0
11121111; CHECK-NEXT: li a1, -128
11131112; CHECK-NEXT: vmerge.vxm v10, v9, a1, v0
11141113; CHECK-NEXT: lui a1, 1
11151114; 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
11171116; 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
11191118; CHECK-NEXT: lui a2, %hi(.LCPI65_0)
11201119; CHECK-NEXT: addi a2, a2, %lo(.LCPI65_0)
11211120; CHECK-NEXT: vle8.v v11, (a2)
@@ -1126,21 +1125,21 @@ define void @mulhu_v16i8(ptr %x) {
11261125; CHECK-NEXT: vmulhu.vv v8, v8, v10
11271126; CHECK-NEXT: vadd.vv v8, v8, v9
11281127; 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
11301129; 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
11321131; CHECK-NEXT: vmv.v.i v9, 4
11331132; CHECK-NEXT: vmerge.vim v9, v9, 1, v0
11341133; 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
11361135; 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
11381137; CHECK-NEXT: vmerge.vim v9, v9, 3, v0
11391138; CHECK-NEXT: lui a1, 8
11401139; 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
11421141; 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
11441143; CHECK-NEXT: vmerge.vim v9, v9, 2, v0
11451144; CHECK-NEXT: vsrl.vv v8, v8, v9
11461145; CHECK-NEXT: vse8.v v8, (a0)
@@ -1204,9 +1203,9 @@ define void @mulhu_v6i16(ptr %x) {
12041203; CHECK-NEXT: vdivu.vv v9, v10, v9
12051204; CHECK-NEXT: lui a1, 45217
12061205; 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
12081207; 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
12101209; CHECK-NEXT: vsext.vf2 v11, v10
12111210; CHECK-NEXT: vdivu.vv v8, v8, v11
12121211; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
@@ -1309,10 +1308,10 @@ define void @mulhs_v16i8(ptr %x) {
13091308; CHECK-NEXT: vmv.v.x v9, a1
13101309; CHECK-NEXT: lui a1, 5
13111310; 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
13131312; CHECK-NEXT: vmv.s.x v0, a1
13141313; 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
13161315; CHECK-NEXT: vmerge.vxm v9, v9, a1, v0
13171316; CHECK-NEXT: vmulhu.vv v8, v8, v9
13181317; CHECK-NEXT: vmv.v.i v9, 7
@@ -1367,9 +1366,9 @@ define void @mulhs_v6i16(ptr %x) {
13671366; CHECK-NEXT: vdiv.vv v9, v9, v10
13681367; CHECK-NEXT: lui a1, 1020016
13691368; 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
13711370; 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
13731372; CHECK-NEXT: vsext.vf2 v11, v10
13741373; CHECK-NEXT: vdiv.vv v8, v8, v11
13751374; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
@@ -4872,45 +4871,45 @@ define void @mulhu_v32i8(ptr %x) {
48724871; LMULMAX2-NEXT: vsetvli zero, a1, e8, m2, ta, ma
48734872; LMULMAX2-NEXT: vle8.v v8, (a0)
48744873; 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 )
48904889; LMULMAX2-NEXT: vmerge.vim v10, v10, 1, v0
48914890; LMULMAX2-NEXT: vsrl.vv v10, v8, v10
48924891; LMULMAX2-NEXT: vmulhu.vv v10, v10, v14
48934892; LMULMAX2-NEXT: vsub.vv v8, v8, v10
48944893; LMULMAX2-NEXT: vmulhu.vv v8, v8, v12
48954894; LMULMAX2-NEXT: vadd.vv v8, v8, v10
48964895; 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
49024901; 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
49084907; 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
49144913; LMULMAX2-NEXT: vmerge.vim v10, v10, 2, v0
49154914; LMULMAX2-NEXT: vsrl.vv v8, v8, v10
49164915; LMULMAX2-NEXT: vse8.v v8, (a0)
@@ -5250,11 +5249,11 @@ define void @mulhs_v32i8(ptr %x) {
52505249; LMULMAX2-NEXT: vsetvli zero, a1, e8, m2, ta, ma
52515250; LMULMAX2-NEXT: vle8.v v8, (a0)
52525251; 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
52585257; LMULMAX2-NEXT: vmerge.vim v10, v10, 1, v0
52595258; LMULMAX2-NEXT: li a1, -123
52605259; LMULMAX2-NEXT: vmv.v.x v12, a1
@@ -5267,15 +5266,14 @@ define void @mulhs_v32i8(ptr %x) {
52675266;
52685267; LMULMAX1-LABEL: mulhs_v32i8:
52695268; LMULMAX1: # %bb.0:
5270- ; LMULMAX1-NEXT: vsetivli zero, 16, e8, m1 , ta, ma
5269+ ; LMULMAX1-NEXT: vsetivli zero, 16, e16, m2 , ta, ma
52715270; LMULMAX1-NEXT: vle8.v v8, (a0)
52725271; LMULMAX1-NEXT: addi a1, a0, 16
52735272; LMULMAX1-NEXT: vle8.v v9, (a1)
52745273; LMULMAX1-NEXT: lui a2, 5
52755274; LMULMAX1-NEXT: addi a2, a2, -1452
5276- ; LMULMAX1-NEXT: vsetivli zero, 1, e16, mf4, ta, ma
52775275; 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
52795277; LMULMAX1-NEXT: vmv.v.i v10, -9
52805278; LMULMAX1-NEXT: vmerge.vim v10, v10, 9, v0
52815279; LMULMAX1-NEXT: vdivu.vv v9, v9, v10
0 commit comments