Clang has mechanism to specify required target features of a built-in function. This patch adds such definitions to Altivec, VSX, HTM, PairedVec and MMA builtins.
This will help frontend to detect incompatible target features of bulitin when using __attribute__((target("feature"))) syntax. For example,
__attribute__((target("no-vsx"))) void foo(vector double* d) { vector double a, b; *d = __builtin_vsx_xvmaxdp(a, b); // This would crash without this patch. }
Please change this to 207.