Skip to content

Add AVX10.2 Intrinsics#2045

Draft
sayantn wants to merge 11 commits intorust-lang:mainfrom
sayantn:avx10
Draft

Add AVX10.2 Intrinsics#2045
sayantn wants to merge 11 commits intorust-lang:mainfrom
sayantn:avx10

Conversation

@sayantn
Copy link
Contributor

@sayantn sayantn commented Mar 1, 2026

Note: requires rust-lang/rust#153068, contains a temporary fix in order to pass tests

  • zero-extending partial moves
  • sum of absolute differences
  • dot product
  • saturating truncating float->integer conversions
  • minmax
  • saturating float->int8 conversions
  • packing float32->float16 conversions
  • biasing float16->float8 conversions
  • float16->float8 conversions
  • float8->float16 conversions
  • bfloat16 instructions
    • bfloat16 minmax
    • saturating bfloat16->int8 conversions

BFloat16 intrinsics cannot be done now, because the LLVM intrinsics use bf16 vectors, and we cannot link to them directly. Requires rust-lang/rust#140763 or some other workaround.

AVX10_V1_AUX intrinsics

These instructions are supported in a subset of AVX10.2, but neither GCC nor LLVM supports this feature yet.
TODO: Modify the #[target_feature] attribute once LLVM starts supporting this.

  • regular and packing float16->float8 conversions
  • packing float32->float16 conversions
  • biasing float16->float8 conversions
  • float8->float16 conversions
  • integer dot product instructions

LLVM Bugs

@sayantn sayantn force-pushed the avx10 branch 3 times, most recently from fe21d7e to 69347b7 Compare March 3, 2026 00:52
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.

1 participant