Depending on whether a target feature is enabled or not,
programs may choose different algorithm or different
builtin functions to use.
Instead of let each target to emit predefined macros
for specific target feature, this patch introduce a
function-like builtin macro __has_target_feature.
The first question that comes to mind for me is: why is __has_feature not sufficient?