Lines Matching full:ppc
1 //===-- PPCISelDAGToDAG.cpp - PPC --pattern matching inst selector --------===//
10 // converting from a legalized dag to a PPC dag.
16 #include "PPC.h"
72 #define DEBUG_TYPE "ppc-isel"
91 cl::opt<bool> ANDIGlueBug("expose-ppc-andi-glue-bug",
92 cl::desc("expose the ANDI glue bug on PPC"), cl::Hidden);
95 UseBitPermRewriter("ppc-use-bit-perm-rewriter", cl::init(true),
96 cl::desc("use aggressive ppc isel for bit permutations"),
99 "ppc-bit-perm-rewriter-stress-rotates",
100 cl::desc("stress rotate selection in aggressive ppc isel for "
105 "ppc-use-branch-hint", cl::init(true),
106 cl::desc("Enable static hinting of branches on ppc"),
110 "ppc-tls-opt", cl::init(true),
119 "ppc-gpr-icmps", cl::Hidden, cl::init(ICGPR_All),
140 /// PPCDAGToDAGISel - PPC specific code to select PPC machine
251 Align(4)) == PPC::AM_DSForm; in SelectDSForm()
259 Align(16)) == PPC::AM_DQForm; in SelectDQForm()
267 std::nullopt) == PPC::AM_DForm; in SelectDForm()
275 std::nullopt) == PPC::AM_PCRel; in SelectPCRelForm()
283 PPC::AM_PrefixDForm; in SelectPDForm()
290 std::nullopt) == PPC::AM_XForm; in SelectXForm()
298 PPC::AM_XForm; in SelectForceXForm()
476 GlobalBaseReg = PPC::R30; in INITIALIZE_PASS()
479 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MoveGOTtoLR)); in INITIALIZE_PASS()
480 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg); in INITIALIZE_PASS()
483 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR)); in INITIALIZE_PASS()
484 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg); in INITIALIZE_PASS()
485 Register TempReg = RegInfo->createVirtualRegister(&PPC::GPRCRegClass); in INITIALIZE_PASS()
487 TII.get(PPC::UpdateGBR), GlobalBaseReg) in INITIALIZE_PASS()
493 RegInfo->createVirtualRegister(&PPC::GPRC_and_GPRC_NOR0RegClass); in INITIALIZE_PASS()
494 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR)); in INITIALIZE_PASS()
495 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg); in INITIALIZE_PASS()
508 GlobalBaseReg = RegInfo->createVirtualRegister(&PPC::G8RC_and_G8RC_NOX0RegClass); in INITIALIZE_PASS()
509 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR8)); in INITIALIZE_PASS()
510 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR8), GlobalBaseReg); in INITIALIZE_PASS()
588 if (!FuncInfo.BPI) return PPC::BR_NO_HINT; in getBranchHint()
593 if (BBTerm->getNumSuccessors() != 2) return PPC::BR_NO_HINT; in getBranchHint()
617 return PPC::BR_NO_HINT; in getBranchHint()
631 return (TProb > FProb) ? PPC::BR_TAKEN_HINT : PPC::BR_NONTAKEN_HINT; in getBranchHint()
646 unsigned Opc = N->getValueType(0) == MVT::i32 ? PPC::ADDI : PPC::ADDI8; in selectFrameIndex()
790 Opcode = (RegVT == MVT::i32) ? PPC::STBXTLS_32 : PPC::STBXTLS; in tryTLSXFormStore()
794 Opcode = (RegVT == MVT::i32) ? PPC::STHXTLS_32 : PPC::STHXTLS; in tryTLSXFormStore()
798 Opcode = (RegVT == MVT::i32) ? PPC::STWXTLS_32 : PPC::STWXTLS; in tryTLSXFormStore()
802 Opcode = PPC::STDXTLS; in tryTLSXFormStore()
806 Opcode = PPC::STFSXTLS; in tryTLSXFormStore()
810 Opcode = PPC::STFDXTLS; in tryTLSXFormStore()
838 Opcode = (RegVT == MVT::i32) ? PPC::LBZXTLS_32 : PPC::LBZXTLS; in tryTLSXFormLoad()
843 Opcode = isSExt ? PPC::LHAXTLS_32 : PPC::LHZXTLS_32; in tryTLSXFormLoad()
845 Opcode = isSExt ? PPC::LHAXTLS : PPC::LHZXTLS; in tryTLSXFormLoad()
850 Opcode = isSExt ? PPC::LWAXTLS_32 : PPC::LWZXTLS_32; in tryTLSXFormLoad()
852 Opcode = isSExt ? PPC::LWAXTLS : PPC::LWZXTLS; in tryTLSXFormLoad()
856 Opcode = PPC::LDXTLS; in tryTLSXFormLoad()
860 Opcode = PPC::LFSXTLS; in tryTLSXFormLoad()
864 Opcode = PPC::LFDXTLS; in tryTLSXFormLoad()
945 ReplaceNode(N, CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops)); in tryBitfieldInsert()
979 case PPC::STW8: in allUsesTruncate()
980 case PPC::STWX8: in allUsesTruncate()
981 case PPC::STWU8: in allUsesTruncate()
982 case PPC::STWUX8: in allUsesTruncate()
987 case PPC::STH8: in allUsesTruncate()
988 case PPC::STHX8: in allUsesTruncate()
989 case PPC::STHU8: in allUsesTruncate()
990 case PPC::STHUX8: in allUsesTruncate()
995 case PPC::STB8: in allUsesTruncate()
996 case PPC::STBX8: in allUsesTruncate()
997 case PPC::STBU8: in allUsesTruncate()
998 case PPC::STBUX8: in allUsesTruncate()
1040 return CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, SDImm); in selectI64ImmDirect()
1045 return CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, in selectI64ImmDirect()
1057 unsigned Opcode = ImmHi16 ? PPC::LIS8 : PPC::LI8; in selectI64ImmDirect()
1059 return CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1069 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1071 return CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1094 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1096 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1116 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1118 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1126 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1128 return CurDAG->getMachineNode(PPC::ORIS8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1152 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1154 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1166 CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, getI32Imm(ImmLo16)); in selectI64ImmDirect()
1169 CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, getI32Imm(ImmHi16)); in selectI64ImmDirect()
1173 CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, getI32Imm(ImmHi16)); in selectI64ImmDirect()
1174 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, in selectI64ImmDirect()
1180 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops); in selectI64ImmDirect()
1194 unsigned Opcode = ImmHi16 ? PPC::LIS8 : PPC::LI8; in selectI64ImmDirect()
1196 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1198 return CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1211 Result = CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, in selectI64ImmDirect()
1213 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1215 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1225 Result = CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, in selectI64ImmDirect()
1227 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1229 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1243 unsigned Opcode = ImmHi16 ? PPC::LIS8 : PPC::LI8; in selectI64ImmDirect()
1245 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1247 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1283 return CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, in selectI64ImmDirectPrefix()
1298 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, in selectI64ImmDirectPrefix()
1300 return CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirectPrefix()
1320 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, in selectI64ImmDirectPrefix()
1322 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirectPrefix()
1333 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, in selectI64ImmDirectPrefix()
1335 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirectPrefix()
1352 CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(RotImm)); in selectI64ImmDirectPrefix()
1353 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in selectI64ImmDirectPrefix()
1362 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(Hi32)); in selectI64ImmDirectPrefix()
1365 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops); in selectI64ImmDirectPrefix()
1372 CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(Hi32)); in selectI64ImmDirectPrefix()
1374 CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(Lo32)); in selectI64ImmDirectPrefix()
1377 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops); in selectI64ImmDirectPrefix()
1429 CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, getI32Imm(Hi16)); in selectI64Imm()
1430 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, in selectI64Imm()
1434 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops); in selectI64Imm()
1443 Result = CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops); in selectI64Imm()
1450 Result = CurDAG->getMachineNode(PPC::RLWIMI8, dl, MVT::i64, Ops); in selectI64Imm()
1457 Result = CurDAG->getMachineNode(PPC::RLWIMI8, dl, MVT::i64, Ops); in selectI64Imm()
1471 Result = CurDAG->getMachineNode(PPC::ORIS8, dl, MVT::i64, in selectI64Imm()
1476 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64Imm()
1495 return CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, SDImm); in selectI64Imm()
2138 SDValue SubRegIdx = CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32); in ExtendToInt64()
2139 SDValue ImDef = SDValue(CurDAG->getMachineNode(PPC::IMPLICIT_DEF, dl, in ExtendToInt64()
2141 SDValue ExtVal = SDValue(CurDAG->getMachineNode(PPC::INSERT_SUBREG, dl, in ExtendToInt64()
2152 SDValue SubRegIdx = CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32); in TruncateToInt32()
2153 SDValue SubVal = SDValue(CurDAG->getMachineNode(PPC::EXTRACT_SUBREG, dl, in TruncateToInt32()
2218 VRot = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, in SelectAndParts32()
2226 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI_rec, dl, MVT::i32, in SelectAndParts32()
2231 SDValue(CurDAG->getMachineNode(PPC::ANDIS_rec, dl, MVT::i32, VRot, in SelectAndParts32()
2241 TotalVal = SDValue(CurDAG->getMachineNode(PPC::OR, dl, MVT::i32, in SelectAndParts32()
2247 Res = SDValue(CurDAG->getMachineNode(PPC::OR, dl, MVT::i32, in SelectAndParts32()
2278 Res = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), in Select32()
2299 Res = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0); in Select32()
2305 Res = SDValue(CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops), 0); in Select32()
2322 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI_rec, dl, MVT::i32, in Select32()
2327 SDValue(CurDAG->getMachineNode(PPC::ANDIS_rec, dl, MVT::i32, Res, in Select32()
2336 Res = SDValue(CurDAG->getMachineNode(PPC::OR, dl, MVT::i32, in Select32()
2382 return SDValue(CurDAG->getMachineNode(PPC::RLWINM8, dl, MVT::i64, in SelectRotMask64()
2390 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Ops), 0); in SelectRotMask64()
2397 return SDValue(CurDAG->getMachineNode(PPC::RLDICR, dl, MVT::i64, Ops), 0); in SelectRotMask64()
2404 return SDValue(CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, Ops), 0); in SelectRotMask64()
2446 return SDValue(CurDAG->getMachineNode(PPC::RLWIMI8, dl, MVT::i64, in SelectRotMaskIns64()
2454 return SDValue(CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops), 0); in SelectRotMaskIns64()
2605 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI8_rec, dl, MVT::i64, in SelectAndParts64()
2611 SDValue(CurDAG->getMachineNode(PPC::ANDIS8_rec, dl, MVT::i64, in SelectAndParts64()
2621 TotalVal = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in SelectAndParts64()
2626 SDValue(CurDAG->getMachineNode(PPC::AND8, dl, MVT::i64, in SelectAndParts64()
2634 Res = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in SelectAndParts64()
2755 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI8_rec, dl, MVT::i64, in Select64()
2761 SDValue(CurDAG->getMachineNode(PPC::ANDIS8_rec, dl, MVT::i64, in Select64()
2771 Res = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in Select64()
2777 Res = SDValue(CurDAG->getMachineNode(PPC::AND8, dl, MVT::i64, in Select64()
3006 bool IsBitwiseNegate = LoweredLogical.getMachineOpcode() == PPC::XORI8; in tryLogicOpOfCompares()
3007 unsigned SubRegToExtract = IsBitwiseNegate ? PPC::sub_eq : PPC::sub_gt; in tryLogicOpOfCompares()
3008 SDValue CR0Reg = CurDAG->getRegister(PPC::CR0, MVT::i32); in tryLogicOpOfCompares()
3017 LoweredLogical.getOperand(0).getMachineOpcode() == PPC::INSERT_SUBREG) in tryLogicOpOfCompares()
3038 "Expected a PPC::XORI8 only for bitwise negation."); in tryLogicOpOfCompares()
3052 SDValue(CurDAG->getMachineNode(NewOpc == -1 ? PPC::ANDI8_rec : NewOpc, in tryLogicOpOfCompares()
3100 return SDValue(CurDAG->getMachineNode(InVT == MVT::i32 ? PPC::RLDICL_32 : in computeLogicOpInGPR()
3101 PPC::RLDICL, dl, InVT, InputOp, in computeLogicOpInGPR()
3128 case ISD::AND: NewOpc = PPC::AND8; break; in computeLogicOpInGPR()
3129 case ISD::OR: NewOpc = PPC::OR8; break; in computeLogicOpInGPR()
3130 case ISD::XOR: NewOpc = PPC::XOR8; break; in computeLogicOpInGPR()
3135 NewOpc = PPC::XORI8; in computeLogicOpInGPR()
3159 // The input is a sign-extending load. All ppc sign-extending loads in signExtendInputIfNeeded()
3171 return SDValue(CurDAG->getMachineNode(PPC::EXTSW_32_64, dl, in signExtendInputIfNeeded()
3206 return SDValue(CurDAG->getMachineNode(PPC::RLDICL_32_64, dl, MVT::i64, Input, in zeroExtendInputIfNeeded()
3222 SDValue ImDef(CurDAG->getMachineNode(PPC::IMPLICIT_DEF, dl, MVT::i64), 0); in addExtOrTrunc()
3224 CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32); in addExtOrTrunc()
3225 return SDValue(CurDAG->getMachineNode(PPC::INSERT_SUBREG, dl, MVT::i64, in addExtOrTrunc()
3234 CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32); in addExtOrTrunc()
3235 return SDValue(CurDAG->getMachineNode(PPC::EXTRACT_SUBREG, dl, MVT::i32, in addExtOrTrunc()
3252 ToExtend = SDValue(CurDAG->getMachineNode(Is32Bit ? PPC::NOR : PPC::NOR8, in getCompoundZeroComparisonInGPR()
3261 SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, LHS), 0); in getCompoundZeroComparisonInGPR()
3263 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in getCompoundZeroComparisonInGPR()
3268 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS, in getCompoundZeroComparisonInGPR()
3270 ToExtend = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in getCompoundZeroComparisonInGPR()
3280 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in getCompoundZeroComparisonInGPR()
3285 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, ToExtend, in getCompoundZeroComparisonInGPR()
3294 return SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, in getCompoundZeroComparisonInGPR()
3298 return SDValue(CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, ToExtend, in getCompoundZeroComparisonInGPR()
3301 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, ToExtend, in getCompoundZeroComparisonInGPR()
3304 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, ToExtend, in getCompoundZeroComparisonInGPR()
3331 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0); in get32BitZExtCompare()
3333 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Xor), 0); in get32BitZExtCompare()
3336 return SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, in get32BitZExtCompare()
3343 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0); in get32BitZExtCompare()
3345 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Xor), 0); in get32BitZExtCompare()
3349 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, ShiftOps), 0); in get32BitZExtCompare()
3350 return SDValue(CurDAG->getMachineNode(PPC::XORI, dl, MVT::i32, Shift, in get32BitZExtCompare()
3381 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, LHS, RHS), 0); in get32BitZExtCompare()
3383 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Sub, in get32BitZExtCompare()
3387 SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, in get32BitZExtCompare()
3405 SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, LHS), 0); in get32BitZExtCompare()
3406 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitZExtCompare()
3431 return SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, in get32BitZExtCompare()
3441 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0); in get32BitZExtCompare()
3442 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitZExtCompare()
3458 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, LHS, RHS), 0); in get32BitZExtCompare()
3460 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitZExtCompare()
3463 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, SrdiNode, in get32BitZExtCompare()
3478 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0); in get32BitZExtCompare()
3479 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitZExtCompare()
3507 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0); in get32BitSExtCompare()
3509 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, CountInput), 0); in get32BitSExtCompare()
3513 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, SHLOps), 0); in get32BitSExtCompare()
3514 return SDValue(CurDAG->getMachineNode(PPC::NEG, dl, MVT::i32, Slwi), 0); in get32BitSExtCompare()
3525 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0); in get32BitSExtCompare()
3527 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Xor), 0); in get32BitSExtCompare()
3531 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, ShiftOps), 0); in get32BitSExtCompare()
3533 SDValue(CurDAG->getMachineNode(PPC::XORI, dl, MVT::i32, Shift, in get32BitSExtCompare()
3535 return SDValue(CurDAG->getMachineNode(PPC::NEG, dl, MVT::i32, Xori), 0); in get32BitSExtCompare()
3562 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, MVT::Glue, in get32BitSExtCompare()
3565 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitSExtCompare()
3568 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, Srdi, in get32BitSExtCompare()
3584 SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, LHS), 0); in get32BitSExtCompare()
3585 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, Neg, in get32BitSExtCompare()
3606 return SDValue(CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, LHS, in get32BitSExtCompare()
3615 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0); in get32BitSExtCompare()
3616 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get32BitSExtCompare()
3631 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, LHS, RHS), 0); in get32BitSExtCompare()
3633 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Subtract, in get32BitSExtCompare()
3636 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, Shift, in get32BitSExtCompare()
3651 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0); in get32BitSExtCompare()
3652 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get32BitSExtCompare()
3676 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0); in get64BitZExtCompare()
3678 SDValue(CurDAG->getMachineNode(PPC::CNTLZD, dl, MVT::i64, Xor), 0); in get64BitZExtCompare()
3679 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Clz, in get64BitZExtCompare()
3689 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0); in get64BitZExtCompare()
3691 SDValue(CurDAG->getMachineNode(PPC::ADDIC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3693 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, AC, in get64BitZExtCompare()
3716 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS, in get64BitZExtCompare()
3720 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, RHS, in get64BitZExtCompare()
3723 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3725 return SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3737 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS, in get64BitZExtCompare()
3740 SDValue(CurDAG->getMachineNode(PPC::NOR8, dl, MVT::i64, Addi, LHS), 0); in get64BitZExtCompare()
3741 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Nor, in get64BitZExtCompare()
3759 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS, in get64BitZExtCompare()
3763 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get64BitZExtCompare()
3766 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get64BitZExtCompare()
3770 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3773 SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3775 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, in get64BitZExtCompare()
3787 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3790 SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3792 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, in get64BitZExtCompare()
3804 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3807 SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, in get64BitZExtCompare()
3809 return SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, in get64BitZExtCompare()
3835 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0); in get64BitSExtCompare()
3837 SDValue(CurDAG->getMachineNode(PPC::ADDIC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3839 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, Addic, in get64BitSExtCompare()
3848 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0); in get64BitSExtCompare()
3850 SDValue(CurDAG->getMachineNode(PPC::SUBFIC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3852 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, SC, in get64BitSExtCompare()
3875 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, RHS, in get64BitSExtCompare()
3878 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS, in get64BitSExtCompare()
3882 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3885 SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3887 return SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, Adde), 0); in get64BitSExtCompare()
3898 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS, in get64BitSExtCompare()
3901 SDValue(CurDAG->getMachineNode(PPC::NOR8, dl, MVT::i64, Add, LHS), 0); in get64BitSExtCompare()
3902 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, Nor, in get64BitSExtCompare()
3919 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, LHS, in get64BitSExtCompare()
3923 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get64BitSExtCompare()
3926 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get64BitSExtCompare()
3930 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3933 SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, in get64BitSExtCompare()
3936 SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, in get64BitSExtCompare()
3938 return SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, in get64BitSExtCompare()
3950 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3953 SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, MVT::Glue, LHS, in get64BitSExtCompare()
3955 return SDValue(CurDAG->getMachineNode(PPC::NOR8, dl, MVT::i64, in get64BitSExtCompare()
3967 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3969 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, in get64BitSExtCompare()
4061 // Users can override this via the command line option, `--ppc-gpr-icmps`. in tryIntCompareInGPR()
4132 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, LHS, in SelectCC()
4137 return SDValue(CurDAG->getMachineNode(PPC::CMPWI, dl, MVT::i32, LHS, in SelectCC()
4150 SDValue Xor(CurDAG->getMachineNode(PPC::XORIS, dl, MVT::i32, LHS, in SelectCC()
4152 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, Xor, in SelectCC()
4155 Opc = PPC::CMPLW; in SelectCC()
4158 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, LHS, in SelectCC()
4160 Opc = PPC::CMPLW; in SelectCC()
4164 return SDValue(CurDAG->getMachineNode(PPC::CMPWI, dl, MVT::i32, LHS, in SelectCC()
4168 Opc = PPC::CMPW; in SelectCC()
4176 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, LHS, in SelectCC()
4181 return SDValue(CurDAG->getMachineNode(PPC::CMPDI, dl, MVT::i64, LHS, in SelectCC()
4195 SDValue Xor(CurDAG->getMachineNode(PPC::XORIS8, dl, MVT::i64, LHS, in SelectCC()
4197 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, Xor, in SelectCC()
4202 Opc = PPC::CMPLD; in SelectCC()
4205 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, LHS, in SelectCC()
4207 Opc = PPC::CMPLD; in SelectCC()
4211 return SDValue(CurDAG->getMachineNode(PPC::CMPDI, dl, MVT::i64, LHS, in SelectCC()
4214 Opc = PPC::CMPD; in SelectCC()
4222 Opc = PPC::EFSCMPEQ; in SelectCC()
4230 Opc = PPC::EFSCMPLT; in SelectCC()
4238 Opc = PPC::EFSCMPGT; in SelectCC()
4242 Opc = PPC::FCMPUS; in SelectCC()
4249 Opc = PPC::EFDCMPEQ; in SelectCC()
4257 Opc = PPC::EFDCMPLT; in SelectCC()
4265 Opc = PPC::EFDCMPGT; in SelectCC()
4269 Opc = Subtarget->hasVSX() ? PPC::XSCMPUDP : PPC::FCMPUD; in SelectCC()
4273 Opc = PPC::XSCMPUQP; in SelectCC()
4283 static PPC::Predicate getPredicateForSetCC(ISD::CondCode CC, const EVT &VT, in getPredicateForSetCC()
4297 return UseSPE ? PPC::PRED_GT : PPC::PRED_EQ; in getPredicateForSetCC()
4300 return UseSPE ? PPC::PRED_LE : PPC::PRED_NE; in getPredicateForSetCC()
4303 return UseSPE ? PPC::PRED_GT : PPC::PRED_LT; in getPredicateForSetCC()
4306 return PPC::PRED_LE; in getPredicateForSetCC()
4309 return PPC::PRED_GT; in getPredicateForSetCC()
4312 return UseSPE ? PPC::PRED_LE : PPC::PRED_GE; in getPredicateForSetCC()
4313 case ISD::SETO: return PPC::PRED_NU; in getPredicateForSetCC()
4314 case ISD::SETUO: return PPC::PRED_UN; in getPredicateForSetCC()
4316 case ISD::SETULT: return PPC::PRED_LT; in getPredicateForSetCC()
4317 case ISD::SETUGT: return PPC::PRED_GT; in getPredicateForSetCC()
4386 return HasVSX ? PPC::XVCMPEQSP : PPC::VCMPEQFP; in getVCmpInst()
4388 return PPC::XVCMPEQDP; in getVCmpInst()
4393 return HasVSX ? PPC::XVCMPGTSP : PPC::VCMPGTFP; in getVCmpInst()
4395 return PPC::XVCMPGTDP; in getVCmpInst()
4400 return HasVSX ? PPC::XVCMPGESP : PPC::VCMPGEFP; in getVCmpInst()
4402 return PPC::XVCMPGEDP; in getVCmpInst()
4430 return PPC::VCMPEQUB; in getVCmpInst()
4432 return PPC::VCMPEQUH; in getVCmpInst()
4434 return PPC::VCMPEQUW; in getVCmpInst()
4436 return PPC::VCMPEQUD; in getVCmpInst()
4438 return PPC::VCMPEQUQ; in getVCmpInst()
4442 return PPC::VCMPGTSB; in getVCmpInst()
4444 return PPC::VCMPGTSH; in getVCmpInst()
4446 return PPC::VCMPGTSW; in getVCmpInst()
4448 return PPC::VCMPGTSD; in getVCmpInst()
4450 return PPC::VCMPGTSQ; in getVCmpInst()
4454 return PPC::VCMPGTUB; in getVCmpInst()
4456 return PPC::VCMPGTUH; in getVCmpInst()
4458 return PPC::VCMPGTUW; in getVCmpInst()
4460 return PPC::VCMPGTUD; in getVCmpInst()
4462 return PPC::VCMPGTUQ; in getVCmpInst()
4494 Op = SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Op), 0); in trySETCC()
4497 CurDAG->SelectNodeTo(N, PPC::RLWINM, MVT::i32, Ops); in trySETCC()
4503 SDValue(CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in trySETCC()
4505 CurDAG->SelectNodeTo(N, PPC::SUBFE, MVT::i32, AD, Op, AD.getValue(1)); in trySETCC()
4511 CurDAG->SelectNodeTo(N, PPC::RLWINM, MVT::i32, Ops); in trySETCC()
4516 SDValue(CurDAG->getMachineNode(PPC::NEG, dl, MVT::i32, Op), 0); in trySETCC()
4517 T = SDValue(CurDAG->getMachineNode(PPC::ANDC, dl, MVT::i32, T, Op), 0); in trySETCC()
4520 CurDAG->SelectNodeTo(N, PPC::RLWINM, MVT::i32, Ops); in trySETCC()
4530 Op = SDValue(CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in trySETCC()
4532 CurDAG->SelectNodeTo(N, PPC::ADDZE, MVT::i32, in trySETCC()
4533 SDValue(CurDAG->getMachineNode(PPC::LI, dl, in trySETCC()
4540 Op = SDValue(CurDAG->getMachineNode(PPC::NOR, dl, MVT::i32, Op, Op), 0); in trySETCC()
4541 SDNode *AD = CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in trySETCC()
4543 CurDAG->SelectNodeTo(N, PPC::SUBFE, MVT::i32, SDValue(AD, 0), Op, in trySETCC()
4548 SDValue AD = SDValue(CurDAG->getMachineNode(PPC::ADDI, dl, MVT::i32, Op, in trySETCC()
4550 SDValue AN = SDValue(CurDAG->getMachineNode(PPC::AND, dl, MVT::i32, AD, in trySETCC()
4554 CurDAG->SelectNodeTo(N, PPC::RLWINM, MVT::i32, Ops); in trySETCC()
4560 Op = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0); in trySETCC()
4561 CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Op, getI32Imm(1, dl)); in trySETCC()
4584 CurDAG->SelectNodeTo(N, Subtarget->hasVSX() ? PPC::XXLNOR : PPC::VNOR, in trySETCC()
4610 SDValue CR7Reg = CurDAG->getRegister(PPC::CR7, MVT::i32); in trySETCC()
4616 IntCR = SDValue(CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, CR7Reg, in trySETCC()
4622 CurDAG->SelectNodeTo(N, PPC::RLWINM, MVT::i32, Ops); in trySETCC()
4628 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0); in trySETCC()
4629 CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Tmp, getI32Imm(1, dl)); in trySETCC()
4863 PCC = IsCCNE ? PPC::PRED_UN : PPC::PRED_NU; in tryFoldSWTestBRCC()
4866 PCC = IsCCNE ? PPC::PRED_EQ : PPC::PRED_NE; in tryFoldSWTestBRCC()
4869 PCC = IsCCNE ? PPC::PRED_GT : PPC::PRED_LE; in tryFoldSWTestBRCC()
4872 PCC = IsCCNE ? PPC::PRED_LT : PPC::PRED_GE; in tryFoldSWTestBRCC()
4879 PCC = IsCCNE ? PPC::PRED_UN : PPC::PRED_NU; in tryFoldSWTestBRCC()
4885 CurDAG->SelectNodeTo(N, PPC::BCC, MVT::Other, Ops); in tryFoldSWTestBRCC()
4920 Subtarget->isPPC64() ? PPC::DecreaseCTR8loop : PPC::DecreaseCTRloop; in trySelectLoopCountIntrinsic()
4926 unsigned Opcode = IsBranchOnTrue ? PPC::BC : PPC::BCn; in trySelectLoopCountIntrinsic()
4958 CurDAG->SelectNodeTo(N, PPC::RLWINM, MVT::i32, Ops); in tryAsSingleRLWINM()
4967 CurDAG->SelectNodeTo(N, PPC::RLWINM, MVT::i32, Ops); in tryAsSingleRLWINM()
4999 CurDAG->SelectNodeTo(N, PPC::RLWINM8, MVT::i64, Ops); in tryAsSingleRLWINM8()
5043 Val = SDValue(CurDAG->getMachineNode(PPC::RLDICL, Loc, MVT::i64, Val, in tryAsPairOfRLDICL()
5056 CurDAG->SelectNodeTo(N, PPC::RLDICL, MVT::i64, Ops); in tryAsPairOfRLDICL()
5091 ReplaceNode(N, CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops)); in tryAsSingleRLWIMI()
5123 CurDAG->SelectNodeTo(N, PPC::RLDCL, MVT::i64, Ops); in tryAsSingleRLDCL()
5146 auto ImDef = CurDAG->getMachineNode(PPC::IMPLICIT_DEF, dl, ResultType); in tryAsSingleRLDICL()
5149 Val = SDValue(CurDAG->getMachineNode(PPC::INSERT_SUBREG, dl, ResultType, in tryAsSingleRLDICL()
5170 CurDAG->SelectNodeTo(N, PPC::RLDICL, MVT::i64, Ops); in tryAsSingleRLDICL()
5188 CurDAG->SelectNodeTo(N, PPC::RLDICR, MVT::i64, Ops); in tryAsSingleRLDICR()
5213 CurDAG->SelectNodeTo(N, PPC::RLDIMI, MVT::i64, Ops); in tryAsSingleRLDIMI()
5259 ? PPC::TDI in Select()
5260 : PPC::TWI; in Select()
5273 // We will emit PPC::TD or PPC::TW if the 2nd and 3rd operands are reg + in Select()
5277 Opcode = IntrinsicID == Intrinsic::ppc_tdw ? PPC::TD : PPC::TW; in Select()
5313 "ppc-trap-reason") && in Select()
5317 "Invalid data type for annotation ppc-trap-reason!"); in Select()
5329 // We emit the PPC::FSELS instruction here because of type conflicts with in Select()
5338 CurDAG->SelectNodeTo(N, PPC::FSELS, MVT::f32, Ops); in Select()
5345 IntID == Intrinsic::ppc_bcdadd_p ? PPC::BCDADD_rec : PPC::BCDSUB_rec; in Select()
5351 SubReg = PPC::sub_eq; in Select()
5355 SubReg = PPC::sub_eq; in Select()
5360 SubReg = PPC::sub_lt; in Select()
5364 SubReg = PPC::sub_lt; in Select()
5369 SubReg = PPC::sub_gt; in Select()
5373 SubReg = PPC::sub_gt; in Select()
5378 SubReg = PPC::sub_un; in Select()
5381 SubReg = PPC::sub_un; in Select()
5390 SDValue CR6Reg = CurDAG->getRegister(PPC::CR6, MVT::i32); in Select()
5399 CurDAG->SelectNodeTo(N, Reverse ? PPC::SETBCR : PPC::SETBC, MVT::i32, in Select()
5403 SDValue(CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, CR6Reg, in Select()
5409 CurDAG->SelectNodeTo(N, PPC::RLWINM, MVT::i32, Ops); in Select()
5412 CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0); in Select()
5413 CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Shift, getI32Imm(1, dl)); in Select()
5426 Opcode = PPC::VSTRIBR_rec; in Select()
5429 Opcode = PPC::VSTRIBL_rec; in Select()
5432 Opcode = PPC::VSTRIHR_rec; in Select()
5435 Opcode = PPC::VSTRIHL_rec; in Select()
5447 SDValue SubRegIdx = CurDAG->getTargetConstant(PPC::sub_eq, dl, MVT::i32); in Select()
5448 SDValue CR6Reg = CurDAG->getRegister(PPC::CR6, MVT::i32); in Select()
5453 CurDAG->SelectNodeTo(N, PPC::SETBC, MVT::i32, CRBit); in Select()
5505 ReplaceNode(N, CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, in Select()
5511 ReplaceNode(N, CurDAG->getMachineNode(PPC::ReadTB, dl, MVT::i32, MVT::i32, in Select()
5523 CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, MVT::Glue, in Select()
5525 CurDAG->SelectNodeTo(N, PPC::ADDZE8, MVT::i64, SDValue(Op, 0), in Select()
5532 CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, MVT::Glue, in Select()
5534 CurDAG->SelectNodeTo(N, PPC::ADDZE, MVT::i32, SDValue(Op, 0), in Select()
5575 default: llvm_unreachable("Invalid PPC load type!"); in Select()
5576 case MVT::f64: Opcode = PPC::LFDU; break; in Select()
5577 case MVT::f32: Opcode = PPC::LFSU; break; in Select()
5578 case MVT::i32: Opcode = PPC::LWZU; break; in Select()
5579 case MVT::i16: Opcode = isSExt ? PPC::LHAU : PPC::LHZU; break; in Select()
5581 case MVT::i8: Opcode = PPC::LBZU; break; in Select()
5587 default: llvm_unreachable("Invalid PPC load type!"); in Select()
5588 case MVT::i64: Opcode = PPC::LDU; break; in Select()
5589 case MVT::i32: Opcode = PPC::LWZU8; break; in Select()
5590 case MVT::i16: Opcode = isSExt ? PPC::LHAU8 : PPC::LHZU8; break; in Select()
5592 case MVT::i8: Opcode = PPC::LBZU8; break; in Select()
5612 default: llvm_unreachable("Invalid PPC load type!"); in Select()
5613 case MVT::f64: Opcode = PPC::LFDUX; break; in Select()
5614 case MVT::f32: Opcode = PPC::LFSUX; break; in Select()
5615 case MVT::i32: Opcode = PPC::LWZUX; break; in Select()
5616 case MVT::i16: Opcode = isSExt ? PPC::LHAUX : PPC::LHZUX; break; in Select()
5618 case MVT::i8: Opcode = PPC::LBZUX; break; in Select()
5625 default: llvm_unreachable("Invalid PPC load type!"); in Select()
5626 case MVT::i64: Opcode = PPC::LDUX; break; in Select()
5627 case MVT::i32: Opcode = isSExt ? PPC::LWAUX : PPC::LWZUX8; break; in Select()
5628 case MVT::i16: Opcode = isSExt ? PPC::LHAUX8 : PPC::LHZUX8; break; in Select()
5630 case MVT::i8: Opcode = PPC::LBZUX8; break; in Select()
5688 SDNode *Lo = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, in Select()
5692 CurDAG->SelectNodeTo(N, PPC::ORIS8, MVT::i64, Ops1); in Select()
5711 SDNode *Lo = CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, in Select()
5715 CurDAG->SelectNodeTo(N, PPC::XORIS8, MVT::i64, Ops1); in Select()
5739 CurDAG->SelectNodeTo(N, PPC::RLWINM, MVT::i32, Ops); in Select()
5753 CurDAG->SelectNodeTo(N, PPC::RLWINM, MVT::i32, Ops); in Select()
5782 SDNode *MulNode = CurDAG->getMachineNode(PPC::MULLI8, dl, MVT::i64, in Select()
5787 CurDAG->SelectNodeTo(N, PPC::RLDICR, MVT::i64, Ops); in Select()
5791 SDNode *MulNode = CurDAG->getMachineNode(PPC::MULLI, dl, MVT::i32, in Select()
5796 CurDAG->SelectNodeTo(N, PPC::RLWINM, MVT::i32, Ops); in Select()
5811 unsigned Opcode = (InVT == MVT::i64) ? PPC::ANDI8_rec : PPC::ANDI_rec; in Select()
5816 SDValue CR0Reg = CurDAG->getRegister(PPC::CR0, MVT::i32); in Select()
5818 N->getOpcode() == PPCISD::ANDI_rec_1_EQ_BIT ? PPC::sub_eq : PPC::sub_gt, in Select()
5853 N, N->getSimpleValueType(0) == MVT::i64 ? PPC::SETB8 : PPC::SETB, in Select()
5867 CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in Select()
5869 CurDAG->SelectNodeTo(N, PPC::SUBFE, MVT::i32, SDValue(Tmp, 0), in Select()
5884 case 0: SRI = PPC::sub_lt; break; in Select()
5885 case 1: SRI = PPC::sub_gt; break; in Select()
5886 case 2: SRI = PPC::sub_eq; break; in Select()
5887 case 3: SRI = PPC::sub_un; break; in Select()
5892 SDValue NotCCBit(CurDAG->getMachineNode(PPC::CRNOR, dl, MVT::i1, in Select()
5897 SDValue CAndT(CurDAG->getMachineNode(PPC::CRAND, dl, MVT::i1, in Select()
5899 SDValue NotCAndF(CurDAG->getMachineNode(PPC::CRAND, dl, MVT::i1, in Select()
5902 CurDAG->SelectNodeTo(N, PPC::CROR, MVT::i1, CAndT, NotCAndF); in Select()
5911 SelectCCOp = PPC::SELECT_CC_I4; in Select()
5913 SelectCCOp = PPC::SELECT_CC_I8; in Select()
5916 SelectCCOp = PPC::SELECT_CC_VSSRC; in Select()
5918 SelectCCOp = PPC::SELECT_CC_SPE4; in Select()
5920 SelectCCOp = PPC::SELECT_CC_F4; in Select()
5923 SelectCCOp = PPC::SELECT_CC_VSFRC; in Select()
5925 SelectCCOp = PPC::SELECT_CC_SPE; in Select()
5927 SelectCCOp = PPC::SELECT_CC_F8; in Select()
5929 SelectCCOp = PPC::SELECT_CC_F16; in Select()
5931 SelectCCOp = PPC::SELECT_CC_SPE; in Select()
5934 SelectCCOp = PPC::SELECT_CC_VSRC; in Select()
5936 SelectCCOp = PPC::SELECT_CC_VRRC; in Select()
5971 SDNode *NewN = CurDAG->SelectNodeTo(N, PPC::LXVDSX, in Select()
5990 CurDAG->SelectNodeTo(N, PPC::XXPERMDI, N->getValueType(0), Ops); in Select()
6000 ? (IsPPC64 ? PPC::BDNZ8 : PPC::BDNZ) in Select()
6001 : (IsPPC64 ? PPC::BDZ8 : PPC::BDZ), in Select()
6007 // Op #1 is the PPC::PRED_* number. in Select()
6011 // Prevent PPC::PRED_* from being selected into LI. in Select()
6019 CurDAG->SelectNodeTo(N, PPC::BCC, MVT::Other, Ops); in Select()
6036 case PPC::PRED_LT: Opc = PPC::CRANDC; Swap = true; break; in Select()
6037 case PPC::PRED_LE: Opc = PPC::CRORC; Swap = true; break; in Select()
6038 case PPC::PRED_EQ: Opc = PPC::CREQV; Swap = false; break; in Select()
6039 case PPC::PRED_GE: Opc = PPC::CRORC; Swap = false; break; in Select()
6040 case PPC::PRED_GT: Opc = PPC::CRANDC; Swap = false; break; in Select()
6041 case PPC::PRED_NE: Opc = PPC::CRXOR; Swap = false; break; in Select()
6056 CurDAG->SelectNodeTo(N, PPC::BC, MVT::Other, BitComp, N->getOperand(4), in Select()
6067 CurDAG->SelectNodeTo(N, PPC::BCC, MVT::Other, Ops); in Select()
6074 unsigned Opc = Target.getValueType() == MVT::i32 ? PPC::MTCTR : PPC::MTCTR8; in Select()
6075 unsigned Reg = Target.getValueType() == MVT::i32 ? PPC::BCTR : PPC::BCTR8; in Select()
6106 if (OpCode == PPC::ADDItoc || OpCode == PPC::ADDItoc8) in Select()
6120 // PPC::ADDItoc, or PPC::LWZtoc in Select()
6126 replaceWith(PPC::LWZtoc, N, MVT::i32); in Select()
6133 replaceWith(PPC::ADDItoc, N, MVT::i32); in Select()
6137 replaceWith(PPC::LWZtoc, N, MVT::i32); in Select()
6145 replaceWith(PPC::ADDItoc8, N, MVT::i64); in Select()
6181 isPPC64 ? PPC::ADDIStocHA8 : PPC::ADDIStocHA, dl, VT, TOCbase, GA); in Select()
6187 N, CurDAG->getMachineNode(isPPC64 ? PPC::ADDItocL8 : PPC::ADDItocL, in Select()
6196 isPPC64 ? PPC::LDtocL : PPC::LWZtocL, dl, VT, GA, SDValue(Tmp, 0)); in Select()
6205 ReplaceNode(N, CurDAG->getMachineNode(PPC::ADDItocL8, dl, MVT::i64, in Select()
6213 CurDAG->SelectNodeTo(N, PPC::PPC32PICGOT, in Select()
6231 Opc1 = PPC::VSPLTISB; in Select()
6232 Opc2 = PPC::VADDUBM; in Select()
6233 Opc3 = PPC::VSUBUBM; in Select()
6236 Opc1 = PPC::VSPLTISH; in Select()
6237 Opc2 = PPC::VADDUHM; in Select()
6238 Opc3 = PPC::VSUBUHM; in Select()
6242 Opc1 = PPC::VSPLTISW; in Select()
6243 Opc2 = PPC::VADDUWM; in Select()
6244 Opc3 = PPC::VSUBUWM; in Select()
6311 CurDAG->getRegister(Subtarget->isPPC64() ? PPC::ZERO8 : PPC::ZERO, in Select()
6313 unsigned LIOpcode = Subtarget->isPPC64() ? PPC::LI8 : PPC::LI; in Select()
6328 unsigned SplatOp = (Type == MVT::v16i8) ? PPC::VSPLTB : PPC::VSPLTH; in Select()
6333 Subtarget->isLittleEndian() ? PPC::LVSR : PPC::LVSL, dl, Type, ZeroReg, in Select()
6337 CurDAG->getMachineNode(PPC::LVX, dl, MVT::v16i8, MVT::Other, in Select()
6343 PPC::LVX, dl, MVT::v16i8, MVT::Other, in Select()
6355 CurDAG->getMachineNode(PPC::VPERM, dl, Type, SDValue(LoadLow, 0), in Select()
6671 LLVM_DEBUG(dbgs() << "PPC DAG preprocessing replacing:\nOld: "); in PreprocessISelDAG()
6707 if (User->getMachineOpcode() != PPC::SELECT_I4 && in AllUsersSelectZero()
6708 User->getMachineOpcode() != PPC::SELECT_I8) in AllUsersSelectZero()
6721 if (Op2->getMachineOpcode() != PPC::LI && in AllUsersSelectZero()
6722 Op2->getMachineOpcode() != PPC::LI8) in AllUsersSelectZero()
6735 assert((User->getMachineOpcode() == PPC::SELECT_I4 || in SwapAllSelectUsers()
6736 User->getMachineOpcode() == PPC::SELECT_I8) && in SwapAllSelectUsers()
6776 case PPC::CRAND: in PeepholeCROps()
6777 case PPC::CRNAND: in PeepholeCROps()
6778 case PPC::CROR: in PeepholeCROps()
6779 case PPC::CRXOR: in PeepholeCROps()
6780 case PPC::CRNOR: in PeepholeCROps()
6781 case PPC::CREQV: in PeepholeCROps()
6782 case PPC::CRANDC: in PeepholeCROps()
6783 case PPC::CRORC: { in PeepholeCROps()
6786 if (Op.getMachineOpcode() == PPC::CRSET) in PeepholeCROps()
6788 else if (Op.getMachineOpcode() == PPC::CRUNSET) in PeepholeCROps()
6790 else if ((Op.getMachineOpcode() == PPC::CRNOR && in PeepholeCROps()
6792 Op.getMachineOpcode() == PPC::CRNOT) in PeepholeCROps()
6797 case PPC::BC: in PeepholeCROps()
6798 case PPC::BCn: in PeepholeCROps()
6799 case PPC::SELECT_I4: in PeepholeCROps()
6800 case PPC::SELECT_I8: in PeepholeCROps()
6801 case PPC::SELECT_F4: in PeepholeCROps()
6802 case PPC::SELECT_F8: in PeepholeCROps()
6803 case PPC::SELECT_SPE: in PeepholeCROps()
6804 case PPC::SELECT_SPE4: in PeepholeCROps()
6805 case PPC::SELECT_VRRC: in PeepholeCROps()
6806 case PPC::SELECT_VSFRC: in PeepholeCROps()
6807 case PPC::SELECT_VSSRC: in PeepholeCROps()
6808 case PPC::SELECT_VSRC: { in PeepholeCROps()
6811 if (Op.getMachineOpcode() == PPC::CRSET) in PeepholeCROps()
6813 else if (Op.getMachineOpcode() == PPC::CRUNSET) in PeepholeCROps()
6815 else if ((Op.getMachineOpcode() == PPC::CRNOR && in PeepholeCROps()
6817 Op.getMachineOpcode() == PPC::CRNOT) in PeepholeCROps()
6827 case PPC::CRAND: in PeepholeCROps()
6839 ResNode = CurDAG->getMachineNode(PPC::CRUNSET, SDLoc(MachineNode), in PeepholeCROps()
6843 ResNode = CurDAG->getMachineNode(PPC::CRANDC, SDLoc(MachineNode), in PeepholeCROps()
6849 ResNode = CurDAG->getMachineNode(PPC::CRANDC, SDLoc(MachineNode), in PeepholeCROps()
6854 ResNode = CurDAG->getMachineNode(PPC::CRNAND, SDLoc(MachineNode), in PeepholeCROps()
6860 case PPC::CRNAND: in PeepholeCROps()
6863 ResNode = CurDAG->getMachineNode(PPC::CRNOR, SDLoc(MachineNode), in PeepholeCROps()
6868 ResNode = CurDAG->getMachineNode(PPC::CRNOR, SDLoc(MachineNode), in PeepholeCROps()
6873 ResNode = CurDAG->getMachineNode(PPC::CRNOR, SDLoc(MachineNode), in PeepholeCROps()
6878 ResNode = CurDAG->getMachineNode(PPC::CRSET, SDLoc(MachineNode), in PeepholeCROps()
6882 ResNode = CurDAG->getMachineNode(PPC::CRORC, SDLoc(MachineNode), in PeepholeCROps()
6888 ResNode = CurDAG->getMachineNode(PPC::CRORC, SDLoc(MachineNode), in PeepholeCROps()
6893 ResNode = CurDAG->getMachineNode(PPC::CRAND, SDLoc(MachineNode), in PeepholeCROps()
6899 case PPC::CROR: in PeepholeCROps()
6905 ResNode = CurDAG->getMachineNode(PPC::CRSET, SDLoc(MachineNode), in PeepholeCROps()
6915 ResNode = CurDAG->getMachineNode(PPC::CRORC, SDLoc(MachineNode), in PeepholeCROps()
6921 ResNode = CurDAG->getMachineNode(PPC::CRORC, SDLoc(MachineNode), in PeepholeCROps()
6926 ResNode = CurDAG->getMachineNode(PPC::CRNOR, SDLoc(MachineNode), in PeepholeCROps()
6932 case PPC::CRXOR: in PeepholeCROps()
6935 ResNode = CurDAG->getMachineNode(PPC::CRUNSET, SDLoc(MachineNode), in PeepholeCROps()
6939 ResNode = CurDAG->getMachineNode(PPC::CRNOR, SDLoc(MachineNode), in PeepholeCROps()
6944 ResNode = CurDAG->getMachineNode(PPC::CRNOR, SDLoc(MachineNode), in PeepholeCROps()
6955 ResNode = CurDAG->getMachineNode(PPC::CREQV, SDLoc(MachineNode), in PeepholeCROps()
6961 ResNode = CurDAG->getMachineNode(PPC::CREQV, SDLoc(MachineNode), in PeepholeCROps()
6966 ResNode = CurDAG->getMachineNode(PPC::CREQV, SDLoc(MachineNode), in PeepholeCROps()
6972 case PPC::CRNOR: in PeepholeCROps()
6975 ResNode = CurDAG->getMachineNode(PPC::CRUNSET, SDLoc(MachineNode), in PeepholeCROps()
6979 ResNode = CurDAG->getMachineNode(PPC::CRNOR, SDLoc(MachineNode), in PeepholeCROps()
6984 ResNode = CurDAG->getMachineNode(PPC::CRNOR, SDLoc(MachineNode), in PeepholeCROps()
6989 ResNode = CurDAG->getMachineNode(PPC::CRANDC, SDLoc(MachineNode), in PeepholeCROps()
6995 ResNode = CurDAG->getMachineNode(PPC::CRANDC, SDLoc(MachineNode), in PeepholeCROps()
7000 ResNode = CurDAG->getMachineNode(PPC::CROR, SDLoc(MachineNode), in PeepholeCROps()
7006 case PPC::CREQV: in PeepholeCROps()
7009 ResNode = CurDAG->getMachineNode(PPC::CRSET, SDLoc(MachineNode), in PeepholeCROps()
7019 ResNode = CurDAG->getMachineNode(PPC::CRNOR, SDLoc(MachineNode), in PeepholeCROps()
7024 ResNode = CurDAG->getMachineNode(PPC::CRNOR, SDLoc(MachineNode), in PeepholeCROps()
7029 ResNode = CurDAG->getMachineNode(PPC::CRXOR, SDLoc(MachineNode), in PeepholeCROps()
7035 ResNode = CurDAG->getMachineNode(PPC::CRXOR, SDLoc(MachineNode), in PeepholeCROps()
7040 ResNode = CurDAG->getMachineNode(PPC::CRXOR, SDLoc(MachineNode), in PeepholeCROps()
7046 case PPC::CRANDC: in PeepholeCROps()
7049 ResNode = CurDAG->getMachineNode(PPC::CRUNSET, SDLoc(MachineNode), in PeepholeCROps()
7053 ResNode = CurDAG->getMachineNode(PPC::CRNOR, SDLoc(MachineNode), in PeepholeCROps()
7058 ResNode = CurDAG->getMachineNode(PPC::CRUNSET, SDLoc(MachineNode), in PeepholeCROps()
7065 ResNode = CurDAG->getMachineNode(PPC::CRNOR, SDLoc(MachineNode), in PeepholeCROps()
7071 ResNode = CurDAG->getMachineNode(PPC::CRAND, SDLoc(MachineNode), in PeepholeCROps()
7076 ResNode = CurDAG->getMachineNode(PPC::CRORC, SDLoc(MachineNode), in PeepholeCROps()
7082 case PPC::CRORC: in PeepholeCROps()
7085 ResNode = CurDAG->getMachineNode(PPC::CRSET, SDLoc(MachineNode), in PeepholeCROps()
7089 ResNode = CurDAG->getMachineNode(PPC::CRSET, SDLoc(MachineNode), in PeepholeCROps()
7096 ResNode = CurDAG->getMachineNode(PPC::CRNOR, SDLoc(MachineNode), in PeepholeCROps()
7101 ResNode = CurDAG->getMachineNode(PPC::CRNAND, SDLoc(MachineNode), in PeepholeCROps()
7107 ResNode = CurDAG->getMachineNode(PPC::CROR, SDLoc(MachineNode), in PeepholeCROps()
7112 ResNode = CurDAG->getMachineNode(PPC::CRANDC, SDLoc(MachineNode), in PeepholeCROps()
7118 case PPC::SELECT_I4: in PeepholeCROps()
7119 case PPC::SELECT_I8: in PeepholeCROps()
7120 case PPC::SELECT_F4: in PeepholeCROps()
7121 case PPC::SELECT_F8: in PeepholeCROps()
7122 case PPC::SELECT_SPE: in PeepholeCROps()
7123 case PPC::SELECT_SPE4: in PeepholeCROps()
7124 case PPC::SELECT_VRRC: in PeepholeCROps()
7125 case PPC::SELECT_VSFRC: in PeepholeCROps()
7126 case PPC::SELECT_VSSRC: in PeepholeCROps()
7127 case PPC::SELECT_VSRC: in PeepholeCROps()
7141 case PPC::BC: in PeepholeCROps()
7142 case PPC::BCn: in PeepholeCROps()
7144 ResNode = CurDAG->getMachineNode(Opcode == PPC::BC ? PPC::BCn : in PeepholeCROps()
7145 PPC::BC, in PeepholeCROps()
7190 if ((Op32.getMachineOpcode() == PPC::RLWINM || in PeepholePPC64ZExtGather()
7191 Op32.getMachineOpcode() == PPC::RLWNM) && in PeepholePPC64ZExtGather()
7198 if (Op32.getMachineOpcode() == PPC::SLW || in PeepholePPC64ZExtGather()
7199 Op32.getMachineOpcode() == PPC::SRW) { in PeepholePPC64ZExtGather()
7206 if (Op32.getMachineOpcode() == PPC::LI || in PeepholePPC64ZExtGather()
7207 Op32.getMachineOpcode() == PPC::LIS) { in PeepholePPC64ZExtGather()
7216 if (Op32.getMachineOpcode() == PPC::LHBRX || in PeepholePPC64ZExtGather()
7217 Op32.getMachineOpcode() == PPC::LWBRX) { in PeepholePPC64ZExtGather()
7223 if (Op32.getMachineOpcode() == PPC::CNTLZW || in PeepholePPC64ZExtGather()
7224 Op32.getMachineOpcode() == PPC::CNTTZW) { in PeepholePPC64ZExtGather()
7233 if (Op32.getMachineOpcode() == PPC::RLWIMI && in PeepholePPC64ZExtGather()
7247 if (Op32.getMachineOpcode() == PPC::OR || in PeepholePPC64ZExtGather()
7248 Op32.getMachineOpcode() == PPC::SELECT_I4) { in PeepholePPC64ZExtGather()
7249 unsigned B = Op32.getMachineOpcode() == PPC::SELECT_I4 ? 1 : 0; in PeepholePPC64ZExtGather()
7264 if (Op32.getMachineOpcode() == PPC::ORI || in PeepholePPC64ZExtGather()
7265 Op32.getMachineOpcode() == PPC::ORIS) { in PeepholePPC64ZExtGather()
7279 if (Op32.getMachineOpcode() == PPC::AND) { in PeepholePPC64ZExtGather()
7302 if (Op32.getMachineOpcode() == PPC::ANDI_rec || in PeepholePPC64ZExtGather()
7303 Op32.getMachineOpcode() == PPC::ANDIS_rec) { in PeepholePPC64ZExtGather()
7344 if (N->getMachineOpcode() != PPC::RLDICL) in PeepholePPC64ZExt()
7359 if (ISR.getConstantOperandVal(2) != PPC::sub_32) in PeepholePPC64ZExt()
7409 case PPC::RLWINM: NewOpcode = PPC::RLWINM8; break; in PeepholePPC64ZExt()
7410 case PPC::RLWNM: NewOpcode = PPC::RLWNM8; break; in PeepholePPC64ZExt()
7411 case PPC::SLW: NewOpcode = PPC::SLW8; break; in PeepholePPC64ZExt()
7412 case PPC::SRW: NewOpcode = PPC::SRW8; break; in PeepholePPC64ZExt()
7413 case PPC::LI: NewOpcode = PPC::LI8; break; in PeepholePPC64ZExt()
7414 case PPC::LIS: NewOpcode = PPC::LIS8; break; in PeepholePPC64ZExt()
7415 case PPC::LHBRX: NewOpcode = PPC::LHBRX8; break; in PeepholePPC64ZExt()
7416 case PPC::LWBRX: NewOpcode = PPC::LWBRX8; break; in PeepholePPC64ZExt()
7417 case PPC::CNTLZW: NewOpcode = PPC::CNTLZW8; break; in PeepholePPC64ZExt()
7418 case PPC::CNTTZW: NewOpcode = PPC::CNTTZW8; break; in PeepholePPC64ZExt()
7419 case PPC::RLWIMI: NewOpcode = PPC::RLWIMI8; break; in PeepholePPC64ZExt()
7420 case PPC::OR: NewOpcode = PPC::OR8; break; in PeepholePPC64ZExt()
7421 case PPC::SELECT_I4: NewOpcode = PPC::SELECT_I8; break; in PeepholePPC64ZExt()
7422 case PPC::ORI: NewOpcode = PPC::ORI8; break; in PeepholePPC64ZExt()
7423 case PPC::ORIS: NewOpcode = PPC::ORIS8; break; in PeepholePPC64ZExt()
7424 case PPC::AND: NewOpcode = PPC::AND8; break; in PeepholePPC64ZExt()
7425 case PPC::ANDI_rec: in PeepholePPC64ZExt()
7426 NewOpcode = PPC::ANDI8_rec; in PeepholePPC64ZExt()
7428 case PPC::ANDIS_rec: in PeepholePPC64ZExt()
7429 NewOpcode = PPC::ANDIS8_rec; in PeepholePPC64ZExt()
7498 if (Opc == PPC::XXPERMDIs) { in isVSXSwap()
7501 } else if (Opc == PPC::XXPERMDI || Opc == PPC::XXSLDWI) { in isVSXSwap()
7519 case PPC::VAVGSB: in isLaneInsensitive()
7520 case PPC::VAVGUB: in isLaneInsensitive()
7521 case PPC::VAVGSH: in isLaneInsensitive()
7522 case PPC::VAVGUH: in isLaneInsensitive()
7523 case PPC::VAVGSW: in isLaneInsensitive()
7524 case PPC::VAVGUW: in isLaneInsensitive()
7525 case PPC::VMAXFP: in isLaneInsensitive()
7526 case PPC::VMAXSB: in isLaneInsensitive()
7527 case PPC::VMAXUB: in isLaneInsensitive()
7528 case PPC::VMAXSH: in isLaneInsensitive()
7529 case PPC::VMAXUH: in isLaneInsensitive()
7530 case PPC::VMAXSW: in isLaneInsensitive()
7531 case PPC::VMAXUW: in isLaneInsensitive()
7532 case PPC::VMINFP: in isLaneInsensitive()
7533 case PPC::VMINSB: in isLaneInsensitive()
7534 case PPC::VMINUB: in isLaneInsensitive()
7535 case PPC::VMINSH: in isLaneInsensitive()
7536 case PPC::VMINUH: in isLaneInsensitive()
7537 case PPC::VMINSW: in isLaneInsensitive()
7538 case PPC::VMINUW: in isLaneInsensitive()
7539 case PPC::VADDFP: in isLaneInsensitive()
7540 case PPC::VADDUBM: in isLaneInsensitive()
7541 case PPC::VADDUHM: in isLaneInsensitive()
7542 case PPC::VADDUWM: in isLaneInsensitive()
7543 case PPC::VSUBFP: in isLaneInsensitive()
7544 case PPC::VSUBUBM: in isLaneInsensitive()
7545 case PPC::VSUBUHM: in isLaneInsensitive()
7546 case PPC::VSUBUWM: in isLaneInsensitive()
7547 case PPC::VAND: in isLaneInsensitive()
7548 case PPC::VANDC: in isLaneInsensitive()
7549 case PPC::VOR: in isLaneInsensitive()
7550 case PPC::VORC: in isLaneInsensitive()
7551 case PPC::VXOR: in isLaneInsensitive()
7552 case PPC::VNOR: in isLaneInsensitive()
7553 case PPC::VMULUWM: in isLaneInsensitive()
7607 (ADDIToFold.getMachineOpcode() != PPC::ADDI8)) in isEligibleToFoldADDIForFasterLocalAccesses()
7656 if (N->getMachineOpcode() != PPC::ADDI8) in foldADDIForFasterLocalAccesses()
7713 case PPC::LWA: in PeepholePPC64()
7714 case PPC::LD: in PeepholePPC64()
7715 case PPC::DFLOADf64: in PeepholePPC64()
7716 case PPC::DFLOADf32: in PeepholePPC64()
7719 case PPC::LBZ: in PeepholePPC64()
7720 case PPC::LBZ8: in PeepholePPC64()
7721 case PPC::LFD: in PeepholePPC64()
7722 case PPC::LFS: in PeepholePPC64()
7723 case PPC::LHA: in PeepholePPC64()
7724 case PPC::LHA8: in PeepholePPC64()
7725 case PPC::LHZ: in PeepholePPC64()
7726 case PPC::LHZ8: in PeepholePPC64()
7727 case PPC::LWZ: in PeepholePPC64()
7728 case PPC::LWZ8: in PeepholePPC64()
7732 case PPC::STD: in PeepholePPC64()
7733 case PPC::DFSTOREf64: in PeepholePPC64()
7734 case PPC::DFSTOREf32: in PeepholePPC64()
7737 case PPC::STB: in PeepholePPC64()
7738 case PPC::STB8: in PeepholePPC64()
7739 case PPC::STFD: in PeepholePPC64()
7740 case PPC::STFS: in PeepholePPC64()
7741 case PPC::STH: in PeepholePPC64()
7742 case PPC::STH8: in PeepholePPC64()
7743 case PPC::STW: in PeepholePPC64()
7744 case PPC::STW8: in PeepholePPC64()
7776 case PPC::ADDI8: in PeepholePPC64()
7777 case PPC::ADDI: in PeepholePPC64()
7783 case PPC::ADDIdtprelL: in PeepholePPC64()
7786 case PPC::ADDItlsldL: in PeepholePPC64()
7789 case PPC::ADDItocL8: in PeepholePPC64()
7820 if (Base.getMachineOpcode() != PPC::ADDItocL8) in PeepholePPC64()
7824 HBase.getMachineOpcode() != PPC::ADDIStocHA8) in PeepholePPC64()