================
@@ -253,6 +255,19 @@ bool SemaPPC::CheckPPCBuiltinFunctionCall(const TargetInfo
&TI,
case PPC::BI__builtin_##Name:
\
return BuiltinPPCMMACall(TheCall, BuiltinID, Types);
#include "clang/Basic/BuiltinsPPC.def"
+ case PPC::BI__builtin_amo_lwat:
+ case PPC::BI__builtin_amo_ldat: {
+ llvm::APSInt Result;
+ if (SemaRef.BuiltinConstantArg(TheCall, 2, Result))
+ return true;
+ unsigned Val = Result.getZExtValue();
+ static constexpr unsigned ValidFC[] = {0, 1, 2, 3, 4, 6, 8};
+ if (llvm::is_contained(ValidFC, Val))
+ return false;
+ Expr *Arg = TheCall->getArg(2);
+ return SemaRef.Diag(Arg->getBeginLoc(), diag::err_argument_invalid_range)
+ << toString(Result, 10) << "0-4, 6" << "8" << Arg->getSourceRange();
+ }
----------------
lei137 wrote:
Can we place this above the custom mma builtin handling? Would be good to keep
this together with the other special sema check handling.
https://github.com/llvm/llvm-project/pull/168746
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits