Uh oh!
There was an error while loading. Please reload this page.
Fix arm64 scalar intrinsic use with small arguments - #73876
Conversation
The code already uses `emitActualTypeSize` in the scalar case; this also uses `genActualType` to get the "actual" type of small types when deciding the intrinsic base type, used in codegen. Fixesdotnet#73804
ghost
commented
Aug 12, 2022
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsThe code already uses Fixes #73804
|
BruceForstall
commented
Aug 13, 2022
BruceForstall
commented
Aug 13, 2022
@tannergooding @dotnet/jit-contrib PTAL |
| baseType = node->TypeGet(); | ||
| } | ||
| if (category == HW_Category_Scalar) |
There was a problem hiding this comment.
What about the HW_Category_Special category? Likely the above three cases that get a type via GenTree::TypeGet should be changed to use genActualType(tree) instead.
There was a problem hiding this comment.
I was trying to make a targeted change, and hadn't fully investigated all the processing that "Special" nodes have. It turns out that this class is only used on arm64, and the only "special" instruction is "Yield", which has no arguments, and for which the "baseType" is ignored. So I could just make the genActualType unconditional as you suggest.
adamsitnik
commented
Aug 13, 2022
@BruceForstall@jakobbotsch can this PR be merged now? |
jakobbotsch
commented
Aug 13, 2022
I am ok with merging this as is if you are blocked on this. |
adamsitnik
commented
Aug 14, 2022
@BruceForstall@jakobbotsch thank you both! |
The code already uses
emitActualTypeSizein the scalar case;this also uses
genActualTypeto get the "actual" type of smalltypes when deciding the intrinsic base type, used in codegen.
Fixes#73804