-
Notifications
You must be signed in to change notification settings - Fork 37
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
Add RISC-V Vector Extension Support #76
base: master
Are you sure you want to change the base?
Conversation
To 1. I think this is actually interesting, seems we are now "stressing" the ETISS decoder implementation so some bugs surface. Definitely we need to have alook into this but that would rather be something for @rafzi @wysiwyng .
|
So it probably was a good idea to not invest too much time into implementing other prior
|
Make softvector part of etiss_softvector's link interface
While the RISC-V vector extension has already defined a version 1.0, there appears to be no tool support for it as of now. Thus, @rafzi rightfully suggested postponing any further work on implementing the version 1.0 vector extension until one can actually assemble and test version 1.0 vector instructions. This PR is not directly affected by this. But it directly relates to my remarks made in the original comment for this PR. We are also waiting for this PR to close this issue in order for the Windows build to hopefully succeed here. |
This is a work in progress replacement for #71...
Some points that need to be considered:
16460-16640
inArchImpl/RISCV/RISCVArch.cpp
) cause some sort of conflict in the ETISS instruction decoder which results in uninitialized nodes in the instruction set tree, similar to here Uninitialized Nodes in Instruction Set Tree #74. This results, in contrast to the uninitialized nodes in referenced issue, in segmentation faults when running ETISS. Thus, these instructions are commented out for now.v0.9
(and above?).v0.7
. It might be beneficial to migrate tov0.9+
, especially when considering that the tests usev0.9
and thatmuriscv_nn
should be up-to-date while being able to run on ETISS.EDIT 1:
Regarding 1.
The RISCVArch.cpp (beware, the file is a pain to work with as it has close to a million lines) in the
v-ext-support
branch doesn't seem to include the VLE.U and VSU.U instructions either. So this could be the reason why the issue is only now emerging. Theml_on_mcu
flow is currently based on ETISS withv-ext-support
when requesting vector support (the muriscv_nn library inst using any vector load/stores as of now).