>> This creates a nasty asymmetry in the sense that gcc's own optimizations >> will be able to use all target features (because the compiler knows that >> it is OK to use specific features like AVX instructions) whereas the >> user has no way to hand-optimize where this becomes necessary. At least >> not using this nice mechanism. > > They can, just not based on preprocessor macros. I was thinking about decisions at compile time (along the lines of "ah, I'm in the AVX-specific version of the function, therefore I will call AVX intrinsics"), and I don't see a way to make them without access to macros. At runtime this is of course possible. Cheers, Martin