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

ZiCond Extension #1262

Closed

Conversation

asimahsan1990
Copy link
Contributor

@asimahsan1990 asimahsan1990 commented Jun 12, 2023

This PR is for implementation of Zicond ratified v1.0 (conditional integer operations) extension. As for the verification, I have just verified at the unit level. Currently, Zicond is in progress on the GCC (a patch is available). On LLVM, it is available in the current version(17).

The "Conditional" operations extension provides a simple solution that provides most of the benefits and flexibility one would desire to support conditional arithmetic and conditional-select/move operations while remaining true to the RISC-V design philosophy. The instructions follow the format for R-type instructions with three operands (i.e., two source operands and one destination operand). Using these instructions, branch-less sequences can be implemented (typically in two-instruction sequences) without the need for instruction fusion, special provisions during the decoding of architectural instructions, or other micro-architectural provisions.

@asimahsan1990
Copy link
Contributor Author

@JeanRochCoulon

@github-actions
Copy link
Contributor

✔️ successful run, report available here.

@JeanRochCoulon
Copy link
Contributor

Great contribution @asimahsan1990 !!

I propose to enable Zicond for 64 bits configuration
@JeanRochCoulon
Copy link
Contributor

As discussed during CVA6 verification meeting, I propose to enable Zicond for 64 bit configuration, the objective is to be able to use it on at least one CVA6 configuration.
BTW, which tests could use Zicond, are there some tests from arch-test which can be reused ?

@github-actions
Copy link
Contributor

❌ failed run, report available here.

@asimahsan1990
Copy link
Contributor Author

As discussed during CVA6 verification meeting, I propose to enable Zicond for 64 bit configuration, the objective is to be able to use it on at least one CVA6 configuration. BTW, which tests could use Zicond, are there some tests from arch-test which can be reused ?

On Arch-test, there is PR open; those tests be available soon. Currently, there aren't any tests available that we can use.

@fatimasaleem
Copy link
Contributor

fatimasaleem commented Jun 19, 2023

Thank you @asimahsan1990 for making the required changes. It will be good to run the available tests (riscv-non-isa/riscv-arch-test#321) on CVA6 and check against spike (riscv-software-src/riscv-isa-sim#1241) and mention the test status in the PR description as well.

@AyoubJalali
Copy link
Contributor

@JeanRochCoulon what we should do about the code coverage.

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.

4 participants