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.