nemanjai added a comment. Actually, while you're here, can you please remove all calls to `SemaFeatureCheck()` that test builtins which are only available on a specific CPU? The Sema checking happens too early before the target info is populated, which does not allow for a very common idiom where the feature is enabled for a function/region using an attribute or a pragma.
For example, we received a report from Eigen that something like this: __attribute__((target("mma,prefix-instrs"))) void test5(unsigned char *vqp, unsigned char *vpp, vector unsigned char vc, unsigned char *resp) { __vector_quad vq = *((__vector_quad *)vqp); __vector_pair vp = *((__vector_pair *)vpp); __builtin_mma_pmxvf64ger(&vq, vp, vc, 0, 0); *((__vector_quad *)resp) = vq; } vector unsigned char test6(vector unsigned char a, vector unsigned char b) { return a + b + (vector unsigned char)121; } Cannot be done with Clang because it produces errors such as: error: this builtin is only valid on POWER10 or later CPUs __builtin_mma_pmxvf64ger(&vq, vp, vc, 0, 0); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ================ Comment at: clang/include/clang/Basic/BuiltinsPPC.def:83-84 BUILTIN(__builtin_ppc_lwarx, "iiD*", "") -BUILTIN(__builtin_ppc_lharx, "ssD*", "") -BUILTIN(__builtin_ppc_lbarx, "ccD*", "") +TARGET_BUILTIN(__builtin_ppc_lharx, "ssD*", "", "isa-v206-instructions") +TARGET_BUILTIN(__builtin_ppc_lbarx, "ccD*", "", "isa-v206-instructions") BUILTIN(__builtin_ppc_stdcx, "iLiD*Li", "") ---------------- Please change this to 207. ================ Comment at: clang/include/clang/Basic/BuiltinsPPC.def:87-88 BUILTIN(__builtin_ppc_stwcx, "iiD*i", "") -BUILTIN(__builtin_ppc_sthcx, "isD*s", "") -BUILTIN(__builtin_ppc_stbcx, "icD*i", "") +TARGET_BUILTIN(__builtin_ppc_sthcx, "isD*s", "", "isa-v206-instructions") +TARGET_BUILTIN(__builtin_ppc_stbcx, "icD*i", "", "isa-v206-instructions") BUILTIN(__builtin_ppc_tdw, "vLLiLLiIUi", "") ---------------- Similarly to the loads. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D143467/new/ https://reviews.llvm.org/D143467 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits