The .NET JIT compiler absolutely does query CPUID flags and generates different optimized code depending on available features, as well as the performance profile of each CPU model. This is similar to always passing `-march=native` to GCC.
This can have a huge effect on a wide range of applications, not just those using particular CPU features. For example, each libc implementation typically has a separate implementation `memcpy()` for each set of CPU features.
Okay thank you. I need to read more on the subject the.
The "Performance Improvements in .NET" blog lists the new JIT support for instruction sets each year.
https://devblogs.microsoft.com/dotnet/performance-improvemen...