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

Check whether we can access vs1 and vs2 in VMADC/VMSBC #120

Closed
Zissi-Lei opened this issue Jun 9, 2022 · 1 comment
Closed

Check whether we can access vs1 and vs2 in VMADC/VMSBC #120

Zissi-Lei opened this issue Jun 9, 2022 · 1 comment
Labels
bug Something isn't working

Comments

@Zissi-Lei
Copy link

In ara_dispatcher, when it decodes a VMADC/VMSBC instruction, you check accessibilities of vs1 and vs2 using
unique case (ara_req_d.emul)
LMUL_2:
if ((insn.varith_type.rs2 & 5'b00001) == (insn.varith_type.rd & 5'b00001))
illegal_insn = 1'b1;
LMUL_4:
if ((insn.varith_type.rs2 & 5'b00011) == (insn.varith_type.rd & 5'b00011))
illegal_insn = 1'b1;
LMUL_8:
if ((insn.varith_type.rs2 & 5'b00111) == (insn.varith_type.rd & 5'b00111))
illegal_insn = 1'b1;
default: if (insn.varith_type.rs2 == insn.varith_type.rd) illegal_insn = 1'b1;
endcase
I don't understand what you want to do here. Actually in LMUL_2, when rd=v6 and vs2=v2 will cause a illegal instruction according to these code. But this is legal in rvv. Can you explain it detailly? Thanks for your time!

@mp-17 mp-17 added the bug Something isn't working label Jun 15, 2024
@mp-17
Copy link
Collaborator

mp-17 commented Aug 26, 2024

Solving various bugs here: #353. Namely, this bug is fixed with this commit.

@mp-17 mp-17 closed this as completed Aug 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants