[release/9.0-staging] Use minipal_getcpufeatures to detect for AVX (#113032) by cshung · Pull Request #113489 · dotnet/runtime

Backport of # to release/9.0-staging

/cc @cshung

Customer Impact

@Typhon226 reported on #112897 that, on some machines, buggy behavior in __builtin_cpu_supports for Unix platforms could lie to us that it supports AVX512 when it doesn't. This could lead to runtime crashes.

Regression

  • Yes
  • No

The regression was introduced in PR #98712, commit 68cf2dd when I enabled VxSort for unix platforms, but this is not the root cause.

Testing

Local testing is done on various machines, but none of them hit the __builtin_cpu_supports buggy behavior, so it worked both before and after the changes.
#113032 (comment)

Customer testing is done on the machines that hit the issue, and the fixed version works as expected, for both #112897 (comment) (9.0 binaries) and #112897 (comment) (10.0 binaries)

Risk

The risk is low, the same function is used by the JIT to determine if the CPU supports AVX512.