@@ -776,18 +776,9 @@ define void @sdiv_v6i16(ptr %x, ptr %y) {
776776; CHECK-LABEL: sdiv_v6i16:
777777; CHECK: # %bb.0:
778778; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
779- ; CHECK-NEXT: vle16.v v8, (a1)
780- ; CHECK-NEXT: vle16.v v9, (a0)
781- ; CHECK-NEXT: vsetivli zero, 2, e16, m1, ta, ma
782- ; CHECK-NEXT: vslidedown.vi v10, v8, 4
783- ; CHECK-NEXT: vslidedown.vi v11, v9, 4
784- ; CHECK-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
785- ; CHECK-NEXT: vdiv.vv v10, v11, v10
786- ; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
787- ; CHECK-NEXT: vdiv.vv v8, v9, v8
788- ; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
789- ; CHECK-NEXT: vslideup.vi v8, v10, 4
790- ; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
779+ ; CHECK-NEXT: vle16.v v8, (a0)
780+ ; CHECK-NEXT: vle16.v v9, (a1)
781+ ; CHECK-NEXT: vdiv.vv v8, v8, v9
791782; CHECK-NEXT: vse16.v v8, (a0)
792783; CHECK-NEXT: ret
793784 %a = load <6 x i16 >, ptr %x
@@ -865,18 +856,9 @@ define void @srem_v6i16(ptr %x, ptr %y) {
865856; CHECK-LABEL: srem_v6i16:
866857; CHECK: # %bb.0:
867858; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
868- ; CHECK-NEXT: vle16.v v8, (a1)
869- ; CHECK-NEXT: vle16.v v9, (a0)
870- ; CHECK-NEXT: vsetivli zero, 2, e16, m1, ta, ma
871- ; CHECK-NEXT: vslidedown.vi v10, v8, 4
872- ; CHECK-NEXT: vslidedown.vi v11, v9, 4
873- ; CHECK-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
874- ; CHECK-NEXT: vrem.vv v10, v11, v10
875- ; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
876- ; CHECK-NEXT: vrem.vv v8, v9, v8
877- ; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
878- ; CHECK-NEXT: vslideup.vi v8, v10, 4
879- ; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
859+ ; CHECK-NEXT: vle16.v v8, (a0)
860+ ; CHECK-NEXT: vle16.v v9, (a1)
861+ ; CHECK-NEXT: vrem.vv v8, v8, v9
880862; CHECK-NEXT: vse16.v v8, (a0)
881863; CHECK-NEXT: ret
882864 %a = load <6 x i16 >, ptr %x
@@ -954,18 +936,9 @@ define void @udiv_v6i16(ptr %x, ptr %y) {
954936; CHECK-LABEL: udiv_v6i16:
955937; CHECK: # %bb.0:
956938; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
957- ; CHECK-NEXT: vle16.v v8, (a1)
958- ; CHECK-NEXT: vle16.v v9, (a0)
959- ; CHECK-NEXT: vsetivli zero, 2, e16, m1, ta, ma
960- ; CHECK-NEXT: vslidedown.vi v10, v8, 4
961- ; CHECK-NEXT: vslidedown.vi v11, v9, 4
962- ; CHECK-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
963- ; CHECK-NEXT: vdivu.vv v10, v11, v10
964- ; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
965- ; CHECK-NEXT: vdivu.vv v8, v9, v8
966- ; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
967- ; CHECK-NEXT: vslideup.vi v8, v10, 4
968- ; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
939+ ; CHECK-NEXT: vle16.v v8, (a0)
940+ ; CHECK-NEXT: vle16.v v9, (a1)
941+ ; CHECK-NEXT: vdivu.vv v8, v8, v9
969942; CHECK-NEXT: vse16.v v8, (a0)
970943; CHECK-NEXT: ret
971944 %a = load <6 x i16 >, ptr %x
@@ -1043,18 +1016,9 @@ define void @urem_v6i16(ptr %x, ptr %y) {
10431016; CHECK-LABEL: urem_v6i16:
10441017; CHECK: # %bb.0:
10451018; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
1046- ; CHECK-NEXT: vle16.v v8, (a1)
1047- ; CHECK-NEXT: vle16.v v9, (a0)
1048- ; CHECK-NEXT: vsetivli zero, 2, e16, m1, ta, ma
1049- ; CHECK-NEXT: vslidedown.vi v10, v8, 4
1050- ; CHECK-NEXT: vslidedown.vi v11, v9, 4
1051- ; CHECK-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
1052- ; CHECK-NEXT: vremu.vv v10, v11, v10
1053- ; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
1054- ; CHECK-NEXT: vremu.vv v8, v9, v8
1055- ; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1056- ; CHECK-NEXT: vslideup.vi v8, v10, 4
1057- ; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
1019+ ; CHECK-NEXT: vle16.v v8, (a0)
1020+ ; CHECK-NEXT: vle16.v v9, (a1)
1021+ ; CHECK-NEXT: vremu.vv v8, v8, v9
10581022; CHECK-NEXT: vse16.v v8, (a0)
10591023; CHECK-NEXT: ret
10601024 %a = load <6 x i16 >, ptr %x
@@ -1192,23 +1156,12 @@ define void @mulhu_v6i16(ptr %x) {
11921156; CHECK: # %bb.0:
11931157; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
11941158; CHECK-NEXT: vle16.v v8, (a0)
1195- ; CHECK-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
1196- ; CHECK-NEXT: vid.v v9
1197- ; CHECK-NEXT: vadd.vi v9, v9, 12
1198- ; CHECK-NEXT: vsetivli zero, 2, e16, m1, ta, ma
1199- ; CHECK-NEXT: vslidedown.vi v10, v8, 4
1200- ; CHECK-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
1201- ; CHECK-NEXT: vdivu.vv v9, v10, v9
1202- ; CHECK-NEXT: lui a1, 45217
1203- ; CHECK-NEXT: addi a1, a1, -1785
1204- ; CHECK-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
1205- ; CHECK-NEXT: vmv.s.x v10, a1
1206- ; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
1207- ; CHECK-NEXT: vsext.vf2 v11, v10
1208- ; CHECK-NEXT: vdivu.vv v8, v8, v11
1159+ ; CHECK-NEXT: lui a1, %hi(.LCPI67_0)
1160+ ; CHECK-NEXT: addi a1, a1, %lo(.LCPI67_0)
12091161; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1210- ; CHECK-NEXT: vslideup.vi v8, v9, 4
1162+ ; CHECK-NEXT: vle16.v v9, (a1)
12111163; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
1164+ ; CHECK-NEXT: vdivu.vv v8, v8, v9
12121165; CHECK-NEXT: vse16.v v8, (a0)
12131166; CHECK-NEXT: ret
12141167 %a = load <6 x i16 >, ptr %x
@@ -1353,25 +1306,13 @@ define void @mulhs_v6i16(ptr %x) {
13531306; CHECK: # %bb.0:
13541307; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
13551308; CHECK-NEXT: vle16.v v8, (a0)
1356- ; CHECK-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
1357- ; CHECK-NEXT: vmv.v.i v9, 7
1358- ; CHECK-NEXT: vid.v v10
1359- ; CHECK-NEXT: li a1, -14
1360- ; CHECK-NEXT: vmadd.vx v10, a1, v9
1361- ; CHECK-NEXT: vsetivli zero, 2, e16, m1, ta, ma
1362- ; CHECK-NEXT: vslidedown.vi v9, v8, 4
1363- ; CHECK-NEXT: vsetivli zero, 2, e16, mf4, ta, ma
1364- ; CHECK-NEXT: vdiv.vv v9, v9, v10
1365- ; CHECK-NEXT: lui a1, 1020016
1366- ; CHECK-NEXT: addi a1, a1, 2041
1367- ; CHECK-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
1368- ; CHECK-NEXT: vmv.s.x v10, a1
1369- ; CHECK-NEXT: vsetivli zero, 4, e16, mf2, ta, ma
1370- ; CHECK-NEXT: vsext.vf2 v11, v10
1371- ; CHECK-NEXT: vdiv.vv v8, v8, v11
1309+ ; CHECK-NEXT: li a1, 22
1310+ ; CHECK-NEXT: vmv.s.x v0, a1
13721311; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1373- ; CHECK-NEXT: vslideup.vi v8, v9, 4
1312+ ; CHECK-NEXT: vmv.v.i v9, -7
1313+ ; CHECK-NEXT: vmerge.vim v9, v9, 7, v0
13741314; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
1315+ ; CHECK-NEXT: vdiv.vv v8, v8, v9
13751316; CHECK-NEXT: vse16.v v8, (a0)
13761317; CHECK-NEXT: ret
13771318 %a = load <6 x i16 >, ptr %x
0 commit comments