-
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] ARM64 Fix - Use SetOper
instead of ChangeOper
to preserve flags
#85076
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue DetailsDescriptionResolves #84966 The changes from #84605 resulted in the failing test. I narrowed down the IL to this:
This is an I added
|
/azp run runtime-coreclr jitstress |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-coreclr jitstress |
Azure Pipelines successfully started running 1 pipeline(s). |
8b9c63c
to
166babb
Compare
SetOper
instead of ChangeOper
to preserve flags
/azp run runtime-coreclr jitstress |
Azure Pipelines successfully started running 1 pipeline(s). |
@dotnet/jit-contrib This is ready. // cc @jakobbotsch |
Description
Resolves #84966
The changes from #84605 resulted in the failing test.
I narrowed down the IL to this:
This is an
unordered
comparison against a float ZERO and float NAN. In the importer, when we see this, theGTF_RELOP_NAN_UN
flag gets set on the relop. However, if we decide to later swap the relop, callingChangeOper
will clear this bit which is what resulted in the test failing.The fix is to use
SetOper
as it will not clear this flag.