Hi,
I'm a final-year student working on my undergraduate thesis related to the RISC-V Packed SIMD P extension.
I'm currently studying the draft specification "Preliminary in-progress RISC-V P Extension Version 0.12-draft (2026-03-08)" and trying to build a small experimental environment to understand and test some of the instructions.
I would like to ask:
Is there any Spike, Sail, or QEMU implementation that supports the P extension?
If not, what would be the recommended starting point to prototype these instructions?
Is modifying Spike decode tables and instruction semantics a reasonable approach for experimentation?
My goal is only to run small test programs and study the behavior of packed SIMD instructions for my thesis.
Any suggestions or references would be greatly appreciated.
Thanks.
This e-mail (and its attachments) may contain confidential and legally privileged information or information protected from disclosure. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, or use of the information contained herein is strictly prohibited. In this case, please immediately notify the sender by return e-mail, delete the message (and any accompanying documents) and destroy all printed hard copies. Thank you for your cooperation.
Copyright ANDES TECHNOLOGY CORPORATION - All Rights Reserved.Hi Rich,
Thanks for the pointer.
Hi Jiawei, if you're on this thread, I would really appreciate any insights you might have regarding experimentation with the RISC-V P extension.
Best regards,
-Thang
Hi Jiawei,
Thank you for your response and for sharing the QEMU implementation.
I noticed that in the QEMU repository (dev-p-018 branch) the P extension seems to follow version 0.18. However, when I checked the RISC-V P extension specification at https://github.com/riscv/riscv-p-spec, the latest version I could find is v0.12.
Could you please let me know where I can find the specification for version 0.18, or if there is a draft available somewhere?
Thank you very much for your help.
Best regards,
Thang
Hi Tang,
We have implemented the QEMU supports for P extension.
You can check it in https://github.com/mollybuild/qemu/tree/dev-p-018
Since I'm not an expert for simulator part, maybe you can ask the committer in QEMU repo.
Best,
Jiawei
Hi Tang,
Sorry for not explain the version clearly, the QEMU is implemented based on John Hauser's document https://www.jhauser.us/RISCV/ext-P/
And RISC-V P extension specification at github https://github.com/riscv/riscv-p-spec is also base form John Hauser's document.
The encoding and description are the same but github version is using ascii for review.
BR,
Jiawei