Skip to content
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

Use maxSIMDStructBytes when determining largest promotable struct size #84623

Merged
merged 2 commits into from
Apr 12, 2023

Conversation

tannergooding
Copy link
Member

@tannergooding tannergooding commented Apr 11, 2023

This expands struct promotion to support 4x Vector512, but only on compatible hardware

@ghost ghost assigned tannergooding Apr 11, 2023
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Apr 11, 2023
@ghost
Copy link

ghost commented Apr 11, 2023

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak
See info in area-owners.md if you want to be subscribed.

Issue Details

null

Author: tannergooding
Assignees: tannergooding
Labels:

area-CodeGen-coreclr

Milestone: -

@tannergooding tannergooding marked this pull request as ready for review April 12, 2023 12:18
@tannergooding
Copy link
Member Author

CC. @dotnet/jit-contrib

@tannergooding
Copy link
Member Author

tannergooding commented Apr 12, 2023

Diffs

No diffs, as expected. Except there is a minor 2-byte change on Windows x86 for a generic Dataflow constructor scenario. Looks to be because we don't contain a constant anymore due to a new:

+;  V14 tmp7         [V14,T08] (  3,  3   )    long  ->  [ebp-8CH]   do-not-enreg[] V06.<unknown field>(offs=0x80) P-DEP "field V06.<unknown field> (fldOffset=0x80)"

There is a +0.01% TP hit due to the call to determine register size rather than directly hardcoding a constant. I imagine we could fix this by caching the largest vector size instead of doing a dynamic query each time...

@tannergooding tannergooding merged commit d66287c into dotnet:main Apr 12, 2023
@tannergooding tannergooding deleted the can-promote-zmm branch April 12, 2023 12:31
@ghost ghost locked as resolved and limited conversation to collaborators May 12, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants