I have a Windows x64 C++ program which is compiled by MSVC 12 without AVX support (no /arch:AVX in compile options).
And I have a crash report from one customer with Core i7 4700MQ on Win7. Exception code is c000001d (illegal instruction), and exception offset points to "vmovd r9,xmm0" instruction inside sin() function. I've tried two different builds with this user and in both cases it points to this same instruction.
Looks like msvc library version of sin() intrinsic have special AVX code path even if compiled without AVX support. And this code works fine on older i3 processors which didn't have AVX.
So what can cause this exception on this particular i7? Same code is running without any problems for many customers with wide rage of CPUs.
Maybe AVX can be somehow disabled in OS settings/BIOS and sin() code fails to check this? Or maybe there was some OS update which added AVX support and without it any AVX code triggers c000001d?