-
Notifications
You must be signed in to change notification settings - Fork 91
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
Make the tuple type API for segment load store as compiler optional feature #139
Labels
Resolve for v1.0
Feature or problems we will close before the v1.0 release
Comments
We will probably need to revert #98 too, tagging these types/intrinsics appropriately. |
Maybe it's necessary to change the marco name |
@lhtin Yeah, |
This was referenced Aug 2, 2022
Closed
Closed
leekillough
added a commit
to leekillough/blis
that referenced
this issue
Jul 6, 2023
…code. However, it does not get correct results for complex BLIS routines which use segment loads (or call those that do). The intrinsic types check out and make sense, but it returns wrong answers. It's probably something really simple. For historical reference, see: riscv-non-isa/riscv-c-api-doc#43 flame#737 (comment) https://reviews.llvm.org/D152134 riscv-non-isa/rvv-intrinsic-doc#139 riscv-non-isa/rvv-intrinsic-doc#198 https://github.com/riscv-non-isa/rvv-intrinsic-doc/blob/master/rvv-intrinsic-rfc.md https://github.com/riscv-non-isa/rvv-intrinsic-doc/blob/master/auto-generated/intrinsic_funcs/02_vector_unit-stride_segment_load_store_instructions_zvlsseg.md https://github.com/riscv-non-isa/rvv-intrinsic-doc/blob/master/auto-generated/intrinsic_funcs/03_vector_stride_segment_load_store_instructions_zvlsseg.md https://github.com/riscv-non-isa/rvv-intrinsic-doc/blob/master/auto-generated/intrinsic_funcs/04_vector_indexed_segment_load_store_instructions_zvlsseg.md
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
#137 (comment)
#137 (comment)
Below is @kito-cheng's proposal for the segment load/store API:
Include both API flavor in spec, but mark tuple type style API as optional, and defined some marco to let user check __riscv_rvv_tuple_type if compiler has supported.
And non-tuple type style API / new API are mandatory, I believe implement that via tuple type style API like that is feasible, and @rjiejie has implemented this approach in the past riscvarchive/riscv-gcc#307:
void vlseg2e8_v_i8mf4 (vint8mf4_t *v0, vint8mf4_t *v1, const int8_t *base, size_t vl)
{
vint8mf4x2_t vt = vcreate_i8mf4x2 (v0, v1);
vlseg2e8_v_i8mf4x2 (vt, vase, v0);
}
The text was updated successfully, but these errors were encountered: