Hi, we compile (C++ 18) a DLL that contains a lot of HPC code with a bunch of otpimizations. The problem is that it doesn't work on all systems.
It works on an Xeon X5482 but not on a Core I7-2720QM system and not on a Xeon E5-2696V3 system. All should support at least SSE4.1, which we use, so that shouldn't make a difference. Any idea about the cause? Or how to track this down?
Viele Grüsse. Robert
@Tim: I'm building with /QxSSE4.1 which I assume is the same. Or is there anything else to consider? Because the app works on an Intel Core i7 (4770HQ, 4870HQ, 4980HQ) ("Haswell") as well.
I'm still not sure I fully understand. Is /arch:SSE4.1 something different than /QxSSE4.1? Or do you mean using a different architecture than SSE.41? But all processors should support it or not?
[after some RTFM I found]:
On Windows systems, options /Qx and /arch are mutually exclusive.
/Qx produces binaries that display a fatal run-time error if they are executed on unsupported processors, including all non-Intel processors (!!). The code does a CPU check and fails if it's not an Intel CPU. With /Od (Windows*), no CPU check is performed but may result in undefined behavior.
produces binaries that should run on processors not made by Intel that implement the same capabilities as the corresponding Intel processors.
with /QxSSE4.1: it should work on all Intel processors supporting SSE4.1.
could you file a bug report at Intel Online Service center?