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

Implement missing AVX512 intrinsics #1600

Merged
merged 7 commits into from
Jul 6, 2024
Merged

Conversation

sayantn
Copy link
Contributor

@sayantn sayantn commented Jun 30, 2024

This PR, along with #1602, completes the AVX512 intrinsics.

  • AVX512F
  • AVX512_BF16
  • VEX variants
    • AVX-VNNI
    • AVX-VNNI-INT8
    • AVX-NE-CONVERT
    • AVX-IFMA
    • AVX-VNNI-INT16

This introduces a new bf16 type in core_arch::x86. This is gated by stdarch_x86_avx512_bf16 (rust-lang/rust#127356) and is used by 4 intrinsics in avx512bf16 and avxneconvert

Some intrinsics in avxneconvert couldn't be implemented due to no f16
Some intrinsics use inline asm due to lack of i1 and bfloat16 type in Rust

@rustbot
Copy link
Collaborator

rustbot commented Jun 30, 2024

r? @Amanieu

rustbot has assigned @Amanieu.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@bors
Copy link
Contributor

bors commented Jun 30, 2024

☔ The latest upstream changes (presumably 5ccd76c) made this pull request unmergeable. Please resolve the merge conflicts.

@bors
Copy link
Contributor

bors commented Jun 30, 2024

☔ The latest upstream changes (presumably 165996e) made this pull request unmergeable. Please resolve the merge conflicts.

@TDecking
Copy link
Contributor

I've opened up #1602 to finish AVX512BW.

@sayantn
Copy link
Contributor Author

sayantn commented Jun 30, 2024

So I am starting the VEX variants.

@sayantn sayantn marked this pull request as ready for review June 30, 2024 18:17
@sayantn sayantn force-pushed the completionist branch 3 times, most recently from 99eb11f to c171c7c Compare July 1, 2024 06:49
They should use a platform-specific address management.
Modified stdarch-test to accept VEX versions
@sayantn sayantn force-pushed the completionist branch 2 times, most recently from bcf81e8 to 36bc1ad Compare July 1, 2024 10:45
sayantn and others added 3 commits July 2, 2024 16:36
These cannot be linked with LLVM because of the lack of `bfloat16` and `i1` types in Rust. So, inline asm was the only way
@Amanieu Amanieu merged commit 3dd9579 into rust-lang:master Jul 6, 2024
30 checks passed
@sayantn sayantn deleted the completionist branch July 6, 2024 16:25
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.

5 participants