-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Struct promotion should promote 32-byte SIMD on 16-byte alignment #12623
Comments
Hi @sandreenko , can you provide a little clarification on this issue if you know the details? I spent some time this morning trying to reproduce a situation where a
to not promote the fields Moreover, it looks like the function mentioned in the comment above |
Hi @JulieLeeMSFT , do you know if anyone can help me investigate/understand this issue? |
Adding @kunalspathak if he has a quick answer.
|
the code from the header is here: runtime/src/coreclr/jit/lclvars.cpp Line 1810 in 99dd33b
it is what I did to repro it. |
I don't know much about this issue at the top of my head. I will have to spend some time in understanding the surrounding feature logic and I don't think I will get time for at least next few weeks. |
@kunalspathak ok, please let me know if you do plan to investigate and I will be happy to help dig further as well. |
This code in
Compiler::StructPromotionHelper
:Won't allow promotion of a
TYP_SIMD32
field unless it's on a 32-byte-aligned offset. However, since the stack is not 32-byte aligned this is not a useful condition.This should probably either use
genTypeAlignments[]
or perhaps the minimum of the type size andSTACK_ALIGN
.category:cq
theme:structs
skill-level:beginner
cost:small
impact:small
The text was updated successfully, but these errors were encountered: