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

Add Vec128 sort #2965

Merged
merged 19 commits into from
Oct 4, 2024
Merged

Add Vec128 sort #2965

merged 19 commits into from
Oct 4, 2024

Conversation

TheNumbat
Copy link
Contributor

@TheNumbat TheNumbat commented Aug 22, 2024

  1. Deletes the specifc vec128 type info from the lambda vec128 layout.
    • This information was unused, and seemed non-trivial to preserve via the frontend layouts. It also wasn't really useful in the first place, since all simd operations define the relevant vector layouts.
  2. Adds a new Vec128 sort and unboxed versions of our 128-bit simd vector types.
  3. Duplicates the simd vector tests for unboxed vectors.
  4. Adds box/unbox primitives for vec128 layout

Reviewable by commit.

Three features remain unsupported:

Currently the compiler will raise in these cases, but they will be addressed in later PRs.

@TheNumbat TheNumbat added typing unboxed types lambda Lambda language changes simd SIMD support labels Aug 22, 2024
Copy link
Contributor

@ccasin ccasin left a comment

Choose a reason for hiding this comment

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

Really sorry that, due to ICFP prep, ICFP, and the sprint, it took me so long to get to this. Various comments below. I'd also like to talk through the story about how this will work in the tree (want to avoid jsoo issues like we had with float32), but perhaps we can talk through that when we meet tomorrow.

I've read everything under ocaml. Please also find appropriate reviewers for the middleend and backend bits. (It may make sense for them to review the tests as well, but probably you'll want to address my requests for more tests first)

ocaml/typing/predef.ml Show resolved Hide resolved
ocaml/typing/jkind.ml Outdated Show resolved Hide resolved
tests/simd/basic_u.ml Show resolved Hide resolved
ocaml/lambda/lambda.ml Show resolved Hide resolved
ocaml/typing/typedecl.ml Outdated Show resolved Hide resolved
ocaml/typing/typeopt.ml Show resolved Hide resolved
ocaml/typing/typeopt.ml Outdated Show resolved Hide resolved
tests/simd/basic_u.ml Show resolved Hide resolved
@TheNumbat
Copy link
Contributor Author

@mshinwell has looked over the changes under middle_end/flambda2

@mshinwell
Copy link
Collaborator

Not really, I just had a question!

Copy link
Contributor

@ccasin ccasin left a comment

Choose a reason for hiding this comment

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

Approved for the front-end bits. Obviously don't merge until we're also ready to merge the PRs fixing the fatal errors.

@TheNumbat TheNumbat changed the base branch from main to fl2-static-block-load-store-index September 26, 2024 17:05
Base automatically changed from fl2-static-block-load-store-index to main October 4, 2024 13:01
@TheNumbat TheNumbat merged commit 7260075 into main Oct 4, 2024
16 checks passed
@TheNumbat TheNumbat deleted the unboxed-vec128 branch October 4, 2024 16:08
lukemaurer pushed a commit to lukemaurer/flambda-backend that referenced this pull request Oct 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lambda Lambda language changes simd SIMD support typing unboxed types
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants