================
@@ -112,6 +141,29 @@ bool SemaPPC::CheckPPCBuiltinFunctionCall(const TargetInfo
&TI,
case PPC::BI__builtin_ppc_packed2zoned:
case PPC::BI__builtin_ppc_zoned2packed:
return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 1);
+ case PPC::BI__builtin_ppc_bcdshift:
+ case PPC::BI__builtin_ppc_bcdshiftround:
+ case PPC::BI__builtin_ppc_bcdtruncate: {
+
+ QualType Arg0Type = TheCall->getArg(0)->getType();
+ QualType Arg1Type = TheCall->getArg(1)->getType();
+ QualType Arg2Type = TheCall->getArg(2)->getType();
+
+ // Arg0 must be vector unsigned char
+ if (VerifyVectorType(Arg0Type, TheCall->getArg(0)->getBeginLoc(), 0))
+ return true;
+
+ // Arg1 must be integer type
+ if (VerifyIntType(Arg1Type, TheCall->getArg(1)->getBeginLoc(), 1))
+ return true;
+
+ // Arg2 must be integer type
+ if (VerifyIntType(Arg2Type, TheCall->getArg(2)->getBeginLoc(), 2))
+ return true;
----------------
lei137 wrote:
I don't think this is needed since you are checking arg2 to be a constant below.
https://github.com/llvm/llvm-project/pull/154715
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits