@@ -1340,25 +1340,79 @@ static bool isSupportedInstr(const MachineInstr &MI) {
1340
1340
return false ;
1341
1341
1342
1342
switch (RVV->BaseInstr ) {
1343
+ // 11.1. Vector Single-Width Integer Add and Subtract
1343
1344
case RISCV::VADD_VI:
1344
1345
case RISCV::VADD_VV:
1345
1346
case RISCV::VADD_VX:
1346
- case RISCV::VMUL_VV:
1347
- case RISCV::VMUL_VX:
1348
- case RISCV::VSLL_VI:
1349
- case RISCV::VSEXT_VF2:
1350
- case RISCV::VSEXT_VF4:
1351
- case RISCV::VSEXT_VF8:
1347
+ case RISCV::VSUB_VV:
1348
+ case RISCV::VSUB_VX:
1349
+ case RISCV::VRSUB_VI:
1350
+ case RISCV::VRSUB_VX:
1351
+ // 11.2. Vector Widening Integer Add/Subtract
1352
+ case RISCV::VWADDU_VV:
1353
+ case RISCV::VWADDU_VX:
1354
+ case RISCV::VWSUBU_VV:
1355
+ case RISCV::VWSUBU_VX:
1356
+ case RISCV::VWADD_VV:
1357
+ case RISCV::VWADD_VX:
1358
+ case RISCV::VWSUB_VV:
1359
+ case RISCV::VWSUB_VX:
1360
+ case RISCV::VWADDU_WV:
1361
+ case RISCV::VWADDU_WX:
1362
+ case RISCV::VWSUBU_WV:
1363
+ case RISCV::VWSUBU_WX:
1364
+ case RISCV::VWADD_WV:
1365
+ case RISCV::VWADD_WX:
1366
+ case RISCV::VWSUB_WV:
1367
+ case RISCV::VWSUB_WX:
1368
+ // 11.3. Vector Integer Extension
1352
1369
case RISCV::VZEXT_VF2:
1370
+ case RISCV::VSEXT_VF2:
1353
1371
case RISCV::VZEXT_VF4:
1372
+ case RISCV::VSEXT_VF4:
1354
1373
case RISCV::VZEXT_VF8:
1355
- case RISCV::VMV_V_I:
1356
- case RISCV::VMV_V_X:
1374
+ case RISCV::VSEXT_VF8:
1375
+ // 11.4. Vector Integer Add-with-Carry / Subtract-with-Borrow Instructions
1376
+ // FIXME: Add support for 11.4 instructions
1377
+ // 11.5. Vector Bitwise Logical Instructions
1378
+ // FIXME: Add support for 11.5 instructions
1379
+ // 11.6. Vector Single-Width Shift Instructions
1380
+ // FIXME: Add support for 11.6 instructions
1381
+ case RISCV::VSLL_VI:
1382
+ // 11.7. Vector Narrowing Integer Right Shift Instructions
1383
+ // FIXME: Add support for 11.7 instructions
1357
1384
case RISCV::VNSRL_WI:
1358
- case RISCV::VWADD_VV:
1359
- case RISCV::VWADDU_VV:
1385
+ // 11.8 Vector Integer Compare Instructions
1386
+ // FIXME: Add support for 11.8 instructions
1387
+ // 11.9. Vector Integer Min/Max Instructions
1388
+ // FIXME: Add support for 11.9 instructions
1389
+ // 11.10. Vector Single-Width Integer Multiply Instructions
1390
+ case RISCV::VMUL_VV:
1391
+ case RISCV::VMUL_VX:
1392
+ case RISCV::VMULH_VV:
1393
+ case RISCV::VMULH_VX:
1394
+ case RISCV::VMULHU_VV:
1395
+ case RISCV::VMULHU_VX:
1396
+ case RISCV::VMULHSU_VV:
1397
+ case RISCV::VMULHSU_VX:
1398
+ // 11.11. Vector Integer Divide Instructions
1399
+ // FIXME: Add support for 11.11 instructions
1400
+ // 11.12. Vector Widening Integer Multiply Instructions
1401
+ // FIXME: Add support for 11.12 instructions
1402
+ // 11.13. Vector Single-Width Integer Multiply-Add Instructions
1403
+ // FIXME: Add support for 11.13 instructions
1404
+ // 11.14. Vector Widening Integer Multiply-Add Instructions
1405
+ // FIXME: Add support for 11.14 instructions
1360
1406
case RISCV::VWMACC_VX:
1361
1407
case RISCV::VWMACCU_VX:
1408
+ // 11.15. Vector Integer Merge Instructions
1409
+ // FIXME: Add support for 11.15 instructions
1410
+ // 11.16. Vector Integer Move Instructions
1411
+ // FIXME: Add support for 11.16 instructions
1412
+ case RISCV::VMV_V_I:
1413
+ case RISCV::VMV_V_X:
1414
+
1415
+ // Vector Crypto
1362
1416
case RISCV::VWSLL_VI:
1363
1417
return true ;
1364
1418
}
0 commit comments