This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]