You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: llvm/test/CodeGen/RISCV/rvv/vl-opt-instrs.ll
+24-32Lines changed: 24 additions & 32 deletions
Original file line number
Diff line number
Diff line change
@@ -1248,27 +1248,25 @@ define <vscale x 4 x i64> @vwmulu_vx(<vscale x 4 x i32> %a, i32 %b, iXLen %vl) {
1248
1248
ret <vscale x 4 x i64> %2
1249
1249
}
1250
1250
1251
-
define <vscale x 4 x i64> @vwmacc_vv(<vscale x 4 x i32> %a, <vscale x 4 x i16> %b, <vscale x 4 x i16> %c, <vscale x 4 x i64> %d, iXLen %vl) {
1251
+
define <vscale x 4 x i32> @vwmacc_vv(<vscale x 4 x i32> %a, <vscale x 4 x i16> %b, <vscale x 4 x i16> %c, <vscale x 4 x i32> %d, iXLen %vl) {
1252
1252
; NOVLOPT-LABEL: vwmacc_vv:
1253
1253
; NOVLOPT: # %bb.0:
1254
1254
; NOVLOPT-NEXT: vsetvli a1, zero, e16, m1, tu, ma
1255
1255
; NOVLOPT-NEXT: vwmacc.vv v8, v10, v11
1256
-
; NOVLOPT-NEXT: vsetvli zero, a0, e32, m2, tu, ma
1257
-
; NOVLOPT-NEXT: vwmacc.vv v12, v8, v8
1258
-
; NOVLOPT-NEXT: vmv4r.v v8, v12
1256
+
; NOVLOPT-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1257
+
; NOVLOPT-NEXT: vadd.vv v8, v8, v12
1259
1258
; NOVLOPT-NEXT: ret
1260
1259
;
1261
1260
; VLOPT-LABEL: vwmacc_vv:
1262
1261
; VLOPT: # %bb.0:
1263
1262
; VLOPT-NEXT: vsetvli zero, a0, e16, m1, tu, ma
1264
1263
; VLOPT-NEXT: vwmacc.vv v8, v10, v11
1265
-
; VLOPT-NEXT: vsetvli zero, zero, e32, m2, tu, ma
1266
-
; VLOPT-NEXT: vwmacc.vv v12, v8, v8
1267
-
; VLOPT-NEXT: vmv4r.v v8, v12
1264
+
; VLOPT-NEXT: vsetvli zero, zero, e32, m2, ta, ma
1265
+
; VLOPT-NEXT: vadd.vv v8, v8, v12
1268
1266
; VLOPT-NEXT: ret
1269
1267
%1 = call <vscale x 4 x i32> @llvm.riscv.vwmacc.nxv4i32.nxv4i16(<vscale x 4 x i32> %a, <vscale x 4 x i16> %b, <vscale x 4 x i16> %c, iXLen -1, iXLen 0)
1270
-
%2 = call <vscale x 4 x i64> @llvm.riscv.vwmacc.nxv4i32.nxv4i16(<vscale x 4 x i64> %d, <vscale x 4 x i32> %1, <vscale x 4 x i32> %1, iXLen %vl, iXLen 0)
1271
-
ret <vscale x 4 x i64> %2
1268
+
%2 = call <vscale x 4 x i32> @llvm.riscv.vadd.nxv4i32.nxv4i32(<vscale x 4 x i32> poison, <vscale x 4 x i32> %1, <vscale x 4 x i32> %d, iXLen %vl)
1269
+
ret <vscale x 4 x i32> %2
1272
1270
}
1273
1271
1274
1272
define <vscale x 4 x i32> @vwmacc_vx(<vscale x 4 x i32> %a, i16%b, <vscale x 4 x i16> %c, iXLen %vl) {
@@ -1292,52 +1290,46 @@ define <vscale x 4 x i32> @vwmacc_vx(<vscale x 4 x i32> %a, i16 %b, <vscale x 4
1292
1290
ret <vscale x 4 x i32> %2
1293
1291
}
1294
1292
1295
-
define <vscale x 4 x i64> @vwmaccu_vv(<vscale x 4 x i32> %a, <vscale x 4 x i16> %b, <vscale x 4 x i16> %c, <vscale x 4 x i64> %d, iXLen %vl) {
1293
+
define <vscale x 4 x i32> @vwmaccu_vv(<vscale x 4 x i32> %a, <vscale x 4 x i16> %b, <vscale x 4 x i16> %c, <vscale x 4 x i32> %d, iXLen %vl) {
1296
1294
; NOVLOPT-LABEL: vwmaccu_vv:
1297
1295
; NOVLOPT: # %bb.0:
1298
-
; NOVLOPT-NEXT: vmv2r.v v16, v8
1299
1296
; NOVLOPT-NEXT: vsetvli a1, zero, e16, m1, tu, ma
1300
-
; NOVLOPT-NEXT: vwmaccu.vv v16, v10, v11
1301
-
; NOVLOPT-NEXT: vsetvli zero, a0, e32, m2, tu, ma
1302
-
; NOVLOPT-NEXT: vwmaccu.vv v12, v8, v16
1303
-
; NOVLOPT-NEXT: vmv4r.v v8, v12
1297
+
; NOVLOPT-NEXT: vwmaccu.vv v8, v10, v11
1298
+
; NOVLOPT-NEXT: vsetvli zero, a0, e32, m2, ta, ma
1299
+
; NOVLOPT-NEXT: vadd.vv v8, v8, v12
1304
1300
; NOVLOPT-NEXT: ret
1305
1301
;
1306
1302
; VLOPT-LABEL: vwmaccu_vv:
1307
1303
; VLOPT: # %bb.0:
1308
-
; VLOPT-NEXT: vmv2r.v v16, v8
1309
1304
; VLOPT-NEXT: vsetvli zero, a0, e16, m1, tu, ma
1310
-
; VLOPT-NEXT: vwmaccu.vv v16, v10, v11
1311
-
; VLOPT-NEXT: vsetvli zero, zero, e32, m2, tu, ma
1312
-
; VLOPT-NEXT: vwmaccu.vv v12, v8, v16
1313
-
; VLOPT-NEXT: vmv4r.v v8, v12
1305
+
; VLOPT-NEXT: vwmaccu.vv v8, v10, v11
1306
+
; VLOPT-NEXT: vsetvli zero, zero, e32, m2, ta, ma
1307
+
; VLOPT-NEXT: vadd.vv v8, v8, v12
1314
1308
; VLOPT-NEXT: ret
1315
1309
%1 = call <vscale x 4 x i32> @llvm.riscv.vwmaccu.nxv4i32.nxv4i16(<vscale x 4 x i32> %a, <vscale x 4 x i16> %b, <vscale x 4 x i16> %c, iXLen -1, iXLen 0)
1316
-
%2 = call <vscale x 4 x i64> @llvm.riscv.vwmaccu.nxv4i64.nxv4i32(<vscale x 4 x i64> %d, <vscale x 4 x i32> %a, <vscale x 4 x i32> %1, iXLen %vl, iXLen 0)
1317
-
ret <vscale x 4 x i64> %2
1310
+
%2 = call <vscale x 4 x i32> @llvm.riscv.vadd.nxv4i32.nxv4i32(<vscale x 4 x i32> poison, <vscale x 4 x i32> %1, <vscale x 4 x i32> %d, iXLen %vl)
1311
+
ret <vscale x 4 x i32> %2
1318
1312
}
1319
1313
1320
-
define <vscale x 4 x i64> @vwmaccu_vx(<vscale x 4 x i32> %a, i16%b, <vscale x 4 x i16> %c, <vscale x 4 x i64> %d, i32%e, iXLen %vl) {
1314
+
define <vscale x 4 x i32> @vwmaccu_vx(<vscale x 4 x i32> %a, i16%b, <vscale x 4 x i16> %c, <vscale x 4 x i32> %d, i32%e, iXLen %vl) {
1321
1315
; NOVLOPT-LABEL: vwmaccu_vx:
1322
1316
; NOVLOPT: # %bb.0:
1323
-
; NOVLOPT-NEXT: vsetvli a3, zero, e16, m1, tu, ma
1317
+
; NOVLOPT-NEXT: vsetvli a1, zero, e16, m1, tu, ma
1324
1318
; NOVLOPT-NEXT: vwmaccu.vx v8, a0, v10
1325
-
; NOVLOPT-NEXT: vsetvli zero, a2, e32, m2, tu, ma
1326
-
; NOVLOPT-NEXT: vwmaccu.vx v12, a1, v8
1327
-
; NOVLOPT-NEXT: vmv4r.v v8, v12
1319
+
; NOVLOPT-NEXT: vsetvli zero, a2, e32, m2, ta, ma
1320
+
; NOVLOPT-NEXT: vadd.vv v8, v8, v12
1328
1321
; NOVLOPT-NEXT: ret
1329
1322
;
1330
1323
; VLOPT-LABEL: vwmaccu_vx:
1331
1324
; VLOPT: # %bb.0:
1332
1325
; VLOPT-NEXT: vsetvli zero, a2, e16, m1, tu, ma
1333
1326
; VLOPT-NEXT: vwmaccu.vx v8, a0, v10
1334
-
; VLOPT-NEXT: vsetvli zero, zero, e32, m2, tu, ma
1335
-
; VLOPT-NEXT: vwmaccu.vx v12, a1, v8
1336
-
; VLOPT-NEXT: vmv4r.v v8, v12
1327
+
; VLOPT-NEXT: vsetvli zero, zero, e32, m2, ta, ma
1328
+
; VLOPT-NEXT: vadd.vv v8, v8, v12
1337
1329
; VLOPT-NEXT: ret
1338
1330
%1 = call <vscale x 4 x i32> @llvm.riscv.vwmaccu.nxv4i32.i16(<vscale x 4 x i32> %a, i16%b, <vscale x 4 x i16> %c, iXLen -1, iXLen 0)
1339
-
%2 = call <vscale x 4 x i64> @llvm.riscv.vwmaccu.nxv4i64.i32(<vscale x 4 x i64> %d, i32%e, <vscale x 4 x i32> %1, iXLen %vl, iXLen 0)
1340
-
ret <vscale x 4 x i64> %2
1331
+
%2 = call <vscale x 4 x i32> @llvm.riscv.vadd.nxv4i32.nxv4i32(<vscale x 4 x i32> poison, <vscale x 4 x i32> %1, <vscale x 4 x i32> %d, iXLen %vl)
1332
+
ret <vscale x 4 x i32> %2
1341
1333
}
1342
1334
1343
1335
define <vscale x 4 x i32> @vwmaccsu_vv(<vscale x 4 x i32> %a, <vscale x 4 x i16> %b, <vscale x 4 x i16> %c, iXLen %vl) {
0 commit comments