-
Notifications
You must be signed in to change notification settings - Fork 5k
Remove ymm embedded rounding from AVX10.2 #115235
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
base: main
Are you sure you want to change the base?
Conversation
Note regarding the
|
1 similar comment
Note regarding the
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR removes support for YMM embedded rounding for AVX10.2 by reverting the APIs and intrinsic cases that were introduced for rounding modes. Key changes include:
- Removal of intrinsic templates and test cases that relied on embedded rounding.
- Removal of API overloads with rounding mode parameters from the runtime intrinsics and corresponding platform not supported stubs.
- Updates to the JIT and emitter code to eliminate handling of the YMM embedded rounding bit.
Reviewed Changes
Copilot reviewed 7 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
File | Description |
---|---|
src/tests/Common/GenerateHWIntrinsicTests/GenerateHWIntrinsicTests_X86.cs | Removed embedded rounding test templates. |
src/libraries/System.Runtime.Intrinsics/ref/System.Runtime.Intrinsics.cs | Removed rounding-mode overloads for AVX10v2 intrinsics. |
src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx10v2.cs | Eliminated rounding-related overloads and comments. |
src/libraries/System.Private.CoreLib/src/System/Runtime/Intrinsics/X86/Avx10v2.PlatformNotSupported.cs | Removed rounding-related stubs. |
src/coreclr/jit/hwintrinsiclistxarch.h | Updated intrinsic registration definitions to remove embedded rounding intrinsics. |
src/coreclr/jit/gentree.cpp | Removed case statements for embedded rounding intrinsics. |
src/coreclr/jit/emitxarch.cpp | Removed uBIT constant and related handling for embedded rounding. |
Files not reviewed (2)
- src/tests/JIT/HardwareIntrinsics/X86/Shared/SimpleBinOpEmbRounding.template: Language not supported
- src/tests/JIT/HardwareIntrinsics/X86/Shared/SimpleUnaryOpEmbRounding.template: Language not supported
CC. @dotnet/jit-contrib, @EgorBo for secondary review |
breaking-change |
Added When you commit this breaking change:
Tagging @dotnet/compat for awareness of the breaking change. |
We just need to open an issue describing the break (or rather functional change from prerelease) using https://github.com/dotnet/docs/issues/new?template=02-breaking-change.yml |
Will merge once the breaking change doc has been created. |
Breaking change issue - dotnet/docs#46000 |
Looks like conflicts from one of the other PRs that got merged |
80e2bc0
to
384a720
Compare
resolved the merge conflicts and ran the tests again. LGTM |
This PR reverts the YMM enbedded rounding introduced in .NET for
AVX10.2
hardware. addresses #115060. This change was introduced in #111209Breaking change doc - dotnet/docs#46000
Testing
Emitter tests and superpmi tests not needed since we are removing APIs here.
SDE tests

Avx10.2 disabled
Avx10.2 enabled
