Lines Matching defs:TheCall

502 bool SemaRISCV::CheckLMUL(CallExpr *TheCall, unsigned ArgNum) {
506 Expr *Arg = TheCall->getArg(ArgNum);
511 if (SemaRef.BuiltinConstantArg(TheCall, ArgNum, Result))
518 return Diag(TheCall->getBeginLoc(), diag::err_riscv_builtin_invalid_lmul)
522 static bool CheckInvalidVLENandLMUL(const TargetInfo &TI, CallExpr *TheCall,
545 return S.Diag(TheCall->getBeginLoc(),
554 CallExpr *TheCall) {
610 TheCall->getType()->castAs<BuiltinType>());
618 return Diag(TheCall->getBeginLoc(),
620 << /* IsExtension */ true << TheCall->getSourceRange() << "v";
628 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 3) ||
629 CheckLMUL(TheCall, 2);
631 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) ||
632 CheckLMUL(TheCall, 1);
636 TheCall->getType().getCanonicalType().getTypePtr()));
639 TheCall->getArg(0)->getType().getCanonicalType().getTypePtr()));
646 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, MaxIndex - 1);
651 TheCall->getType().getCanonicalType().getTypePtr()));
654 TheCall->getArg(2)->getType().getCanonicalType().getTypePtr()));
661 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, MaxIndex - 1);
668 QualType Op1Type = TheCall->getArg(0)->getType();
669 QualType Op2Type = TheCall->getArg(1)->getType();
670 return CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op1Type, 128) ||
671 CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op2Type, 128) ||
672 SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 31);
676 QualType Op1Type = TheCall->getArg(0)->getType();
677 return CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op1Type, 256) ||
678 SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 31);
682 QualType Op1Type = TheCall->getArg(0)->getType();
683 return CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op1Type, 128) ||
684 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31);
708 QualType Op1Type = TheCall->getArg(0)->getType();
709 QualType Op2Type = TheCall->getArg(1)->getType();
710 return CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op1Type, 128) ||
711 CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op2Type, 128);
719 QualType Op1Type = TheCall->getArg(0)->getType();
720 QualType Op2Type = TheCall->getArg(1)->getType();
721 QualType Op3Type = TheCall->getArg(2)->getType();
726 return Diag(TheCall->getBeginLoc(),
728 << /* IsExtension */ true << TheCall->getSourceRange() << "zvknhb";
730 return CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op1Type,
732 CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op2Type,
734 CheckInvalidVLENandLMUL(TI, TheCall, SemaRef, Op3Type, ElemSize * 4);
739 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) ||
740 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31) ||
741 SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 31) ||
742 SemaRef.BuiltinConstantArgRange(TheCall, 3, -16, 15) ||
743 CheckLMUL(TheCall, 5);
746 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) ||
747 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31) ||
748 SemaRef.BuiltinConstantArgRange(TheCall, 3, -16, 15);
752 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) ||
753 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31) ||
754 SemaRef.BuiltinConstantArgRange(TheCall, 2, -16, 15);
758 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) ||
759 SemaRef.BuiltinConstantArgRange(TheCall, 2, -16, 15);
767 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) ||
768 SemaRef.BuiltinConstantArgRange(TheCall, 3, -16, 15);
771 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) ||
772 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31) ||
773 SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 31) ||
774 CheckLMUL(TheCall, 5);
781 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3) ||
782 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31);
802 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 3);
805 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 1) ||
806 SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 31);
817 return SemaRef.BuiltinConstantArgRange(TheCall, 0, 0, 1);
825 return SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 3);
828 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 10);
848 return SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 3);
885 return SemaRef.BuiltinConstantArgRange(TheCall, 3, 0, 3);
940 return SemaRef.BuiltinConstantArgRange(TheCall, 4, 0, 3);
954 return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 4);
1005 return SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 4);
1141 return SemaRef.BuiltinConstantArgRange(TheCall, 3, 0, 4);
1302 return SemaRef.BuiltinConstantArgRange(TheCall, 4, 0, 4);
1306 cast<DeclRefExpr>(TheCall->getCallee()->IgnoreParenCasts());
1313 if (SemaRef.checkArgCountAtLeast(TheCall, NumArgs - 1))
1316 if (SemaRef.checkArgCountAtMost(TheCall, NumArgs))
1321 if (TheCall->getNumArgs() == NumArgs &&
1322 SemaRef.BuiltinConstantArgRange(TheCall, NumArgs - 1, 2, 5))
1325 Expr *PointerArg = TheCall->getArg(0);
1352 TheCall->setType(ValType);
1356 ExprResult ValArg = TheCall->getArg(1);
1364 TheCall->setArg(1, ValArg.get());
1365 TheCall->setType(Context.VoidTy);