-
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
Don't return 0
from getMaxVectorByteLength
when intrinsics are disabled
#87420
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsThis works around the issues tracked by:
These represent existing issues that were exposed by #85551 as it started having The proper fixes for these are likely going to be a bit more involved and may require distinguishing what exists as required ABI handling (and therefore must use SIMD) vs what only exists as a perf optimization and therefore needs its fallback path to operate correctly even if the ISA is not available.
|
/azp run runtime-coreclr jitstress-isas-x86, runtime-coreclr jitstress-isas-arm |
Azure Pipelines successfully started running 2 pipeline(s). |
CC. @dotnet/jit-contrib. This resolves all the As per the top post, this is namely a workaround and puts us back to our previous behavior. There are some underlying pre-existing issues that would be good to resolve longer term. |
I assume it happens because we have all the SIMD stuff that can be disabled by EnableXXX/HWIntrinsics, but also, we have direct SIMD usages where we just assume that the baseline simd is always around? |
I believe part of it is that, yes. But I think more-so there is ABI handling that is split between the two today and it should instead live exclusively on one or the other. |
This works around the issues tracked by:
These represent existing issues that were exposed by #85551 as it started having
getMaxVectorByteLength
return 0 if the relevant ISAs were disabled and therefore caused the JIT to go down its fallback paths (i.e. the path that might be executed on x86 Unix or Arm32).The proper fixes for these are likely going to be a bit more involved and may require distinguishing what exists as required ABI handling (and therefore must use SIMD) vs what only exists as a perf optimization and therefore needs its fallback path to operate correctly even if the ISA is not available.