@@ -776,18 +776,9 @@ define void @sdiv_v6i16(ptr %x, ptr %y) {
776
776
; CHECK-LABEL: sdiv_v6i16:
777
777
; CHECK: # %bb.0:
778
778
; 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
791
782
; CHECK-NEXT: vse16.v v8, (a0)
792
783
; CHECK-NEXT: ret
793
784
%a = load <6 x i16 >, ptr %x
@@ -865,18 +856,9 @@ define void @srem_v6i16(ptr %x, ptr %y) {
865
856
; CHECK-LABEL: srem_v6i16:
866
857
; CHECK: # %bb.0:
867
858
; 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
880
862
; CHECK-NEXT: vse16.v v8, (a0)
881
863
; CHECK-NEXT: ret
882
864
%a = load <6 x i16 >, ptr %x
@@ -954,18 +936,9 @@ define void @udiv_v6i16(ptr %x, ptr %y) {
954
936
; CHECK-LABEL: udiv_v6i16:
955
937
; CHECK: # %bb.0:
956
938
; 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
969
942
; CHECK-NEXT: vse16.v v8, (a0)
970
943
; CHECK-NEXT: ret
971
944
%a = load <6 x i16 >, ptr %x
@@ -1043,18 +1016,9 @@ define void @urem_v6i16(ptr %x, ptr %y) {
1043
1016
; CHECK-LABEL: urem_v6i16:
1044
1017
; CHECK: # %bb.0:
1045
1018
; 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
1058
1022
; CHECK-NEXT: vse16.v v8, (a0)
1059
1023
; CHECK-NEXT: ret
1060
1024
%a = load <6 x i16 >, ptr %x
@@ -1192,23 +1156,12 @@ define void @mulhu_v6i16(ptr %x) {
1192
1156
; CHECK: # %bb.0:
1193
1157
; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
1194
1158
; 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)
1209
1161
; CHECK-NEXT: vsetivli zero, 8, e16, m1, ta, ma
1210
- ; CHECK-NEXT: vslideup.vi v8, v9, 4
1162
+ ; CHECK-NEXT: vle16.v v9, (a1)
1211
1163
; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
1164
+ ; CHECK-NEXT: vdivu.vv v8, v8, v9
1212
1165
; CHECK-NEXT: vse16.v v8, (a0)
1213
1166
; CHECK-NEXT: ret
1214
1167
%a = load <6 x i16 >, ptr %x
@@ -1353,25 +1306,13 @@ define void @mulhs_v6i16(ptr %x) {
1353
1306
; CHECK: # %bb.0:
1354
1307
; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
1355
1308
; 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
1372
1311
; 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
1374
1314
; CHECK-NEXT: vsetivli zero, 6, e16, m1, ta, ma
1315
+ ; CHECK-NEXT: vdiv.vv v8, v8, v9
1375
1316
; CHECK-NEXT: vse16.v v8, (a0)
1376
1317
; CHECK-NEXT: ret
1377
1318
%a = load <6 x i16 >, ptr %x
0 commit comments