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

References

include/llvm/Support/Casting.h
   58     return To::classof(&Val);
   92     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);
  142   return isa_impl_wrap<X, const Y,
  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
  252       X, const Y, typename simplify_type<const Y>::SimpleType>::doit(Val);
  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) {
  265   return cast_convert_val<X, Y*,
  331                             typename cast_retty<X, const Y>::ret_type>::type
  333   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  333   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  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) {
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  343   return isa<X>(Val) ? cast<X>(Val) : nullptr;
  352                             typename cast_retty<X, const Y>::ret_type>::type
  360                             typename cast_retty<X, Y>::ret_type>::type
  362   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
  362   return (Val && isa<X>(Val)) ? cast<X>(Val) : nullptr;
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
 5142     } else if (BuildVectorSDNode *Vector = dyn_cast<BuildVectorSDNode>(N1)) {
 5142     } else if (BuildVectorSDNode *Vector = dyn_cast<BuildVectorSDNode>(N1)) {
 7296     BuildVectorSDNode *N1CV = dyn_cast<BuildVectorSDNode>(N1);
 7296     BuildVectorSDNode *N1CV = dyn_cast<BuildVectorSDNode>(N1);
 7303         BuildVectorSDNode *N01CV = dyn_cast<BuildVectorSDNode>(N01);
 7303         BuildVectorSDNode *N01CV = dyn_cast<BuildVectorSDNode>(N01);
10968       cast<BuildVectorSDNode>(N0)->isConstant())
17640     if (SDValue Splat = cast<BuildVectorSDNode>(N)->getSplatValue()) {
17659     if (SDValue V = cast<BuildVectorSDNode>(N)->getSplatValue()) {
18517   auto *BV0 = dyn_cast<BuildVectorSDNode>(N0);
18517   auto *BV0 = dyn_cast<BuildVectorSDNode>(N0);
18518   auto *BV1 = dyn_cast<BuildVectorSDNode>(N1);
18518   auto *BV1 = dyn_cast<BuildVectorSDNode>(N1);
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
  136   auto *BV = dyn_cast<BuildVectorSDNode>(N);
 1625     if (auto *N1BV = dyn_cast<BuildVectorSDNode>(N1))
 1625     if (auto *N1BV = dyn_cast<BuildVectorSDNode>(N1))
 1627     if (auto *N2BV = dyn_cast<BuildVectorSDNode>(N2))
 1627     if (auto *N2BV = dyn_cast<BuildVectorSDNode>(N2))
 1678     if (auto *BV = dyn_cast<BuildVectorSDNode>(V)) {
 1678     if (auto *BV = dyn_cast<BuildVectorSDNode>(V)) {
 2399   auto *BV = dyn_cast<BuildVectorSDNode>(V.getOperand(1));
 2399   auto *BV = dyn_cast<BuildVectorSDNode>(V.getOperand(1));
 4421   if (BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(Operand)) {
 4421   if (BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(Operand)) {
 4824   auto *BV1 = dyn_cast<BuildVectorSDNode>(N1);
 4824   auto *BV1 = dyn_cast<BuildVectorSDNode>(N1);
 4827   auto *BV2 = dyn_cast<BuildVectorSDNode>(N2);
 4827   auto *BV2 = dyn_cast<BuildVectorSDNode>(N2);
 4907     BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(Op);
 4907     BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(Op);
 4938       BuildVectorSDNode *InBV = dyn_cast<BuildVectorSDNode>(Op);
 4938       BuildVectorSDNode *InBV = dyn_cast<BuildVectorSDNode>(Op);
 8723   if (BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(N)) {
 8723   if (BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(N)) {
 8747   if (BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(N)) {
 8747   if (BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(N)) {
 8769   if (BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(N)) {
 8769   if (BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(N)) {
 8785   if (BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(N)) {
 8785   if (BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(N)) {
lib/CodeGen/SelectionDAG/TargetLowering.cpp
 2054     if (auto *BV = dyn_cast<BuildVectorSDNode>(V)) {
 2054     if (auto *BV = dyn_cast<BuildVectorSDNode>(V)) {
 2708   } else if (auto *BV = dyn_cast<BuildVectorSDNode>(N)) {
 2741     const BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(N);
 2741     const BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(N);
lib/Target/AArch64/AArch64ISelLowering.cpp
 7111 static bool resolveBuildVector(BuildVectorSDNode *BVN, APInt &CnstBits,
 7330   BuildVectorSDNode *Bvec = dyn_cast<BuildVectorSDNode>(PotentialBVec);
 7330   BuildVectorSDNode *Bvec = dyn_cast<BuildVectorSDNode>(PotentialBVec);
 7435   BuildVectorSDNode *BVN =
 7436       dyn_cast<BuildVectorSDNode>(Op.getOperand(1).getNode());
 7440     BVN = dyn_cast<BuildVectorSDNode>(Op.getOperand(0).getNode());
 7505   BuildVectorSDNode *BVN = cast<BuildVectorSDNode>(Op.getNode());
 7505   BuildVectorSDNode *BVN = cast<BuildVectorSDNode>(Op.getNode());
 7552     BuildVectorSDNode *BVN = cast<BuildVectorSDNode>(Op.getNode());
 7552     BuildVectorSDNode *BVN = cast<BuildVectorSDNode>(Op.getNode());
 7966   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(Op.getNode());
 7966   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(Op.getNode());
 8057   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(RHS.getNode());
 8057   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(RHS.getNode());
 9498   if (BuildVectorSDNode *BV =
 9499           dyn_cast<BuildVectorSDNode>(N->getOperand(0)->getOperand(1))) {
 9577   if (!isa<BuildVectorSDNode>(ConstVec))
 9595   BuildVectorSDNode *BV = cast<BuildVectorSDNode>(ConstVec);
 9595   BuildVectorSDNode *BV = cast<BuildVectorSDNode>(ConstVec);
 9651   if (!isa<BuildVectorSDNode>(ConstVec))
 9669   BuildVectorSDNode *BV = cast<BuildVectorSDNode>(ConstVec);
 9669   BuildVectorSDNode *BV = cast<BuildVectorSDNode>(ConstVec);
 9791       BuildVectorSDNode *BVN0 = dyn_cast<BuildVectorSDNode>(N0->getOperand(i));
 9791       BuildVectorSDNode *BVN0 = dyn_cast<BuildVectorSDNode>(N0->getOperand(i));
 9792       BuildVectorSDNode *BVN1 = dyn_cast<BuildVectorSDNode>(N1->getOperand(j));
 9792       BuildVectorSDNode *BVN1 = dyn_cast<BuildVectorSDNode>(N1->getOperand(j));
 9841   BuildVectorSDNode *BVN =
 9842       dyn_cast<BuildVectorSDNode>(N->getOperand(1).getNode());
10379   if (BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(N->getOperand(2))) {
10379   if (BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(N->getOperand(2))) {
lib/Target/AMDGPU/SIISelLowering.cpp
 9053   if (BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(Op)) {
 9053   if (BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(Op)) {
lib/Target/ARM/ARMISelLowering.cpp
 5985   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(Op.getNode());
 5985   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(Op.getNode());
 7095   BuildVectorSDNode *BVN = cast<BuildVectorSDNode>(Op.getNode());
 7095   BuildVectorSDNode *BVN = cast<BuildVectorSDNode>(Op.getNode());
12013   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(N->getOperand(1));
12013   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(N->getOperand(1));
12320   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(N->getOperand(1));
12320   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(N->getOperand(1));
12374     BuildVectorSDNode *BVN0 = dyn_cast<BuildVectorSDNode>(N0->getOperand(1));
12374     BuildVectorSDNode *BVN0 = dyn_cast<BuildVectorSDNode>(N0->getOperand(1));
12375     BuildVectorSDNode *BVN1 = dyn_cast<BuildVectorSDNode>(N1->getOperand(1));
12375     BuildVectorSDNode *BVN1 = dyn_cast<BuildVectorSDNode>(N1->getOperand(1));
13485   if (!isa<BuildVectorSDNode>(ConstVec))
13502   BuildVectorSDNode *BV = cast<BuildVectorSDNode>(ConstVec);
13502   BuildVectorSDNode *BV = cast<BuildVectorSDNode>(ConstVec);
13543   if (!isa<BuildVectorSDNode>(ConstVec))
13560   BuildVectorSDNode *BV = cast<BuildVectorSDNode>(ConstVec);
13560   BuildVectorSDNode *BV = cast<BuildVectorSDNode>(ConstVec);
lib/Target/Hexagon/HexagonISelLowering.cpp
 2039   if (auto *BVN = dyn_cast<BuildVectorSDNode>(Op.getOperand(1).getNode())) {
 2039   if (auto *BVN = dyn_cast<BuildVectorSDNode>(Op.getOperand(1).getNode())) {
lib/Target/Mips/MipsISelDAGToDAG.cpp
  232   auto *BVN = dyn_cast<BuildVectorSDNode>(C);
  232   auto *BVN = dyn_cast<BuildVectorSDNode>(C);
lib/Target/Mips/MipsSEISelDAGToDAG.cpp
  514   BuildVectorSDNode *Node = dyn_cast<BuildVectorSDNode>(N);
  514   BuildVectorSDNode *Node = dyn_cast<BuildVectorSDNode>(N);
  981     BuildVectorSDNode *BVN = cast<BuildVectorSDNode>(Node);
  981     BuildVectorSDNode *BVN = cast<BuildVectorSDNode>(Node);
lib/Target/Mips/MipsSEISelLowering.cpp
  534   BuildVectorSDNode *Node = dyn_cast<BuildVectorSDNode>(N.getNode());
  534   BuildVectorSDNode *Node = dyn_cast<BuildVectorSDNode>(N.getNode());
  559   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(N);
  559   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(N);
  852   BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(N->getOperand(1));
  852   BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(N->getOperand(1));
 2439 static bool isConstantOrUndefBUILD_VECTOR(const BuildVectorSDNode *Op) {
 2461   BuildVectorSDNode *Node = cast<BuildVectorSDNode>(Op);
 2461   BuildVectorSDNode *Node = cast<BuildVectorSDNode>(Op);
lib/Target/PowerPC/PPCISelLowering.cpp
 8186 static bool haveEfficientBuildVectorPattern(BuildVectorSDNode *V,
 8264   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(Op.getNode());
 8264   BuildVectorSDNode *BVN = dyn_cast<BuildVectorSDNode>(Op.getNode());
lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
 1586     auto *BVN = cast<BuildVectorSDNode>(Node);
 1586     auto *BVN = cast<BuildVectorSDNode>(Node);
lib/Target/SystemZ/SystemZISelLowering.cpp
  766 SystemZVectorConstantInfo::SystemZVectorConstantInfo(BuildVectorSDNode *BVN) {
 4521                                      BuildVectorSDNode *BVN) {
 4724   auto *BVN = cast<BuildVectorSDNode>(Op.getNode());
 4724   auto *BVN = cast<BuildVectorSDNode>(Op.getNode());
 4878   if (auto *BVN = dyn_cast<BuildVectorSDNode>(Op1)) {
 4878   if (auto *BVN = dyn_cast<BuildVectorSDNode>(Op1)) {
lib/Target/SystemZ/SystemZISelLowering.h
  674   SystemZVectorConstantInfo(BuildVectorSDNode *BVN);
lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
 1520   BuildVectorSDNode *ShiftVec;
 1522   if (!(ShiftVec = dyn_cast<BuildVectorSDNode>(Op.getOperand(1).getNode())) ||
lib/Target/X86/X86ISelLowering.cpp
 8116 static SDValue isSplatZeroExtended(const BuildVectorSDNode *Op,
 8155 static SDValue lowerBuildVectorAsBroadcast(BuildVectorSDNode *BVOp,
 8594 static bool isHorizontalBinOpPart(const BuildVectorSDNode *N, unsigned Opcode,
 8749 static bool isAddSubOrSubAdd(const BuildVectorSDNode *BV,
 8905 static SDValue lowerToAddSubOrFMAddSub(const BuildVectorSDNode *BV,
 8940 static bool isHopBuildVector(const BuildVectorSDNode *BV, SelectionDAG &DAG,
 9027 static SDValue getHopForBuildVector(const BuildVectorSDNode *BV,
 9065 static SDValue LowerToHorizontalOp(const BuildVectorSDNode *BV,
 9186 static SDValue lowerBuildVectorToBitOp(BuildVectorSDNode *Op,
 9597   BuildVectorSDNode *BV = cast<BuildVectorSDNode>(Op.getNode());
 9597   BuildVectorSDNode *BV = cast<BuildVectorSDNode>(Op.getNode());
10261   auto *BV1 = dyn_cast<BuildVectorSDNode>(V1);
10261   auto *BV1 = dyn_cast<BuildVectorSDNode>(V1);
10262   auto *BV2 = dyn_cast<BuildVectorSDNode>(V2);
10262   auto *BV2 = dyn_cast<BuildVectorSDNode>(V2);
10267       auto *MaskBV = Mask[i] < Size ? BV1 : BV2;
10268       auto *ExpectedBV = ExpectedMask[i] < Size ? BV1 : BV2;
10304   auto *BV1 = dyn_cast_or_null<BuildVectorSDNode>(V1);
10304   auto *BV1 = dyn_cast_or_null<BuildVectorSDNode>(V1);
10305   auto *BV2 = dyn_cast_or_null<BuildVectorSDNode>(V2);
10305   auto *BV2 = dyn_cast_or_null<BuildVectorSDNode>(V2);
10313       auto *MaskBV = Mask[i] < Size ? BV1 : BV2;
10314       auto *ExpectedBV = ExpectedMask[i] < Size ? BV1 : BV2;
14541     auto *BV = dyn_cast<BuildVectorSDNode>(V);
14541     auto *BV = dyn_cast<BuildVectorSDNode>(V);
20544   auto *BV = dyn_cast<BuildVectorSDNode>(V.getNode());
20544   auto *BV = dyn_cast<BuildVectorSDNode>(V.getNode());
35387 static SDValue createMMXBuildVector(BuildVectorSDNode *BV, SelectionDAG &DAG,
35608       return createMMXBuildVector(cast<BuildVectorSDNode>(N0), DAG, Subtarget);
37120       if (auto *OpRHSBV = dyn_cast<BuildVectorSDNode>(OpRHS)) {
37120       if (auto *OpRHSBV = dyn_cast<BuildVectorSDNode>(OpRHS)) {
37121         if (isa<BuildVectorSDNode>(CondRHS)) {
37196       if (isa<BuildVectorSDNode>(OpRHS) && isa<BuildVectorSDNode>(CondRHS) &&
37196       if (isa<BuildVectorSDNode>(OpRHS) && isa<BuildVectorSDNode>(CondRHS) &&
38298   if (auto *N1BV = dyn_cast<BuildVectorSDNode>(N1))
38298   if (auto *N1BV = dyn_cast<BuildVectorSDNode>(N1))
40104     BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(V);
40104     BuildVectorSDNode *BV = dyn_cast<BuildVectorSDNode>(V);
40275   auto *BV = dyn_cast<BuildVectorSDNode>(V);
40275   auto *BV = dyn_cast<BuildVectorSDNode>(V);
40367   BuildVectorSDNode *MaskBV = cast<BuildVectorSDNode>(ML->getMask());
40367   BuildVectorSDNode *MaskBV = cast<BuildVectorSDNode>(ML->getMask());
42977     if (auto *BV = dyn_cast<BuildVectorSDNode>(Index)) {
42977     if (auto *BV = dyn_cast<BuildVectorSDNode>(Index)) {
43124   if (auto *BV = dyn_cast<BuildVectorSDNode>(N->getOperand(0).getOperand(1))) {
43124   if (auto *BV = dyn_cast<BuildVectorSDNode>(N->getOperand(0).getOperand(1))) {