reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

include/llvm/IR/Instructions.h
 4712 class TruncInst : public CastInst {
 4751 class ZExtInst : public CastInst {
 4790 class SExtInst : public CastInst {
 4829 class FPTruncInst : public CastInst {
 4868 class FPExtInst : public CastInst {
 4907 class UIToFPInst : public CastInst {
 4946 class SIToFPInst : public CastInst {
 4985 class FPToUIInst  : public CastInst {
 5024 class FPToSIInst  : public CastInst {
 5063 class IntToPtrInst : public CastInst {
 5106 class PtrToIntInst : public CastInst {
 5157 class BitCastInst : public CastInst {
 5197 class AddrSpaceCastInst : public CastInst {

Declarations

include/llvm/Transforms/Utils/SimplifyIndVar.h
   22 class CastInst;

References

include/llvm/Analysis/LoopUnrollAnalyzer.h
   89   bool visitCastInst(CastInst &I);
include/llvm/IR/IRBuilder.h
  845   InstTy *Insert(InstTy *I, const Twine &Name = "") const {
  845   InstTy *Insert(InstTy *I, const Twine &Name = "") const {
 1995     return Insert(CastInst::CreateZExtOrBitCast(V, DestTy), Name);
 2004     return Insert(CastInst::CreateSExtOrBitCast(V, DestTy), Name);
 2013     return Insert(CastInst::CreateTruncOrBitCast(V, DestTy), Name);
 2022     return Insert(CastInst::Create(Op, V, DestTy), Name);
 2031     return Insert(CastInst::CreatePointerCast(V, DestTy), Name);
 2044     return Insert(CastInst::CreatePointerBitCastOrAddrSpaceCast(V, DestTy),
 2054     return Insert(CastInst::CreateIntegerCast(V, DestTy, isSigned), Name);
 2074     return Insert(CastInst::CreateFPCast(V, DestTy), Name);
include/llvm/IR/InstVisitor.h
  267   RetTy visitCastInst(CastInst &I)                { DELEGATE(UnaryInstruction);}
include/llvm/IR/InstrTypes.h
  461   static CastInst *Create(
  474   static CastInst *Create(
  483   static CastInst *CreateZExtOrBitCast(
  491   static CastInst *CreateZExtOrBitCast(
  499   static CastInst *CreateSExtOrBitCast(
  507   static CastInst *CreateSExtOrBitCast(
  515   static CastInst *CreatePointerCast(
  523   static CastInst *CreatePointerCast(
  531   static CastInst *CreatePointerBitCastOrAddrSpaceCast(
  539   static CastInst *CreatePointerBitCastOrAddrSpaceCast(
  552   static CastInst *CreateBitOrPointerCast(
  560   static CastInst *CreateIntegerCast(
  569   static CastInst *CreateIntegerCast(
  578   static CastInst *CreateFPCast(
  586   static CastInst *CreateFPCast(
  594   static CastInst *CreateTruncOrBitCast(
  602   static CastInst *CreateTruncOrBitCast(
include/llvm/IR/Instructions.h
 4712 class TruncInst : public CastInst {
 4751 class ZExtInst : public CastInst {
 4790 class SExtInst : public CastInst {
 4829 class FPTruncInst : public CastInst {
 4868 class FPExtInst : public CastInst {
 4907 class UIToFPInst : public CastInst {
 4946 class SIToFPInst : public CastInst {
 4985 class FPToUIInst  : public CastInst {
 5024 class FPToSIInst  : public CastInst {
 5063 class IntToPtrInst : public CastInst {
 5106 class PtrToIntInst : public CastInst {
 5157 class BitCastInst : public CastInst {
 5197 class AddrSpaceCastInst : public CastInst {
include/llvm/IR/NoFolder.h
  255     return CastInst::Create(Op, C, DestTy);
  259     return CastInst::CreatePointerCast(C, DestTy);
  264     return CastInst::CreateIntegerCast(C, DestTy, isSigned);
  268     return CastInst::CreateFPCast(C, DestTy);
  284     return CastInst::CreateZExtOrBitCast(C, DestTy);
  288     return CastInst::CreateSExtOrBitCast(C, DestTy);
  292     return CastInst::CreateTruncOrBitCast(C, DestTy);
include/llvm/IR/PatternMatch.h
   47 template <typename Val, typename Pattern> bool match(Val *V, const Pattern &P) {
   56   template <typename OpTy> bool match(OpTy *V) {
  117   template <typename ITy> bool match(ITy *V) {
 1279   template <typename OpTy> bool match(OpTy *V) {
include/llvm/IR/ValueHandle.h
  256   ValueTy *getValPtr() const { return static_cast<ValueTy *>(getRawValPtr()); }
  257   void setValPtr(ValueTy *P) { setRawValPtr(GetAsValue(P)); }
  262   AssertingVH(ValueTy *P) : ValueHandleBase(Assert, GetAsValue(P)) {}
  269   operator ValueTy*() const {
  273   ValueTy *operator=(ValueTy *RHS) {
  273   ValueTy *operator=(ValueTy *RHS) {
  277   ValueTy *operator=(const AssertingVH<ValueTy> &RHS) {
  277   ValueTy *operator=(const AssertingVH<ValueTy> &RHS) {
  282   ValueTy *operator->() const { return getValPtr(); }
  283   ValueTy &operator*() const { return *getValPtr(); }
  483   ValueTy *getValPtr() const {
  487   void setValPtr(ValueTy *P) { setRawValPtr(GetAsValue(P)); }
  492   PoisoningVH(ValueTy *P) : CallbackVH(GetAsValue(P)) {}
  512   operator ValueTy *() const { return getValPtr(); }
  514   ValueTy *operator->() const { return getValPtr(); }
  515   ValueTy &operator*() const { return *getValPtr(); }
include/llvm/Support/Casting.h
   34   using SimpleType = From; // The real type this represents...
   37   static SimpleType &getSimplifiedValue(From &Val) { return Val; }
   41   using NonConstSimpleType = typename simplify_type<From>::SimpleType;
   47   static RetType getSimplifiedValue(const From& Val) {
   57   static inline bool doit(const From &Val) {
   58     return To::classof(&Val);
   76   static inline bool doit(const From &Val) {
   77     return isa_impl<To, From>::doit(Val);
   77     return isa_impl<To, From>::doit(Val);
   92     return isa_impl<To, From>::doit(*Val);
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  141 template <class X, class Y> LLVM_NODISCARD inline bool isa(const Y &Val) {
  142   return isa_impl_wrap<X, const Y,
  142   return isa_impl_wrap<X, const Y,
  143                        typename simplify_type<const Y>::SimpleType>::doit(Val);
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  176   using ret_type = const To *; // Constant pointer arg case, return const Ty*
  198   using ret_type = typename cast_retty<To, SimpleFrom>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  218   static typename cast_retty<To, From>::ret_type doit(From &Val) {
  219     return cast_convert_val<To, SimpleFrom,
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  248                                typename cast_retty<X, const Y>::ret_type>::type
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  258   return cast_convert_val<X, Y,
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  331                             typename cast_retty<X, const Y>::ret_type>::type
  337 LLVM_NODISCARD inline typename cast_retty<X, Y>::ret_type dyn_cast(Y &Val) {
  338   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  338   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  366 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  368   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
include/llvm/Support/type_traits.h
   55 struct add_const_past_pointer { using type = const T; };
include/llvm/Transforms/Utils/CallPromotionUtils.h
   39                          CastInst **RetBitCast = nullptr);
include/llvm/Transforms/Utils/SimplifyIndVar.h
   43   virtual void visitCast(CastInst *Cast) = 0;
lib/Analysis/BasicAliasAnalysis.cpp
  377     Value *CastOp = cast<CastInst>(V)->getOperand(0);
lib/Analysis/CFLGraph.h
  282     void visitCastInst(CastInst &Inst) {
lib/Analysis/ConstantFolding.cpp
  342       if (CastInst::castIsValid(Cast, C, DestTy))
  781       NewIdxs.push_back(ConstantExpr::getCast(CastInst::getCastOpcode(Ops[i],
lib/Analysis/IVDescriptors.cpp
  172     if (auto *Cast = dyn_cast<CastInst>(Val))
  172     if (auto *Cast = dyn_cast<CastInst>(Val))
lib/Analysis/InlineCost.cpp
  271   bool visitCastInst(CastInst &I);
  714 bool CallAnalyzer::visitCastInst(CastInst &I) {
lib/Analysis/InstructionSimplify.cpp
 1797   auto *Cast0 = dyn_cast<CastInst>(Op0);
 1797   auto *Cast0 = dyn_cast<CastInst>(Op0);
 1798   auto *Cast1 = dyn_cast<CastInst>(Op1);
 1798   auto *Cast1 = dyn_cast<CastInst>(Op1);
 3244   if (isa<CastInst>(LHS) && (isa<Constant>(RHS) || isa<CastInst>(RHS))) {
 3244   if (isa<CastInst>(LHS) && (isa<Constant>(RHS) || isa<CastInst>(RHS))) {
 3245     Instruction *LI = cast<CastInst>(LHS);
 3286         Constant *RExt = ConstantExpr::getCast(CastInst::ZExt, Trunc, DstTy);
 3345         Constant *RExt = ConstantExpr::getCast(CastInst::SExt, Trunc, DstTy);
 4281   if (auto *CI = dyn_cast<CastInst>(Op)) {
 4281   if (auto *CI = dyn_cast<CastInst>(Op)) {
 4295       if (CastInst::isEliminableCastPair(FirstOp, SecondOp, SrcTy, MidTy, DstTy,
lib/Analysis/LazyValueInfo.cpp
  431   bool solveBlockValueCast(ValueLatticeElement &BBLV, CastInst *CI,
  648     if (auto *CI = dyn_cast<CastInst>(BBI))
  648     if (auto *CI = dyn_cast<CastInst>(BBI))
 1016                                             CastInst *CI,
 1341   return isa<CastInst>(Usr) || isa<BinaryOperator>(Usr);
 1354   if (auto *CI = dyn_cast<CastInst>(Usr)) {
 1354   if (auto *CI = dyn_cast<CastInst>(Usr)) {
lib/Analysis/Lint.cpp
  693   } else if (CastInst *CI = dyn_cast<CastInst>(V)) {
  693   } else if (CastInst *CI = dyn_cast<CastInst>(V)) {
  704       if (CastInst::isNoopCast(Instruction::CastOps(CE->getOpcode()),
lib/Analysis/Loads.cpp
  187   if (isa<BinaryOperator>(A) || isa<CastInst>(A) || isa<PHINode>(A) ||
  416           CastInst::isBitOrNoopPointerCastable(LI->getType(), AccessTy, DL)) {
  434           CastInst::isBitOrNoopPointerCastable(SI->getValueOperand()->getType(),
lib/Analysis/LoopAccessAnalysis.cpp
  138   if (auto *CI = dyn_cast<CastInst>(V))
  138   if (auto *CI = dyn_cast<CastInst>(V))
lib/Analysis/LoopUnrollAnalyzer.cpp
  143 bool UnrolledInstAnalyzer::visitCastInst(CastInst &I) {
  154   if (COp && CastInst::castIsValid(I.getOpcode(), COp, I.getType())) {
lib/Analysis/PHITransAddr.cpp
   30   if (isa<CastInst>(Inst) &&
  187   if (CastInst *Cast = dyn_cast<CastInst>(Inst)) {
  187   if (CastInst *Cast = dyn_cast<CastInst>(Inst)) {
  204       if (CastInst *CastI = dyn_cast<CastInst>(U))
  204       if (CastInst *CastI = dyn_cast<CastInst>(U))
  380   if (CastInst *Cast = dyn_cast<CastInst>(Inst)) {
  380   if (CastInst *Cast = dyn_cast<CastInst>(Inst)) {
  387     CastInst *New = CastInst::Create(Cast->getOpcode(), OpVal, InVal->getType(),
  387     CastInst *New = CastInst::Create(Cast->getOpcode(), OpVal, InVal->getType(),
lib/Analysis/ScalarEvolution.cpp
 7713       isa<SelectInst>(I) || isa<CastInst>(I) || isa<GetElementPtrInst>(I) ||
 8237             C = ConstantExpr::getCast(CastInst::getCastOpcode(C, false,
lib/Analysis/ScalarEvolutionExpander.cpp
   56       if (CastInst *CI = dyn_cast<CastInst>(U))
   56       if (CastInst *CI = dyn_cast<CastInst>(U))
   64             Ret = CastInst::Create(Op, V, Ty, "", &*IP);
   75     Ret = CastInst::Create(Op, V, Ty, V->getName(), &*IP);
  110   Instruction::CastOps Op = CastInst::getCastOpcode(V, false, Ty, false);
  122     if (CastInst *CI = dyn_cast<CastInst>(V)) {
  122     if (CastInst *CI = dyn_cast<CastInst>(V)) {
  130     if (CastInst *CI = dyn_cast<CastInst>(V))
  130     if (CastInst *CI = dyn_cast<CastInst>(V))
  899       (isa<CastInst>(IncV) && !isa<BitCastInst>(IncV)))
lib/Analysis/ValueTracking.cpp
 4960   auto *Cast1 = dyn_cast<CastInst>(V1);
 4960   auto *Cast1 = dyn_cast<CastInst>(V1);
 4966   if (auto *Cast2 = dyn_cast<CastInst>(V2)) {
 4966   if (auto *Cast2 = dyn_cast<CastInst>(V2)) {
 5092                                   cast<CastInst>(TrueVal)->getOperand(0), C,
 5101                                   C, cast<CastInst>(FalseVal)->getOperand(0),
lib/Analysis/VectorUtils.cpp
  172     CastInst *CI = dyn_cast<CastInst>(U);
  172     CastInst *CI = dyn_cast<CastInst>(U);
lib/AsmParser/LLParser.cpp
 3329     if (!CastInst::castIsValid((Instruction::CastOps)Opc, SrcVal, DestTy))
 6553   if (!CastInst::castIsValid((Instruction::CastOps)Opc, Op, DestTy)) {
 6554     CastInst::castIsValid((Instruction::CastOps)Opc, Op, DestTy);
 6559   Inst = CastInst::Create((Instruction::CastOps)Opc, Op, DestTy);
lib/Bitcode/Reader/BitcodeReader.cpp
 3943         if (!CastInst::castIsValid(CastOp, Op, ResTy))
 3945         I = CastInst::Create(CastOp, Op, ResTy);
lib/CodeGen/CodeGenPrepare.cpp
 1072 static bool SinkCast(CastInst *CI) {
 1076   DenseMap<BasicBlock*, CastInst*> InsertedCasts;
 1109     CastInst *&InsertedCast = InsertedCasts[UserBB];
 1114       InsertedCast = CastInst::Create(CI->getOpcode(), CI->getOperand(0),
 1140 static bool OptimizeNoopCopyExpression(CastInst *CI, const TargetLowering &TLI,
 1526   DenseMap<BasicBlock *, CastInst *> InsertedTruncs;
 1563     CastInst *&InsertedTrunc = InsertedTruncs[TruncUserBB];
 1582       InsertedTrunc = CastInst::Create(TruncI->getOpcode(), InsertedShift,
 4184             (BaseI && !isa<CastInst>(BaseI) &&
 6254   auto *ExtInst = CastInst::Create(ExtType, Cond, NewType);
 6254   auto *ExtInst = CastInst::Create(ExtType, Cond, NewType);
 6942   if (CastInst *CI = dyn_cast<CastInst>(I)) {
 6942   if (CastInst *CI = dyn_cast<CastInst>(I)) {
lib/CodeGen/IndirectBrExpandPass.cpp
  180     return CastInst::CreatePointerCast(
lib/CodeGen/InterleavedLoadCombinePass.cpp
  969     if (isa<CastInst>(&Ptr)) {
  970       CastInst &CI = *cast<CastInst>(&Ptr);
  970       CastInst &CI = *cast<CastInst>(&Ptr);
lib/CodeGen/SelectionDAG/FastISel.cpp
  337   if (const auto *Cast = dyn_cast<CastInst>(I))
  337   if (const auto *Cast = dyn_cast<CastInst>(I))
lib/IR/AsmWriter.cpp
 3997   } else if (isa<CastInst>(I)) {
lib/IR/AutoUpgrade.cpp
 3779     Temp = CastInst::Create(Instruction::PtrToInt, V, MidTy);
 3781     return CastInst::Create(Instruction::IntToPtr, Temp, DestTy);
 3883           !CastInst::castIsValid(Instruction::BitCast, CI,
 3897           if (!CastInst::castIsValid(Instruction::BitCast, Arg,
lib/IR/ConstantFold.cpp
   97   return CastInst::isEliminableCastPair(firstOp, secondOp, SrcTy, MidTy, DstTy,
  398   C = ConstantExpr::getCast(CastInst::getCastOpcode(C, false,
  413     C = ConstantExpr::getCast(CastInst::getCastOpcode(C, false,
  462   C = ConstantExpr::getCast(CastInst::getCastOpcode(C, false,
  475     Constant *N = ConstantExpr::getCast(CastInst::getCastOpcode(FieldNo, false,
  499         Constant *N = ConstantExpr::getCast(CastInst::getCastOpcode(FieldNo,
  515   C = ConstantExpr::getCast(CastInst::getCastOpcode(C, false,
  654             Idx = ConstantExpr::getCast(CastInst::getCastOpcode(Idx, true,
lib/IR/Constants.cpp
 3003     return CastInst::Create((Instruction::CastOps)getOpcode(),
lib/IR/Instructions.cpp
  539       ArraySize = CastInst::CreateIntegerCast(ArraySize, IntPtrTy, false,
  542       ArraySize = CastInst::CreateIntegerCast(ArraySize, IntPtrTy, false,
 2747 CastInst *CastInst::Create(Instruction::CastOps op, Value *S, Type *Ty,
 2769 CastInst *CastInst::Create(Instruction::CastOps op, Value *S, Type *Ty,
 2791 CastInst *CastInst::CreateZExtOrBitCast(Value *S, Type *Ty,
 2799 CastInst *CastInst::CreateZExtOrBitCast(Value *S, Type *Ty,
 2807 CastInst *CastInst::CreateSExtOrBitCast(Value *S, Type *Ty,
 2815 CastInst *CastInst::CreateSExtOrBitCast(Value *S, Type *Ty,
 2823 CastInst *CastInst::CreateTruncOrBitCast(Value *S, Type *Ty,
 2831 CastInst *CastInst::CreateTruncOrBitCast(Value *S, Type *Ty,
 2839 CastInst *CastInst::CreatePointerCast(Value *S, Type *Ty,
 2857 CastInst *CastInst::CreatePointerCast(Value *S, Type *Ty,
 2874 CastInst *CastInst::CreatePointerBitCastOrAddrSpaceCast(
 2887 CastInst *CastInst::CreatePointerBitCastOrAddrSpaceCast(
 2900 CastInst *CastInst::CreateBitOrPointerCast(Value *S, Type *Ty,
 2911 CastInst *CastInst::CreateIntegerCast(Value *C, Type *Ty,
 2925 CastInst *CastInst::CreateIntegerCast(Value *C, Type *Ty,
 2939 CastInst *CastInst::CreateFPCast(Value *C, Type *Ty,
 2952 CastInst *CastInst::CreateFPCast(Value *C, Type *Ty,
lib/IR/SafepointIRVerifier.cpp
  340     if (const auto *CI = dyn_cast<CastInst>(V)) {
  340     if (const auto *CI = dyn_cast<CastInst>(V)) {
lib/Target/AArch64/AArch64TargetTransformInfo.cpp
  236   auto *Extend = cast<CastInst>(Args[1]);
  280       if (auto *Cast = dyn_cast<CastInst>(SingleUser->getOperand(1)))
  280       if (auto *Cast = dyn_cast<CastInst>(SingleUser->getOperand(1)))
  282             cast<CastInst>(I)->getSrcTy() == Cast->getSrcTy())
lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
  314   if (const CastInst *CI = dyn_cast<const CastInst>(U))
  314   if (const CastInst *CI = dyn_cast<const CastInst>(U))
lib/Target/PowerPC/PPCTargetTransformInfo.cpp
  438       CastInst *CI = cast<CastInst>(J);
  438       CastInst *CI = cast<CastInst>(J);
lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp
  150       if (CastInst::isBitOrNoopPointerCastable(ArgType, ParamType, DL)) {
  152             CastInst::CreateBitOrPointerCast(AI, ParamType, "cast");
  189     } else if (CastInst::isBitOrNoopPointerCastable(ExpectedRtnType, RtnType,
  192           CastInst::CreateBitOrPointerCast(Call, RtnType, "cast");
lib/Transforms/Coroutines/CoroFrame.cpp
  942   return isa<CastInst>(&V) || isa<GetElementPtrInst>(&V) ||
lib/Transforms/Coroutines/Coroutines.cpp
  413           if (CastInst::isBitCastable(SrcTy, *RI)) {
lib/Transforms/IPO/GlobalOpt.cpp
  714     } else if (CastInst *CI = dyn_cast<CastInst>(I)) {
  714     } else if (CastInst *CI = dyn_cast<CastInst>(I)) {
lib/Transforms/InstCombine/InstCombineAddSub.cpp
  923     return CastInst::Create(Instruction::SExt, X, Ty);
 1736         return CastInst::CreateSExtOrBitCast(X, I.getType());
 1743         return CastInst::CreateZExtOrBitCast(X, I.getType());
lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
 1479 bool InstCombiner::shouldOptimizeCast(CastInst *CI) {
 1488   if (const auto *PrecedingCI = dyn_cast<CastInst>(CastSrc))
 1488   if (const auto *PrecedingCI = dyn_cast<CastInst>(CastSrc))
 1496 static Instruction *foldLogicCastConstant(BinaryOperator &Logic, CastInst *Cast,
 1540   CastInst *Cast0 = dyn_cast<CastInst>(Op0);
 1540   CastInst *Cast0 = dyn_cast<CastInst>(Op0);
 1554   CastInst *Cast1 = dyn_cast<CastInst>(Op1);
 1554   CastInst *Cast1 = dyn_cast<CastInst>(Op1);
 1571     return CastInst::Create(CastOpcode, NewOp, DestTy);
 1586       return CastInst::Create(CastOpcode, Res, DestTy);
 1596       return CastInst::Create(CastOpcode, R, DestTy);
lib/Transforms/InstCombine/InstCombineCalls.cpp
 1731     return CastInst::Create(*Action.CastOp, II->getArgOperand(0), II->getType(),
 3211         return CastInst::Create(Instruction::BitCast, Result, CI.getType());
 3289           return CastInst::CreateIntegerCast(Arg0, II->getType(),
 4091                                          const CastInst *const CI,
 4367       CastInst *CI = dyn_cast<CastInst>(*I);
 4367       CastInst *CI = dyn_cast<CastInst>(*I);
 4442     if (!CastInst::isBitOrNoopPointerCastable(NewRetTy, OldRetTy, DL)) {
 4495     if (!CastInst::isBitOrNoopPointerCastable(ActTy, ParamTy, DL))
 4603             CastInst::getCastOpcode(*AI, false, PTy, false);
 4654       NV = NC = CastInst::CreateBitOrPointerCast(NC, OldRetTy);
lib/Transforms/InstCombine/InstCombineCasts.cpp
  203     Res = CastInst::CreateIntegerCast(I->getOperand(0), Ty,
  232 Instruction::CastOps InstCombiner::isEliminableCastPair(const CastInst *CI1,
  233                                                         const CastInst *CI2) {
  246   unsigned Res = CastInst::isEliminableCastPair(firstOp, secondOp, SrcTy, MidTy,
  260 Instruction *InstCombiner::commonCastTransforms(CastInst &CI) {
  264   if (auto *CSrc = dyn_cast<CastInst>(Src)) {   // A->B->C cast
  264   if (auto *CSrc = dyn_cast<CastInst>(Src)) {   // A->B->C cast
  269       auto *Res = CastInst::Create(NewOpc, CSrc->getOperand(0), Ty);
  269       auto *Res = CastInst::Create(NewOpc, CSrc->getOperand(0), Ty);
  657 static Instruction *shrinkInsertElt(CastInst &Trunc,
  777     return CastInst::CreateIntegerCast(Shift, DestTy, false);
  807         return CastInst::CreateIntegerCast(Shift, CI.getType(), true);
 1297         return CastInst::CreateIntegerCast(In, CI.getType(), true/*SExt*/);
 1376     return CastInst::Create(Instruction::ZExt, Src, DestTy);
 1615         return CastInst::CreateFPCast(ExactResult, Ty);
 1679 Instruction *InstCombiner::visitFPExt(CastInst &CI) {
 1749 Instruction *InstCombiner::visitUIToFP(CastInst &CI) {
 1753 Instruction *InstCombiner::visitSIToFP(CastInst &CI) {
 1779 Instruction *InstCombiner::commonPointerCastTransforms(CastInst &CI) {
 1819   return CastInst::CreateIntegerCast(P, Ty, /*isSigned=*/false);
 2146 static bool hasStoreUsersOnly(CastInst &CI) {
 2162 Instruction *InstCombiner::optimizeBitCastFromPhi(CastInst &CI, PHINode *PN) {
 2374         CastInst *SrcCast = cast<CastInst>(Src);
 2374         CastInst *SrcCast = cast<CastInst>(Src);
 2398         return CastInst::Create(Instruction::BitCast, Elem, DestTy);
lib/Transforms/InstCombine/InstCombineCompares.cpp
  554         auto *CI = dyn_cast<CastInst>(V);
  554         auto *CI = dyn_cast<CastInst>(V);
  677     if (auto *CI = dyn_cast<CastInst>(Val)) {
  677     if (auto *CI = dyn_cast<CastInst>(Val)) {
 4301   auto *CastOp0 = cast<CastInst>(ICmp.getOperand(0));
 4301   auto *CastOp0 = cast<CastInst>(ICmp.getOperand(0));
 4308   if (auto *CastOp1 = dyn_cast<CastInst>(ICmp.getOperand(1))) {
 4308   if (auto *CastOp1 = dyn_cast<CastInst>(ICmp.getOperand(1))) {
 4392   auto *CastOp0 = dyn_cast<CastInst>(ICmp.getOperand(0));
 4392   auto *CastOp0 = dyn_cast<CastInst>(ICmp.getOperand(0));
 4395   if (!isa<Constant>(ICmp.getOperand(1)) && !isa<CastInst>(ICmp.getOperand(1)))
lib/Transforms/InstCombine/InstCombineInternal.h
   85     if (isa<CastInst>(V) || match(V, m_Neg(m_Value())) ||
  407   Instruction *commonCastTransforms(CastInst &CI);
  408   Instruction *commonPointerCastTransforms(CastInst &CI);
  413   Instruction *visitFPExt(CastInst &CI);
  416   Instruction *visitUIToFP(CastInst &CI);
  417   Instruction *visitSIToFP(CastInst &CI);
  484   bool shouldOptimizeCast(CastInst *CI);
  603   Instruction *optimizeBitCastFromPhi(CastInst &CI, PHINode *PN);
  616   Instruction::CastOps isEliminableCastPair(const CastInst *CI1,
  617                                             const CastInst *CI2);
lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
  620     if (auto* CI = dyn_cast<CastInst>(LI.user_back()))
  620     if (auto* CI = dyn_cast<CastInst>(LI.user_back()))
 1299       isa<CastInst>(A) ||
lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
  988     return CastInst::CreateZExtOrBitCast(Cmp, Ty);
  993     return CastInst::CreateZExtOrBitCast(Cmp, Ty);
 1372     return CastInst::CreateZExtOrBitCast(Builder.CreateICmpNE(Op1, Op0), Ty);
lib/Transforms/InstCombine/InstCombinePHI.cpp
  208     return CastInst::CreateBitOrPointerCast(MatchingPtrPHI,
  260       CI = CastInst::CreateBitOrPointerCast(IncomingVal, IntToPtr->getType(),
  277   return CastInst::CreateBitOrPointerCast(NewPtrPHI,
  718   return CastInst::CreateZExtOrBitCast(NewPhi, Phi.getType());
  745   if (isa<CastInst>(FirstInst)) {
  806   if (CastInst *FirstCI = dyn_cast<CastInst>(FirstInst)) {
  806   if (CastInst *FirstCI = dyn_cast<CastInst>(FirstInst)) {
  807     CastInst *NewCI = CastInst::Create(FirstCI->getOpcode(), PhiVal,
  807     CastInst *NewCI = CastInst::Create(FirstCI->getOpcode(), PhiVal,
lib/Transforms/InstCombine/InstCombineSelect.cpp
  332     return CastInst::Create(Instruction::CastOps(TI->getOpcode()), NewSI,
 1773     return CastInst::Create(Instruction::CastOps(ExtOpcode), NewSel, SelType);
 1902   return CastInst::CreateBitOrPointerCast(NewSel, Sel.getType());
 2076   return CastInst::Create(Instruction::SExt, Sat, Ty);
lib/Transforms/InstCombine/InstCombineShifts.cpp
  135     Ret = CastInst::Create(Instruction::Trunc, NewShift, Sh0->getType());
lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
  415       CastInst *NewCast = new ZExtInst(I->getOperand(0), VTy, I->getName());
lib/Transforms/InstCombine/InstCombineVectorOps.cpp
  429     } else if (auto *CI = dyn_cast<CastInst>(I)) {
  429     } else if (auto *CI = dyn_cast<CastInst>(I)) {
  436         return CastInst::Create(CI->getOpcode(), EE, EI.getType());
 1274       return CastInst::Create(cast<CastInst>(I)->getOpcode(), NewOps[0], DestTy,
 1274       return CastInst::Create(cast<CastInst>(I)->getOpcode(), NewOps[0], DestTy,
lib/Transforms/InstCombine/InstructionCombining.cpp
  256   auto *Cast = dyn_cast<CastInst>(BinOp1->getOperand(0));
  256   auto *Cast = dyn_cast<CastInst>(BinOp1->getOperand(0));
  829   if (auto *Cast = dyn_cast<CastInst>(&I))
  829   if (auto *Cast = dyn_cast<CastInst>(&I))
 1052     CastInst *CI = cast<CastInst>(&I);
 1052     CastInst *CI = cast<CastInst>(&I);
 1295     if (CastInst *Cast = dyn_cast<CastInst>(Op)) {
 1295     if (CastInst *Cast = dyn_cast<CastInst>(Op)) {
 1581   CastInst::CastOps CastOpc = IsSext ? Instruction::SExt : Instruction::ZExt;
 1615   return CastInst::Create(CastOpc, NarrowBO, BO.getType());
 1944           return CastInst::Create(Instruction::IntToPtr, NewSub, GEPType);
 1951           return CastInst::CreatePointerBitCastOrAddrSpaceCast(Y, GEPType);
 2048         return CastInst::CreatePointerBitCastOrAddrSpaceCast(NewGEP, GEPType);
 2084             return CastInst::CreatePointerBitCastOrAddrSpaceCast(NewGEP,
 2127             return CastInst::CreatePointerBitCastOrAddrSpaceCast(NewGEP,
 2473       auto *Cast = dyn_cast<CastInst>(&Inst);
 3171         if (!isa<CastInst>(I))
lib/Transforms/Instrumentation/ControlHeightReduction.cpp
  496   return isa<BinaryOperator>(I) || isa<CastInst>(I) || isa<SelectInst>(I) ||
lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
  442   void visitCastInst(CastInst &CI);
 1410 void DFSanVisitor::visitCastInst(CastInst &CI) { visitOperandShadowInst(CI); }
lib/Transforms/Instrumentation/MemorySanitizer.cpp
 1927   void visitFPToSIInst(CastInst& I) { handleShadowOr(I); }
 1928   void visitFPToUIInst(CastInst& I) { handleShadowOr(I); }
 1929   void visitSIToFPInst(CastInst& I) { handleShadowOr(I); }
 1930   void visitUIToFPInst(CastInst& I) { handleShadowOr(I); }
 1931   void visitFPExtInst(CastInst& I) { handleShadowOr(I); }
 1932   void visitFPTruncInst(CastInst& I) { handleShadowOr(I); }
lib/Transforms/Instrumentation/SanitizerCoverage.cpp
  764           C = ConstantExpr::getCast(CastInst::ZExt, It.getCaseValue(), Int64Ty);
lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
  731   auto *ZExt =
  732       CastInst::CreateZExtOrBitCast(Base, SDI->getType(), SDI->getName(), SDI);
lib/Transforms/Scalar/EarlyCSE.cpp
  111     return isa<CastInst>(Inst) || isa<UnaryOperator>(Inst) ||
  230   if (CastInst *CI = dyn_cast<CastInst>(Inst))
  230   if (CastInst *CI = dyn_cast<CastInst>(Inst))
lib/Transforms/Scalar/IndVarSimplify.cpp
  894 static void visitIVCast(CastInst *Cast, WideIVInfo &WI, ScalarEvolution *SE,
 1953   void visitCast(CastInst *Cast) override { visitIVCast(Cast, WI, SE, TTI); }
lib/Transforms/Scalar/InferAddressSpaces.cpp
  991               NewV = CastInst::Create(Instruction::BitCast, NewV,
lib/Transforms/Scalar/JumpThreading.cpp
  670   if (CastInst *CI = dyn_cast<CastInst>(I)) {
  670   if (CastInst *CI = dyn_cast<CastInst>(I)) {
 1335       AvailableVal = CastInst::CreateBitOrPointerCast(
 1511       PredV = CastInst::CreateBitOrPointerCast(PredV, LoadI->getType(), "",
lib/Transforms/Scalar/LICM.cpp
 1036           isa<FenceInst>(I) || isa<CastInst>(I) ||
lib/Transforms/Scalar/LoopStrengthReduce.cpp
 5276           CastInst::Create(CastInst::getCastOpcode(ICmpScaledV, false,
 5276           CastInst::Create(CastInst::getCastOpcode(ICmpScaledV, false,
 5291         C = ConstantExpr::getCast(CastInst::getCastOpcode(C, false,
 5368             CastInst::Create(CastInst::getCastOpcode(FullV, false,
 5368             CastInst::Create(CastInst::getCastOpcode(FullV, false,
 5435         CastInst::Create(CastInst::getCastOpcode(FullV, false, OpTy, false),
 5435         CastInst::Create(CastInst::getCastOpcode(FullV, false, OpTy, false),
lib/Transforms/Scalar/MemCpyOptimizer.cpp
  886         : CastInst::CreatePointerCast(cpyDest, cpySrc->getType(),
  892         CS.setArgument(i, CastInst::CreatePointerCast(Dest,
lib/Transforms/Scalar/NewGVN.cpp
 1171   } else if (auto *CI = dyn_cast<CastInst>(I)) {
 1171   } else if (auto *CI = dyn_cast<CastInst>(I)) {
lib/Transforms/Scalar/Reg2Mem.cpp
   85   CastInst *AllocaInsertionPoint = new BitCastInst(
lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
  519   if (CastInst *CI = dyn_cast<CastInst>(I)) {
  519   if (CastInst *CI = dyn_cast<CastInst>(I)) {
 1941   if (CastInst *CI = dyn_cast<CastInst>(CurrentValue)) {
 1941   if (CastInst *CI = dyn_cast<CastInst>(CurrentValue)) {
 1963     if (CastInst *CI = dyn_cast<CastInst>(Instr)) {
 1963     if (CastInst *CI = dyn_cast<CastInst>(Instr)) {
lib/Transforms/Scalar/SCCP.cpp
  616   void visitCastInst(CastInst &I);
  872 void SCCPSolver::visitCastInst(CastInst &I) {
lib/Transforms/Scalar/Scalarizer.cpp
  191   bool visitCastInst(CastInst &CI);
  644 bool ScalarizerVisitor::visitCastInst(CastInst &CI) {
lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
  332   SmallVector<CastInst *, 16> ExtInsts;
  656   if (CastInst *Cast = dyn_cast<CastInst>(U)) {
  656   if (CastInst *Cast = dyn_cast<CastInst>(U)) {
  772         *I = CastInst::CreateIntegerCast(*I, IntPtrTy, true, "idxprom", GEP);
lib/Transforms/Utils/CallPromotionUtils.cpp
  161 static void createRetBitCast(CallSite CS, Type *RetTy, CastInst **RetBitCast) {
  179   auto *Cast = CastInst::CreateBitOrPointerCast(CS.getInstruction(), RetTy, "",
  179   auto *Cast = CastInst::CreateBitOrPointerCast(CS.getInstruction(), RetTy, "",
  330     if (!CastInst::isBitOrNoopPointerCastable(FuncRetTy, CallRetTy, DL)) {
  355     if (!CastInst::isBitOrNoopPointerCastable(ActualTy, FormalTy, DL)) {
  366                                CastInst **RetBitCast) {
  408       auto *Cast = CastInst::CreateBitOrPointerCast(Arg, FormalTy, "",
  408       auto *Cast = CastInst::CreateBitOrPointerCast(Arg, FormalTy, "",
lib/Transforms/Utils/CodeExtractor.cpp
 1033               CastInst::CreatePointerCast(Mem, Int8PtrTy, "lt.cast", TheCall);
lib/Transforms/Utils/Evaluator.cpp
  410     } else if (CastInst *CI = dyn_cast<CastInst>(CurInst)) {
  410     } else if (CastInst *CI = dyn_cast<CastInst>(CurInst)) {
lib/Transforms/Utils/Local.cpp
 1670   if (auto *CI = dyn_cast<CastInst>(&I)) {
 1670   if (auto *CI = dyn_cast<CastInst>(&I)) {
 2869       auto *Trunc = CastInst::Create(Instruction::Trunc, Provider, DemandedTy,
 2869       auto *Trunc = CastInst::Create(Instruction::Trunc, Provider, DemandedTy,
 2876     auto *ExtInst = CastInst::Create(Instruction::ZExt, CI, ITy, "zext", I);
 2876     auto *ExtInst = CastInst::Create(Instruction::ZExt, CI, ITy, "zext", I);
 2969   if (CastInst *CI = dyn_cast<CastInst>(V))
 2969   if (CastInst *CI = dyn_cast<CastInst>(V))
lib/Transforms/Utils/SimplifyIndVar.cpp
  916     CastInst *Cast = dyn_cast<CastInst>(UseInst);
  916     CastInst *Cast = dyn_cast<CastInst>(UseInst);
lib/Transforms/Vectorize/LoopVectorize.cpp
 1160     Type *SrcTy = ToVectorTy(cast<CastInst>(I)->getSrcTy(), VF);
 1161     Type *DestTy = ToVectorTy(cast<CastInst>(I)->getDestTy(), VF);
 2595         CastInst::CreatePointerCast(TripCount, IdxTy, "exitcount.ptrcnt.to.int",
 2659   if (CastInst::isBitOrNoopPointerCastable(SrcElemTy, DstElemTy, DL)) {
 3019         CastInst::getCastOpcode(CountRoundDown, true, StepType, true);
 3339       } else if (auto *CI = dyn_cast<CastInst>(I)) {
 3339       } else if (auto *CI = dyn_cast<CastInst>(I)) {
 4241     auto *CI = cast<CastInst>(&I);
 4241     auto *CI = cast<CastInst>(&I);
lib/Transforms/Vectorize/SLPVectorizer.cpp
  369   bool IsCastOp = isa<CastInst>(VL[BaseIndex]);
  387     } else if (IsCastOp && isa<CastInst>(VL[Cnt])) {
 3881       auto *CI = cast<CastInst>(VL0);
 3881       auto *CI = cast<CastInst>(VL0);
 4960     else if (isa<PHINode>(I) || isa<CastInst>(I) || isa<GetElementPtrInst>(I) ||
tools/bugpoint/Miscompilation.cpp
  895           CastInst *CastedResolver = new BitCastInst(
tools/clang/lib/CodeGen/CGAtomic.cpp
 1403     else if (llvm::CastInst::isBitCastable(IntVal->getType(), ValTy))
tools/lldb/source/Expression/IRInterpreter.cpp
  878       const CastInst *cast_inst = dyn_cast<CastInst>(inst);
  878       const CastInst *cast_inst = dyn_cast<CastInst>(inst);
  903       const CastInst *cast_inst = dyn_cast<CastInst>(inst);
  903       const CastInst *cast_inst = dyn_cast<CastInst>(inst);
tools/polly/lib/CodeGen/BlockGenerators.cpp
 1168   const CastInst *Cast = dyn_cast<CastInst>(Inst);
 1168   const CastInst *Cast = dyn_cast<CastInst>(Inst);
unittests/Analysis/CGSCCPassManagerTest.cpp
 1172         (void)CastInst::CreatePointerCast(&H3F,
unittests/Analysis/ScalarEvolutionTest.cpp
  180   CastInst *CastA =
  181       CastInst::CreateBitOrPointerCast(Gep0, I8PtrTy, "bitcast1", Br);
  189   CastInst *CastB =
  190       CastInst::CreateBitOrPointerCast(Sel, I32PtrTy, "bitcast2", Br);
  451   Instruction *Trunc = CastInst::CreateTruncOrBitCast(A1, Ty32, "", EntryBB);
unittests/IR/InstructionsTest.cpp
  295   auto Inst1 = CastInst::CreatePointerCast(NullV2I32Ptr, V2Int32Ty, "foo", BB);
  298   auto Inst2 = CastInst::CreatePointerCast(NullV2I32Ptr, V2Int32Ty);
  326   CastInst *PtrVecA = new IntToPtrInst(C2xi32a, V2xi32PTy);
  327   CastInst *PtrVecB = new IntToPtrInst(C2xi32b, V2xi32PTy);
  343   CastInst *BTC0 = new BitCastInst(Gep0, V2xi8PTy);
  344   CastInst *BTC1 = new BitCastInst(Gep1, V2xi8PTy);
  345   CastInst *BTC2 = new BitCastInst(Gep2, V2xi8PTy);
  346   CastInst *BTC3 = new BitCastInst(Gep3, V2xi8PTy);
unittests/IR/ValueHandleTest.cpp
  122   AssertingVH<CastInst> AVH(BitcastV.get());
  123   CastInst *implicit_to_exact_type = AVH;
  138   const CastInst *ConstBitcast = BitcastV.get();
  139   AssertingVH<const CastInst> AVH(ConstBitcast);
  140   const CastInst *implicit_to_exact_type = AVH;
  433   PoisoningVH<CastInst> VH(BitcastV.get());
  434   CastInst *implicit_to_exact_type = VH;
  449   const CastInst *ConstBitcast = BitcastV.get();
  450   PoisoningVH<const CastInst> VH(ConstBitcast);
  451   const CastInst *implicit_to_exact_type = VH;
usr/include/c++/7.4.0/type_traits
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1983     { typedef _Up     type; };