-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
JIT: Small primitives on arm32/apple arm64 ABI need explicit normalization to 32 bits #101046
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
in-pr
There is an active PR which will close this issue when it is merged
Milestone
Comments
dotnet-issue-labeler
bot
added
the
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
label
Apr 15, 2024
dotnet-policy-service
bot
added
the
untriaged
New issue has not been triaged by the area owner
label
Apr 15, 2024
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
dotnet-policy-service
bot
removed
the
untriaged
New issue has not been triaged by the area owner
label
Apr 15, 2024
jakobbotsch
added
the
Priority:2
Work that is important, but not critical for the release
label
May 1, 2024
jakobbotsch
removed
the
Priority:2
Work that is important, but not critical for the release
label
May 15, 2024
jakobbotsch
added a commit
to jakobbotsch/runtime
that referenced
this issue
Aug 13, 2024
dotnet-policy-service
bot
added
the
in-pr
There is an active PR which will close this issue when it is merged
label
Aug 13, 2024
jakobbotsch
added a commit
to jakobbotsch/runtime
that referenced
this issue
Aug 13, 2024
… and Apple arm64 Fix dotnet#101046
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
in-pr
There is an active PR which will close this issue when it is merged
ARM32 and Apple ARM64 ABIs both require normalization up to 32 bits for primitives. For example, a
ushort
must always be zero extended to 32 bits andshort
must always be sign extended.The JIT does not explicitly insert this normalization anywhere. The following example using inline IL shows bad codegen on arm32 and apple arm64 because of it:
arm32 codegen:
apple arm64 codegen:
This issue is probably not reproducible in IL created from C# since the JIT generally keeps values zero/sign extended to 32 bits.
The text was updated successfully, but these errors were encountered: