-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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 altjit uses wrong return type for a wrapped Vector128. #38980
Comments
@CarolEidt , @BruceForstall could you please take a look? what do you think is the best solution here?
cc @dotnet/jit-contrib |
This is an interesting finding where altjit generated different code than that on target machine. I can imagine that it is difficult to keep altjit in sync, I wonder how many such cases might be there in JIT code base where code generated differs. I think it is of lesser importance because altjit is just used as convivence tool for JIT developers (at least that's what my understanding of altjit is), so it is ok to find such cases on need basis. |
I think a simple solution in this case is to change |
Won't it produce incorrect result on x64 windows? |
Those functions should never be used on x86/x64 except by the altjits. It's not under |
I have tried Bruce's suggestion, but it was not enough, arm64altjit is returning |
It is altjit only, pushing to future. |
For a test:
arm64 native will use:
and generate
when altjit will use:
and generate:
That was found in #37745.
The issue is probably in this VM code:
runtime/src/coreclr/src/vm/class.cpp
Lines 1655 to 1668 in 255eea0
that we run on native arm64, but have disabled for altjit.
The issue prevents us from an optimization that would fail with altjit with the current implementation.
category:correctness
theme:altjit
skill-level:intermediate
cost:medium
The text was updated successfully, but these errors were encountered: