Lines Matching refs:TheCall
509 bool SemaRISCV::CheckLMUL(CallExpr *TheCall, unsigned ArgNum) { in CheckLMUL() argument
513 Expr *Arg = TheCall->getArg(ArgNum); in CheckLMUL()
518 if (SemaRef.BuiltinConstantArg(TheCall, ArgNum, Result)) in CheckLMUL()
525 return Diag(TheCall->getBeginLoc(), diag::err_riscv_builtin_invalid_lmul) in CheckLMUL()
529 static bool CheckInvalidVLENandLMUL(const TargetInfo &TI, CallExpr *TheCall, in CheckInvalidVLENandLMUL() argument
552 return S.Diag(TheCall->getBeginLoc(), in CheckInvalidVLENandLMUL()
561 CallExpr *TheCall) { in CheckBuiltinFunctionCall() argument
617 TheCall->getType()->castAs<BuiltinType>()); in CheckBuiltinFunctionCall()
620 return Diag(TheCall->getBeginLoc(), in CheckBuiltinFunctionCall()
622 << /* IsExtension */ true << TheCall->getSourceRange() << "v"; in CheckBuiltinFunctionCall()
630 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 3) || in CheckBuiltinFunctionCall()
631 CheckLMUL(TheCall, 2); in CheckBuiltinFunctionCall()
633 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) || in CheckBuiltinFunctionCall()
634 CheckLMUL(TheCall, 1); in CheckBuiltinFunctionCall()
638 TheCall->getType().getCanonicalType().getTypePtr())); in CheckBuiltinFunctionCall()
641 TheCall->getArg(0)->getType().getCanonicalType().getTypePtr())); in CheckBuiltinFunctionCall()
648 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, MaxIndex - 1); in CheckBuiltinFunctionCall()
653 TheCall->getType().getCanonicalType().getTypePtr())); in CheckBuiltinFunctionCall()
656 TheCall->getArg(2)->getType().getCanonicalType().getTypePtr())); in CheckBuiltinFunctionCall()
663 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, MaxIndex - 1); in CheckBuiltinFunctionCall()
670 QualType Op1Type = TheCall->getArg(0)->getType(); in CheckBuiltinFunctionCall()
671 QualType Op2Type = TheCall->getArg(1)->getType(); in CheckBuiltinFunctionCall()
672 return CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op1Type, 128) || in CheckBuiltinFunctionCall()
673 CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op2Type, 128) || in CheckBuiltinFunctionCall()
674 SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 31); in CheckBuiltinFunctionCall()
678 QualType Op1Type = TheCall->getArg(0)->getType(); in CheckBuiltinFunctionCall()
679 return CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op1Type, 256) || in CheckBuiltinFunctionCall()
680 SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 31); in CheckBuiltinFunctionCall()
684 QualType Op1Type = TheCall->getArg(0)->getType(); in CheckBuiltinFunctionCall()
685 return CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op1Type, 128) || in CheckBuiltinFunctionCall()
686 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31); in CheckBuiltinFunctionCall()
710 QualType Op1Type = TheCall->getArg(0)->getType(); in CheckBuiltinFunctionCall()
711 QualType Op2Type = TheCall->getArg(1)->getType(); in CheckBuiltinFunctionCall()
712 return CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op1Type, 128) || in CheckBuiltinFunctionCall()
713 CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op2Type, 128); in CheckBuiltinFunctionCall()
721 QualType Op1Type = TheCall->getArg(0)->getType(); in CheckBuiltinFunctionCall()
722 QualType Op2Type = TheCall->getArg(1)->getType(); in CheckBuiltinFunctionCall()
723 QualType Op3Type = TheCall->getArg(2)->getType(); in CheckBuiltinFunctionCall()
728 return Diag(TheCall->getBeginLoc(), in CheckBuiltinFunctionCall()
730 << /* IsExtension */ true << TheCall->getSourceRange() << "zvknb"; in CheckBuiltinFunctionCall()
732 return CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op1Type, in CheckBuiltinFunctionCall()
734 CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op2Type, in CheckBuiltinFunctionCall()
736 CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op3Type, ElemSize * 4); in CheckBuiltinFunctionCall()
741 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) || in CheckBuiltinFunctionCall()
742 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31) || in CheckBuiltinFunctionCall()
743 SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 31) || in CheckBuiltinFunctionCall()
744 SemaRef.BuiltinConstantArgRange(TheCall, 3, -16, 15) || in CheckBuiltinFunctionCall()
745 CheckLMUL(TheCall, 5); in CheckBuiltinFunctionCall()
748 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) || in CheckBuiltinFunctionCall()
749 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31) || in CheckBuiltinFunctionCall()
750 SemaRef.BuiltinConstantArgRange(TheCall, 3, -16, 15); in CheckBuiltinFunctionCall()
754 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) || in CheckBuiltinFunctionCall()
755 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31) || in CheckBuiltinFunctionCall()
756 SemaRef.BuiltinConstantArgRange(TheCall, 2, -16, 15); in CheckBuiltinFunctionCall()
760 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) || in CheckBuiltinFunctionCall()
761 SemaRef.BuiltinConstantArgRange(TheCall, 2, -16, 15); in CheckBuiltinFunctionCall()
769 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) || in CheckBuiltinFunctionCall()
770 SemaRef.BuiltinConstantArgRange(TheCall, 3, -16, 15); in CheckBuiltinFunctionCall()
773 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) || in CheckBuiltinFunctionCall()
774 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31) || in CheckBuiltinFunctionCall()
775 SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 31) || in CheckBuiltinFunctionCall()
776 CheckLMUL(TheCall, 5); in CheckBuiltinFunctionCall()
783 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) || in CheckBuiltinFunctionCall()
784 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31); in CheckBuiltinFunctionCall()
804 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3); in CheckBuiltinFunctionCall()
807 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 1) || in CheckBuiltinFunctionCall()
808 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31); in CheckBuiltinFunctionCall()
819 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 1); in CheckBuiltinFunctionCall()
827 return SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 3); in CheckBuiltinFunctionCall()
830 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 10); in CheckBuiltinFunctionCall()
850 return SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 3); in CheckBuiltinFunctionCall()
887 return SemaRef.BuiltinConstantArgRange(TheCall, 3, 0, 3); in CheckBuiltinFunctionCall()
942 return SemaRef.BuiltinConstantArgRange(TheCall, 4, 0, 3); in CheckBuiltinFunctionCall()
956 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 4); in CheckBuiltinFunctionCall()
1007 return SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 4); in CheckBuiltinFunctionCall()
1143 return SemaRef.BuiltinConstantArgRange(TheCall, 3, 0, 4); in CheckBuiltinFunctionCall()
1304 return SemaRef.BuiltinConstantArgRange(TheCall, 4, 0, 4); in CheckBuiltinFunctionCall()
1308 cast<DeclRefExpr>(TheCall->getCallee()->IgnoreParenCasts()); in CheckBuiltinFunctionCall()
1315 if (SemaRef.checkArgCountAtLeast(TheCall, NumArgs - 1)) in CheckBuiltinFunctionCall()
1318 if (SemaRef.checkArgCountAtMost(TheCall, NumArgs)) in CheckBuiltinFunctionCall()
1323 if (TheCall->getNumArgs() == NumArgs && in CheckBuiltinFunctionCall()
1324 SemaRef.BuiltinConstantArgRange(TheCall, NumArgs - 1, 2, 5)) in CheckBuiltinFunctionCall()
1327 Expr *PointerArg = TheCall->getArg(0); in CheckBuiltinFunctionCall()
1354 TheCall->setType(ValType); in CheckBuiltinFunctionCall()
1358 ExprResult ValArg = TheCall->getArg(1); in CheckBuiltinFunctionCall()
1366 TheCall->setArg(1, ValArg.get()); in CheckBuiltinFunctionCall()
1367 TheCall->setType(Context.VoidTy); in CheckBuiltinFunctionCall()