-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Do not mark st1 StoreSelectedScalar variant as needing consecutive registers #95052
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
Conversation
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsIn #93223, we added runtime/src/coreclr/jit/lsrabuild.cpp Lines 1883 to 1896 in 79e42f9
In codegen, we expect to see a single bit set for "one register" assigned to the temp, but in this case, we were assiging a different "copy" register to the use. I have fixed by introducing new intrinsic ids for various Fixes: #95025
|
|
The change LGTM! Thanks for fixing it. |
|
@dotnet/jit-contrib |
In #93223, we added
StoreSelectedScalarintrinsic and some of the variants of that API that takes tuple as input needs consecutive registers. However, in the hwintrinsinc table, we were falsely marking the existing API as "NeedsConsecutiveRegister". Due to this, in jitstressregs, when we limit the available registers, we were prohibiting restricting the limited registers for a definition of internal temp, but were setting limitations on the use of that internal temp.runtime/src/coreclr/jit/lsrabuild.cpp
Lines 1883 to 1896 in 79e42f9
In codegen, we expect to see a single bit set for "one register" assigned to the temp, but in this case, we were assiging a different "copy" register to the use.
I have fixed by introducing new intrinsic ids for various
StoreSelectedScalarVectorNxMvariants, similar to how we do forLoadAndInsertScalarVectorNxMAPIs. For existingStoreSelectedScalarAPI that doesn't need consecutive registers, we now do not mark with that flag anymore.Fixes: #95025