Skip to content

Conversation

@tannergooding
Copy link
Member

@tannergooding tannergooding commented Jul 29, 2024

Customer Impact

  • Customer reported
  • Found internally

This resolves #96156

.NET 8 introduced support for the new AVX512 instruction set and this brought along support for several optimizations when the underlying hardware supported this feature. However, one such place was missing the check for said hardware support and would cause incorrect codegen on older hardware which could lead to incorrect results and behavior.

Regression

  • Yes
  • No

This is a regression as it impacts existing code and hardware when run on the .NET 8 runtime.

Testing

An explicit test was added covering the regression and additional validation was done against other callsites checking OperIsEmbBroadcastCompatible to ensure that they were all correctly validating that the target hardware is AVX512 capable.

Risk

Low. The failure here is well understood and has had a fix in the .NET 9 previews for almost 2 months now.

@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jul 29, 2024
@dotnet-policy-service
Copy link
Contributor

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

@tannergooding
Copy link
Member Author

CC. @AndyAyersMS, the backport just needed to be 1 line here. All the other callsites were correctly filtering based on whether the JIT supported AVX512 already.

@tannergooding tannergooding linked an issue Jul 29, 2024 that may be closed by this pull request
@tannergooding
Copy link
Member Author

CC. @jeffschwMSFT

Copy link
Member

@jeffschwMSFT jeffschwMSFT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm. we will take for consideration in 8.0.x

@jeffschwMSFT jeffschwMSFT added the Servicing-consider Issue for next servicing release review label Jul 30, 2024
@jeffschwMSFT jeffschwMSFT added this to the 8.0.x milestone Jul 30, 2024
@rbhanda rbhanda added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jul 30, 2024
@rbhanda rbhanda modified the milestones: 8.0.x, 8.0.9 Jul 30, 2024
@tannergooding tannergooding merged commit cd87c0b into dotnet:release/8.0-staging Jul 30, 2024
@tannergooding tannergooding deleted the fix-96156 branch July 30, 2024 19:01
@github-actions github-actions bot locked and limited conversation to collaborators Aug 30, 2024
@rbhanda rbhanda modified the milestones: 8.0.9, 8.0.10 Oct 7, 2024
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 Servicing-approved Approved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

unreliable codegen around vbroadcastss in .NET 8 release builds

4 participants