Skip to content

Implement missing AVX512 intrinsics#1600

Merged
Amanieu merged 7 commits into
rust-lang:masterfrom
sayantn:completionist
Jul 6, 2024
Merged

Implement missing AVX512 intrinsics#1600
Amanieu merged 7 commits into
rust-lang:masterfrom
sayantn:completionist

Conversation

@sayantn

@sayantn sayantn commented Jun 30, 2024

Copy link
Copy Markdown
Contributor

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

rustbot commented Jun 30, 2024

Copy link
Copy Markdown
Collaborator

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

bors commented Jun 30, 2024

Copy link
Copy Markdown
Contributor

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

@bors

bors commented Jun 30, 2024

Copy link
Copy Markdown
Contributor

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

@TDecking

Copy link
Copy Markdown
Contributor

I've opened up #1602 to finish AVX512BW.

@sayantn

sayantn commented Jun 30, 2024

Copy link
Copy Markdown
Contributor Author

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
sayantn added 3 commits July 1, 2024 12:24
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
@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