Skip to content

Commit cf37397

Browse files
fixup! add more supported instrs and tests
1 parent 43cd9a4 commit cf37397

File tree

2 files changed

+643
-76
lines changed

2 files changed

+643
-76
lines changed

llvm/lib/Target/RISCV/RISCVVLOptimizer.cpp

Lines changed: 64 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1340,25 +1340,79 @@ static bool isSupportedInstr(const MachineInstr &MI) {
13401340
return false;
13411341

13421342
switch (RVV->BaseInstr) {
1343+
// 11.1. Vector Single-Width Integer Add and Subtract
13431344
case RISCV::VADD_VI:
13441345
case RISCV::VADD_VV:
13451346
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
13521369
case RISCV::VZEXT_VF2:
1370+
case RISCV::VSEXT_VF2:
13531371
case RISCV::VZEXT_VF4:
1372+
case RISCV::VSEXT_VF4:
13541373
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
13571384
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
13601406
case RISCV::VWMACC_VX:
13611407
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
13621416
case RISCV::VWSLL_VI:
13631417
return true;
13641418
}

0 commit comments

Comments
 (0)