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

Added Vector 1.0 Uop Generation Support #247

Conversation

kathlenemagnus
Copy link
Collaborator

@kathlenemagnus kathlenemagnus commented Mar 10, 2025

Olympia now supports uop generation for all vector instructions EXCEPT for some permutes (e.g. gathers, compresses, some complex slides). The uop generation for permutes is very dependent on how their execution unit is designed, so I've left them unimplemented for now. All types of uop generation have a test.

# TODO: Vector Loads and Stores: Unit-stride Fault-Only-First Loads
# TODO: Vector Loads and Stores: Vector Load/Store Segment Instructions
# TODO: Vector Loads and Stores: Vector Load/Store Whole Register Instructions
"vsetvli" : {"pipe" : "vset", "latency" : 1},
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure how many more vector instructions would need to be added for this script, but for code readability would it be better to just make this it's own separate json file?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could create some header files that break things up a bit. I'll keep that in mind when we work on the vector load store instructions.

@kathlenemagnus kathlenemagnus merged commit b342c41 into riscv-software-src:master Mar 12, 2025
4 checks passed
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

Successfully merging this pull request may close these issues.

3 participants