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

Arm64: Always use SIMD features #66411

Merged
merged 2 commits into from
Mar 12, 2022
Merged

Conversation

kunalspathak
Copy link
Member

@kunalspathak kunalspathak commented Mar 9, 2022

On Arm64, we always support SIMD types but in the code base, we were sometimes relying on featureSIMD flag which can be false in case COMPlus_FeatureSIMD=0 and doesn't work on Arm64. On Arm64, we always need SIMD features to support ABI handling. Modified all the usages to instead use supportSIMDTypes().

Will fix #64972

Thanks @tannergooding for your the references:

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Mar 9, 2022
@ghost ghost assigned kunalspathak Mar 9, 2022
@ghost
Copy link

ghost commented Mar 9, 2022

Tagging subscribers to this area: @JulieLeeMSFT
See info in area-owners.md if you want to be subscribed.

Issue Details

On Arm64, we always support SIMD types but in the code base, we were sometimes relying on featureSIMD flag which can be false in case COMPlus_FeatureSIMD=0. Modified all the usages to instead use supportSIMDTypes().

Reference: #66206, #11701 and #9473.

Author: kunalspathak
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@kunalspathak
Copy link
Member Author

@dotnet/jit-contrib

@kunalspathak
Copy link
Member Author

The underlying problem #64972 (comment) still needs a fix, but this will unblock the outerloop.

@tannergooding
Copy link
Member

We should also make the backing field private to enforce usage goes through the method.

Might also be good to ensure https://github.com/dotnet/runtime/blob/main/src/coreclr/jit/compiler.cpp#L2670 is either always setting the field to true on Arm64 or that the field doesn't exist on Arm64.

@kunalspathak
Copy link
Member Author

We should also make the backing field private to enforce usage goes through the method.

It is already private and the usage was in Compiler methods.

Might also be good to ensure https://github.com/dotnet/runtime/blob/main/src/coreclr/jit/compiler.cpp#L2670 is either always setting the field to true on Arm64 or that the field doesn't exist on Arm64.

I can make that x64 only field.

@kunalspathak
Copy link
Member Author

ping

@kunalspathak kunalspathak merged commit 6e26872 into dotnet:main Mar 12, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Apr 11, 2022
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Test failure JIT\\Regression\\JitBlue\\GitHub_35821\\GitHub_35821\\GitHub_35821.cmd
2 participants