Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added More Vector Arithmetic Instruction Support #190

Merged

Conversation

kathlenemagnus
Copy link
Collaborator

Added support for even more vector arithmetic instructions:

  • Vector Single-Width Shift Instructions
  • Vector Narrowing Integer Right Shift Instructions
  • Vector Single-Width Integer Multiply-Add Instructions
  • Vector Widening Integer Multiply-Add Instructions
  • Vector Integer Merge Instructions
  • Vector Integer Move Instructions

Also redesigned how the vector uop generator handles vector instructions when only 1 uop is needed (e.g, LMUL = 1, certain vector instructions are not sequenced). The vector uop generator will always generate at least one uop which will be used in place of the "parent" instruction. This is necessary because some vector instructions require the source and/or dest registers be added. For example, the multiply-add vector instructions need to have their destination added as one of their sources.

There are two categories of vector arithmetic instructions that cannot be supported correctly because of issues with Mavis:

  • Vector Integer Extension
  • Vector Integer Add-with-Carry/Subtract-with-Borrow Instructions

Once these Mavis issues are resolved, all vector arithmetic instructions will be supported by Olympia.

@kathlenemagnus kathlenemagnus merged commit a318f23 into riscv-software-src:master Aug 1, 2024
5 checks passed
@kathlenemagnus kathlenemagnus deleted the vec_arith_uop_gen branch August 1, 2024 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants