Lines Matching refs:dl
179 inline SDValue getI16Imm(unsigned Imm, const SDLoc &dl) { in getI16Imm() argument
180 return CurDAG->getTargetConstant(Imm, dl, MVT::i16); in getI16Imm()
185 inline SDValue getI32Imm(unsigned Imm, const SDLoc &dl) { in getI32Imm() argument
186 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in getI32Imm()
191 inline SDValue getI64Imm(uint64_t Imm, const SDLoc &dl) { in getI64Imm() argument
192 return CurDAG->getTargetConstant(Imm, dl, MVT::i64); in getI64Imm()
196 inline SDValue getSmallIPtrImm(uint64_t Imm, const SDLoc &dl) { in getSmallIPtrImm() argument
198 Imm, dl, PPCLowering->getPointerTy(CurDAG->getDataLayout())); in getSmallIPtrImm()
231 const SDLoc &dl, SDValue Chain = SDValue());
405 SDLoc dl(Op); in SelectInlineAsmMemoryOperand() local
406 SDValue RC = CurDAG->getTargetConstant(TRC->getID(), dl, MVT::i32); in SelectInlineAsmMemoryOperand()
409 dl, Op.getValueType(), in SelectInlineAsmMemoryOperand()
472 DebugLoc dl; in INITIALIZE_PASS() local
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()
486 BuildMI(FirstMBB, MBBI, dl, 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()
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()
643 SDLoc dl(SN); in selectFrameIndex() local
649 getSmallIPtrImm(Offset, dl)); in selectFrameIndex()
651 ReplaceNode(SN, CurDAG->getMachineNode(Opc, dl, N->getValueType(0), TFI, in selectFrameIndex()
652 getSmallIPtrImm(Offset, dl))); in selectFrameIndex()
781 SDLoc dl(ST); in tryTLSXFormStore() local
818 SDNode *MN = CurDAG->getMachineNode(Opcode, dl, VTs, Ops); in tryTLSXFormStore()
829 SDLoc dl(LD); in tryTLSXFormLoad() local
871 SDNode *MN = CurDAG->getMachineNode(Opcode, dl, VTs, Ops); in tryTLSXFormLoad()
882 SDLoc dl(N); in tryBitfieldInsert() local
943 SDValue Ops[] = { Op0, Op1, getI32Imm(SH, dl), getI32Imm(MB, dl), in tryBitfieldInsert()
944 getI32Imm(ME, dl) }; in tryBitfieldInsert()
945 ReplaceNode(N, CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops)); in tryBitfieldInsert()
1019 static SDNode *selectI64ImmDirect(SelectionDAG *CurDAG, const SDLoc &dl, in selectI64ImmDirect() argument
1030 auto getI32Imm = [CurDAG, dl](unsigned Imm) { in selectI64ImmDirect()
1031 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in selectI64ImmDirect()
1039 SDValue SDImm = CurDAG->getTargetConstant(Imm, dl, MVT::i64); in selectI64ImmDirect()
1040 return CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, SDImm); in selectI64ImmDirect()
1045 return CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, in selectI64ImmDirect()
1058 Result = CurDAG->getMachineNode(Opcode, dl, MVT::i64, getI32Imm(ImmHi16)); 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()
1195 Result = CurDAG->getMachineNode(Opcode, dl, MVT::i64, getI32Imm(ImmHi16)); 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()
1244 Result = CurDAG->getMachineNode(Opcode, dl, MVT::i64, getI32Imm(ImmHi16)); 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()
1260 static SDNode *selectI64ImmDirectPrefix(SelectionDAG *CurDAG, const SDLoc &dl, in selectI64ImmDirectPrefix() argument
1269 auto getI32Imm = [CurDAG, dl](unsigned Imm) { in selectI64ImmDirectPrefix()
1270 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in selectI64ImmDirectPrefix()
1273 auto getI64Imm = [CurDAG, dl](uint64_t Imm) { in selectI64ImmDirectPrefix()
1274 return CurDAG->getTargetConstant(Imm, dl, MVT::i64); in selectI64ImmDirectPrefix()
1283 return CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, in selectI64ImmDirectPrefix()
1284 CurDAG->getTargetConstant(Imm, 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()
1380 static SDNode *selectI64Imm(SelectionDAG *CurDAG, const SDLoc &dl, uint64_t Imm, in selectI64Imm() argument
1385 SDNode *Result = selectI64ImmDirect(CurDAG, dl, Imm, InstCntDirect); in selectI64Imm()
1395 SDNode *ResultP = selectI64ImmDirectPrefix(CurDAG, dl, Imm, InstCntDirectP); in selectI64Imm()
1413 auto getI32Imm = [CurDAG, dl](unsigned Imm) { in selectI64Imm()
1414 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in selectI64Imm()
1427 auto getSplat = [CurDAG, dl, getI32Imm](uint32_t Hi16, uint32_t Lo16) { in selectI64Imm()
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()
1468 selectI64ImmDirect(CurDAG, dl, Imm & 0xffffffff00000000, InstCntDirect); 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()
1487 SDLoc dl(N); in selectI64Imm() local
1493 SDValue SDImm = CurDAG->getTargetConstant(SextImm, dl, MVT::i64); in selectI64Imm()
1495 return CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, SDImm); in selectI64Imm()
1497 return selectI64Imm(CurDAG, dl, Imm); in selectI64Imm()
2114 SDValue getI32Imm(unsigned Imm, const SDLoc &dl) { in getI32Imm() argument
2115 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in getI32Imm()
2133 SDValue ExtendToInt64(SDValue V, const SDLoc &dl) { in ExtendToInt64() argument
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()
2147 SDValue TruncateToInt32(SDValue V, const SDLoc &dl) { in TruncateToInt32() argument
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()
2161 void SelectAndParts32(const SDLoc &dl, SDValue &Res, unsigned *InstCnt) { in SelectAndParts32() argument
2216 { TruncateToInt32(VRI.V, dl), getI32Imm(VRI.RLAmt, dl), in SelectAndParts32()
2217 getI32Imm(0, dl), getI32Imm(31, dl) }; in SelectAndParts32()
2218 VRot = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, in SelectAndParts32()
2221 VRot = TruncateToInt32(VRI.V, dl); in SelectAndParts32()
2226 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI_rec, dl, MVT::i32, in SelectAndParts32()
2227 VRot, getI32Imm(ANDIMask, dl)), in SelectAndParts32()
2231 SDValue(CurDAG->getMachineNode(PPC::ANDIS_rec, dl, MVT::i32, VRot, in SelectAndParts32()
2232 getI32Imm(ANDISMask, dl)), 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()
2260 SDLoc dl(N); in Select32() local
2266 SelectAndParts32(dl, Res, InstCnt); in Select32()
2276 { TruncateToInt32(VRI.V, dl), getI32Imm(VRI.RLAmt, dl), in Select32()
2277 getI32Imm(0, dl), getI32Imm(31, dl) }; in Select32()
2278 Res = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), in Select32()
2281 Res = TruncateToInt32(VRI.V, dl); in Select32()
2296 { TruncateToInt32(BG.V, dl), getI32Imm(BG.RLAmt, dl), in Select32()
2297 getI32Imm(Bits.size() - BG.EndIdx - 1, dl), in Select32()
2298 getI32Imm(Bits.size() - BG.StartIdx - 1, dl) }; in Select32()
2299 Res = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0); in Select32()
2302 { Res, TruncateToInt32(BG.V, dl), getI32Imm(BG.RLAmt, dl), in Select32()
2303 getI32Imm(Bits.size() - BG.EndIdx - 1, dl), in Select32()
2304 getI32Imm(Bits.size() - BG.StartIdx - 1, dl) }; 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()
2323 Res, getI32Imm(ANDIMask, dl)), in Select32()
2327 SDValue(CurDAG->getMachineNode(PPC::ANDIS_rec, dl, MVT::i32, Res, in Select32()
2328 getI32Imm(ANDISMask, dl)), in Select32()
2336 Res = SDValue(CurDAG->getMachineNode(PPC::OR, dl, MVT::i32, in Select32()
2363 SDValue SelectRotMask64(SDValue V, const SDLoc &dl, unsigned RLAmt, in SelectRotMask64() argument
2380 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMask64()
2381 getI32Imm(InstMaskStart - 32, dl), getI32Imm(InstMaskEnd - 32, dl) }; in SelectRotMask64()
2382 return SDValue(CurDAG->getMachineNode(PPC::RLWINM8, dl, MVT::i64, in SelectRotMask64()
2388 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMask64()
2389 getI32Imm(InstMaskStart, dl) }; in SelectRotMask64()
2390 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Ops), 0); in SelectRotMask64()
2395 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMask64()
2396 getI32Imm(InstMaskEnd, dl) }; in SelectRotMask64()
2397 return SDValue(CurDAG->getMachineNode(PPC::RLDICR, dl, MVT::i64, Ops), 0); in SelectRotMask64()
2402 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMask64()
2403 getI32Imm(InstMaskStart, dl) }; in SelectRotMask64()
2404 return SDValue(CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, Ops), 0); in SelectRotMask64()
2421 V = SelectRotMask64(V, dl, RLAmt1, false, 0, 63); in SelectRotMask64()
2422 return SelectRotMask64(V, dl, RLAmt2, false, MaskStart, MaskEnd); in SelectRotMask64()
2427 SDValue SelectRotMaskIns64(SDValue Base, SDValue V, const SDLoc &dl, in SelectRotMaskIns64() argument
2444 { ExtendToInt64(Base, dl), ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMaskIns64()
2445 getI32Imm(InstMaskStart - 32, dl), getI32Imm(InstMaskEnd - 32, dl) }; in SelectRotMaskIns64()
2446 return SDValue(CurDAG->getMachineNode(PPC::RLWIMI8, dl, MVT::i64, in SelectRotMaskIns64()
2452 { ExtendToInt64(Base, dl), ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMaskIns64()
2453 getI32Imm(InstMaskStart, dl) }; in SelectRotMaskIns64()
2454 return SDValue(CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops), 0); in SelectRotMaskIns64()
2471 V = SelectRotMask64(V, dl, RLAmt1, false, 0, 63); in SelectRotMaskIns64()
2472 return SelectRotMaskIns64(Base, V, dl, RLAmt2, false, MaskStart, MaskEnd); in SelectRotMaskIns64()
2475 void SelectAndParts64(const SDLoc &dl, SDValue &Res, unsigned *InstCnt) { in SelectAndParts64() argument
2544 selectI64Imm(CurDAG, dl, Mask, &NumOfSelectInsts); in SelectAndParts64()
2593 VRot = SelectRotMask64(VRI.V, dl, VRI.RLAmt, VRI.Repl32, in SelectAndParts64()
2605 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI8_rec, dl, MVT::i64, in SelectAndParts64()
2606 ExtendToInt64(VRot, dl), in SelectAndParts64()
2607 getI32Imm(ANDIMask, dl)), in SelectAndParts64()
2611 SDValue(CurDAG->getMachineNode(PPC::ANDIS8_rec, dl, MVT::i64, in SelectAndParts64()
2612 ExtendToInt64(VRot, dl), in SelectAndParts64()
2613 getI32Imm(ANDISMask, dl)), in SelectAndParts64()
2621 TotalVal = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in SelectAndParts64()
2622 ExtendToInt64(ANDIVal, dl), ANDISVal), 0); in SelectAndParts64()
2624 TotalVal = SDValue(selectI64Imm(CurDAG, dl, Mask), 0); in SelectAndParts64()
2626 SDValue(CurDAG->getMachineNode(PPC::AND8, dl, MVT::i64, in SelectAndParts64()
2627 ExtendToInt64(VRot, dl), TotalVal), in SelectAndParts64()
2634 Res = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in SelectAndParts64()
2635 ExtendToInt64(Res, dl), TotalVal), in SelectAndParts64()
2646 SDLoc dl(N); in Select64() local
2652 SelectAndParts64(dl, Res, InstCnt); in Select64()
2692 Res = SelectRotMask64(VRI.V, dl, VRI.RLAmt, VRI.Repl32, in Select64()
2727 Res = SelectRotMask64(BG.V, dl, BG.RLAmt, BG.Repl32, BG.StartIdx, in Select64()
2730 Res = SelectRotMaskIns64(Res, BG.V, dl, BG.RLAmt, BG.Repl32, in Select64()
2755 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI8_rec, dl, MVT::i64, in Select64()
2756 ExtendToInt64(Res, dl), in Select64()
2757 getI32Imm(ANDIMask, dl)), in Select64()
2761 SDValue(CurDAG->getMachineNode(PPC::ANDIS8_rec, dl, MVT::i64, in Select64()
2762 ExtendToInt64(Res, dl), in Select64()
2763 getI32Imm(ANDISMask, dl)), in Select64()
2771 Res = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in Select64()
2772 ExtendToInt64(ANDIVal, dl), ANDISVal), 0); in Select64()
2776 SDValue(selectI64Imm(CurDAG, dl, Mask, &NumOfSelectInsts), 0); in Select64()
2777 Res = SDValue(CurDAG->getMachineNode(PPC::AND8, dl, MVT::i64, in Select64()
2778 ExtendToInt64(Res, dl), MaskVal), in Select64()
2911 SDValue getCompoundZeroComparisonInGPR(SDValue LHS, SDLoc dl,
2914 int64_t RHSValue, SDLoc dl);
2916 int64_t RHSValue, SDLoc dl);
2918 int64_t RHSValue, SDLoc dl);
2920 int64_t RHSValue, SDLoc dl);
2978 SDLoc dl(N); in tryEXTEND() local
3005 SDLoc dl(N); in tryLogicOpOfCompares() local
3045 SDValue(CurDAG->getMachineNode(NewOpc, dl, in tryLogicOpOfCompares()
3053 dl, MVT::i64, MVT::Glue, LHS, RHS), in tryLogicOpOfCompares()
3062 CurDAG->getTargetConstant(SubRegToExtract, dl, MVT::i32); in tryLogicOpOfCompares()
3064 SDValue(CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG, dl, in tryLogicOpOfCompares()
3083 SDLoc dl(LogicOp); in computeLogicOpInGPR() local
3101 PPC::RLDICL, dl, InVT, InputOp, in computeLogicOpInGPR()
3102 S->getI64Imm(0, dl), in computeLogicOpInGPR()
3103 S->getI64Imm(63, dl)), 0); in computeLogicOpInGPR()
3134 RHS = S->getI64Imm(1, dl); in computeLogicOpInGPR()
3138 return SDValue(CurDAG->getMachineNode(NewOpc, dl, MVT::i64, LHS, RHS), 0); in computeLogicOpInGPR()
3169 SDLoc dl(Input); in signExtendInputIfNeeded() local
3171 return SDValue(CurDAG->getMachineNode(PPC::EXTSW_32_64, dl, in signExtendInputIfNeeded()
3204 SDLoc dl(Input); in zeroExtendInputIfNeeded() local
3206 return SDValue(CurDAG->getMachineNode(PPC::RLDICL_32_64, dl, MVT::i64, Input, in zeroExtendInputIfNeeded()
3207 S->getI64Imm(0, dl), in zeroExtendInputIfNeeded()
3208 S->getI64Imm(32, dl)), 0); in zeroExtendInputIfNeeded()
3217 SDLoc dl(NatWidthRes); in addExtOrTrunc() local
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()
3242 IntegerCompareEliminator::getCompoundZeroComparisonInGPR(SDValue LHS, SDLoc dl, in getCompoundZeroComparisonInGPR() argument
3253 dl, InVT, LHS, LHS), 0); 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()
3264 Neg, S->getI64Imm(1, dl), in getCompoundZeroComparisonInGPR()
3265 S->getI64Imm(63, dl)), 0); in getCompoundZeroComparisonInGPR()
3268 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS, in getCompoundZeroComparisonInGPR()
3269 S->getI64Imm(~0ULL, dl)), 0); 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()
3281 ToExtend, S->getI64Imm(1, dl), in getCompoundZeroComparisonInGPR()
3282 S->getI64Imm(63, dl)), 0); in getCompoundZeroComparisonInGPR()
3285 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, ToExtend, in getCompoundZeroComparisonInGPR()
3286 S->getI64Imm(63, dl)), 0); in getCompoundZeroComparisonInGPR()
3292 SDValue ShiftOps[] = { ToExtend, S->getI32Imm(1, dl), S->getI32Imm(31, dl), in getCompoundZeroComparisonInGPR()
3293 S->getI32Imm(31, dl) }; 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()
3299 S->getI32Imm(31, dl)), 0); in getCompoundZeroComparisonInGPR()
3301 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, ToExtend, in getCompoundZeroComparisonInGPR()
3302 S->getI32Imm(1, dl)), 0); in getCompoundZeroComparisonInGPR()
3304 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, ToExtend, in getCompoundZeroComparisonInGPR()
3305 S->getI32Imm(-1, dl)), 0); in getCompoundZeroComparisonInGPR()
3318 int64_t RHSValue, SDLoc dl) { in get32BitZExtCompare() argument
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()
3334 SDValue ShiftOps[] = { Clz, S->getI32Imm(27, dl), S->getI32Imm(5, dl), in get32BitZExtCompare()
3335 S->getI32Imm(31, dl) }; 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()
3346 SDValue ShiftOps[] = { Clz, S->getI32Imm(27, dl), S->getI32Imm(5, dl), in get32BitZExtCompare()
3347 S->getI32Imm(31, dl) }; 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()
3351 S->getI32Imm(1, dl)), 0); in get32BitZExtCompare()
3357 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt); in get32BitZExtCompare()
3374 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt); 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()
3384 S->getI64Imm(1, dl), S->getI64Imm(63, dl)), in get32BitZExtCompare()
3387 SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, in get32BitZExtCompare()
3388 MVT::i64, Shift, S->getI32Imm(1, dl)), 0); in get32BitZExtCompare()
3396 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt); 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()
3407 Neg, S->getI32Imm(1, dl), S->getI32Imm(63, dl)), 0); in get32BitZExtCompare()
3425 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt); in get32BitZExtCompare()
3429 SDValue ShiftOps[] = { LHS, S->getI32Imm(1, dl), S->getI32Imm(31, dl), in get32BitZExtCompare()
3430 S->getI32Imm(31, dl) }; 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()
3443 SUBFNode, S->getI64Imm(1, dl), in get32BitZExtCompare()
3444 S->getI64Imm(63, dl)), 0); 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()
3461 Subtract, S->getI64Imm(1, dl), in get32BitZExtCompare()
3462 S->getI64Imm(63, dl)), 0); in get32BitZExtCompare()
3463 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, SrdiNode, in get32BitZExtCompare()
3464 S->getI32Imm(1, dl)), 0); 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()
3480 Subtract, S->getI64Imm(1, dl), in get32BitZExtCompare()
3481 S->getI64Imm(63, dl)), 0); in get32BitZExtCompare()
3491 int64_t RHSValue, SDLoc dl) { in get32BitSExtCompare() argument
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()
3510 SDValue SHLOps[] = { Cntlzw, S->getI32Imm(27, dl), in get32BitSExtCompare()
3511 S->getI32Imm(5, dl), S->getI32Imm(31, dl) }; 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()
3529 { Clz, S->getI32Imm(27, dl), S->getI32Imm(5, dl), S->getI32Imm(31, dl) }; 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()
3534 S->getI32Imm(1, dl)), 0); in get32BitSExtCompare()
3535 return SDValue(CurDAG->getMachineNode(PPC::NEG, dl, MVT::i32, Xori), 0); in get32BitSExtCompare()
3541 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt); in get32BitSExtCompare()
3556 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt); 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()
3566 SUBFNode, S->getI64Imm(1, dl), in get32BitSExtCompare()
3567 S->getI64Imm(63, dl)), 0); in get32BitSExtCompare()
3568 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, Srdi, in get32BitSExtCompare()
3569 S->getI32Imm(-1, dl)), 0); in get32BitSExtCompare()
3576 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt); 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()
3586 S->getI64Imm(63, dl)), 0); in get32BitSExtCompare()
3603 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt); in get32BitSExtCompare()
3606 return SDValue(CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, LHS, in get32BitSExtCompare()
3607 S->getI32Imm(31, dl)), 0); 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()
3617 SUBFNode, S->getI64Imm(63, dl)), 0); 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()
3634 S->getI32Imm(1, dl), S->getI32Imm(63,dl)), in get32BitSExtCompare()
3636 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, Shift, in get32BitSExtCompare()
3637 S->getI32Imm(-1, dl)), 0); 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()
3653 Subtract, S->getI64Imm(63, dl)), 0); in get32BitSExtCompare()
3663 int64_t RHSValue, SDLoc dl) { in get64BitZExtCompare() argument
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()
3680 S->getI64Imm(58, dl), in get64BitZExtCompare()
3681 S->getI64Imm(63, dl)), 0); 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()
3692 Xor, S->getI32Imm(~0U, dl)), 0); in get64BitZExtCompare()
3693 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, AC, in get64BitZExtCompare()
3702 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt); in get64BitZExtCompare()
3714 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt); in get64BitZExtCompare()
3716 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS, in get64BitZExtCompare()
3717 S->getI64Imm(1, dl), in get64BitZExtCompare()
3718 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3720 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, RHS, in get64BitZExtCompare()
3721 S->getI64Imm(63, dl)), 0); 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()
3734 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt); in get64BitZExtCompare()
3737 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS, in get64BitZExtCompare()
3738 S->getI64Imm(~0ULL, dl)), 0); 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()
3742 S->getI64Imm(1, dl), in get64BitZExtCompare()
3743 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3757 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt); in get64BitZExtCompare()
3759 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS, in get64BitZExtCompare()
3760 S->getI64Imm(1, dl), in get64BitZExtCompare()
3761 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3763 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get64BitZExtCompare()
3764 LHS, S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3766 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get64BitZExtCompare()
3767 RHS, S->getI64Imm(1, dl), in get64BitZExtCompare()
3768 S->getI64Imm(63, dl)), 0); 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()
3776 ADDE8Node, S->getI64Imm(1, dl)), 0); 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()
3793 SUBFE8Node, S->getI64Imm(1, dl)), 0); 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()
3820 int64_t RHSValue, SDLoc dl) { in get64BitSExtCompare() argument
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()
3838 AddInput, S->getI32Imm(~0U, dl)), 0); 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()
3851 Xor, S->getI32Imm(0, dl)), 0); in get64BitSExtCompare()
3852 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, SC, in get64BitSExtCompare()
3861 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt); in get64BitSExtCompare()
3873 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt); in get64BitSExtCompare()
3875 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, RHS, in get64BitSExtCompare()
3876 S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3878 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS, in get64BitSExtCompare()
3879 S->getI64Imm(1, dl), in get64BitSExtCompare()
3880 S->getI64Imm(63, dl)), 0); 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()
3895 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt); in get64BitSExtCompare()
3898 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS, in get64BitSExtCompare()
3899 S->getI64Imm(-1, dl)), 0); 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()
3903 S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3917 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt); in get64BitSExtCompare()
3919 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, LHS, in get64BitSExtCompare()
3920 S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3923 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get64BitSExtCompare()
3924 LHS, S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3926 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get64BitSExtCompare()
3927 RHS, S->getI64Imm(1, dl), in get64BitSExtCompare()
3928 S->getI64Imm(63, dl)), 0); 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()
3937 ADDE8Node, S->getI64Imm(1, dl)), 0); 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()
4031 SDLoc dl(Compare); in getSETCCInGPR() local
4038 return get32BitSExtCompare(LHS, RHS, CC, RHSValue, dl); in getSETCCInGPR()
4040 return get32BitZExtCompare(LHS, RHS, CC, RHSValue, dl); in getSETCCInGPR()
4042 return get64BitSExtCompare(LHS, RHS, CC, RHSValue, dl); in getSETCCInGPR()
4043 return get64BitZExtCompare(LHS, RHS, CC, RHSValue, dl); in getSETCCInGPR()
4122 const SDLoc &dl, SDValue Chain) { in SelectCC() argument
4132 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, LHS, in SelectCC()
4133 getI32Imm(Imm & 0xFFFF, dl)), in SelectCC()
4137 return SDValue(CurDAG->getMachineNode(PPC::CMPWI, dl, MVT::i32, LHS, in SelectCC()
4138 getI32Imm(Imm & 0xFFFF, dl)), in SelectCC()
4150 SDValue Xor(CurDAG->getMachineNode(PPC::XORIS, dl, MVT::i32, LHS, in SelectCC()
4151 getI32Imm(Imm >> 16, dl)), 0); in SelectCC()
4152 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, Xor, in SelectCC()
4153 getI32Imm(Imm & 0xFFFF, dl)), 0); in SelectCC()
4158 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, LHS, in SelectCC()
4159 getI32Imm(Imm & 0xFFFF, dl)), 0); in SelectCC()
4164 return SDValue(CurDAG->getMachineNode(PPC::CMPWI, dl, MVT::i32, LHS, in SelectCC()
4166 dl)), in SelectCC()
4176 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, LHS, in SelectCC()
4177 getI32Imm(Imm & 0xFFFF, dl)), in SelectCC()
4181 return SDValue(CurDAG->getMachineNode(PPC::CMPDI, dl, MVT::i64, LHS, in SelectCC()
4182 getI32Imm(Imm & 0xFFFF, dl)), in SelectCC()
4195 SDValue Xor(CurDAG->getMachineNode(PPC::XORIS8, dl, MVT::i64, LHS, in SelectCC()
4196 getI64Imm(Imm >> 16, dl)), 0); in SelectCC()
4197 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, Xor, in SelectCC()
4198 getI64Imm(Imm & 0xFFFF, dl)), in SelectCC()
4205 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, LHS, in SelectCC()
4206 getI64Imm(Imm & 0xFFFF, dl)), 0); in SelectCC()
4211 return SDValue(CurDAG->getMachineNode(PPC::CMPDI, dl, MVT::i64, LHS, in SelectCC()
4212 getI64Imm(SImm & 0xFFFF, dl)), in SelectCC()
4277 CurDAG->getMachineNode(Opc, dl, MVT::i32, MVT::Other, LHS, RHS, Chain), in SelectCC()
4280 return SDValue(CurDAG->getMachineNode(Opc, dl, MVT::i32, LHS, RHS), 0); in SelectCC()
4472 SDLoc dl(N); in trySETCC() local
4494 Op = SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Op), 0); in trySETCC()
4495 SDValue Ops[] = { Op, getI32Imm(27, dl), getI32Imm(5, dl), in trySETCC()
4496 getI32Imm(31, dl) }; in trySETCC()
4503 SDValue(CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in trySETCC()
4504 Op, getI32Imm(~0U, dl)), 0); in trySETCC()
4509 SDValue Ops[] = { Op, getI32Imm(1, dl), getI32Imm(31, dl), in trySETCC()
4510 getI32Imm(31, dl) }; 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()
4518 SDValue Ops[] = { T, getI32Imm(1, dl), getI32Imm(31, dl), in trySETCC()
4519 getI32Imm(31, dl) }; in trySETCC()
4530 Op = SDValue(CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in trySETCC()
4531 Op, getI32Imm(1, dl)), 0); in trySETCC()
4533 SDValue(CurDAG->getMachineNode(PPC::LI, dl, in trySETCC()
4535 getI32Imm(0, 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()
4542 Op, getI32Imm(~0U, dl)); in trySETCC()
4548 SDValue AD = SDValue(CurDAG->getMachineNode(PPC::ADDI, dl, MVT::i32, Op, in trySETCC()
4549 getI32Imm(1, dl)), 0); in trySETCC()
4550 SDValue AN = SDValue(CurDAG->getMachineNode(PPC::AND, dl, MVT::i32, AD, in trySETCC()
4552 SDValue Ops[] = { AN, getI32Imm(1, dl), getI32Imm(31, dl), in trySETCC()
4553 getI32Imm(31, dl) }; in trySETCC()
4558 SDValue Ops[] = { Op, getI32Imm(1, dl), getI32Imm(31, dl), in trySETCC()
4559 getI32Imm(31, dl) }; 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()
4583 SDValue VCmp(CurDAG->getMachineNode(VCmpInst, dl, ResVT, LHS, RHS), 0); in trySETCC()
4598 SDValue CCReg = SelectCC(LHS, RHS, CC, dl, Chain); in trySETCC()
4613 CCReg = CurDAG->getCopyToReg(CurDAG->getEntryNode(), dl, CR7Reg, CCReg, in trySETCC()
4616 IntCR = SDValue(CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, CR7Reg, in trySETCC()
4619 SDValue Ops[] = { IntCR, getI32Imm((32 - (3 - Idx)) & 31, dl), in trySETCC()
4620 getI32Imm(31, dl), getI32Imm(31, dl) }; 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()
4882 SDLoc dl(N); in tryFoldSWTestBRCC() local
4883 SDValue Ops[] = {getI32Imm(PCC, dl), CmpLHS.getOperand(0), N->getOperand(4), in tryFoldSWTestBRCC()
4949 SDLoc dl(N); in tryAsSingleRLWINM() local
4956 SDValue Ops[] = {Val, getI32Imm(SH, dl), getI32Imm(MB, dl), in tryAsSingleRLWINM()
4957 getI32Imm(ME, dl)}; in tryAsSingleRLWINM()
4965 SDValue Ops[] = {Val, getI32Imm(0, dl), getI32Imm(MB, dl), in tryAsSingleRLWINM()
4966 getI32Imm(ME, dl)}; in tryAsSingleRLWINM()
4996 SDLoc dl(N); in tryAsSingleRLWINM8() local
4997 SDValue Ops[] = {N->getOperand(0), getI64Imm(0, dl), getI64Imm(MB - 32, dl), in tryAsSingleRLWINM8()
4998 getI64Imm(ME - 32, dl)}; in tryAsSingleRLWINM8()
5088 SDLoc dl(N); in tryAsSingleRLWIMI() local
5089 SDValue Ops[] = {Val.getOperand(0), Val.getOperand(1), getI32Imm(0, dl), in tryAsSingleRLWIMI()
5090 getI32Imm(MB, dl), getI32Imm(ME, dl)}; in tryAsSingleRLWIMI()
5091 ReplaceNode(N, CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops)); in tryAsSingleRLWIMI()
5121 SDLoc dl(N); in tryAsSingleRLDCL() local
5122 SDValue Ops[] = {Val.getOperand(0), RotateAmt, getI32Imm(MB, dl)}; in tryAsSingleRLDCL()
5138 SDLoc dl(N); in tryAsSingleRLDICL() local
5146 auto ImDef = CurDAG->getMachineNode(PPC::IMPLICIT_DEF, dl, ResultType); in tryAsSingleRLDICL()
5149 Val = SDValue(CurDAG->getMachineNode(PPC::INSERT_SUBREG, dl, ResultType, in tryAsSingleRLDICL()
5151 getI32Imm(1, dl)), in tryAsSingleRLDICL()
5169 SDValue Ops[] = {Val, getI32Imm(SH, dl), getI32Imm(MB, dl)}; in tryAsSingleRLDICL()
5186 SDLoc dl(N); in tryAsSingleRLDICR() local
5187 SDValue Ops[] = {N->getOperand(0), getI32Imm(SH, dl), getI32Imm(MB, dl)}; in tryAsSingleRLDICR()
5220 SDLoc dl(N); in Select() local
5280 Ops[2] = getI32Imm(int(SImmOperand3) & 0xFFFF, dl); in Select()
5296 Ops[0] = getI32Imm(TO, dl); in Select()
5298 Ops[2] = getI32Imm(int(SImmOperand2) & 0xFFFF, dl); in Select()
5303 OpsWithMD = {getI32Imm(24, dl), N->getOperand(2), getI32Imm(0, dl)}; in Select()
5320 MD->getOperand(i))->getString().str()), dl)); in Select()
5388 CurDAG->getTargetConstant(0, dl, MVT::i32)}; in Select()
5389 SDValue BCDOp = SDValue(CurDAG->getMachineNode(Opcode, dl, VTs, Ops), 0); in Select()
5394 SDValue SubRegIdx = CurDAG->getTargetConstant(SubReg, dl, MVT::i32); in Select()
5396 CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG, dl, MVT::i1, in Select()
5403 SDValue(CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, CR6Reg, in Select()
5406 SDValue Ops[] = {Move, getI32Imm((32 - (4 + ShiftVal)) & 31, dl), in Select()
5407 getI32Imm(31, dl), getI32Imm(31, dl)}; 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()
5444 SDValue(CurDAG->getMachineNode(Opcode, dl, VTs, N->getOperand(2)), 0); in Select()
5447 SDValue SubRegIdx = CurDAG->getTargetConstant(PPC::sub_eq, dl, MVT::i32); in Select()
5450 CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG, dl, MVT::i1, 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()
5519 getConstantIntValue(), dl, in Select()
5523 CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, MVT::Glue, in Select()
5532 CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, MVT::Glue, in Select()
5600 Opcode, dl, LD->getValueType(0), in Select()
5638 Opcode, dl, LD->getValueType(0), in Select()
5688 SDNode *Lo = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, in Select()
5690 getI16Imm(ImmLo, dl)); in Select()
5691 SDValue Ops1[] = { SDValue(Lo, 0), getI16Imm(ImmHi, dl)}; in Select()
5711 SDNode *Lo = CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, in Select()
5713 getI16Imm(ImmLo, dl)); in Select()
5714 SDValue Ops1[] = { SDValue(Lo, 0), getI16Imm(ImmHi, dl)}; in Select()
5737 getI32Imm(SH, dl), getI32Imm(MB, dl), in Select()
5738 getI32Imm(ME, dl) }; in Select()
5751 getI32Imm(SH, dl), getI32Imm(MB, dl), in Select()
5752 getI32Imm(ME, dl) }; in Select()
5781 SDValue SDImm = CurDAG->getTargetConstant(SextImm, dl, MVT::i64); in Select()
5782 SDNode *MulNode = CurDAG->getMachineNode(PPC::MULLI8, dl, MVT::i64, in Select()
5785 SDValue Ops[] = {SDValue(MulNode, 0), getI32Imm(Shift, dl), in Select()
5786 getI32Imm(63 - Shift, dl)}; in Select()
5790 SDValue SDImm = CurDAG->getTargetConstant(SextImm, dl, MVT::i32); in Select()
5791 SDNode *MulNode = CurDAG->getMachineNode(PPC::MULLI, dl, MVT::i32, in Select()
5794 SDValue Ops[] = {SDValue(MulNode, 0), getI32Imm(Shift, dl), in Select()
5795 getI32Imm(0, dl), getI32Imm(31 - Shift, dl)}; in Select()
5812 SDValue AndI(CurDAG->getMachineNode(Opcode, dl, InVT, MVT::Glue, in Select()
5814 CurDAG->getTargetConstant(1, dl, InVT)), in Select()
5819 dl, MVT::i32); in Select()
5851 SelectCC(LHS, RHS, IsUnCmp ? ISD::SETUGT : ISD::SETGT, dl); in Select()
5867 CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in Select()
5868 N->getOperand(0), getI32Imm(~0U, dl)); in Select()
5874 SDValue CCReg = SelectCC(N->getOperand(0), N->getOperand(1), CC, dl); in Select()
5890 SDValue CCBit = CurDAG->getTargetExtractSubreg(SRI, dl, MVT::i1, CCReg); 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()
5939 getI32Imm(BROpc, dl) }; in Select()
5987 SDValue DMV = CurDAG->getTargetConstant(DM[1] | (DM[0] << 1), dl, in Select()
6016 SDValue Pred = getI32Imm(PCC, dl); in Select()
6053 SDValue BitComp(CurDAG->getMachineNode(Opc, dl, MVT::i1, in Select()
6064 SDValue CondCode = SelectCC(N->getOperand(2), N->getOperand(3), CC, dl); in Select()
6065 SDValue Ops[] = { getI32Imm(PCC, dl), CondCode, in Select()
6076 Chain = SDValue(CurDAG->getMachineNode(Opc, dl, MVT::Glue, Target, in Select()
6101 auto replaceWith = [this, &dl](unsigned OpCode, SDNode *TocEntry, in Select()
6109 MN = CurDAG->getMachineNode(OpCode, dl, OperandTy, TocBase, GA); in Select()
6111 MN = CurDAG->getMachineNode(OpCode, dl, OperandTy, GA, TocBase); in Select()
6181 isPPC64 ? PPC::ADDIStocHA8 : PPC::ADDIStocHA, dl, VT, TOCbase, GA); in Select()
6188 dl, VT, SDValue(Tmp, 0), GA)); 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()
6255 SDValue EltVal = getI32Imm(Elt >> 1, dl); in Select()
6256 SDNode *Tmp = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
6258 ReplaceNode(N, CurDAG->getMachineNode(Opc2, dl, VT, TmpVal, TmpVal)); in Select()
6267 SDValue EltVal = getI32Imm(Elt - 16, dl); in Select()
6268 SDNode *Tmp1 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
6269 EltVal = getI32Imm(-16, dl); in Select()
6270 SDNode *Tmp2 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
6271 ReplaceNode(N, CurDAG->getMachineNode(Opc3, dl, VT, SDValue(Tmp1, 0), in Select()
6281 SDValue EltVal = getI32Imm(Elt + 16, dl); in Select()
6282 SDNode *Tmp1 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
6283 EltVal = getI32Imm(-16, dl); in Select()
6284 SDNode *Tmp2 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
6285 ReplaceNode(N, CurDAG->getMachineNode(Opc2, dl, VT, SDValue(Tmp1, 0), 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()
6345 LIOpcode, dl, MVT::i32, in Select()
6346 CurDAG->getTargetConstant(1, dl, MVT::i8)), in Select()
6355 CurDAG->getMachineNode(PPC::VPERM, dl, Type, SDValue(LoadLow, 0), in Select()
6358 CurDAG->getTargetConstant(SplatElemIndex, dl, MVT::i8), in Select()
6374 SDLoc dl(N); in combineToCMPB() local
6556 LHS = CurDAG->getAnyExtOrTrunc(LHS, dl, VT); in combineToCMPB()
6557 RHS = CurDAG->getAnyExtOrTrunc(RHS, dl, VT); in combineToCMPB()
6560 Res = CurDAG->getNode(PPCISD::CMPB, dl, VT, LHS, RHS); in combineToCMPB()
6565 Res = CurDAG->getNode(ISD::AND, dl, VT, Res, in combineToCMPB()
6566 CurDAG->getConstant(Mask, dl, VT)); in combineToCMPB()
6574 Res = CurDAG->getNode(ISD::AND, dl, VT, Res, in combineToCMPB()
6575 CurDAG->getConstant(Mask ^ Alt, dl, VT)); in combineToCMPB()
6576 Res = CurDAG->getNode(ISD::XOR, dl, VT, Res, in combineToCMPB()
6577 CurDAG->getConstant(Alt, dl, VT)); in combineToCMPB()
6605 SDLoc dl(N); in foldBoolExts() local
6609 CurDAG->getConstant(N->getOpcode() == ISD::SIGN_EXTEND ? -1 : 1, dl, VT); in foldBoolExts()
6610 SDValue ConstFalse = CurDAG->getConstant(0, dl, VT); in foldBoolExts()
6617 auto TryFold = [this, N, User, dl](SDValue Val) { in foldBoolExts()
6622 return CurDAG->FoldConstantArithmetic(User->getOpcode(), dl, in foldBoolExts()
6643 Res = CurDAG->getSelect(dl, User->getValueType(0), Cond, TrueRes, FalseRes); in foldBoolExts()
7897 SDLoc dl(GA); in PeepholePPC64() local
7906 ImmOpnd = CurDAG->getTargetGlobalAddress(GV, dl, MVT::i64, Offset, Flags); in PeepholePPC64()