Lines Matching refs:Check

634 #define Check(C, ...)                                                          \  macro
654 Check(I.getOperand(i) != nullptr, "Operand is null", &I); in visit()
677 Check(!GV.isDeclaration() || GV.hasValidDeclarationLinkage(), in visitGlobalValue()
683 Check(A->value() <= Value::MaximumAlignment, in visitGlobalValue()
689 Check(Associated->getNumOperands() == 1, in visitGlobalValue()
692 Check(Op, "associated metadata must have a global value", GO, Associated); in visitGlobalValue()
695 Check(VM, "associated metadata must be ValueAsMetadata", GO, Associated); in visitGlobalValue()
697 Check(isa<PointerType>(VM->getValue()->getType()), in visitGlobalValue()
701 Check(isa<GlobalObject>(Stripped) || isa<Constant>(Stripped), in visitGlobalValue()
703 Check(Stripped != GO, in visitGlobalValue()
717 Check(!GV.hasAppendingLinkage() || isa<GlobalVariable>(GV), in visitGlobalValue()
722 Check(GVar && GVar->getValueType()->isArrayTy(), in visitGlobalValue()
727 Check(!GV.hasComdat(), "Declaration may not be in a Comdat!", &GV); in visitGlobalValue()
730 Check(!GV.hasHiddenVisibility(), in visitGlobalValue()
735 Check(GV.hasDefaultVisibility(), in visitGlobalValue()
737 Check(!GV.isDSOLocal(), "GlobalValue with DLLImport Storage is dso_local!", in visitGlobalValue()
740 Check((GV.isDeclaration() && in visitGlobalValue()
747 Check(GV.isDSOLocal(), in visitGlobalValue()
774 Check(GV.getInitializer()->getType() == GV.getValueType(), in visitGlobalVariable()
781 Check(GV.getInitializer()->isNullValue(), in visitGlobalVariable()
783 Check(!GV.isConstant(), "'common' global may not be marked constant!", in visitGlobalVariable()
785 Check(!GV.hasComdat(), "'common' global may not be in a Comdat!", &GV); in visitGlobalVariable()
791 Check(!GV.hasInitializer() || GV.hasAppendingLinkage(), in visitGlobalVariable()
793 Check(GV.materialized_use_empty(), in visitGlobalVariable()
802 Check(STy && (STy->getNumElements() == 2 || STy->getNumElements() == 3) && in visitGlobalVariable()
806 Check(STy->getNumElements() == 3, in visitGlobalVariable()
810 Check(ETy->isPointerTy(), "wrong type for intrinsic global variable", in visitGlobalVariable()
817 Check(!GV.hasInitializer() || GV.hasAppendingLinkage(), in visitGlobalVariable()
819 Check(GV.materialized_use_empty(), in visitGlobalVariable()
825 Check(PTy, "wrong type for intrinsic global variable", &GV); in visitGlobalVariable()
829 Check(InitArray, "wrong initalizer for intrinsic global variable", in visitGlobalVariable()
833 Check(isa<GlobalVariable>(V) || isa<Function>(V) || in visitGlobalVariable()
836 Check(V->hasName(), in visitGlobalVariable()
856 Check(!GV.getValueType()->isScalableTy(), in visitGlobalVariable()
862 Check(TTy->hasProperty(TargetExtType::CanBeGlobal), in visitGlobalVariable()
886 Check(isa<GlobalValue>(C) && in visitAliaseeSubExpr()
894 Check(!GV->isDeclarationForLinker(), "Alias must point to a definition", in visitAliaseeSubExpr()
899 Check(Visited.insert(GA2).second, "Aliases cannot form a cycle", &GA); in visitAliaseeSubExpr()
901 Check(!GA2->isInterposable(), in visitAliaseeSubExpr()
923 Check(GlobalAlias::isValidLinkage(GA.getLinkage()), in visitGlobalAlias()
928 Check(Aliasee, "Aliasee cannot be NULL!", &GA); in visitGlobalAlias()
929 Check(GA.getType() == Aliasee->getType(), in visitGlobalAlias()
932 Check(isa<GlobalValue>(Aliasee) || isa<ConstantExpr>(Aliasee), in visitGlobalAlias()
941 Check(GlobalIFunc::isValidLinkage(GI.getLinkage()), in visitGlobalIFunc()
948 Check(Resolver, "IFunc must have a Function resolver", &GI); in visitGlobalIFunc()
949 Check(!Resolver->isDeclarationForLinker(), in visitGlobalIFunc()
956 Check(isa<PointerType>(Resolver->getFunctionType()->getReturnType()), in visitGlobalIFunc()
961 Check(ResolverTy == ResolverFuncTy->getPointerTo(GI.getAddressSpace()), in visitGlobalIFunc()
988 Check(&MD.getContext() == &Context, in visitMDNode()
1006 Check(!isa<LocalAsMetadata>(Op), "Invalid operand for global metadata!", in visitMDNode()
1021 Check(!MD.isTemporary(), "Expected no forward declarations!", &MD); in visitMDNode()
1022 Check(MD.isResolved(), "All nodes should be resolved!", &MD); in visitMDNode()
1026 Check(MD.getValue(), "Expected valid value", &MD); in visitValueAsMetadata()
1027 Check(!MD.getValue()->getType()->isMetadataTy(), in visitValueAsMetadata()
1034 Check(F, "function-local metadata used outside a function", L); in visitValueAsMetadata()
1040 Check(I->getParent(), "function-local metadata not in basic block", L, I); in visitValueAsMetadata()
1048 Check(ActualF == F, "function-local metadata used in wrong function", L); in visitValueAsMetadata()
1636 Check(!GV->hasPrivateLinkage(), "comdat global value has private linkage", in visitComdat()
1648 Check(N->getNumOperands() == 1, in visitModuleIdents()
1650 Check(dyn_cast_or_null<MDString>(N->getOperand(0)), in visitModuleIdents()
1666 Check(N->getNumOperands() == 1, in visitModuleCommandLines()
1668 Check(dyn_cast_or_null<MDString>(N->getOperand(0)), in visitModuleCommandLines()
1712 Check(Op->getNumOperands() == 3, in visitModuleFlag()
1716 Check(mdconst::dyn_extract_or_null<ConstantInt>(Op->getOperand(0)), in visitModuleFlag()
1719 Check(false, in visitModuleFlag()
1724 Check(ID, "invalid ID operand in module flag (expected metadata string)", in visitModuleFlag()
1737 Check(V && V->getValue().isNonNegative(), in visitModuleFlag()
1745 Check(mdconst::dyn_extract_or_null<ConstantInt>(Op->getOperand(2)), in visitModuleFlag()
1755 Check(Value && Value->getNumOperands() == 2, in visitModuleFlag()
1758 Check(isa<MDString>(Value->getOperand(0)), in visitModuleFlag()
1772 Check(isa<MDNode>(Op->getOperand(2)), in visitModuleFlag()
1783 Check(Inserted, in visitModuleFlag()
1790 Check(Value, "wchar_size metadata requires constant integer argument"); in visitModuleFlag()
1797 Check(M.getNamedMetadata("llvm.linker.options"), in visitModuleFlag()
1804 Check(Value, in visitModuleFlag()
1819 Check(F && isa<Function>(F->getValue()->stripPointerCasts()), in visitModuleFlagCGProfileEntry()
1823 Check(Node && Node->getNumOperands() == 3, "expected a MDNode triple", MDO); in visitModuleFlagCGProfileEntry()
1827 Check(Count && Count->getType()->isIntegerTy(), in visitModuleFlagCGProfileEntry()
1867 Check(Attr.isStringAttribute() || in verifyParameterAttrs()
1873 Check(Attrs.getNumAttributes() == 1, in verifyParameterAttrs()
1887 Check(AttrCount <= 1, in verifyParameterAttrs()
1892 Check(!(Attrs.hasAttribute(Attribute::InAlloca) && in verifyParameterAttrs()
1898 Check(!(Attrs.hasAttribute(Attribute::StructRet) && in verifyParameterAttrs()
1904 Check(!(Attrs.hasAttribute(Attribute::ZExt) && in verifyParameterAttrs()
1910 Check(!(Attrs.hasAttribute(Attribute::ReadNone) && in verifyParameterAttrs()
1916 Check(!(Attrs.hasAttribute(Attribute::ReadNone) && in verifyParameterAttrs()
1922 Check(!(Attrs.hasAttribute(Attribute::ReadOnly) && in verifyParameterAttrs()
1928 Check(!(Attrs.hasAttribute(Attribute::NoInline) && in verifyParameterAttrs()
1934 Check(!(Attrs.hasAttribute(Attribute::Writable) && in verifyParameterAttrs()
1938 Check(!(Attrs.hasAttribute(Attribute::Writable) && in verifyParameterAttrs()
1957 Check(AttrAlign <= MaxAlign, in verifyParameterAttrs()
1961 Check(Attrs.getByValType()->isSized(&Visited), in verifyParameterAttrs()
1966 Check(Attrs.getByRefType()->isSized(&Visited), in verifyParameterAttrs()
1971 Check(Attrs.getInAllocaType()->isSized(&Visited), in verifyParameterAttrs()
1976 Check(Attrs.getPreallocatedType()->isSized(&Visited), in verifyParameterAttrs()
1983 Check(Val != 0, "Attribute 'nofpclass' must have at least one test bit set", in verifyParameterAttrs()
1985 Check((Val & ~static_cast<unsigned>(fcAllFlags)) == 0, in verifyParameterAttrs()
2009 Check(Attrs.hasParentContext(Context), in verifyFunctionAttrs()
2012 Check(!AttrSet.hasAttributes() || AttrSet.hasParentContext(Context), in verifyFunctionAttrs()
2015 Check(A.hasParentContext(Context), in verifyFunctionAttrs()
2031 Check(RetAttr.isStringAttribute() || in verifyFunctionAttrs()
2056 Check(!ArgAttrs.hasAttribute(Attribute::ImmArg), in verifyFunctionAttrs()
2059 Check(!ArgAttrs.hasAttribute(Attribute::ElementType), in verifyFunctionAttrs()
2069 Check(!SawNest, "More than one parameter has attribute nest!", V); in verifyFunctionAttrs()
2074 Check(!SawReturned, "More than one parameter has attribute returned!", V); in verifyFunctionAttrs()
2075 Check(Ty->canLosslesslyBitCastTo(FT->getReturnType()), in verifyFunctionAttrs()
2082 Check(!SawSRet, "Cannot have multiple 'sret' parameters!", V); in verifyFunctionAttrs()
2083 Check(i == 0 || i == 1, in verifyFunctionAttrs()
2089 Check(!SawSwiftSelf, "Cannot have multiple 'swiftself' parameters!", V); in verifyFunctionAttrs()
2094 Check(!SawSwiftAsync, "Cannot have multiple 'swiftasync' parameters!", V); in verifyFunctionAttrs()
2099 Check(!SawSwiftError, "Cannot have multiple 'swifterror' parameters!", V); in verifyFunctionAttrs()
2104 Check(i == FT->getNumParams() - 1, in verifyFunctionAttrs()
2114 Check(FnAttr.isStringAttribute() || in verifyFunctionAttrs()
2120 Check(!(Attrs.hasFnAttr(Attribute::NoInline) && in verifyFunctionAttrs()
2125 Check(Attrs.hasFnAttr(Attribute::NoInline), in verifyFunctionAttrs()
2128 Check(!Attrs.hasFnAttr(Attribute::OptimizeForSize), in verifyFunctionAttrs()
2131 Check(!Attrs.hasFnAttr(Attribute::MinSize), in verifyFunctionAttrs()
2134 Check(!Attrs.hasFnAttr(Attribute::OptimizeForDebugging), in verifyFunctionAttrs()
2139 Check(!Attrs.hasFnAttr(Attribute::OptimizeForSize), in verifyFunctionAttrs()
2142 Check(!Attrs.hasFnAttr(Attribute::MinSize), in verifyFunctionAttrs()
2146 Check(!Attrs.hasAttrSomewhere(Attribute::Writable) || in verifyFunctionAttrs()
2152 Check(!Attrs.hasFnAttr("aarch64_pstate_sm_compatible"), in verifyFunctionAttrs()
2159 Check(!Attrs.hasFnAttr("aarch64_pstate_za_preserved"), in verifyFunctionAttrs()
2164 Check(!Attrs.hasFnAttr("aarch64_pstate_za_shared"), in verifyFunctionAttrs()
2170 Check( in verifyFunctionAttrs()
2181 Check(GV->hasGlobalUnnamedAddr(), in verifyFunctionAttrs()
2251 Check(!TF.contains("+avx512f") || !TF.contains("-evex512"), in verifyFunctionAttrs()
2292 Check(MD->getNumOperands() >= 2, in verifyFunctionMetadata()
2296 Check(MD->getOperand(0) != nullptr, "first operand should not be null", in verifyFunctionMetadata()
2298 Check(isa<MDString>(MD->getOperand(0)), in verifyFunctionMetadata()
2302 Check(ProfName.equals("function_entry_count") || in verifyFunctionMetadata()
2309 Check(MD->getOperand(1) != nullptr, "second operand should not be null", in verifyFunctionMetadata()
2311 Check(isa<ConstantAsMetadata>(MD->getOperand(1)), in verifyFunctionMetadata()
2315 Check(MD->getNumOperands() == 1, in verifyFunctionMetadata()
2317 Check(MD->getOperand(0) != nullptr, "!kcfi_type operand must not be null", in verifyFunctionMetadata()
2319 Check(isa<ConstantAsMetadata>(MD->getOperand(0)), in verifyFunctionMetadata()
2322 Check(isa<ConstantInt>(C) && isa<IntegerType>(C->getType()), in verifyFunctionMetadata()
2324 Check(cast<ConstantInt>(C)->getBitWidth() == 32, in verifyFunctionMetadata()
2347 Check(GV->getParent() == &M, "Referencing global in another module!", in visitConstantExprsRecursively()
2366 Check(CastInst::castIsValid(Instruction::BitCast, CE->getOperand(0), in visitConstantExpr()
2393 Check(Arg->getType()->isPointerTy(), in verifyInlineAsmCall()
2396 Check(Call.getParamElementType(ArgNo), in verifyInlineAsmCall()
2400 Check(!Call.paramHasAttr(ArgNo, Attribute::ElementType), in verifyInlineAsmCall()
2410 Check(LabelNo == CallBr->getNumIndirectDests(), in verifyInlineAsmCall()
2414 Check(LabelNo == 0, "Label constraints can only be used with callbr", in verifyInlineAsmCall()
2425 Check(!Call.doesNotAccessMemory() && !Call.onlyReadsMemory() && in verifyStatepoint()
2434 Check(NumPatchBytes >= 0, in verifyStatepoint()
2440 Check(TargetElemType, in verifyStatepoint()
2443 Check(TargetFuncType, in verifyStatepoint()
2447 Check(NumCallArgs >= 0, in verifyStatepoint()
2453 Check(NumCallArgs >= NumParams, in verifyStatepoint()
2457 Check(TargetFuncType->getReturnType()->isVoidTy(), in verifyStatepoint()
2462 Check(NumCallArgs == NumParams, in verifyStatepoint()
2467 Check((Flags & ~(uint64_t)StatepointFlags::MaskAll) == 0, in verifyStatepoint()
2476 Check(ArgType == ParamType, in verifyStatepoint()
2483 Check(!ArgAttrs.hasAttribute(Attribute::StructRet), in verifyStatepoint()
2491 Check(isa<ConstantInt>(NumTransitionArgsV), in verifyStatepoint()
2497 Check(NumTransitionArgs == 0, in verifyStatepoint()
2502 Check(isa<ConstantInt>(NumDeoptArgsV), in verifyStatepoint()
2507 Check(NumDeoptArgs == 0, in verifyStatepoint()
2511 Check(ExpectedNumArgs == (int)Call.arg_size(), in verifyStatepoint()
2519 Check(UserCall, "illegal use of statepoint token", Call, U); in verifyStatepoint()
2522 Check(isa<GCRelocateInst>(UserCall) || isa<GCResultInst>(UserCall), in verifyStatepoint()
2527 Check(UserCall->getArgOperand(0) == &Call, in verifyStatepoint()
2530 Check(UserCall->getArgOperand(0) == &Call, in verifyStatepoint()
2550 Check(MaxRecoveredIndex <= EscapedObjectCount, in verifyFrameRecoverIndices()
2591 Check(false, "EH pads can't handle each other's exceptions", in verifySiblingFuncletUnwinds()
2620 Check(&Context == &F.getContext(), in visitFunction()
2623 Check(!F.hasCommonLinkage(), "Functions may not have common linkage", &F); in visitFunction()
2624 Check(FT->getNumParams() == NumArgs, in visitFunction()
2627 Check(F.getReturnType()->isFirstClassType() || in visitFunction()
2631 Check(!F.hasStructRetAttr() || F.getReturnType()->isVoidTy(), in visitFunction()
2636 Check(verifyAttributeCount(Attrs, FT->getNumParams()), in visitFunction()
2647 Check(!Attrs.hasFnAttr(Attribute::Builtin), in visitFunction()
2650 Check(!Attrs.hasAttrSomewhere(Attribute::ElementType), in visitFunction()
2661 Check(F.arg_empty() || Attrs.hasParamAttr(0, Attribute::ByVal), in visitFunction()
2669 Check(F.getReturnType()->isVoidTy(), in visitFunction()
2677 Check(!F.hasStructRetAttr(), "Calling convention does not allow sret", &F); in visitFunction()
2682 Check(!Attrs.hasParamAttr(i, Attribute::ByVal), in visitFunction()
2684 Check(!Attrs.hasParamAttr(i, Attribute::Preallocated), in visitFunction()
2686 Check(!Attrs.hasParamAttr(i, Attribute::InAlloca), in visitFunction()
2692 Check(Arg.getType()->getPointerAddressSpace() != StackAS, in visitFunction()
2706 Check(!F.isVarArg(), in visitFunction()
2716 Check(Arg.getType() == FT->getParamType(i), in visitFunction()
2719 Check(Arg.getType()->isFirstClassType(), in visitFunction()
2722 Check(!Arg.getType()->isMetadataTy(), in visitFunction()
2724 Check(!Arg.getType()->isTokenTy(), in visitFunction()
2726 Check(!Arg.getType()->isX86_AMXTy(), in visitFunction()
2738 Check(!F.getReturnType()->isTokenTy(), in visitFunction()
2740 Check(!F.getReturnType()->isX86_AMXTy(), in visitFunction()
2754 Check(Per->getParent() == F.getParent(), in visitFunction()
2764 Check(MDs.empty(), "unmaterialized function cannot have metadata", &F, in visitFunction()
2773 Check(I.first != LLVMContext::MD_prof, in visitFunction()
2779 Check(!F.hasPersonalityFn(), in visitFunction()
2784 Check(!IsIntrinsic, "llvm intrinsics cannot be defined!", &F); in visitFunction()
2788 Check(pred_empty(Entry), in visitFunction()
2793 Check(!BlockAddress::lookup(Entry)->isConstantUsed(), in visitFunction()
2826 Check(NumProfAttachments == 1, in visitFunction()
2831 Check(NumKCFIAttachments == 1, in visitFunction()
2850 Check(false, "Invalid user of intrinsic instruction!", U); in visitFunction()
2857 Check(FT->getNumParams() == 1, "wrong number of parameters", F); in visitFunction()
2858 Check(isa<PointerType>(F.getReturnType()), in visitFunction()
2860 Check(FT->getParamType(0) == F.getReturnType(), in visitFunction()
2866 Check(FT->getNumParams() == 1, "wrong number of parameters", F); in visitFunction()
2867 Check(isa<PointerType>(FT->getParamType(0)), in visitFunction()
2869 Check(F.getReturnType()->isIntegerTy(), in visitFunction()
2899 Check(Scope, "Failed to find DILocalScope", DL); in visitFunction()
2934 Check(BB.getTerminator(), "Basic Block does not have terminator!", &BB); in visitBasicBlock()
2943 Check(PN.getNumIncomingValues() == Preds.size(), in visitBasicBlock()
2961 Check(i == 0 || Values[i].first != Values[i - 1].first || in visitBasicBlock()
2969 Check(Values[i].first == Preds[i], in visitBasicBlock()
2979 Check(I.getParent() == &BB, "Instruction has bogus parent pointer!"); in visitBasicBlock()
2987 Check(!RetVal, "Invalid configuration of new-debug-info data found"); in visitBasicBlock()
2993 Check(&I == I.getParent()->getTerminator(), in visitTerminator()
3000 Check(BI.getCondition()->getType()->isIntegerTy(1), in visitBranchInst()
3010 Check(N == 0, in visitReturnInst()
3015 Check(N == 1 && F->getReturnType() == RI.getOperand(0)->getType(), in visitReturnInst()
3026 Check(SI.getType()->isVoidTy(), "Switch must have void result type!", &SI); in visitSwitchInst()
3032 Check(isa<ConstantInt>(SI.getOperand(Case.getCaseIndex() * 2 + 2)), in visitSwitchInst()
3034 Check(Case.getCaseValue()->getType() == SwitchTy, in visitSwitchInst()
3036 Check(Constants.insert(Case.getCaseValue()).second, in visitSwitchInst()
3044 Check(BI.getAddress()->getType()->isPointerTy(), in visitIndirectBrInst()
3047 Check(BI.getDestination(i)->getType()->isLabelTy(), in visitIndirectBrInst()
3054 Check(CBI.isInlineAsm(), "Callbr is currently only used for asm-goto!", &CBI); in visitCallBrInst()
3056 Check(!IA->canThrow(), "Unwinding from Callbr is not allowed"); in visitCallBrInst()
3063 Check(!SelectInst::areInvalidOperands(SI.getOperand(0), SI.getOperand(1), in visitSelectInst()
3067 Check(SI.getTrueValue()->getType() == SI.getType(), in visitSelectInst()
3076 Check(false, "User-defined operators should not live outside of a pass!", &I); in visitUserOp1()
3088 Check(SrcTy->isIntOrIntVectorTy(), "Trunc only operates on integer", &I); in visitTruncInst()
3089 Check(DestTy->isIntOrIntVectorTy(), "Trunc only produces integer", &I); in visitTruncInst()
3090 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), in visitTruncInst()
3092 Check(SrcBitSize > DestBitSize, "DestTy too big for Trunc", &I); in visitTruncInst()
3103 Check(SrcTy->isIntOrIntVectorTy(), "ZExt only operates on integer", &I); in visitZExtInst()
3104 Check(DestTy->isIntOrIntVectorTy(), "ZExt only produces an integer", &I); in visitZExtInst()
3105 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), in visitZExtInst()
3110 Check(SrcBitSize < DestBitSize, "Type too small for ZExt", &I); in visitZExtInst()
3124 Check(SrcTy->isIntOrIntVectorTy(), "SExt only operates on integer", &I); in visitSExtInst()
3125 Check(DestTy->isIntOrIntVectorTy(), "SExt only produces an integer", &I); in visitSExtInst()
3126 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), in visitSExtInst()
3128 Check(SrcBitSize < DestBitSize, "Type too small for SExt", &I); in visitSExtInst()
3141 Check(SrcTy->isFPOrFPVectorTy(), "FPTrunc only operates on FP", &I); in visitFPTruncInst()
3142 Check(DestTy->isFPOrFPVectorTy(), "FPTrunc only produces an FP", &I); in visitFPTruncInst()
3143 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), in visitFPTruncInst()
3145 Check(SrcBitSize > DestBitSize, "DestTy too big for FPTrunc", &I); in visitFPTruncInst()
3159 Check(SrcTy->isFPOrFPVectorTy(), "FPExt only operates on FP", &I); in visitFPExtInst()
3160 Check(DestTy->isFPOrFPVectorTy(), "FPExt only produces an FP", &I); in visitFPExtInst()
3161 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), in visitFPExtInst()
3163 Check(SrcBitSize < DestBitSize, "DestTy too small for FPExt", &I); in visitFPExtInst()
3176 Check(SrcVec == DstVec, in visitUIToFPInst()
3178 Check(SrcTy->isIntOrIntVectorTy(), in visitUIToFPInst()
3180 Check(DestTy->isFPOrFPVectorTy(), "UIToFP result must be FP or FP vector", in visitUIToFPInst()
3184 Check(cast<VectorType>(SrcTy)->getElementCount() == in visitUIToFPInst()
3199 Check(SrcVec == DstVec, in visitSIToFPInst()
3201 Check(SrcTy->isIntOrIntVectorTy(), in visitSIToFPInst()
3203 Check(DestTy->isFPOrFPVectorTy(), "SIToFP result must be FP or FP vector", in visitSIToFPInst()
3207 Check(cast<VectorType>(SrcTy)->getElementCount() == in visitSIToFPInst()
3222 Check(SrcVec == DstVec, in visitFPToUIInst()
3224 Check(SrcTy->isFPOrFPVectorTy(), "FPToUI source must be FP or FP vector", &I); in visitFPToUIInst()
3225 Check(DestTy->isIntOrIntVectorTy(), in visitFPToUIInst()
3229 Check(cast<VectorType>(SrcTy)->getElementCount() == in visitFPToUIInst()
3244 Check(SrcVec == DstVec, in visitFPToSIInst()
3246 Check(SrcTy->isFPOrFPVectorTy(), "FPToSI source must be FP or FP vector", &I); in visitFPToSIInst()
3247 Check(DestTy->isIntOrIntVectorTy(), in visitFPToSIInst()
3251 Check(cast<VectorType>(SrcTy)->getElementCount() == in visitFPToSIInst()
3263 Check(SrcTy->isPtrOrPtrVectorTy(), "PtrToInt source must be pointer", &I); in visitPtrToIntInst()
3265 Check(DestTy->isIntOrIntVectorTy(), "PtrToInt result must be integral", &I); in visitPtrToIntInst()
3266 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), "PtrToInt type mismatch", in visitPtrToIntInst()
3272 Check(VSrc->getElementCount() == VDest->getElementCount(), in visitPtrToIntInst()
3284 Check(SrcTy->isIntOrIntVectorTy(), "IntToPtr source must be an integral", &I); in visitIntToPtrInst()
3285 Check(DestTy->isPtrOrPtrVectorTy(), "IntToPtr result must be a pointer", &I); in visitIntToPtrInst()
3287 Check(SrcTy->isVectorTy() == DestTy->isVectorTy(), "IntToPtr type mismatch", in visitIntToPtrInst()
3292 Check(VSrc->getElementCount() == VDest->getElementCount(), in visitIntToPtrInst()
3299 Check( in visitBitCastInst()
3309 Check(SrcTy->isPtrOrPtrVectorTy(), "AddrSpaceCast source must be a pointer", in visitAddrSpaceCastInst()
3311 Check(DestTy->isPtrOrPtrVectorTy(), "AddrSpaceCast result must be a pointer", in visitAddrSpaceCastInst()
3313 Check(SrcTy->getPointerAddressSpace() != DestTy->getPointerAddressSpace(), in visitAddrSpaceCastInst()
3316 Check(SrcVTy->getElementCount() == in visitAddrSpaceCastInst()
3329 Check(&PN == &PN.getParent()->front() || in visitPHINode()
3334 Check(!PN.getType()->isTokenTy(), "PHI nodes cannot have token type!"); in visitPHINode()
3339 Check(PN.getType() == IncValue->getType(), in visitPHINode()
3349 Check(Call.getCalledOperand()->getType()->isPointerTy(), in visitCallBase()
3355 Check(Call.arg_size() >= FTy->getNumParams(), in visitCallBase()
3358 Check(Call.arg_size() == FTy->getNumParams(), in visitCallBase()
3363 Check(Call.getArgOperand(i)->getType() == FTy->getParamType(i), in visitCallBase()
3369 Check(verifyAttributeCount(Attrs, Call.arg_size()), in visitCallBase()
3376 Check(Callee->getValueType() == FTy, in visitCallBase()
3382 Check(CC != CallingConv::AMDGPU_CS_Chain && in visitCallBase()
3393 Check(ABIAlign <= MaxAlign, in visitCallBase()
3408 Check(Callee && Callee->isSpeculatable(), in visitCallBase()
3413 Check(Call.getCalledFunction()->getIntrinsicID() == in visitCallBase()
3428 Check(AI->isUsedWithInAlloca(), in visitCallBase()
3439 Check(AI->isSwiftError(), in visitCallBase()
3444 Check(ArgI, "swifterror argument should come from an alloca or parameter", in visitCallBase()
3446 Check(ArgI->hasSwiftErrorAttr(), in visitCallBase()
3454 Check(Callee && Callee->hasParamAttribute(i, Attribute::ImmArg), in visitCallBase()
3461 Check(isa<ConstantInt>(ArgVal) || isa<ConstantFP>(ArgVal), in visitCallBase()
3470 Check(hasOB != isMustTail, in visitCallBase()
3496 Check(!SawNest, "More than one parameter has attribute nest!", Call); in visitCallBase()
3501 Check(!SawReturned, "More than one parameter has attribute returned!", in visitCallBase()
3503 Check(Ty->canLosslesslyBitCastTo(FTy->getReturnType()), in visitCallBase()
3515 Check(!ArgAttrs.hasAttribute(Attribute::StructRet), in visitCallBase()
3520 Check(Idx == Call.arg_size() - 1, in visitCallBase()
3528 Check(!ParamTy->isMetadataTy(), in visitCallBase()
3530 Check(!ParamTy->isTokenTy(), in visitCallBase()
3537 Check(!FTy->getReturnType()->isTokenTy(), in visitCallBase()
3539 Check(!FTy->getReturnType()->isX86_AMXTy(), in visitCallBase()
3559 Check(!FoundDeoptBundle, "Multiple deopt operand bundles", Call); in visitCallBase()
3562 Check(!FoundGCTransitionBundle, "Multiple gc-transition operand bundles", in visitCallBase()
3566 Check(!FoundFuncletBundle, "Multiple funclet operand bundles", Call); in visitCallBase()
3568 Check(BU.Inputs.size() == 1, in visitCallBase()
3570 Check(isa<FuncletPadInst>(BU.Inputs.front()), in visitCallBase()
3574 Check(!FoundCFGuardTargetBundle, "Multiple CFGuardTarget operand bundles", in visitCallBase()
3577 Check(BU.Inputs.size() == 1, in visitCallBase()
3580 Check(!FoundPtrauthBundle, "Multiple ptrauth operand bundles", Call); in visitCallBase()
3582 Check(BU.Inputs.size() == 2, in visitCallBase()
3584 Check(isa<ConstantInt>(BU.Inputs[0]) && in visitCallBase()
3587 Check(BU.Inputs[1]->getType()->isIntegerTy(64), in visitCallBase()
3590 Check(!FoundKCFIBundle, "Multiple kcfi operand bundles", Call); in visitCallBase()
3592 Check(BU.Inputs.size() == 1, "Expected exactly one kcfi bundle operand", in visitCallBase()
3594 Check(isa<ConstantInt>(BU.Inputs[0]) && in visitCallBase()
3598 Check(!FoundPreallocatedBundle, "Multiple preallocated operand bundles", in visitCallBase()
3601 Check(BU.Inputs.size() == 1, in visitCallBase()
3604 Check(Input && in visitCallBase()
3610 Check(!FoundGCLiveBundle, "Multiple gc-live operand bundles", Call); in visitCallBase()
3613 Check(!FoundAttachedCallBundle, in visitCallBase()
3621 Check(!(Call.getCalledFunction() && FoundPtrauthBundle), in visitCallBase()
3648 Check(!Attrs.contains(Attribute::InAlloca), in verifyTailCCMustTailAttrs()
3650 Check(!Attrs.contains(Attribute::InReg), in verifyTailCCMustTailAttrs()
3652 Check(!Attrs.contains(Attribute::SwiftError), in verifyTailCCMustTailAttrs()
3654 Check(!Attrs.contains(Attribute::Preallocated), in verifyTailCCMustTailAttrs()
3656 Check(!Attrs.contains(Attribute::ByRef), in verifyTailCCMustTailAttrs()
3694 Check(!CI.isInlineAsm(), "cannot use musttail call with inline asm", &CI); in verifyMustTailCall()
3699 Check(CallerTy->isVarArg() == CalleeTy->isVarArg(), in verifyMustTailCall()
3701 Check(isTypeCongruent(CallerTy->getReturnType(), CalleeTy->getReturnType()), in verifyMustTailCall()
3705 Check(F->getCallingConv() == CI.getCallingConv(), in verifyMustTailCall()
3717 Check(BI->getOperand(0) == RetVal, in verifyMustTailCall()
3725 Check(Ret, "musttail call must precede a ret with an optional bitcast", &CI); in verifyMustTailCall()
3726 Check(!Ret->getReturnValue() || Ret->getReturnValue() == RetVal || in verifyMustTailCall()
3750 Check(!CallerTy->isVarArg(), Twine("cannot guarantee ") + CCName + in verifyMustTailCall()
3759 Check(CallerTy->getNumParams() == CalleeTy->getNumParams(), in verifyMustTailCall()
3762 Check( in verifyMustTailCall()
3773 Check(CallerABIAttrs == CalleeABIAttrs, in verifyMustTailCall()
3792 Check( in visitInvokeInst()
3803 Check(U.getType() == U.getOperand(0)->getType(), in visitUnaryOperator()
3812 Check(U.getType()->isFPOrFPVectorTy(), in visitUnaryOperator()
3826 Check(B.getOperand(0)->getType() == B.getOperand(1)->getType(), in visitBinaryOperator()
3839 Check(B.getType()->isIntOrIntVectorTy(), in visitBinaryOperator()
3841 Check(B.getType() == B.getOperand(0)->getType(), in visitBinaryOperator()
3853 Check(B.getType()->isFPOrFPVectorTy(), in visitBinaryOperator()
3857 Check(B.getType() == B.getOperand(0)->getType(), in visitBinaryOperator()
3866 Check(B.getType()->isIntOrIntVectorTy(), in visitBinaryOperator()
3868 Check(B.getType() == B.getOperand(0)->getType(), in visitBinaryOperator()
3874 Check(B.getType()->isIntOrIntVectorTy(), in visitBinaryOperator()
3876 Check(B.getType() == B.getOperand(0)->getType(), in visitBinaryOperator()
3890 Check(Op0Ty == Op1Ty, in visitICmpInst()
3893 Check(Op0Ty->isIntOrIntVectorTy() || Op0Ty->isPtrOrPtrVectorTy(), in visitICmpInst()
3896 Check(IC.isIntPredicate(), "Invalid predicate in ICmp instruction!", &IC); in visitICmpInst()
3905 Check(Op0Ty == Op1Ty, in visitFCmpInst()
3908 Check(Op0Ty->isFPOrFPVectorTy(), "Invalid operand types for FCmp instruction", in visitFCmpInst()
3911 Check(FC.isFPPredicate(), "Invalid predicate in FCmp instruction!", &FC); in visitFCmpInst()
3917 Check(ExtractElementInst::isValidOperands(EI.getOperand(0), EI.getOperand(1)), in visitExtractElementInst()
3923 Check(InsertElementInst::isValidOperands(IE.getOperand(0), IE.getOperand(1), in visitInsertElementInst()
3930 Check(ShuffleVectorInst::isValidOperands(SV.getOperand(0), SV.getOperand(1), in visitShuffleVectorInst()
3939 Check(isa<PointerType>(TargetTy), in visitGetElementPtrInst()
3941 Check(GEP.getSourceElementType()->isSized(), "GEP into unsized type!", &GEP); in visitGetElementPtrInst()
3945 Check(!STy->containsScalableVectorType(&Visited), in visitGetElementPtrInst()
3952 Check( in visitGetElementPtrInst()
3957 Check(ElTy, "Invalid indices for GEP pointer type!", &GEP); in visitGetElementPtrInst()
3959 Check(GEP.getType()->isPtrOrPtrVectorTy() && in visitGetElementPtrInst()
3967 Check( in visitGetElementPtrInst()
3975 Check(IndexWidth == GEPWidth, "Invalid GEP index vector width", &GEP); in visitGetElementPtrInst()
3977 Check(IndexTy->isIntOrIntVectorTy(), in visitGetElementPtrInst()
3983 Check(GEP.getAddressSpace() == PTy->getAddressSpace(), in visitGetElementPtrInst()
3999 Check(NumOperands % 2 == 0, "Unfinished range!", Range); in verifyRangeMetadata()
4001 Check(NumRanges >= 1, "It should have at least one range!", Range); in verifyRangeMetadata()
4007 Check(Low, "The lower limit must be an integer!", Low); in verifyRangeMetadata()
4010 Check(High, "The upper limit must be an integer!", High); in verifyRangeMetadata()
4011 Check(High->getType() == Low->getType() && in verifyRangeMetadata()
4020 Check(LowV != HighV || LowV.isMaxValue() || LowV.isMinValue(), in verifyRangeMetadata()
4024 Check(!CurRange.isEmptySet() && (IsAbsoluteSymbol || !CurRange.isFullSet()), in verifyRangeMetadata()
4027 Check(CurRange.intersectWith(LastRange).isEmptySet(), in verifyRangeMetadata()
4029 Check(LowV.sgt(LastRange.getLower()), "Intervals are not in order", in verifyRangeMetadata()
4031 Check(!isContiguous(CurRange, LastRange), "Intervals are contiguous", in verifyRangeMetadata()
4042 Check(FirstRange.intersectWith(LastRange).isEmptySet(), in verifyRangeMetadata()
4044 Check(!isContiguous(FirstRange, LastRange), "Intervals are contiguous", in verifyRangeMetadata()
4057 Check(Size >= 8, "atomic memory access' size must be byte-sized", Ty, I); in checkAtomicMemAccessSize()
4058 Check(!(Size & (Size - 1)), in checkAtomicMemAccessSize()
4064 Check(PTy, "Load operand must be a pointer.", &LI); in visitLoadInst()
4067 Check(A->value() <= Value::MaximumAlignment, in visitLoadInst()
4070 Check(ElTy->isSized(), "loading unsized types is not allowed", &LI); in visitLoadInst()
4072 Check(LI.getOrdering() != AtomicOrdering::Release && in visitLoadInst()
4075 Check(ElTy->isIntOrPtrTy() || ElTy->isFloatingPointTy(), in visitLoadInst()
4081 Check(LI.getSyncScopeID() == SyncScope::System, in visitLoadInst()
4090 Check(PTy, "Store operand must be a pointer.", &SI); in visitStoreInst()
4093 Check(A->value() <= Value::MaximumAlignment, in visitStoreInst()
4096 Check(ElTy->isSized(), "storing unsized types is not allowed", &SI); in visitStoreInst()
4098 Check(SI.getOrdering() != AtomicOrdering::Acquire && in visitStoreInst()
4101 Check(ElTy->isIntOrPtrTy() || ElTy->isFloatingPointTy(), in visitStoreInst()
4107 Check(SI.getSyncScopeID() == SyncScope::System, in visitStoreInst()
4118 Check(Call.paramHasAttr(I.index(), Attribute::SwiftError), in verifySwiftErrorCall()
4130 Check(isa<LoadInst>(U) || isa<StoreInst>(U) || isa<CallInst>(U) || in verifySwiftErrorValue()
4137 Check(StoreI->getOperand(1) == SwiftErrorVal, in verifySwiftErrorValue()
4148 Check(AI.getAllocatedType()->isSized(&Visited), in visitAllocaInst()
4150 Check(AI.getArraySize()->getType()->isIntegerTy(), in visitAllocaInst()
4153 Check(A->value() <= Value::MaximumAlignment, in visitAllocaInst()
4158 Check(AI.getAllocatedType()->isPointerTy(), in visitAllocaInst()
4160 Check(!AI.isArrayAllocation(), in visitAllocaInst()
4170 Check(ElTy->isIntOrPtrTy(), in visitAtomicCmpXchgInst()
4177 Check(RMWI.getOrdering() != AtomicOrdering::Unordered, in visitAtomicRMWInst()
4182 Check(ElTy->isIntegerTy() || ElTy->isFloatingPointTy() || in visitAtomicRMWInst()
4188 Check(ElTy->isFloatingPointTy(), in visitAtomicRMWInst()
4193 Check(ElTy->isIntegerTy(), in visitAtomicRMWInst()
4199 Check(AtomicRMWInst::FIRST_BINOP <= Op && Op <= AtomicRMWInst::LAST_BINOP, in visitAtomicRMWInst()
4206 Check(Ordering == AtomicOrdering::Acquire || in visitFenceInst()
4217 Check(ExtractValueInst::getIndexedType(EVI.getAggregateOperand()->getType(), in visitExtractValueInst()
4225 Check(ExtractValueInst::getIndexedType(IVI.getAggregateOperand()->getType(), in visitInsertValueInst()
4246 Check(BB != &F->getEntryBlock(), "EH pad cannot be in entry block.", &I); in visitEHPadPredecessors()
4254 Check(II && II->getUnwindDest() == BB && II->getNormalDest() != BB, in visitEHPadPredecessors()
4263 Check(BB->getUniquePredecessor() == CPI->getCatchSwitch()->getParent(), in visitEHPadPredecessors()
4267 Check(BB != CPI->getCatchSwitch()->getUnwindDest(), in visitEHPadPredecessors()
4281 Check(II->getUnwindDest() == BB && II->getNormalDest() != BB, in visitEHPadPredecessors()
4289 Check(FromPad != ToPadParent, "A cleanupret must exit its cleanup", CRI); in visitEHPadPredecessors()
4293 Check(false, "EH pad must be jumped to via an unwind edge", ToPad, TI); in visitEHPadPredecessors()
4299 Check(FromPad != ToPad, in visitEHPadPredecessors()
4305 Check(!isa<ConstantTokenNone>(FromPad), in visitEHPadPredecessors()
4307 Check(Seen.insert(FromPad).second, "EH pad jumps through a cycle of pads", in visitEHPadPredecessors()
4312 Check(isa<FuncletPadInst>(FromPad) || isa<CatchSwitchInst>(FromPad), in visitEHPadPredecessors()
4321 Check(LPI.getNumClauses() > 0 || LPI.isCleanup(), in visitLandingPadInst()
4329 Check(LandingPadResultTy == LPI.getType(), in visitLandingPadInst()
4335 Check(F->hasPersonalityFn(), in visitLandingPadInst()
4340 Check(LPI.getParent()->getLandingPadInst() == &LPI, in visitLandingPadInst()
4346 Check(isa<PointerType>(Clause->getType()), in visitLandingPadInst()
4349 Check(LPI.isFilter(i), "Clause is neither catch nor filter!", &LPI); in visitLandingPadInst()
4350 Check(isa<ConstantArray>(Clause) || isa<ConstantAggregateZero>(Clause), in visitLandingPadInst()
4359 Check(RI.getFunction()->hasPersonalityFn(), in visitResumeInst()
4365 Check(LandingPadResultTy == RI.getValue()->getType(), in visitResumeInst()
4377 Check(F->hasPersonalityFn(), in visitCatchPadInst()
4380 Check(isa<CatchSwitchInst>(CPI.getParentPad()), in visitCatchPadInst()
4386 Check(BB->getFirstNonPHI() == &CPI, in visitCatchPadInst()
4394 Check(isa<CatchPadInst>(CatchReturn.getOperand(0)), in visitCatchReturnInst()
4405 Check(F->hasPersonalityFn(), in visitCleanupPadInst()
4410 Check(BB->getFirstNonPHI() == &CPI, in visitCleanupPadInst()
4414 Check(isa<ConstantTokenNone>(ParentPad) || isa<FuncletPadInst>(ParentPad), in visitCleanupPadInst()
4429 Check(Seen.insert(CurrentPad).second, in visitFuncletPadInst()
4458 Check(isa<CatchReturnInst>(U), "Bogus funclet pad use", U); in visitFuncletPadInst()
4508 Check(UnwindPad == FirstUnwindPad, in visitFuncletPadInst()
4571 Check(SwitchUnwindPad == FirstUnwindPad, in visitFuncletPadInst()
4585 Check(F->hasPersonalityFn(), in visitCatchSwitchInst()
4591 Check(BB->getFirstNonPHI() == &CatchSwitch, in visitCatchSwitchInst()
4596 Check(isa<ConstantTokenNone>(ParentPad) || isa<FuncletPadInst>(ParentPad), in visitCatchSwitchInst()
4601 Check(I->isEHPad() && !isa<LandingPadInst>(I), in visitCatchSwitchInst()
4611 Check(CatchSwitch.getNumHandlers() != 0, in visitCatchSwitchInst()
4615 Check(isa<CatchPadInst>(Handler->getFirstNonPHI()), in visitCatchSwitchInst()
4624 Check(isa<CleanupPadInst>(CRI.getOperand(0)), in visitCleanupReturnInst()
4630 Check(I->isEHPad() && !isa<LandingPadInst>(I), in visitCleanupReturnInst()
4660 Check(DT.dominates(Op, U), "Instruction does not dominate all uses!", Op, &I); in verifyDominatesUse()
4664 Check(I.getType()->isPointerTy(), in visitDereferenceableMetadata()
4668 Check((isa<LoadInst>(I) || isa<IntToPtrInst>(I)), in visitDereferenceableMetadata()
4672 Check(MD->getNumOperands() == 1, in visitDereferenceableMetadata()
4677 Check(CI && CI->getType()->isIntegerTy(64), in visitDereferenceableMetadata()
4684 Check(MD->getNumOperands() >= 2, in visitProfMetadata()
4688 Check(MD->getOperand(0) != nullptr, "first operand should not be null", MD); in visitProfMetadata()
4689 Check(isa<MDString>(MD->getOperand(0)), in visitProfMetadata()
4697 Check(MD->getNumOperands() == 2 || MD->getNumOperands() == 3, in visitProfMetadata()
4717 Check(MD->getNumOperands() == 1 + ExpectedNumOperands, in visitProfMetadata()
4722 Check(MDO, "second operand should not be null", MD); in visitProfMetadata()
4723 Check(mdconst::dyn_extract<ConstantInt>(MDO), in visitProfMetadata()
4759 Check(MD->getNumOperands() >= 1, in visitCallStackMetadata()
4763 Check(mdconst::dyn_extract_or_null<ConstantInt>(Op), in visitCallStackMetadata()
4768 Check(isa<CallBase>(I), "!memprof metadata should only exist on calls", &I); in visitMemProfMetadata()
4769 Check(MD->getNumOperands() >= 1, in visitMemProfMetadata()
4780 Check(MIB->getNumOperands() >= 2, in visitMemProfMetadata()
4784 Check(MIB->getOperand(0) != nullptr, in visitMemProfMetadata()
4786 Check(isa<MDNode>(MIB->getOperand(0)), in visitMemProfMetadata()
4792 Check(llvm::all_of(llvm::drop_begin(MIB->operands()), in visitMemProfMetadata()
4799 Check(isa<CallBase>(I), "!callsite metadata should only exist on calls", &I); in visitCallsiteMetadata()
4806 Check(isa<MDTuple>(Annotation), "annotation must be a tuple"); in visitAnnotationMetadata()
4807 Check(Annotation->getNumOperands() >= 1, in visitAnnotationMetadata()
4815 Check(isa<MDString>(Op.get()) || TupleOfStrings, in visitAnnotationMetadata()
4822 Check(NumOps >= 2 && NumOps <= 3, "scope must have two or three operands", in visitAliasScopeMetadata()
4824 Check(MD->getOperand(0).get() == MD || isa<MDString>(MD->getOperand(0)), in visitAliasScopeMetadata()
4827 Check(isa<MDString>(MD->getOperand(2)), in visitAliasScopeMetadata()
4831 Check(Domain != nullptr, "second scope operand must be MDNode", MD); in visitAliasScopeMetadata()
4834 Check(NumDomainOps >= 1 && NumDomainOps <= 2, in visitAliasScopeMetadata()
4836 Check(Domain->getOperand(0).get() == Domain || in visitAliasScopeMetadata()
4840 Check(isa<MDString>(Domain->getOperand(1)), in visitAliasScopeMetadata()
4847 Check(OpMD != nullptr, "scope list must consist of MDNodes", MD); in visitAliasScopeListMetadata()
4864 Check(OpMD != nullptr, "Access scope list must consist of MDNodes", MD); in visitAccessGroupMetadata()
4865 Check(IsValidAccessScope(OpMD), in visitAccessGroupMetadata()
4874 Check(BB, "Instruction not embedded in basic block!", &I); in visitInstruction()
4878 Check(U != (User *)&I || !DT.isReachableFromEntry(BB), in visitInstruction()
4884 Check(!I.getType()->isVoidTy() || !I.hasName(), in visitInstruction()
4889 Check(I.getType()->isVoidTy() || I.getType()->isFirstClassType(), in visitInstruction()
4894 Check(!I.getType()->isMetadataTy() || isa<CallInst>(I) || isa<InvokeInst>(I), in visitInstruction()
4902 Check(Used->getParent() != nullptr, in visitInstruction()
4917 Check(I.getOperand(i) != nullptr, "Instruction has null operand!", &I); in visitInstruction()
4922 Check(false, "Instruction operands must be first-class values!", &I); in visitInstruction()
4938 Check((!F->isIntrinsic() || in visitInstruction()
4942 Check(!F->isIntrinsic() || isa<CallInst>(I) || in visitInstruction()
4959 Check(F->getParent() == &M, "Referencing function in another module!", &I, in visitInstruction()
4962 Check(OpBB->getParent() == BB->getParent(), in visitInstruction()
4965 Check(OpArg->getParent() == BB->getParent(), in visitInstruction()
4968 Check(GV->getParent() == &M, "Referencing global in another module!", &I, in visitInstruction()
4973 Check(CBI && &CBI->getCalledOperandUse() == &I.getOperandUse(i), in visitInstruction()
4985 Check(I.getType()->isFPOrFPVectorTy(), in visitInstruction()
4987 Check(MD->getNumOperands() == 1, "fpmath takes one operand!", &I); in visitInstruction()
4991 Check(&Accuracy.getSemantics() == &APFloat::IEEEsingle(), in visitInstruction()
4993 Check(Accuracy.isFiniteNonZero() && !Accuracy.isNegative(), in visitInstruction()
4996 Check(false, "invalid fpmath accuracy!", &I); in visitInstruction()
5001 Check(isa<LoadInst>(I) || isa<CallInst>(I) || isa<InvokeInst>(I), in visitInstruction()
5007 Check(isa<LoadInst>(I) || isa<StoreInst>(I), in visitInstruction()
5012 Check(I.getType()->isPointerTy(), "nonnull applies only to pointer types", in visitInstruction()
5014 Check(isa<LoadInst>(I), in visitInstruction()
5018 Check(MD->getNumOperands() == 0, "nonnull metadata must be empty", &I); in visitInstruction()
5039 Check(I.getType()->isPointerTy(), "align applies only to pointer types", in visitInstruction()
5041 Check(isa<LoadInst>(I), in visitInstruction()
5045 Check(AlignMD->getNumOperands() == 1, "align takes one operand!", &I); in visitInstruction()
5047 Check(CI && CI->getType()->isIntegerTy(64), in visitInstruction()
5050 Check(isPowerOf2_64(Align), "align metadata value must be a power of 2!", in visitInstruction()
5052 Check(Align <= Value::MaximumAlignment, in visitInstruction()
5098 Check(IF->isDeclaration(), "Intrinsic functions should never be defined!", in visitIntrinsicCall()
5114 Check(Res != Intrinsic::MatchIntrinsicTypes_NoMatchRet, in visitIntrinsicCall()
5116 Check(Res != Intrinsic::MatchIntrinsicTypes_NoMatchArg, in visitIntrinsicCall()
5121 Check(!Intrinsic::matchIntrinsicVarArg(IsVarArg, TableRef), in visitIntrinsicCall()
5124 Check(!Intrinsic::matchIntrinsicVarArg(IsVarArg, TableRef), in visitIntrinsicCall()
5128 Check(TableRef.empty(), "Intrinsic has too few arguments!", IF); in visitIntrinsicCall()
5136 Check(ExpectedName == IF->getName(), in visitIntrinsicCall()
5148 Check(!Const->getType()->isX86_AMXTy(), in visitIntrinsicCall()
5161 Check(ArgCount == 2, in visitIntrinsicCall()
5163 Check(Call.getOperand(Elem.Begin)->getType()->isPointerTy() && in visitIntrinsicCall()
5169 Check(Elem.Tag->getKey() == "ignore" || in visitIntrinsicCall()
5175 Check(ArgCount <= 3 && ArgCount >= 2, in visitIntrinsicCall()
5177 Check(Call.getOperand(Elem.Begin)->getType()->isPointerTy(), in visitIntrinsicCall()
5179 Check(Call.getOperand(Elem.Begin + 1)->getType()->isIntegerTy(), in visitIntrinsicCall()
5182 Check(Call.getOperand(Elem.Begin + 2)->getType()->isIntegerTy(), in visitIntrinsicCall()
5186 Check(ArgCount <= 2, "too many arguments", Call); in visitIntrinsicCall()
5190 Check(ArgCount == 2, "this attribute should have 2 arguments", Call); in visitIntrinsicCall()
5191 Check(isa<ConstantInt>(Call.getOperand(Elem.Begin + 1)), in visitIntrinsicCall()
5194 Check((ArgCount) == 1, "this attribute should have one argument", Call); in visitIntrinsicCall()
5196 Check((ArgCount) == 0, "this attribute has no argument", Call); in visitIntrinsicCall()
5206 Check(GV && GV->isConstant() && GV->hasDefinitiveInitializer(), in visitIntrinsicCall()
5210 Check(isa<ConstantStruct>(Init) || isa<ConstantArray>(Init), in visitIntrinsicCall()
5217 Check((TestMask->getZExtValue() & ~static_cast<unsigned>(fcAllFlags)) == 0, in visitIntrinsicCall()
5228 Check(MD != nullptr, "missing rounding mode argument", Call); in visitIntrinsicCall()
5230 Check(isa<MDString>(MD), in visitIntrinsicCall()
5237 Check(RoundMode && *RoundMode != RoundingMode::Dynamic, in visitIntrinsicCall()
5251 Check(isa<MetadataAsValue>(Call.getArgOperand(0)), in visitIntrinsicCall()
5279 Check(ElementSizeVal.isPowerOf2(), in visitIntrinsicCall()
5287 Check(IsValidAlignment(AMI->getDestAlign()), in visitIntrinsicCall()
5290 Check(IsValidAlignment(AMT->getSourceAlign()), in visitIntrinsicCall()
5297 Check(NumArgs != nullptr, in visitIntrinsicCall()
5302 Check(UseCall != nullptr, in visitIntrinsicCall()
5307 Check(AllocArgIndex != nullptr, in visitIntrinsicCall()
5310 Check(AllocArgIndexInt.sge(0) && in visitIntrinsicCall()
5319 Check(!FoundCall, "Can have at most one call corresponding to a " in visitIntrinsicCall()
5328 Check(NumPreallocatedArgs != 0, in visitIntrinsicCall()
5331 Check(NumArgs->equalsInt(NumPreallocatedArgs), in visitIntrinsicCall()
5345 Check(PreallocatedBundle, in visitIntrinsicCall()
5348 Check(PreallocatedBundle->Inputs.front().get() == &Call, in visitIntrinsicCall()
5357 Check(Token && Token->getCalledFunction()->getIntrinsicID() == in visitIntrinsicCall()
5361 Check(Call.hasFnAttr(Attribute::Preallocated), in visitIntrinsicCall()
5368 Check(Token && Token->getCalledFunction()->getIntrinsicID() == in visitIntrinsicCall()
5380 Check(AI, "llvm.gcroot parameter #1 must be an alloca.", Call); in visitIntrinsicCall()
5381 Check(isa<Constant>(Call.getArgOperand(1)), in visitIntrinsicCall()
5384 Check(!isa<ConstantPointerNull>(Call.getArgOperand(1)), in visitIntrinsicCall()
5391 Check(Call.getParent()->getParent()->hasGC(), in visitIntrinsicCall()
5395 Check(isa<Function>(Call.getArgOperand(1)->stripPointerCasts()), in visitIntrinsicCall()
5400 Check(cast<ConstantInt>(Call.getArgOperand(1))->getZExtValue() < 2, in visitIntrinsicCall()
5402 Check(cast<ConstantInt>(Call.getArgOperand(2))->getZExtValue() < 4, in visitIntrinsicCall()
5404 Check(cast<ConstantInt>(Call.getArgOperand(3))->getZExtValue() < 2, in visitIntrinsicCall()
5408 Check(isa<AllocaInst>(Call.getArgOperand(1)->stripPointerCasts()), in visitIntrinsicCall()
5413 Check(BB->isEntryBlock(), "llvm.localescape used outside of entry block", in visitIntrinsicCall()
5415 Check(!SawFrameEscape, "multiple calls to llvm.localescape in one function", in visitIntrinsicCall()
5421 Check(AI && AI->isStaticAlloca(), in visitIntrinsicCall()
5431 Check(Fn && !Fn->isDeclaration(), in visitIntrinsicCall()
5444 Check(!CI->isInlineAsm(), in visitIntrinsicCall()
5446 Check(Call.getParent()->getParent()->hasGC(), in visitIntrinsicCall()
5452 Check(Call.getParent()->getParent()->hasGC(), in visitIntrinsicCall()
5463 Check(StatepointFn && StatepointFn->isDeclaration() && in visitIntrinsicCall()
5472 Check(Call.getType() == TargetFuncType->getReturnType(), in visitIntrinsicCall()
5477 Check(Call.arg_size() == 3, "wrong number of arguments", Call); in visitIntrinsicCall()
5479 Check(isa<PointerType>(Call.getType()->getScalarType()), in visitIntrinsicCall()
5493 Check(InvokeBB, "safepoints should have unique landingpads", in visitIntrinsicCall()
5495 Check(InvokeBB->getTerminator(), "safepoint block should be well formed", in visitIntrinsicCall()
5497 Check(isa<GCStatepointInst>(InvokeBB->getTerminator()), in visitIntrinsicCall()
5504 Check(isa<GCStatepointInst>(Token) || isa<UndefValue>(Token), in visitIntrinsicCall()
5513 Check(isa<ConstantInt>(Base), in visitIntrinsicCall()
5517 Check(isa<ConstantInt>(Derived), in visitIntrinsicCall()
5528 Check(BaseIndex < Opt->Inputs.size(), in visitIntrinsicCall()
5530 Check(DerivedIndex < Opt->Inputs.size(), in visitIntrinsicCall()
5543 Check(BaseType->isPtrOrPtrVectorTy(), in visitIntrinsicCall()
5545 Check(DerivedType->isPtrOrPtrVectorTy(), in visitIntrinsicCall()
5548 Check(ResultType->isVectorTy() == DerivedType->isVectorTy(), in visitIntrinsicCall()
5551 Check( in visitIntrinsicCall()
5558 Check(GC, "gc.relocate: calling function must have GCStrategy", in visitIntrinsicCall()
5564 Check(isGCPtr(ResultType), "gc.relocate: must return gc pointer", Call); in visitIntrinsicCall()
5565 Check(isGCPtr(BaseType), in visitIntrinsicCall()
5567 Check(isGCPtr(DerivedType), in visitIntrinsicCall()
5574 Check(isa<CatchPadInst>(Call.getArgOperand(0)), in visitIntrinsicCall()
5579 Check(Call.getType()->isVectorTy(), in visitIntrinsicCall()
5584 Check(ElemTy->isIntegerTy(1), in visitIntrinsicCall()
5592 Check(!VF->isNegative() && !VF->isZero(), in visitIntrinsicCall()
5597 Check(Call.getType()->isVectorTy(), "masked_load: must return a vector", in visitIntrinsicCall()
5603 Check(Mask->getType()->isVectorTy(), "masked_load: mask must be vector", in visitIntrinsicCall()
5605 Check(Alignment->getValue().isPowerOf2(), in visitIntrinsicCall()
5607 Check(PassThru->getType() == Call.getType(), in visitIntrinsicCall()
5609 Check(cast<VectorType>(Mask->getType())->getElementCount() == in visitIntrinsicCall()
5618 Check(Mask->getType()->isVectorTy(), "masked_store: mask must be vector", in visitIntrinsicCall()
5620 Check(Alignment->getValue().isPowerOf2(), in visitIntrinsicCall()
5622 Check(cast<VectorType>(Mask->getType())->getElementCount() == in visitIntrinsicCall()
5631 Check(Alignment.isZero() || Alignment.isPowerOf2(), in visitIntrinsicCall()
5638 Check(Alignment.isZero() || Alignment.isPowerOf2(), in visitIntrinsicCall()
5644 Check(isa<CallInst>(Call), "experimental_guard cannot be invoked", Call); in visitIntrinsicCall()
5645 Check(Call.countOperandBundlesOfType(LLVMContext::OB_deopt) == 1, in visitIntrinsicCall()
5652 Check(isa<CallInst>(Call), "experimental_deoptimize cannot be invoked", in visitIntrinsicCall()
5654 Check(Call.countOperandBundlesOfType(LLVMContext::OB_deopt) == 1, in visitIntrinsicCall()
5657 Check(Call.getType() == Call.getFunction()->getReturnType(), in visitIntrinsicCall()
5662 Check(RI, in visitIntrinsicCall()
5666 Check(RI->getReturnValue() == &Call, in visitIntrinsicCall()
5683 Check(ArgTy->isIntOrIntVectorTy() && ArgTy->isVectorTy(), in visitIntrinsicCall()
5690 Check(ArgTy->isFPOrFPVectorTy() && ArgTy->isVectorTy(), in visitIntrinsicCall()
5699 Check(ArgTy->isFPOrFPVectorTy() && ArgTy->isVectorTy(), in visitIntrinsicCall()
5713 Check(Op1->getType()->isIntOrIntVectorTy(), in visitIntrinsicCall()
5716 Check(Op2->getType()->isIntOrIntVectorTy(), in visitIntrinsicCall()
5721 Check(Op3->getType()->isIntegerTy(), in visitIntrinsicCall()
5723 Check(Op3->getBitWidth() <= 32, in visitIntrinsicCall()
5728 Check(Op3->getZExtValue() < Op1->getType()->getScalarSizeInBits(), in visitIntrinsicCall()
5732 Check(Op3->getZExtValue() <= Op1->getType()->getScalarSizeInBits(), in visitIntrinsicCall()
5742 Check( in visitIntrinsicCall()
5747 Check(ValTy->isVectorTy() == ResultTy->isVectorTy(), in visitIntrinsicCall()
5751 Check(cast<VectorType>(ValTy)->getElementCount() == in visitIntrinsicCall()
5762 Check(!ValTy->isVectorTy() && !ResultTy->isVectorTy(), in visitIntrinsicCall()
5769 Check(Size % 16 == 0, "bswap must be an even number of bytes", &Call); in visitIntrinsicCall()
5774 Check(InvariantSize && in visitIntrinsicCall()
5796 Check(cast<FixedVectorType>(Call.getArgOperand(0)->getType()) in visitIntrinsicCall()
5801 Check(cast<FixedVectorType>(Call.getArgOperand(1)->getType()) in visitIntrinsicCall()
5841 Check(ResultTy->getElementType()->isIntegerTy() || in visitIntrinsicCall()
5846 Check(ResultTy->getElementType() == Op0ElemTy, in visitIntrinsicCall()
5852 Check(ResultTy->getElementType() == Op1ElemTy, in visitIntrinsicCall()
5857 Check(cast<FixedVectorType>(ResultTy)->getNumElements() == in visitIntrinsicCall()
5862 Check(Stride->getZExtValue() >= NumRows->getZExtValue(), in visitIntrinsicCall()
5876 Check((Idx < 0 && std::abs(Idx) <= KnownMinNumElements) || in visitIntrinsicCall()
5887 Check(VecTy && VecTy->getScalarType()->isIntegerTy() && in visitIntrinsicCall()
5905 Check(VecTy->getElementType() == SubVecTy->getElementType(), in visitIntrinsicCall()
5909 Check(IdxN % SubVecEC.getKnownMinValue() == 0, in visitIntrinsicCall()
5917 Check(IdxN < VecEC.getKnownMinValue() && in visitIntrinsicCall()
5935 Check(ResultTy->getElementType() == VecTy->getElementType(), in visitIntrinsicCall()
5939 Check(IdxN % ResultEC.getKnownMinValue() == 0, in visitIntrinsicCall()
5947 Check(IdxN < VecEC.getKnownMinValue() && in visitIntrinsicCall()
5964 Check(ElemTy, "Intrinsic requires elementtype attribute on first argument.", in visitIntrinsicCall()
5973 Check(ElemTy, in visitIntrinsicCall()
5979 Check(cast<ConstantInt>(Call.getArgOperand(1))->getZExtValue() < 2, in visitIntrinsicCall()
5981 Check(cast<ConstantInt>(Call.getArgOperand(2))->getZExtValue() < 4, in visitIntrinsicCall()
5983 Check(cast<ConstantInt>(Call.getArgOperand(3))->getZExtValue() < 2, in visitIntrinsicCall()
5985 Check(cast<ConstantInt>(Call.getArgOperand(4))->getZExtValue() < 2, in visitIntrinsicCall()
5991 Check(CBR, "intrinstic requires callbr operand", &Call); in visitIntrinsicCall()
6006 Check(llvm::any_of(CBR->getIndirectDests(), in visitIntrinsicCall()
6014 Check(&First == &Call, "No other instructions may proceed intrinsic", in visitIntrinsicCall()
6033 Check(Call.paramHasAttr(2, Attribute::InReg), in visitIntrinsicCall()
6035 Check(!Call.paramHasAttr(3, Attribute::InReg), in visitIntrinsicCall()
6054 Check(!Call.paramHasAttr(InactiveIdx, Attribute::InReg), in visitIntrinsicCall()
6057 Check(isa<Argument>(Call.getArgOperand(InactiveIdx)), in visitIntrinsicCall()
6059 Check(!cast<Argument>(Call.getArgOperand(InactiveIdx))->hasInRegAttr(), in visitIntrinsicCall()
6067 Check(RegCount % 8 == 0, in visitIntrinsicCall()
6069 Check((RegCount >= 24 && RegCount <= 256), in visitIntrinsicCall()
6082 Check(Ty0->isPtrOrPtrVectorTy(), in visitIntrinsicCall()
6086 Check( in visitIntrinsicCall()
6091 Check(cast<VectorType>(Ty0)->getElementCount() == in visitIntrinsicCall()
6096 Check(DL.getIndexTypeSizeInBits(Ty0) == Ty1->getScalarSizeInBits(), in visitIntrinsicCall()
6131 Check(HasToken, "Missing funclet token on intrinsic call", &Call); in visitIntrinsicCall()
6159 Check(RetTy->getElementCount() == ValTy->getElementCount(), in visitVPIntrinsic()
6168 Check(RetTy->isIntOrIntVectorTy() && ValTy->isIntOrIntVectorTy(), in visitVPIntrinsic()
6172 Check(RetTy->getScalarSizeInBits() < ValTy->getScalarSizeInBits(), in visitVPIntrinsic()
6179 Check(RetTy->isIntOrIntVectorTy() && ValTy->isIntOrIntVectorTy(), in visitVPIntrinsic()
6183 Check(RetTy->getScalarSizeInBits() > ValTy->getScalarSizeInBits(), in visitVPIntrinsic()
6190 Check( in visitVPIntrinsic()
6198 Check( in visitVPIntrinsic()
6205 Check(RetTy->isFPOrFPVectorTy() && ValTy->isFPOrFPVectorTy(), in visitVPIntrinsic()
6209 Check(RetTy->getScalarSizeInBits() < ValTy->getScalarSizeInBits(), in visitVPIntrinsic()
6215 Check(RetTy->isFPOrFPVectorTy() && ValTy->isFPOrFPVectorTy(), in visitVPIntrinsic()
6219 Check(RetTy->getScalarSizeInBits() > ValTy->getScalarSizeInBits(), in visitVPIntrinsic()
6225 Check(RetTy->isIntOrIntVectorTy() && ValTy->isPtrOrPtrVectorTy(), in visitVPIntrinsic()
6231 Check(RetTy->isPtrOrPtrVectorTy() && ValTy->isIntOrIntVectorTy(), in visitVPIntrinsic()
6240 Check(CmpInst::isFPPredicate(Pred), in visitVPIntrinsic()
6245 Check(CmpInst::isIntPredicate(Pred), in visitVPIntrinsic()
6250 Check((TestMask->getZExtValue() & ~static_cast<unsigned>(fcAllFlags)) == 0, in visitVPIntrinsic()
6272 Check((FPI.arg_size() == NumOperands), in visitConstrainedFPIntrinsic()
6280 Check(!ValTy->isVectorTy() && !ResultTy->isVectorTy(), in visitConstrainedFPIntrinsic()
6289 Check(!ValTy->isVectorTy() && !ResultTy->isVectorTy(), in visitConstrainedFPIntrinsic()
6297 Check(CmpInst::isFPPredicate(Pred), in visitConstrainedFPIntrinsic()
6306 Check(Operand->getType()->isFPOrFPVectorTy(), in visitConstrainedFPIntrinsic()
6313 Check(SrcEC.isNonZero() == Operand->getType()->isVectorTy(), in visitConstrainedFPIntrinsic()
6315 Check(Operand->getType()->isIntOrIntVectorTy(), in visitConstrainedFPIntrinsic()
6318 Check(SrcEC == cast<VectorType>(OperandT)->getElementCount(), in visitConstrainedFPIntrinsic()
6329 Check(Operand->getType()->isIntOrIntVectorTy(), in visitConstrainedFPIntrinsic()
6336 Check(SrcEC.isNonZero() == Operand->getType()->isVectorTy(), in visitConstrainedFPIntrinsic()
6338 Check(Operand->getType()->isFPOrFPVectorTy(), in visitConstrainedFPIntrinsic()
6341 Check(SrcEC == cast<VectorType>(OperandT)->getElementCount(), in visitConstrainedFPIntrinsic()
6353 Check(OperandTy->isFPOrFPVectorTy(), in visitConstrainedFPIntrinsic()
6355 Check(ResultTy->isFPOrFPVectorTy(), in visitConstrainedFPIntrinsic()
6357 Check(OperandTy->isVectorTy() == ResultTy->isVectorTy(), in visitConstrainedFPIntrinsic()
6360 Check(cast<VectorType>(OperandTy)->getElementCount() == in visitConstrainedFPIntrinsic()
6366 Check(OperandTy->getScalarSizeInBits() > ResultTy->getScalarSizeInBits(), in visitConstrainedFPIntrinsic()
6370 Check(OperandTy->getScalarSizeInBits() < ResultTy->getScalarSizeInBits(), in visitConstrainedFPIntrinsic()
6386 Check(FPI.getExceptionBehavior().has_value(), in visitConstrainedFPIntrinsic()
6389 Check(FPI.getRoundingMode().has_value(), "invalid rounding mode argument", in visitConstrainedFPIntrinsic()
6472 Check(Loc, "llvm.dbg." + Kind + " intrinsic requires a !dbg attachment", &DLI, in visitDbgLabelIntrinsic()
6603 Check(First->getCallingConv() == F->getCallingConv(), in verifyDeoptimizeCallingConvs()
6614 Check((FTy->getReturnType()->isPointerTy() || in verifyAttachedCallBundle()
6621 Check(BU.Inputs.size() == 1 && isa<Function>(BU.Inputs.front()), in verifyAttachedCallBundle()
6630 Check((IID == Intrinsic::objc_retainAutoreleasedReturnValue || in verifyAttachedCallBundle()
6635 Check((FnName == "objc_retainAutoreleasedReturnValue" || in verifyAttachedCallBundle()
6651 Check(ScopeListMV != nullptr, in verifyNoAliasScopeDecl()
6657 Check(ScopeListMD != nullptr, "!id.scope.list must point to an MDNode", II); in verifyNoAliasScopeDecl()
6658 Check(ScopeListMD->getNumOperands() == 1, in verifyNoAliasScopeDecl()
6702 Check(!DT.dominates(I, J), in verifyNoAliasScopeDecl()