-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Vector64 and Vector128.Create doesn't generate movi for long immediates #36254
Comments
I was going to suggest using |
Thanks for reporting it @tannergooding . Perhaps |
Possibly, but it seems like something that is very easy to hit if you have an API that can take either an I'd think that you really don't care if it is an |
@tannergooding Can you give an example when Vector128.Create does not lower to movi? Regarding your comment
I don't think this is a case. GT_CNS_LNG should never appear in the IR on 64-bit target |
Ah I see, Looks like its missing because we get:
|
@kunalspathak milestone? Seems like 5.0, so putting it there for now. |
@tannergooding - Can you confirm if you will be optimizing |
I will not be. Optimizing the casts is a more general issue and one we hit on x86/x64 as well. |
I can, however, see if it is relatively easy to handle and address it in a follow up PR. |
Vector64.Create
andVector128.Create
don't generatemovi
as the other types do for immediate inputs. This appears to be because the logic is usingIsCnsIntOrI
whioch will missGT_CNS_LNG
: https://github.com/dotnet/runtime/blob/master/src/coreclr/src/jit/lowerarmarch.cpp#L933-L957CC. @kunalspathak, @CarolEidt, @echesakovMSFT
The text was updated successfully, but these errors were encountered: