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

References

lib/Target/PowerPC/PPCISelLowering.cpp
  141   bool isPPC64 = Subtarget.isPPC64();
  182   if (!Subtarget.hasSPE()) {
  198   if (Subtarget.useCRBits()) {
  201     if (isPPC64 || Subtarget.hasFPCVT()) {
  249   if (Subtarget.isISA3_0()) {
  282   if (Subtarget.hasSPE()) {
  293   if (!Subtarget.hasFSQRT() &&
  294       !(TM.Options.UnsafeFPMath && Subtarget.hasFRSQRTE() &&
  295         Subtarget.hasFRE()))
  298   if (!Subtarget.hasFSQRT() &&
  299       !(TM.Options.UnsafeFPMath && Subtarget.hasFRSQRTES() &&
  300         Subtarget.hasFRES()))
  303   if (Subtarget.hasFCPSGN()) {
  311   if (Subtarget.hasFPRND()) {
  327   if (Subtarget.hasP9Vector())
  331   if (Subtarget.isISA3_0()) {
  339   if (Subtarget.hasPOPCNTD() == PPCSubtarget::POPCNTD_Fast) {
  351   if (!Subtarget.useCRBits()) {
  364   if (!Subtarget.useCRBits())
  368   if (!Subtarget.useCRBits())
  373   if (Subtarget.hasSPE()) {
  387   if (Subtarget.hasDirectMove() && isPPC64) {
  434   if (Subtarget.is64BitELFABI()) {
  445   } else if (Subtarget.is32BitELFABI()) {
  453   if (Subtarget.is32BitELFABI())
  481   if (Subtarget.hasSPE()) {
  500   if (Subtarget.has64BitSupport()) {
  510     if (Subtarget.hasLFIWAX() || Subtarget.isPPC64())
  510     if (Subtarget.hasLFIWAX() || Subtarget.isPPC64())
  514     if (Subtarget.hasSPE())
  521   if (Subtarget.hasFPCVT()) {
  522     if (Subtarget.has64BitSupport()) {
  535   if (Subtarget.use64BitRegs()) {
  551   if (Subtarget.hasVSX()) {
  558   if (Subtarget.hasAltivec()) {
  581       if (Subtarget.hasVSX()) {
  587       if (Subtarget.hasP8Altivec() && (VT.SimpleTy != MVT::v1i128)) {
  597       if (Subtarget.hasP9Altivec() && (VT.SimpleTy != MVT::v1i128))
  669     if (!Subtarget.hasP8Vector()) {
  696                        Subtarget.useCRBits() ? Legal : Expand);
  709     if (!Subtarget.hasP8Altivec())
  720     if (TM.Options.UnsafeFPMath || Subtarget.hasVSX()) {
  725     if (Subtarget.hasP8Altivec())
  747     if (Subtarget.hasVSX()) {
  750       if (Subtarget.hasP8Vector()) {
  754       if (Subtarget.hasDirectMove() && isPPC64) {
  791       if (Subtarget.hasP8Vector())
  800       if (Subtarget.hasP8Altivec()) {
  858       if (Subtarget.hasDirectMove())
  865     if (Subtarget.hasP8Altivec()) {
  870     if (Subtarget.hasP9Vector()) {
  923     if (Subtarget.hasP9Altivec()) {
  929   if (Subtarget.hasQPX()) {
  944     if (!Subtarget.useCRBits())
  992     if (!Subtarget.useCRBits())
 1030     if (!Subtarget.useCRBits())
 1082   if (Subtarget.has64BitSupport())
 1094   if (Subtarget.hasAltivec()) {
 1116   if (Subtarget.hasFPCVT())
 1121   if (Subtarget.useCRBits())
 1136   if (Subtarget.useCRBits()) {
 1148   if (Subtarget.hasP9Altivec()) {
 1154   if (Subtarget.isDarwin()) {
 1184   if (Subtarget.useCRBits()) {
 1190   if (Subtarget.isDarwin())
 1193   switch (Subtarget.getDarwinDirective()) {
 1213   if (Subtarget.enableMachineScheduler())
 1222   if (Subtarget.getDarwinDirective() == PPC::DIR_E500mc ||
 1223       Subtarget.getDarwinDirective() == PPC::DIR_E5500) {
 1230   } else if (Subtarget.getDarwinDirective() == PPC::DIR_A2) {
 1277   if (Subtarget.isDarwin())
 1282   unsigned Align = Subtarget.isPPC64() ? 8 : 4;
 1283   if (Subtarget.hasAltivec() || Subtarget.hasQPX())
 1283   if (Subtarget.hasAltivec() || Subtarget.hasQPX())
 1284     getMaxByValAlign(Ty, Align, Subtarget.hasQPX() ? 32 : 16);
 1289   return Subtarget.useSoftFloat();
 1293   return Subtarget.hasSPE();
 1426     return Subtarget.useCRBits() ? MVT::i1 : MVT::i32;
 1428   if (Subtarget.hasQPX())
 2434       Base = DAG.getRegister(Subtarget.isPPC64() ? PPC::ZERO8 : PPC::ZERO,
 2491   Base = DAG.getRegister(Subtarget.isPPC64() ? PPC::ZERO8 : PPC::ZERO,
 2568   if (isLoad && usePartialVectorLoads(N, Subtarget)) {
 2575     if (!Subtarget.hasQPX() || (VT != MVT::v4f64 && VT != MVT::v4f32)) {
 2692   const bool Is64Bit = Subtarget.isPPC64();
 2695                         : Subtarget.isAIXABI()
 2713   if (Subtarget.is64BitELFABI()) {
 2721   getLabelAccessInfo(IsPIC, Subtarget, MOHiFlag, MOLoFlag);
 2723   if (IsPIC && Subtarget.isSVR4ABI()) {
 2747   if (Subtarget.isPPC64())
 2754   if (!Subtarget.isPPC64())
 2771   if (!Subtarget.isPPC64())
 2789   if (Subtarget.is64BitELFABI()) {
 2797   getLabelAccessInfo(IsPIC, Subtarget, MOHiFlag, MOLoFlag);
 2799   if (IsPIC && Subtarget.isSVR4ABI()) {
 2818   if (Subtarget.is64BitELFABI()) {
 2825   if (Subtarget.is32BitELFABI() && isPositionIndependent())
 2832   getLabelAccessInfo(IsPIC, Subtarget, MOHiFlag, MOLoFlag);
 2851   bool is64bit = Subtarget.isPPC64();
 2944   if (Subtarget.is64BitELFABI() || Subtarget.isAIXABI()) {
 2944   if (Subtarget.is64BitELFABI() || Subtarget.isAIXABI()) {
 2952   getLabelAccessInfo(IsPIC, Subtarget, MOHiFlag, MOLoFlag, GV);
 2954   if (IsPIC && Subtarget.isSVR4ABI()) {
 3038   assert(!Subtarget.isPPC64() && "LowerVAARG is PPC32 only");
 3129   assert(!Subtarget.isPPC64() && "LowerVACOPY is PPC32 only");
 3187   if (Subtarget.isDarwinABI() || Subtarget.isPPC64()) {
 3187   if (Subtarget.isDarwinABI() || Subtarget.isPPC64()) {
 3406   if (Subtarget.is64BitELFABI())
 3409   else if (Subtarget.is32BitELFABI())
 3469   unsigned LinkageSize = Subtarget.getFrameLowering()->getLinkageSize();
 3493           if (Subtarget.hasP8Vector())
 3495           else if (Subtarget.hasSPE())
 3501           if (Subtarget.hasVSX())
 3503           else if (Subtarget.hasSPE())
 3515           RC = Subtarget.hasQPX() ? &PPC::QSRCRegClass : &PPC::VRRCRegClass;
 3532       if (VA.getLocVT() == MVT::f64 && Subtarget.hasSPE()) {
 3538         if (!Subtarget.isLittleEndian())
 3592       EnsureStackAlignment(Subtarget.getFrameLowering(), MinReservedArea);
 3696   bool isELFv2ABI = Subtarget.isELFv2ABI();
 3697   bool isLittleEndian = Subtarget.isLittleEndian();
 3710   unsigned LinkageSize = Subtarget.getFrameLowering()->getLinkageSize();
 3744                                Subtarget.hasQPX()))
 3941                               Subtarget.hasP8Vector()
 3945           VReg = MF.addLiveIn(FPR[FPR_idx], Subtarget.hasVSX()
 3995       if (!Subtarget.hasQPX()) {
 4068       EnsureStackAlignment(Subtarget.getFrameLowering(), MinReservedArea);
 4118   unsigned LinkageSize = Subtarget.getFrameLowering()->getLinkageSize();
 4422       EnsureStackAlignment(Subtarget.getFrameLowering(), MinReservedArea);
 4675       needStackSlotPassParameters(Subtarget, Outs))
 4699       needStackSlotPassParameters(Subtarget, Outs)) {
 4852     EVT VT = Subtarget.isPPC64() ? MVT::i64 : MVT::i32;
 4859     if (Subtarget.isDarwinABI()) {
 5162       Ins, (Subtarget.isSVR4ABI() && CallConv == CallingConv::Cold)
 5173     if (Subtarget.hasSPE() && VA.getLocVT() == MVT::f64) {
 5183       if (!Subtarget.isLittleEndian())
 5228                                  RegsToPass, Ops, NodeTys, CS, Subtarget);
 5231   if (isVarArg && Subtarget.isSVR4ABI() && !Subtarget.isPPC64())
 5231   if (isVarArg && Subtarget.isSVR4ABI() && !Subtarget.isPPC64())
 5242   const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo();
 5277       ((Subtarget.isSVR4ABI() && Subtarget.isPPC64()) ||
 5277       ((Subtarget.isSVR4ABI() && Subtarget.isPPC64()) ||
 5278        Subtarget.isAIXABI())) {
 5280       if (Subtarget.isAIXABI())
 5295       unsigned TOCSaveOffset = Subtarget.getFrameLowering()->getTOCSaveOffset();
 5309   if (Subtarget.isAIXABI() && isFunctionGlobalAddress(Callee)) {
 5352     if (Subtarget.useLongCalls() && !(CS && CS.isMustTailCall()))
 5354     else if (Subtarget.isSVR4ABI() && Subtarget.isPPC64())
 5354     else if (Subtarget.isSVR4ABI() && Subtarget.isPPC64())
 5387   if (Subtarget.useLongCalls() && isa<GlobalAddressSDNode>(Callee) &&
 5391   if (Subtarget.isSVR4ABI() && Subtarget.isPPC64())
 5391   if (Subtarget.isSVR4ABI() && Subtarget.isPPC64())
 5396   if (Subtarget.isSVR4ABI())
 5401   if (Subtarget.isAIXABI())
 5448   CCInfo.AllocateStack(Subtarget.getFrameLowering()->getLinkageSize(),
 5582       if (Subtarget.hasSPE() && Arg.getValueType() == MVT::f64) {
 5583         bool IsLE = Subtarget.isLittleEndian();
 5672   bool isELFv2ABI = Subtarget.isELFv2ABI();
 5673   bool isLittleEndian = Subtarget.isLittleEndian();
 5702   unsigned LinkageSize = Subtarget.getFrameLowering()->getLinkageSize();
 5736                                 Subtarget.hasQPX()))
 5786           if (Subtarget.hasQPX()) {
 5834     NumBytes = EnsureStackAlignment(Subtarget.getFrameLowering(), NumBytes);
 6161       if (!Subtarget.hasQPX()) {
 6294     unsigned TOCSaveOffset = Subtarget.getFrameLowering()->getTOCSaveOffset();
 6353   unsigned LinkageSize = Subtarget.getFrameLowering()->getLinkageSize();
 6398     NumBytes = EnsureStackAlignment(Subtarget.getFrameLowering(), NumBytes);
 6881       Outs, (Subtarget.isSVR4ABI() && CallConv == CallingConv::Cold)
 6896                        (Subtarget.isSVR4ABI() && CallConv == CallingConv::Cold)
 6923     if (Subtarget.hasSPE() && VA.getLocVT() == MVT::f64) {
 6924       bool isLittleEndian = Subtarget.isLittleEndian();
 6942   const PPCRegisterInfo *TRI = Subtarget.getRegisterInfo();
 6996   bool isPPC64 = Subtarget.isPPC64();
 7017   bool isPPC64 = Subtarget.isPPC64();
 7028     int LROffset = Subtarget.getFrameLowering()->getReturnSaveOffset();
 7040   bool isPPC64 = Subtarget.isPPC64();
 7051     int FPOffset = Subtarget.getFrameLowering()->getFramePointerSaveOffset();
 7084   bool isPPC64 = Subtarget.isPPC64();
 7202   if (Subtarget.isLittleEndian())
 7233   if (!Subtarget.hasP9Vector() && (!HasNoInfs || !HasNoNaNs))
 7243   if (Subtarget.hasP9Vector() && LHS == TV && RHS == FV) {
 7360             : (Subtarget.hasFPCVT() ? PPCISD::FCTIWUZ : PPCISD::FCTIDZ),
 7364     assert((Op.getOpcode() == ISD::FP_TO_SINT || Subtarget.hasFPCVT()) &&
 7373   bool i32Stack = Op.getValueType() == MVT::i32 && Subtarget.hasSTFIWX() &&
 7374     (Op.getOpcode() == ISD::FP_TO_SINT || Subtarget.hasFPCVT());
 7397     MPI = MPI.getWithOffset(Subtarget.isLittleEndian() ? 0 : 4);
 7424             : (Subtarget.hasFPCVT() ? PPCISD::FCTIWUZ : PPCISD::FCTIDZ),
 7429     assert((Op.getOpcode() == ISD::FP_TO_SINT || Subtarget.hasFPCVT()) &&
 7487   if (Subtarget.hasDirectMove() && Subtarget.isPPC64())
 7487   if (Subtarget.hasDirectMove() && Subtarget.isPPC64())
 7579   if (!Subtarget.hasP9Vector() && MMO->getSize() <= 2)
 7607   assert(Subtarget.hasFPCVT() &&
 7673   if (Subtarget.isLittleEndian())
 7687   if (!Subtarget.hasP9Altivec() && SignedConv) {
 7711   if (Subtarget.hasQPX() && Op.getOperand(0).getValueType() == MVT::v4i1) {
 7743   if (Subtarget.hasDirectMove() && directMoveIsProfitable(Op) &&
 7744       Subtarget.isPPC64() && Subtarget.hasFPCVT())
 7744       Subtarget.isPPC64() && Subtarget.hasFPCVT())
 7747   assert((Op.getOpcode() == ISD::SINT_TO_FP || Subtarget.hasFPCVT()) &&
 7752   unsigned FCFOp = (Subtarget.hasFPCVT() && Op.getValueType() == MVT::f32)
 7757   MVT FCFTy = (Subtarget.hasFPCVT() && Op.getValueType() == MVT::f32)
 7774         !Subtarget.hasFPCVT() &&
 7817     } else if (Subtarget.hasLFIWAX() &&
 7827     } else if (Subtarget.hasFPCVT() &&
 7837     } else if (((Subtarget.hasLFIWAX() &&
 7839                 (Subtarget.hasFPCVT() &&
 7875     if (Op.getValueType() == MVT::f32 && !Subtarget.hasFPCVT())
 7892   if (Subtarget.hasLFIWAX() || Subtarget.hasFPCVT()) {
 7892   if (Subtarget.hasLFIWAX() || Subtarget.hasFPCVT()) {
 7926     assert(Subtarget.isPPC64() &&
 7948   if (Op.getValueType() == MVT::f32 && !Subtarget.hasFPCVT())
 8267   if (Subtarget.hasQPX() && Op.getValueType() == MVT::v4i1) {
 8368   if (Subtarget.hasQPX())
 8376                              HasAnyUndefs, 0, !Subtarget.isLittleEndian()) ||
 8392           ((Subtarget.hasVSX() && ElementSize == 64) ||
 8393            (Subtarget.hasP9Vector() && ElementSize == 32))) {
 8409     if (Subtarget.hasVSX() &&
 8410         haveEfficientBuildVectorPattern(BVN, Subtarget.hasDirectMove(),
 8411                                         Subtarget.hasP8Vector()))
 8433   if (Subtarget.hasP9Vector() && SplatSize == 1) {
 8566       unsigned Amt = Subtarget.isLittleEndian() ? 15 : 1;
 8572       unsigned Amt = Subtarget.isLittleEndian() ? 14 : 2;
 8578       unsigned Amt = Subtarget.isLittleEndian() ? 13 : 3;
 8669   bool IsLE = Subtarget.isLittleEndian();
 8775   bool IsLE = Subtarget.isLittleEndian();
 8887   bool isLittleEndian = Subtarget.isLittleEndian();
 8896   if (InputLoad && Subtarget.hasVSX() && V2.isUndef() &&
 8905     if ((IsFourByte && Subtarget.hasP9Vector()) || !IsFourByte) {
 8930   if (Subtarget.hasP9Vector() &&
 8949   if (Subtarget.hasP9Altivec()) {
 8958   if (Subtarget.hasVSX() &&
 8971   if (Subtarget.hasVSX() &&
 8984   if (Subtarget.hasP9Vector()) {
 9004   if (Subtarget.hasVSX()) {
 9022   if (Subtarget.hasQPX()) {
 9074         (Subtarget.hasP8Altivec() && (
 9095       (Subtarget.hasP8Altivec() && (
 9451     if (Subtarget.isPPC64())
 9460   if (!getVectorCompareInfo(Op, CompareOpc, isDot, Subtarget))
 9528     assert(Subtarget.isPPC64() && "Only 64-bit is supported for now.");
 9563   if (Subtarget.isLittleEndian())
 9642     if (Subtarget.isLittleEndian()) {
 9704   if (!Subtarget.useCRBits())
 9961     bool isLittleEndian = Subtarget.isLittleEndian();
10006   assert((VT != MVT::v2i64 || Subtarget.hasP8Altivec()) &&
10069     if (Subtarget.isLittleEndian())
10220     if (!Subtarget.isSVR4ABI() || Subtarget.isPPC64())
10220     if (!Subtarget.isSVR4ABI() || Subtarget.isPPC64())
10285     if (isa<LoadInst>(Inst) && Subtarget.isPPC64())
10304   const TargetInstrInfo *TII = Subtarget.getInstrInfo();
10314     assert(Subtarget.hasPartwordAtomics() && "Call this only with size >=4");
10319     assert(Subtarget.hasPartwordAtomics() && "Call this only with size >=4");
10421   if (Subtarget.hasPartwordAtomics())
10426   const TargetInstrInfo *TII = Subtarget.getInstrInfo();
10431   bool is64bit = Subtarget.isPPC64();
10432   bool isLittleEndian = Subtarget.isLittleEndian();
10613   const TargetInstrInfo *TII = Subtarget.getInstrInfo();
10614   const PPCRegisterInfo *TRI = Subtarget.getRegisterInfo();
10681   if (Subtarget.is64BitELFABI()) {
10694     BaseReg = Subtarget.isPPC64() ? PPC::X1 : PPC::R1;
10696     BaseReg = Subtarget.isPPC64() ? PPC::BP8 : PPC::BP;
10699                 TII->get(Subtarget.isPPC64() ? PPC::STD : PPC::STW))
10722               TII->get(Subtarget.isPPC64() ? PPC::MFLR8 : PPC::MFLR), LabelReg);
10725   if (Subtarget.isPPC64()) {
10755   const TargetInstrInfo *TII = Subtarget.getInstrInfo();
10773           : (Subtarget.isSVR4ABI() && isPositionIndependent() ? PPC::R29
10836   if (PVT == MVT::i64 && Subtarget.isSVR4ABI()) {
10858     if (Subtarget.is64BitELFABI() &&
10879   const TargetInstrInfo *TII = Subtarget.getInstrInfo();
11144            (Subtarget.hasPartwordAtomics() &&
11146            (Subtarget.hasPartwordAtomics() &&
11158       assert(Subtarget.hasPartwordAtomics() && "No support partword atomics.");
11163       assert(Subtarget.hasPartwordAtomics() && "No support partword atomics.");
11249     bool is64bit = Subtarget.isPPC64();
11250     bool isLittleEndian = Subtarget.isLittleEndian();
11522       if (Subtarget.hasDirectMove()) {
11650   if ((VT == MVT::f32 && Subtarget.hasFRSQRTES()) ||
11651       (VT == MVT::f64 && Subtarget.hasFRSQRTE()) ||
11652       (VT == MVT::v4f32 && Subtarget.hasAltivec()) ||
11653       (VT == MVT::v2f64 && Subtarget.hasVSX()) ||
11654       (VT == MVT::v4f32 && Subtarget.hasQPX()) ||
11655       (VT == MVT::v4f64 && Subtarget.hasQPX())) {
11657       RefinementSteps = getEstimateRefinementSteps(VT, Subtarget);
11661     UseOneConstNR = !Subtarget.needsTwoConstNR();
11671   if ((VT == MVT::f32 && Subtarget.hasFRES()) ||
11672       (VT == MVT::f64 && Subtarget.hasFRE()) ||
11673       (VT == MVT::v4f32 && Subtarget.hasAltivec()) ||
11674       (VT == MVT::v2f64 && Subtarget.hasVSX()) ||
11675       (VT == MVT::v4f32 && Subtarget.hasQPX()) ||
11676       (VT == MVT::v4f64 && Subtarget.hasQPX())) {
11678       RefinementSteps = getEstimateRefinementSteps(VT, Subtarget);
11695   switch (Subtarget.getDarwinDirective()) {
12020   assert(Subtarget.useCRBits() && "Expecting to be tracking CR bits");
12319   if (!((N->getOperand(0).getValueType() == MVT::i1 && Subtarget.useCRBits()) ||
12320         (N->getOperand(0).getValueType() == MVT::i32 && Subtarget.isPPC64())))
12938   if (!Subtarget.hasVSX())
12961   if (Subtarget.hasP9Altivec() && !DCI.isBeforeLegalize()) {
13000     SubvecIdx = Subtarget.isLittleEndian() ? 1 : 0;
13002     SubvecIdx = Subtarget.isLittleEndian() ? 0 : 1;
13019   if (useSoftFloat() || !Subtarget.has64BitSupport())
13038   if (Subtarget.hasP9Vector() && Subtarget.hasP9Altivec() && SubWordLoad) {
13038   if (Subtarget.hasP9Vector() && Subtarget.hasP9Altivec() && SubWordLoad) {
13070   assert((Op.getOpcode() == ISD::SINT_TO_FP || Subtarget.hasFPCVT()) &&
13075   unsigned FCFOp = (Subtarget.hasFPCVT() && Op.getValueType() == MVT::f32)
13080   MVT FCFTy = (Subtarget.hasFPCVT() && Op.getValueType() == MVT::f32)
13087        Subtarget.hasFPCVT()) ||
13105     if (Op.getValueType() == MVT::f32 && !Subtarget.hasFPCVT()) {
13157   if (Subtarget.needsSwapsForVSXMemOps() && !(MMO->getAlignment()%16)
13228   if (Subtarget.needsSwapsForVSXMemOps() && !(MMO->getAlignment()%16)
13273          (Subtarget.hasP9Vector() && (Op1VT == MVT::i16 || Op1VT == MVT::i8)));
13275   if (ResVT == MVT::ppcf128 || !Subtarget.hasP8Altivec() ||
13332   if (!isTypeLegal(VT) || !Subtarget.isLittleEndian() || !Subtarget.hasVSX())
13332   if (!isTypeLegal(VT) || !Subtarget.isLittleEndian() || !Subtarget.hasVSX())
13338   if (!Subtarget.hasP9Vector())
13438          (Subtarget.hasLDBRX() && Subtarget.isPPC64() && Op1VT == MVT::i64))) {
13438          (Subtarget.hasLDBRX() && Subtarget.isPPC64() && Op1VT == MVT::i64))) {
13473     if (Subtarget.isPPC64() && !DCI.isBeforeLegalize() &&
13494       if (Subtarget.needsSwapsForVSXMemOps() &&
13509       if (Subtarget.needsSwapsForVSXMemOps() &&
13575       if (Subtarget.isLittleEndian())
13626         ((Subtarget.hasAltivec() && ISD::isNON_EXTLoad(N) &&
13628           !Subtarget.hasP8Vector() && (VT == MVT::v16i8 || VT == MVT::v8i16 ||
13630          (Subtarget.hasQPX() && (VT == MVT::v4f64 || VT == MVT::v4f32) &&
13636       bool isLittleEndian = Subtarget.isLittleEndian();
13664       if (Subtarget.hasAltivec()) {
13752         Perm = Subtarget.hasAltivec() ?
13767       bool isLittleEndian = Subtarget.isLittleEndian();
13822       if (!DCI.isAfterLegalizeDAG() && Subtarget.hasP9Altivec() &&
13858     if (Subtarget.needsSwapsForVSXMemOps()) {
13871     if (Subtarget.needsSwapsForVSXMemOps()) {
13886          (Subtarget.hasLDBRX() && Subtarget.isPPC64() &&
13886          (Subtarget.hasLDBRX() && Subtarget.isPPC64() &&
14032         getVectorCompareInfo(LHS, CompareOpc, isDot, Subtarget)) {
14099   if (VT == MVT::i64 && !Subtarget.isPPC64())
14168   switch (Subtarget.getDarwinDirective()) {
14191     const PPCInstrInfo *TII = Subtarget.getInstrInfo();
14313       if (VT == MVT::i64 && Subtarget.isPPC64())
14317       if (VT == MVT::i64 && Subtarget.isPPC64())
14325       if (Subtarget.hasSPE()) {
14335         if (VT == MVT::v4f64 && Subtarget.hasQPX())
14337         if (VT == MVT::v4f32 && Subtarget.hasQPX())
14342       if (VT == MVT::v4f64 && Subtarget.hasQPX())
14344       if (VT == MVT::v4f32 && Subtarget.hasQPX())
14346       if (Subtarget.hasAltivec())
14352   } else if (Constraint == "wc" && Subtarget.useCRBits()) {
14357              Subtarget.hasVSX()) {
14359   } else if ((Constraint == "ws" || Constraint == "ww") && Subtarget.hasVSX()) {
14360     if (VT == MVT::f32 && Subtarget.hasP8Vector())
14375   if (R.first && VT == MVT::i64 && Subtarget.isPPC64() &&
14521   bool isPPC64 = Subtarget.isPPC64();
14527         DAG.getConstant(Subtarget.getFrameLowering()->getReturnSaveOffset(), dl,
14572   bool isPPC64 = Subtarget.isPPC64();
14573   bool IsDarwinABI = Subtarget.isDarwinABI();
14594   if (Subtarget.is32BitELFABI())
14599   if (Subtarget.isAIXABI())
14613     return Subtarget.isGVIndirectSymbol(G->getGlobal());
14826     if (Subtarget.hasQPX() && Size >= 32 && (!IsMemset || Size >= 64) &&
14834     if (Subtarget.hasAltivec() && Size >= 16 &&
14836          ((IsMemset && Subtarget.hasVSX()) || Subtarget.hasP8Vector())))
14836          ((IsMemset && Subtarget.hasVSX()) || Subtarget.hasP8Vector())))
14840   if (Subtarget.isPPC64()) {
14879          (Subtarget.isPPC64() && MemVT == MVT::i32)) &&
14928     if (Subtarget.hasVSX()) {
14957     return (EnableQuadPrecision && Subtarget.hasP9Vector());
14980   return Subtarget.isPPC64() ? PPC::X3 : PPC::R3;
14985   return Subtarget.isPPC64() ? PPC::X4 : PPC::R4;
14992     return Subtarget.hasDirectMove(); // Don't need stack ops with direct moves
14994   if (Subtarget.hasVSX() || Subtarget.hasQPX())
14994   if (Subtarget.hasVSX() || Subtarget.hasQPX())
15001   if (DisableILPPref || Subtarget.enableMachineScheduler())
15015   if (Subtarget.isDarwinABI()) return;
15016   if (!Subtarget.isPPC64()) return;
15026   const PPCRegisterInfo *TRI = Subtarget.getRegisterInfo();
15031   const TargetInstrInfo *TII = Subtarget.getInstrInfo();
15070   if (!Subtarget.isTargetLinux())
15077   if (!Subtarget.isTargetLinux())
15083   if (!VT.isSimple() || !Subtarget.hasVSX())
15138   if (!Subtarget.isISA3_0() ||
15264   if (auto Value = combineADDToADDZE(N, DCI.DAG, Subtarget))
15282   if (Subtarget.useCRBits()) {
15335     switch (this->Subtarget.getDarwinDirective()) {
15407   if (!Subtarget.is64BitELFABI())
15441   if (!Subtarget.hasVSX())
15443   if (Subtarget.hasP9Vector() && VT == MVT::f128)
15473   assert(Subtarget.hasP9Altivec() &&
15517   assert(Subtarget.hasP9Altivec() &&