[Bug other/56298] wmmintrin.h aborts compilation on the machines without AES

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Feb 12 13:17:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56298

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-12 13:16:47 UTC ---
The intrinsics do _not_ work if the corresponding CPU ISA feature is not
enabled
on the command-line.  That's a fact - whether that's good is another question.
A CPU feature agnostic intrinsics implementation would need to use inline-asm.

A workaround is to put the AES-NI using function into a separate translation
unit that you compile with -maes.

This bug also applies to the new multiversioning feature or the target
attribute feature all of which do not allow intrinsic header uses without
globally enabling CPU ISA features (well, for the target attribute you
could switch the ISA features _off_ in all places you do not want to use
them ... ick).

Thus, confirmed.  The situation isn't really desirable (but maybe not
easily fixable, too).

The Intel compiler intrinsic headers do not use inline functions
but the intrinsic decls directly (as if they were builtins).

GCC 4.1 simply effectively made the intrinsics headers empty (by wrapping
them in #ifdef FEATURE), at least since GCC 4.3 we have the #errors.



More information about the Gcc-bugs mailing list