riscv64: Support non 128bit vector sizes #6266
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
👋 Hey,
This is a small follow up to #6240. This PR does a couple of things:
Zvl*
family of extensions, which really just specify the minimum size of a vector register.has_v
and assuming 128 bit registers, we now allow lowering any size as long as they fit in a single register.ty_vec_fits_in_register
which feels slightly neater than(if-let $true (has_v))
everywhereiadd
usesfits_in_64
which also matches small vectors, so I switched the rules to usingty_int_ref_scalar_64
which only match scalars.This isn't really required, but it's neat that we get all of these lowerings without pretty much any effort, so I figured it would be worth it.