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

vmulh* and ZVE64* question #1894

Open
aprnath opened this issue Jan 15, 2025 · 1 comment
Open

vmulh* and ZVE64* question #1894

aprnath opened this issue Jan 15, 2025 · 1 comment

Comments

@aprnath
Copy link

aprnath commented Jan 15, 2025

Does Spike support this statement from the spec:

All Zve* extensions support all vector integer instructions (Section Section 31.11), except that the vmulh integer multiply variants that return the high word of the product (vmulh.vv, vmulh.vx, vmulhu.vv, vmulhu.vx, vmulhsu.vv, vmulhsu.vx) are not included for EEW=64 in Zve64*.

When using zvl128b_zve64f, Spike does not seem to tale an illegal_instruction exception for vmulh.vv. Is there something specific that is needed to enable this behavior?

@aswaterman
Copy link
Collaborator

This is not technically a violation of the ISA, as the reserved behavior of unimplemented opcodes does not mandate an illegal-instruction exception. Nevertheless, it is an error of intent. I agree that Spike should be changed to raise an illegal-instruction exception for these instructions for SEW=64 when the full V extension is not provided. If you want to make a PR that does so, go for it.

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

No branches or pull requests

2 participants