|[eigen] check for old gcc (inadvertently?) catching intel compiler and disabling SSE|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
in Eigen/Core, there is a check that disables SSE for gcc compilers <
4.2. Unfortunately it gets triggered under the *intel* compiler.
#if (defined __SSE2__) && ( (!defined __GNUC__) ||
The intel compiler masquerades by defining __GNUC__ and related version
variables to mimic the gcc version installed on the system.
The effect in Eigen is that the intel compiler may not get a chance to
use SSE even if it can.
[user@centos58-64 ~/]$ gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54)
[user@centos58-64 ~/]$ icpc -dM -E - < /dev/null | grep GNUC
#define __GNUC__ 4
#define __GNUC_MINOR__ 1
#define __GNUC_PATCHLEVEL__ 2
Intel compilers at least as recent as 12.1.3 20120212 exhibit this GNUC
 What is the problem with gcc 4.1 and SIMD? The version check in
Eigen seems originate at changeset 246:566b4821dd1b , but I could not
easily tell what problem it was fixing.
I have some systems still running RedHat 5.x, which has gcc 4.1 as the
default compiler. I'd like to support them with Eigen+SIMD on
Intel(first choice), and/or platform-default gcc.