-
Notifications
You must be signed in to change notification settings - Fork 426
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
Update documentation of instruction extensions for CV32E40P version 2. #760
Conversation
Automatic PR dev->master
Automatic PR dev->master
Automatic PR dev->master
Automatic PR dev->master
Automatic PR dev->master
Automatic PR dev->master
Automatic PR dev->master
* ALU extensions, see :ref:`corev_alu`. | ||
* Multiply-Accumulate extensions, see :ref:`corev_multiply_accumulate`. | ||
* Single Instruction Multiple Data (aka SIMD) extensions, see :ref:`corev_simd`. | ||
* Post-Incrementing load and stores, see :ref:`corev_load_store`, invoked in the tool chain with ``-march=xcvmem``. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to be more precise like -march=rv32i*_xcvmem
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a good suggestion. I'll make this change.
|
||
Additionally the event load instruction (**cv.elw**) is supported by setting ``PULP_CLUSTER`` == 1, see :ref:`corev_event_load`. This is a separate ISA extension, invoked in the tool chain with ``-march=xcvelw``. | ||
|
||
To use such instructions, you need to compile your SW with the CORE-V GCC or Clang/LLVM compiler. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we should specify starting from which version those instructions are supported by the toolchain, GCC and LLVM.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A good suggestion. I'll make this change.
@@ -1066,9 +1071,6 @@ performed. | |||
|
|||
The custom SIMD extensions are only supported if ``PULP_XPULP`` == 1. | |||
|
|||
**SIMD is not supported by the compiler of the tool chain** as it is not implementing auto-vectorization up to now. | |||
But those instructions can be used either with builtins or even in assembly. | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should keep this comment because it is still true.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will modify it. SIMD will be supported, but we won't have autovectization.
These changes particularly relate to how tool chain support is invoked using -march. We take the opportunity to remove caveats about ISA extensions not supported in the tool chain, since all are now supported in both GCC and Clang/LLVM. * docs/source/instruction_set_extensions.rst: Add -march tool chain invocations for each ISA extension and remove all caveats about compiler support. Signed-off-by: Jeremy Bennett <[email protected]>
2e259b8
to
4c66da2
Compare
All comments by @pascalgouedo accepted and updated version force pushed. |
* Correcting RFVI trace * Some clarifications about immediate in scalar replication on SIMD instructions. Signed-off-by: Pascal Gouedo <[email protected]> * Headers alignement. Signed-off-by: Pascal Gouedo <[email protected]> * Changed uvm_error in uvm_info in old tracer to avoid errors and header alignement. Signed-off-by: Pascal Gouedo <[email protected]> * Moved typedef definitions in rvfi_pkg and header alignement. Signed-off-by: Pascal Gouedo <[email protected]> * launched verible Signed-off-by: Pascal Gouedo <[email protected]> * Update documentation of instruction extensions for CV32E40P version 2. (#760) * Restored correct syntax * Update documentation of instruction extensions for CV32E40P version 2. These changes particularly relate to how tool chain support is invoked using -march. We take the opportunity to remove caveats about ISA extensions not supported in the tool chain, since all are now supported in both GCC and Clang/LLVM. * docs/source/instruction_set_extensions.rst: Add -march tool chain invocations for each ISA extension and remove all caveats about compiler support. Signed-off-by: Jeremy Bennett <[email protected]> --------- Signed-off-by: Jeremy Bennett <[email protected]> Co-authored-by: Davide Schiavone <[email protected]> Co-authored-by: pascalgouedo <[email protected]> --------- Signed-off-by: Pascal Gouedo <[email protected]> Signed-off-by: Jeremy Bennett <[email protected]> Co-authored-by: Yoann Pruvost <[email protected]> Co-authored-by: pascalgouedo <[email protected]> Co-authored-by: Jeremy Bennett <[email protected]> Co-authored-by: Davide Schiavone <[email protected]>
* Restored correct syntax * Automatic PR dev->master (#766) * Correcting RFVI trace * Some clarifications about immediate in scalar replication on SIMD instructions. Signed-off-by: Pascal Gouedo <[email protected]> * Headers alignement. Signed-off-by: Pascal Gouedo <[email protected]> * Changed uvm_error in uvm_info in old tracer to avoid errors and header alignement. Signed-off-by: Pascal Gouedo <[email protected]> * Moved typedef definitions in rvfi_pkg and header alignement. Signed-off-by: Pascal Gouedo <[email protected]> * launched verible Signed-off-by: Pascal Gouedo <[email protected]> * Update documentation of instruction extensions for CV32E40P version 2. (#760) * Restored correct syntax * Update documentation of instruction extensions for CV32E40P version 2. These changes particularly relate to how tool chain support is invoked using -march. We take the opportunity to remove caveats about ISA extensions not supported in the tool chain, since all are now supported in both GCC and Clang/LLVM. * docs/source/instruction_set_extensions.rst: Add -march tool chain invocations for each ISA extension and remove all caveats about compiler support. Signed-off-by: Jeremy Bennett <[email protected]> --------- Signed-off-by: Jeremy Bennett <[email protected]> Co-authored-by: Davide Schiavone <[email protected]> Co-authored-by: pascalgouedo <[email protected]> --------- Signed-off-by: Pascal Gouedo <[email protected]> Signed-off-by: Jeremy Bennett <[email protected]> Co-authored-by: Yoann Pruvost <[email protected]> Co-authored-by: pascalgouedo <[email protected]> Co-authored-by: Jeremy Bennett <[email protected]> Co-authored-by: Davide Schiavone <[email protected]> * new block diagram (#14) --------- Signed-off-by: Pascal Gouedo <[email protected]> Signed-off-by: Jeremy Bennett <[email protected]> Co-authored-by: pascalgouedo <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Yoann Pruvost <[email protected]> Co-authored-by: Jeremy Bennett <[email protected]>
Signed-off-by: Jeremy Bennett [email protected]