Lines Matching refs:dl

181     inline SDValue getI16Imm(unsigned Imm, const SDLoc &dl) {  in getI16Imm()  argument
182 return CurDAG->getTargetConstant(Imm, dl, MVT::i16); in getI16Imm()
187 inline SDValue getI32Imm(unsigned Imm, const SDLoc &dl) { in getI32Imm() argument
188 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in getI32Imm()
193 inline SDValue getI64Imm(uint64_t Imm, const SDLoc &dl) { in getI64Imm() argument
194 return CurDAG->getTargetConstant(Imm, dl, MVT::i64); in getI64Imm()
198 inline SDValue getSmallIPtrImm(uint64_t Imm, const SDLoc &dl) { in getSmallIPtrImm() argument
200 Imm, dl, PPCLowering->getPointerTy(CurDAG->getDataLayout())); in getSmallIPtrImm()
233 const SDLoc &dl, SDValue Chain = SDValue());
407 SDLoc dl(Op); in SelectInlineAsmMemoryOperand() local
408 SDValue RC = CurDAG->getTargetConstant(TRC->getID(), dl, MVT::i32); in SelectInlineAsmMemoryOperand()
411 dl, Op.getValueType(), in SelectInlineAsmMemoryOperand()
466 DebugLoc dl; in INITIALIZE_PASS() local
473 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MoveGOTtoLR)); in INITIALIZE_PASS()
474 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg); in INITIALIZE_PASS()
477 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR)); in INITIALIZE_PASS()
478 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg); in INITIALIZE_PASS()
480 BuildMI(FirstMBB, MBBI, dl, in INITIALIZE_PASS()
488 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR)); in INITIALIZE_PASS()
489 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg); in INITIALIZE_PASS()
503 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR8)); in INITIALIZE_PASS()
504 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR8), GlobalBaseReg); in INITIALIZE_PASS()
656 SDLoc dl(SN); in selectFrameIndex() local
662 getSmallIPtrImm(Offset, dl)); in selectFrameIndex()
664 ReplaceNode(SN, CurDAG->getMachineNode(Opc, dl, N->getValueType(0), TFI, in selectFrameIndex()
665 getSmallIPtrImm(Offset, dl))); in selectFrameIndex()
794 SDLoc dl(ST); in tryTLSXFormStore() local
831 SDNode *MN = CurDAG->getMachineNode(Opcode, dl, VTs, Ops); in tryTLSXFormStore()
842 SDLoc dl(LD); in tryTLSXFormLoad() local
884 SDNode *MN = CurDAG->getMachineNode(Opcode, dl, VTs, Ops); in tryTLSXFormLoad()
895 SDLoc dl(N); in tryBitfieldInsert() local
956 SDValue Ops[] = { Op0, Op1, getI32Imm(SH, dl), getI32Imm(MB, dl), in tryBitfieldInsert()
957 getI32Imm(ME, dl) }; in tryBitfieldInsert()
958 ReplaceNode(N, CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops)); in tryBitfieldInsert()
1032 static SDNode *selectI64ImmDirect(SelectionDAG *CurDAG, const SDLoc &dl, in selectI64ImmDirect() argument
1043 auto getI32Imm = [CurDAG, dl](unsigned Imm) { in selectI64ImmDirect()
1044 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in selectI64ImmDirect()
1052 SDValue SDImm = CurDAG->getTargetConstant(Imm, dl, MVT::i64); in selectI64ImmDirect()
1053 return CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, SDImm); in selectI64ImmDirect()
1058 return CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, in selectI64ImmDirect()
1071 Result = CurDAG->getMachineNode(Opcode, dl, MVT::i64, getI32Imm(ImmHi16)); in selectI64ImmDirect()
1072 return CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1082 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1084 return CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1107 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1109 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1129 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1131 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1139 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1141 return CurDAG->getMachineNode(PPC::ORIS8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1165 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1167 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1179 CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, getI32Imm(ImmLo16)); in selectI64ImmDirect()
1182 CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, getI32Imm(ImmHi16)); in selectI64ImmDirect()
1186 CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, getI32Imm(ImmHi16)); in selectI64ImmDirect()
1187 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, in selectI64ImmDirect()
1193 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops); in selectI64ImmDirect()
1208 Result = CurDAG->getMachineNode(Opcode, dl, MVT::i64, getI32Imm(ImmHi16)); in selectI64ImmDirect()
1209 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1211 return CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1224 Result = CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, in selectI64ImmDirect()
1226 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1228 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1238 Result = CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, in selectI64ImmDirect()
1240 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1242 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1257 Result = CurDAG->getMachineNode(Opcode, dl, MVT::i64, getI32Imm(ImmHi16)); in selectI64ImmDirect()
1258 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1260 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1273 static SDNode *selectI64ImmDirectPrefix(SelectionDAG *CurDAG, const SDLoc &dl, in selectI64ImmDirectPrefix() argument
1282 auto getI32Imm = [CurDAG, dl](unsigned Imm) { in selectI64ImmDirectPrefix()
1283 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in selectI64ImmDirectPrefix()
1286 auto getI64Imm = [CurDAG, dl](uint64_t Imm) { in selectI64ImmDirectPrefix()
1287 return CurDAG->getTargetConstant(Imm, dl, MVT::i64); in selectI64ImmDirectPrefix()
1296 return CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, in selectI64ImmDirectPrefix()
1297 CurDAG->getTargetConstant(Imm, dl, MVT::i64)); in selectI64ImmDirectPrefix()
1311 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, in selectI64ImmDirectPrefix()
1313 return CurDAG->getMachineNode(PPC::RLDIC, 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()
1346 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, in selectI64ImmDirectPrefix()
1348 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirectPrefix()
1365 CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(RotImm)); in selectI64ImmDirectPrefix()
1366 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in selectI64ImmDirectPrefix()
1375 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(Hi32)); in selectI64ImmDirectPrefix()
1378 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops); in selectI64ImmDirectPrefix()
1385 CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(Hi32)); in selectI64ImmDirectPrefix()
1387 CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(Lo32)); in selectI64ImmDirectPrefix()
1390 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops); in selectI64ImmDirectPrefix()
1393 static SDNode *selectI64Imm(SelectionDAG *CurDAG, const SDLoc &dl, uint64_t Imm, in selectI64Imm() argument
1398 SDNode *Result = selectI64ImmDirect(CurDAG, dl, Imm, InstCntDirect); in selectI64Imm()
1408 SDNode *ResultP = selectI64ImmDirectPrefix(CurDAG, dl, Imm, InstCntDirectP); in selectI64Imm()
1426 auto getI32Imm = [CurDAG, dl](unsigned Imm) { in selectI64Imm()
1427 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in selectI64Imm()
1440 auto getSplat = [CurDAG, dl, getI32Imm](uint32_t Hi16, uint32_t Lo16) { in selectI64Imm()
1442 CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, getI32Imm(Hi16)); in selectI64Imm()
1443 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, in selectI64Imm()
1447 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops); in selectI64Imm()
1456 Result = CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops); in selectI64Imm()
1463 Result = CurDAG->getMachineNode(PPC::RLWIMI8, dl, MVT::i64, Ops); in selectI64Imm()
1470 Result = CurDAG->getMachineNode(PPC::RLWIMI8, dl, MVT::i64, Ops); in selectI64Imm()
1481 selectI64ImmDirect(CurDAG, dl, Imm & 0xffffffff00000000, InstCntDirect); in selectI64Imm()
1484 Result = CurDAG->getMachineNode(PPC::ORIS8, dl, MVT::i64, in selectI64Imm()
1489 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64Imm()
1500 SDLoc dl(N); in selectI64Imm() local
1506 SDValue SDImm = CurDAG->getTargetConstant(SextImm, dl, MVT::i64); in selectI64Imm()
1508 return CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, SDImm); in selectI64Imm()
1510 return selectI64Imm(CurDAG, dl, Imm); in selectI64Imm()
2127 SDValue getI32Imm(unsigned Imm, const SDLoc &dl) { in getI32Imm() argument
2128 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in getI32Imm()
2146 SDValue ExtendToInt64(SDValue V, const SDLoc &dl) { in ExtendToInt64() argument
2151 SDValue SubRegIdx = CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32); in ExtendToInt64()
2152 SDValue ImDef = SDValue(CurDAG->getMachineNode(PPC::IMPLICIT_DEF, dl, in ExtendToInt64()
2154 SDValue ExtVal = SDValue(CurDAG->getMachineNode(PPC::INSERT_SUBREG, dl, in ExtendToInt64()
2160 SDValue TruncateToInt32(SDValue V, const SDLoc &dl) { in TruncateToInt32() argument
2165 SDValue SubRegIdx = CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32); in TruncateToInt32()
2166 SDValue SubVal = SDValue(CurDAG->getMachineNode(PPC::EXTRACT_SUBREG, dl, in TruncateToInt32()
2174 void SelectAndParts32(const SDLoc &dl, SDValue &Res, unsigned *InstCnt) { in SelectAndParts32() argument
2229 { TruncateToInt32(VRI.V, dl), getI32Imm(VRI.RLAmt, dl), in SelectAndParts32()
2230 getI32Imm(0, dl), getI32Imm(31, dl) }; in SelectAndParts32()
2231 VRot = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, in SelectAndParts32()
2234 VRot = TruncateToInt32(VRI.V, dl); in SelectAndParts32()
2239 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI_rec, dl, MVT::i32, in SelectAndParts32()
2240 VRot, getI32Imm(ANDIMask, dl)), in SelectAndParts32()
2244 SDValue(CurDAG->getMachineNode(PPC::ANDIS_rec, dl, MVT::i32, VRot, in SelectAndParts32()
2245 getI32Imm(ANDISMask, dl)), in SelectAndParts32()
2254 TotalVal = SDValue(CurDAG->getMachineNode(PPC::OR, dl, MVT::i32, in SelectAndParts32()
2260 Res = SDValue(CurDAG->getMachineNode(PPC::OR, dl, MVT::i32, in SelectAndParts32()
2273 SDLoc dl(N); in Select32() local
2279 SelectAndParts32(dl, Res, InstCnt); in Select32()
2289 { TruncateToInt32(VRI.V, dl), getI32Imm(VRI.RLAmt, dl), in Select32()
2290 getI32Imm(0, dl), getI32Imm(31, dl) }; in Select32()
2291 Res = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), in Select32()
2294 Res = TruncateToInt32(VRI.V, dl); in Select32()
2309 { TruncateToInt32(BG.V, dl), getI32Imm(BG.RLAmt, dl), in Select32()
2310 getI32Imm(Bits.size() - BG.EndIdx - 1, dl), in Select32()
2311 getI32Imm(Bits.size() - BG.StartIdx - 1, dl) }; in Select32()
2312 Res = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0); in Select32()
2315 { Res, TruncateToInt32(BG.V, dl), getI32Imm(BG.RLAmt, dl), in Select32()
2316 getI32Imm(Bits.size() - BG.EndIdx - 1, dl), in Select32()
2317 getI32Imm(Bits.size() - BG.StartIdx - 1, dl) }; in Select32()
2318 Res = SDValue(CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops), 0); in Select32()
2335 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI_rec, dl, MVT::i32, in Select32()
2336 Res, getI32Imm(ANDIMask, dl)), in Select32()
2340 SDValue(CurDAG->getMachineNode(PPC::ANDIS_rec, dl, MVT::i32, Res, in Select32()
2341 getI32Imm(ANDISMask, dl)), in Select32()
2349 Res = SDValue(CurDAG->getMachineNode(PPC::OR, dl, MVT::i32, in Select32()
2376 SDValue SelectRotMask64(SDValue V, const SDLoc &dl, unsigned RLAmt, in SelectRotMask64() argument
2393 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMask64()
2394 getI32Imm(InstMaskStart - 32, dl), getI32Imm(InstMaskEnd - 32, dl) }; in SelectRotMask64()
2395 return SDValue(CurDAG->getMachineNode(PPC::RLWINM8, dl, MVT::i64, in SelectRotMask64()
2401 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMask64()
2402 getI32Imm(InstMaskStart, dl) }; in SelectRotMask64()
2403 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Ops), 0); in SelectRotMask64()
2408 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMask64()
2409 getI32Imm(InstMaskEnd, dl) }; in SelectRotMask64()
2410 return SDValue(CurDAG->getMachineNode(PPC::RLDICR, dl, MVT::i64, Ops), 0); in SelectRotMask64()
2415 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMask64()
2416 getI32Imm(InstMaskStart, dl) }; in SelectRotMask64()
2417 return SDValue(CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, Ops), 0); in SelectRotMask64()
2434 V = SelectRotMask64(V, dl, RLAmt1, false, 0, 63); in SelectRotMask64()
2435 return SelectRotMask64(V, dl, RLAmt2, false, MaskStart, MaskEnd); in SelectRotMask64()
2440 SDValue SelectRotMaskIns64(SDValue Base, SDValue V, const SDLoc &dl, in SelectRotMaskIns64() argument
2457 { ExtendToInt64(Base, dl), ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMaskIns64()
2458 getI32Imm(InstMaskStart - 32, dl), getI32Imm(InstMaskEnd - 32, dl) }; in SelectRotMaskIns64()
2459 return SDValue(CurDAG->getMachineNode(PPC::RLWIMI8, dl, MVT::i64, in SelectRotMaskIns64()
2465 { ExtendToInt64(Base, dl), ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMaskIns64()
2466 getI32Imm(InstMaskStart, dl) }; in SelectRotMaskIns64()
2467 return SDValue(CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops), 0); in SelectRotMaskIns64()
2484 V = SelectRotMask64(V, dl, RLAmt1, false, 0, 63); in SelectRotMaskIns64()
2485 return SelectRotMaskIns64(Base, V, dl, RLAmt2, false, MaskStart, MaskEnd); in SelectRotMaskIns64()
2488 void SelectAndParts64(const SDLoc &dl, SDValue &Res, unsigned *InstCnt) { in SelectAndParts64() argument
2557 selectI64Imm(CurDAG, dl, Mask, &NumOfSelectInsts); in SelectAndParts64()
2606 VRot = SelectRotMask64(VRI.V, dl, VRI.RLAmt, VRI.Repl32, in SelectAndParts64()
2618 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI8_rec, dl, MVT::i64, in SelectAndParts64()
2619 ExtendToInt64(VRot, dl), in SelectAndParts64()
2620 getI32Imm(ANDIMask, dl)), in SelectAndParts64()
2624 SDValue(CurDAG->getMachineNode(PPC::ANDIS8_rec, dl, MVT::i64, in SelectAndParts64()
2625 ExtendToInt64(VRot, dl), in SelectAndParts64()
2626 getI32Imm(ANDISMask, dl)), in SelectAndParts64()
2634 TotalVal = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in SelectAndParts64()
2635 ExtendToInt64(ANDIVal, dl), ANDISVal), 0); in SelectAndParts64()
2637 TotalVal = SDValue(selectI64Imm(CurDAG, dl, Mask), 0); in SelectAndParts64()
2639 SDValue(CurDAG->getMachineNode(PPC::AND8, dl, MVT::i64, in SelectAndParts64()
2640 ExtendToInt64(VRot, dl), TotalVal), in SelectAndParts64()
2647 Res = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in SelectAndParts64()
2648 ExtendToInt64(Res, dl), TotalVal), in SelectAndParts64()
2659 SDLoc dl(N); in Select64() local
2665 SelectAndParts64(dl, Res, InstCnt); in Select64()
2705 Res = SelectRotMask64(VRI.V, dl, VRI.RLAmt, VRI.Repl32, in Select64()
2740 Res = SelectRotMask64(BG.V, dl, BG.RLAmt, BG.Repl32, BG.StartIdx, in Select64()
2743 Res = SelectRotMaskIns64(Res, BG.V, dl, BG.RLAmt, BG.Repl32, in Select64()
2768 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI8_rec, dl, MVT::i64, in Select64()
2769 ExtendToInt64(Res, dl), in Select64()
2770 getI32Imm(ANDIMask, dl)), in Select64()
2774 SDValue(CurDAG->getMachineNode(PPC::ANDIS8_rec, dl, MVT::i64, in Select64()
2775 ExtendToInt64(Res, dl), in Select64()
2776 getI32Imm(ANDISMask, dl)), in Select64()
2784 Res = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in Select64()
2785 ExtendToInt64(ANDIVal, dl), ANDISVal), 0); in Select64()
2789 SDValue(selectI64Imm(CurDAG, dl, Mask, &NumOfSelectInsts), 0); in Select64()
2790 Res = SDValue(CurDAG->getMachineNode(PPC::AND8, dl, MVT::i64, in Select64()
2791 ExtendToInt64(Res, dl), MaskVal), in Select64()
2924 SDValue getCompoundZeroComparisonInGPR(SDValue LHS, SDLoc dl,
2927 int64_t RHSValue, SDLoc dl);
2929 int64_t RHSValue, SDLoc dl);
2931 int64_t RHSValue, SDLoc dl);
2933 int64_t RHSValue, SDLoc dl);
2991 SDLoc dl(N); in tryEXTEND() local
3018 SDLoc dl(N); in tryLogicOpOfCompares() local
3058 SDValue(CurDAG->getMachineNode(NewOpc, dl, in tryLogicOpOfCompares()
3066 dl, MVT::i64, MVT::Glue, LHS, RHS), in tryLogicOpOfCompares()
3075 CurDAG->getTargetConstant(SubRegToExtract, dl, MVT::i32); in tryLogicOpOfCompares()
3077 SDValue(CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG, dl, in tryLogicOpOfCompares()
3096 SDLoc dl(LogicOp); in computeLogicOpInGPR() local
3114 PPC::RLDICL, dl, InVT, InputOp, in computeLogicOpInGPR()
3115 S->getI64Imm(0, dl), in computeLogicOpInGPR()
3116 S->getI64Imm(63, dl)), 0); in computeLogicOpInGPR()
3147 RHS = S->getI64Imm(1, dl); in computeLogicOpInGPR()
3151 return SDValue(CurDAG->getMachineNode(NewOpc, dl, MVT::i64, LHS, RHS), 0); in computeLogicOpInGPR()
3182 SDLoc dl(Input); in signExtendInputIfNeeded() local
3184 return SDValue(CurDAG->getMachineNode(PPC::EXTSW_32_64, dl, in signExtendInputIfNeeded()
3217 SDLoc dl(Input); in zeroExtendInputIfNeeded() local
3219 return SDValue(CurDAG->getMachineNode(PPC::RLDICL_32_64, dl, MVT::i64, Input, in zeroExtendInputIfNeeded()
3220 S->getI64Imm(0, dl), in zeroExtendInputIfNeeded()
3221 S->getI64Imm(32, dl)), 0); in zeroExtendInputIfNeeded()
3230 SDLoc dl(NatWidthRes); in addExtOrTrunc() local
3235 SDValue ImDef(CurDAG->getMachineNode(PPC::IMPLICIT_DEF, dl, MVT::i64), 0); in addExtOrTrunc()
3237 CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32); in addExtOrTrunc()
3238 return SDValue(CurDAG->getMachineNode(PPC::INSERT_SUBREG, dl, MVT::i64, in addExtOrTrunc()
3247 CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32); in addExtOrTrunc()
3248 return SDValue(CurDAG->getMachineNode(PPC::EXTRACT_SUBREG, dl, MVT::i32, in addExtOrTrunc()
3255 IntegerCompareEliminator::getCompoundZeroComparisonInGPR(SDValue LHS, SDLoc dl, in getCompoundZeroComparisonInGPR() argument
3266 dl, InVT, LHS, LHS), 0); in getCompoundZeroComparisonInGPR()
3274 SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, LHS), 0); in getCompoundZeroComparisonInGPR()
3276 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in getCompoundZeroComparisonInGPR()
3277 Neg, S->getI64Imm(1, dl), in getCompoundZeroComparisonInGPR()
3278 S->getI64Imm(63, dl)), 0); in getCompoundZeroComparisonInGPR()
3281 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS, in getCompoundZeroComparisonInGPR()
3282 S->getI64Imm(~0ULL, dl)), 0); in getCompoundZeroComparisonInGPR()
3283 ToExtend = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in getCompoundZeroComparisonInGPR()
3293 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in getCompoundZeroComparisonInGPR()
3294 ToExtend, S->getI64Imm(1, dl), in getCompoundZeroComparisonInGPR()
3295 S->getI64Imm(63, dl)), 0); in getCompoundZeroComparisonInGPR()
3298 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, ToExtend, in getCompoundZeroComparisonInGPR()
3299 S->getI64Imm(63, dl)), 0); in getCompoundZeroComparisonInGPR()
3305 SDValue ShiftOps[] = { ToExtend, S->getI32Imm(1, dl), S->getI32Imm(31, dl), in getCompoundZeroComparisonInGPR()
3306 S->getI32Imm(31, dl) }; in getCompoundZeroComparisonInGPR()
3307 return SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, in getCompoundZeroComparisonInGPR()
3311 return SDValue(CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, ToExtend, in getCompoundZeroComparisonInGPR()
3312 S->getI32Imm(31, dl)), 0); in getCompoundZeroComparisonInGPR()
3314 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, ToExtend, in getCompoundZeroComparisonInGPR()
3315 S->getI32Imm(1, dl)), 0); in getCompoundZeroComparisonInGPR()
3317 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, ToExtend, in getCompoundZeroComparisonInGPR()
3318 S->getI32Imm(-1, dl)), 0); in getCompoundZeroComparisonInGPR()
3331 int64_t RHSValue, SDLoc dl) { in get32BitZExtCompare() argument
3344 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0); in get32BitZExtCompare()
3346 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Xor), 0); in get32BitZExtCompare()
3347 SDValue ShiftOps[] = { Clz, S->getI32Imm(27, dl), S->getI32Imm(5, dl), in get32BitZExtCompare()
3348 S->getI32Imm(31, dl) }; in get32BitZExtCompare()
3349 return SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, in get32BitZExtCompare()
3356 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0); in get32BitZExtCompare()
3358 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Xor), 0); in get32BitZExtCompare()
3359 SDValue ShiftOps[] = { Clz, S->getI32Imm(27, dl), S->getI32Imm(5, dl), in get32BitZExtCompare()
3360 S->getI32Imm(31, dl) }; in get32BitZExtCompare()
3362 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, ShiftOps), 0); in get32BitZExtCompare()
3363 return SDValue(CurDAG->getMachineNode(PPC::XORI, dl, MVT::i32, Shift, in get32BitZExtCompare()
3364 S->getI32Imm(1, dl)), 0); in get32BitZExtCompare()
3370 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt); in get32BitZExtCompare()
3387 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt); in get32BitZExtCompare()
3394 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, LHS, RHS), 0); in get32BitZExtCompare()
3396 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Sub, in get32BitZExtCompare()
3397 S->getI64Imm(1, dl), S->getI64Imm(63, dl)), in get32BitZExtCompare()
3400 SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, in get32BitZExtCompare()
3401 MVT::i64, Shift, S->getI32Imm(1, dl)), 0); in get32BitZExtCompare()
3409 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt); in get32BitZExtCompare()
3418 SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, LHS), 0); in get32BitZExtCompare()
3419 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitZExtCompare()
3420 Neg, S->getI32Imm(1, dl), S->getI32Imm(63, dl)), 0); in get32BitZExtCompare()
3438 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt); in get32BitZExtCompare()
3442 SDValue ShiftOps[] = { LHS, S->getI32Imm(1, dl), S->getI32Imm(31, dl), in get32BitZExtCompare()
3443 S->getI32Imm(31, dl) }; in get32BitZExtCompare()
3444 return SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, in get32BitZExtCompare()
3454 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0); in get32BitZExtCompare()
3455 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitZExtCompare()
3456 SUBFNode, S->getI64Imm(1, dl), in get32BitZExtCompare()
3457 S->getI64Imm(63, dl)), 0); in get32BitZExtCompare()
3471 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, LHS, RHS), 0); in get32BitZExtCompare()
3473 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitZExtCompare()
3474 Subtract, S->getI64Imm(1, dl), in get32BitZExtCompare()
3475 S->getI64Imm(63, dl)), 0); in get32BitZExtCompare()
3476 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, SrdiNode, in get32BitZExtCompare()
3477 S->getI32Imm(1, dl)), 0); in get32BitZExtCompare()
3491 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0); in get32BitZExtCompare()
3492 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitZExtCompare()
3493 Subtract, S->getI64Imm(1, dl), in get32BitZExtCompare()
3494 S->getI64Imm(63, dl)), 0); in get32BitZExtCompare()
3504 int64_t RHSValue, SDLoc dl) { in get32BitSExtCompare() argument
3520 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0); in get32BitSExtCompare()
3522 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, CountInput), 0); in get32BitSExtCompare()
3523 SDValue SHLOps[] = { Cntlzw, S->getI32Imm(27, dl), in get32BitSExtCompare()
3524 S->getI32Imm(5, dl), S->getI32Imm(31, dl) }; in get32BitSExtCompare()
3526 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, SHLOps), 0); in get32BitSExtCompare()
3527 return SDValue(CurDAG->getMachineNode(PPC::NEG, dl, MVT::i32, Slwi), 0); in get32BitSExtCompare()
3538 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0); in get32BitSExtCompare()
3540 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Xor), 0); in get32BitSExtCompare()
3542 { Clz, S->getI32Imm(27, dl), S->getI32Imm(5, dl), S->getI32Imm(31, dl) }; in get32BitSExtCompare()
3544 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, ShiftOps), 0); in get32BitSExtCompare()
3546 SDValue(CurDAG->getMachineNode(PPC::XORI, dl, MVT::i32, Shift, in get32BitSExtCompare()
3547 S->getI32Imm(1, dl)), 0); in get32BitSExtCompare()
3548 return SDValue(CurDAG->getMachineNode(PPC::NEG, dl, MVT::i32, Xori), 0); in get32BitSExtCompare()
3554 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt); in get32BitSExtCompare()
3569 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt); in get32BitSExtCompare()
3575 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, MVT::Glue, in get32BitSExtCompare()
3578 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitSExtCompare()
3579 SUBFNode, S->getI64Imm(1, dl), in get32BitSExtCompare()
3580 S->getI64Imm(63, dl)), 0); in get32BitSExtCompare()
3581 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, Srdi, in get32BitSExtCompare()
3582 S->getI32Imm(-1, dl)), 0); in get32BitSExtCompare()
3589 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt); in get32BitSExtCompare()
3597 SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, LHS), 0); in get32BitSExtCompare()
3598 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, Neg, in get32BitSExtCompare()
3599 S->getI64Imm(63, dl)), 0); in get32BitSExtCompare()
3616 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt); in get32BitSExtCompare()
3619 return SDValue(CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, LHS, in get32BitSExtCompare()
3620 S->getI32Imm(31, dl)), 0); in get32BitSExtCompare()
3628 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0); in get32BitSExtCompare()
3629 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get32BitSExtCompare()
3630 SUBFNode, S->getI64Imm(63, dl)), 0); in get32BitSExtCompare()
3644 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, LHS, RHS), 0); in get32BitSExtCompare()
3646 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Subtract, in get32BitSExtCompare()
3647 S->getI32Imm(1, dl), S->getI32Imm(63,dl)), in get32BitSExtCompare()
3649 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, Shift, in get32BitSExtCompare()
3650 S->getI32Imm(-1, dl)), 0); in get32BitSExtCompare()
3664 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0); in get32BitSExtCompare()
3665 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get32BitSExtCompare()
3666 Subtract, S->getI64Imm(63, dl)), 0); in get32BitSExtCompare()
3676 int64_t RHSValue, SDLoc dl) { in get64BitZExtCompare() argument
3689 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0); in get64BitZExtCompare()
3691 SDValue(CurDAG->getMachineNode(PPC::CNTLZD, dl, MVT::i64, Xor), 0); in get64BitZExtCompare()
3692 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Clz, in get64BitZExtCompare()
3693 S->getI64Imm(58, dl), in get64BitZExtCompare()
3694 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3702 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0); in get64BitZExtCompare()
3704 SDValue(CurDAG->getMachineNode(PPC::ADDIC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3705 Xor, S->getI32Imm(~0U, dl)), 0); in get64BitZExtCompare()
3706 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, AC, in get64BitZExtCompare()
3715 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt); in get64BitZExtCompare()
3727 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt); in get64BitZExtCompare()
3729 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS, in get64BitZExtCompare()
3730 S->getI64Imm(1, dl), in get64BitZExtCompare()
3731 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3733 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, RHS, in get64BitZExtCompare()
3734 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3736 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3738 return SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3747 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt); in get64BitZExtCompare()
3750 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS, in get64BitZExtCompare()
3751 S->getI64Imm(~0ULL, dl)), 0); in get64BitZExtCompare()
3753 SDValue(CurDAG->getMachineNode(PPC::NOR8, dl, MVT::i64, Addi, LHS), 0); in get64BitZExtCompare()
3754 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Nor, in get64BitZExtCompare()
3755 S->getI64Imm(1, dl), in get64BitZExtCompare()
3756 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3770 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt); in get64BitZExtCompare()
3772 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS, in get64BitZExtCompare()
3773 S->getI64Imm(1, dl), in get64BitZExtCompare()
3774 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3776 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get64BitZExtCompare()
3777 LHS, S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3779 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get64BitZExtCompare()
3780 RHS, S->getI64Imm(1, dl), in get64BitZExtCompare()
3781 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3783 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3786 SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3788 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, in get64BitZExtCompare()
3789 ADDE8Node, S->getI64Imm(1, dl)), 0); in get64BitZExtCompare()
3800 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3803 SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3805 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, in get64BitZExtCompare()
3806 SUBFE8Node, S->getI64Imm(1, dl)), 0); in get64BitZExtCompare()
3817 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3820 SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, in get64BitZExtCompare()
3822 return SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, in get64BitZExtCompare()
3833 int64_t RHSValue, SDLoc dl) { in get64BitSExtCompare() argument
3848 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0); in get64BitSExtCompare()
3850 SDValue(CurDAG->getMachineNode(PPC::ADDIC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3851 AddInput, S->getI32Imm(~0U, dl)), 0); in get64BitSExtCompare()
3852 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, Addic, in get64BitSExtCompare()
3861 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0); in get64BitSExtCompare()
3863 SDValue(CurDAG->getMachineNode(PPC::SUBFIC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3864 Xor, S->getI32Imm(0, dl)), 0); in get64BitSExtCompare()
3865 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, SC, in get64BitSExtCompare()
3874 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt); in get64BitSExtCompare()
3886 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt); in get64BitSExtCompare()
3888 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, RHS, in get64BitSExtCompare()
3889 S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3891 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS, in get64BitSExtCompare()
3892 S->getI64Imm(1, dl), in get64BitSExtCompare()
3893 S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3895 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3898 SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3900 return SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, Adde), 0); in get64BitSExtCompare()
3908 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt); in get64BitSExtCompare()
3911 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS, in get64BitSExtCompare()
3912 S->getI64Imm(-1, dl)), 0); in get64BitSExtCompare()
3914 SDValue(CurDAG->getMachineNode(PPC::NOR8, dl, MVT::i64, Add, LHS), 0); in get64BitSExtCompare()
3915 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, Nor, in get64BitSExtCompare()
3916 S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3930 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt); in get64BitSExtCompare()
3932 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, LHS, in get64BitSExtCompare()
3933 S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3936 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get64BitSExtCompare()
3937 LHS, S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3939 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get64BitSExtCompare()
3940 RHS, S->getI64Imm(1, dl), in get64BitSExtCompare()
3941 S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3943 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3946 SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, in get64BitSExtCompare()
3949 SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, in get64BitSExtCompare()
3950 ADDE8Node, S->getI64Imm(1, dl)), 0); in get64BitSExtCompare()
3951 return SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, in get64BitSExtCompare()
3963 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3966 SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, MVT::Glue, LHS, in get64BitSExtCompare()
3968 return SDValue(CurDAG->getMachineNode(PPC::NOR8, dl, MVT::i64, in get64BitSExtCompare()
3980 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3982 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, in get64BitSExtCompare()
4044 SDLoc dl(Compare); in getSETCCInGPR() local
4051 return get32BitSExtCompare(LHS, RHS, CC, RHSValue, dl); in getSETCCInGPR()
4053 return get32BitZExtCompare(LHS, RHS, CC, RHSValue, dl); in getSETCCInGPR()
4055 return get64BitSExtCompare(LHS, RHS, CC, RHSValue, dl); in getSETCCInGPR()
4056 return get64BitZExtCompare(LHS, RHS, CC, RHSValue, dl); in getSETCCInGPR()
4135 const SDLoc &dl, SDValue Chain) { in SelectCC() argument
4145 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, LHS, in SelectCC()
4146 getI32Imm(Imm & 0xFFFF, dl)), in SelectCC()
4150 return SDValue(CurDAG->getMachineNode(PPC::CMPWI, dl, MVT::i32, LHS, in SelectCC()
4151 getI32Imm(Imm & 0xFFFF, dl)), in SelectCC()
4163 SDValue Xor(CurDAG->getMachineNode(PPC::XORIS, dl, MVT::i32, LHS, in SelectCC()
4164 getI32Imm(Imm >> 16, dl)), 0); in SelectCC()
4165 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, Xor, in SelectCC()
4166 getI32Imm(Imm & 0xFFFF, dl)), 0); in SelectCC()
4171 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, LHS, in SelectCC()
4172 getI32Imm(Imm & 0xFFFF, dl)), 0); in SelectCC()
4177 return SDValue(CurDAG->getMachineNode(PPC::CMPWI, dl, MVT::i32, LHS, in SelectCC()
4179 dl)), in SelectCC()
4189 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, LHS, in SelectCC()
4190 getI32Imm(Imm & 0xFFFF, dl)), in SelectCC()
4194 return SDValue(CurDAG->getMachineNode(PPC::CMPDI, dl, MVT::i64, LHS, in SelectCC()
4195 getI32Imm(Imm & 0xFFFF, dl)), in SelectCC()
4208 SDValue Xor(CurDAG->getMachineNode(PPC::XORIS8, dl, MVT::i64, LHS, in SelectCC()
4209 getI64Imm(Imm >> 16, dl)), 0); in SelectCC()
4210 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, Xor, in SelectCC()
4211 getI64Imm(Imm & 0xFFFF, dl)), in SelectCC()
4218 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, LHS, in SelectCC()
4219 getI64Imm(Imm & 0xFFFF, dl)), 0); in SelectCC()
4224 return SDValue(CurDAG->getMachineNode(PPC::CMPDI, dl, MVT::i64, LHS, in SelectCC()
4225 getI64Imm(SImm & 0xFFFF, dl)), in SelectCC()
4290 CurDAG->getMachineNode(Opc, dl, MVT::i32, MVT::Other, LHS, RHS, Chain), in SelectCC()
4293 return SDValue(CurDAG->getMachineNode(Opc, dl, MVT::i32, LHS, RHS), 0); in SelectCC()
4485 SDLoc dl(N); in trySETCC() local
4507 Op = SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Op), 0); in trySETCC()
4508 SDValue Ops[] = { Op, getI32Imm(27, dl), getI32Imm(5, dl), in trySETCC()
4509 getI32Imm(31, dl) }; in trySETCC()
4516 SDValue(CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in trySETCC()
4517 Op, getI32Imm(~0U, dl)), 0); in trySETCC()
4522 SDValue Ops[] = { Op, getI32Imm(1, dl), getI32Imm(31, dl), in trySETCC()
4523 getI32Imm(31, dl) }; in trySETCC()
4529 SDValue(CurDAG->getMachineNode(PPC::NEG, dl, MVT::i32, Op), 0); in trySETCC()
4530 T = SDValue(CurDAG->getMachineNode(PPC::ANDC, dl, MVT::i32, T, Op), 0); in trySETCC()
4531 SDValue Ops[] = { T, getI32Imm(1, dl), getI32Imm(31, dl), in trySETCC()
4532 getI32Imm(31, dl) }; in trySETCC()
4543 Op = SDValue(CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in trySETCC()
4544 Op, getI32Imm(1, dl)), 0); in trySETCC()
4546 SDValue(CurDAG->getMachineNode(PPC::LI, dl, in trySETCC()
4548 getI32Imm(0, dl)), in trySETCC()
4553 Op = SDValue(CurDAG->getMachineNode(PPC::NOR, dl, MVT::i32, Op, Op), 0); in trySETCC()
4554 SDNode *AD = CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in trySETCC()
4555 Op, getI32Imm(~0U, dl)); in trySETCC()
4561 SDValue AD = SDValue(CurDAG->getMachineNode(PPC::ADDI, dl, MVT::i32, Op, in trySETCC()
4562 getI32Imm(1, dl)), 0); in trySETCC()
4563 SDValue AN = SDValue(CurDAG->getMachineNode(PPC::AND, dl, MVT::i32, AD, in trySETCC()
4565 SDValue Ops[] = { AN, getI32Imm(1, dl), getI32Imm(31, dl), in trySETCC()
4566 getI32Imm(31, dl) }; in trySETCC()
4571 SDValue Ops[] = { Op, getI32Imm(1, dl), getI32Imm(31, dl), in trySETCC()
4572 getI32Imm(31, dl) }; in trySETCC()
4573 Op = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0); in trySETCC()
4574 CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Op, getI32Imm(1, dl)); in trySETCC()
4596 SDValue VCmp(CurDAG->getMachineNode(VCmpInst, dl, ResVT, LHS, RHS), 0); in trySETCC()
4611 SDValue CCReg = SelectCC(LHS, RHS, CC, dl, Chain); in trySETCC()
4626 CCReg = CurDAG->getCopyToReg(CurDAG->getEntryNode(), dl, CR7Reg, CCReg, in trySETCC()
4629 IntCR = SDValue(CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, CR7Reg, in trySETCC()
4632 SDValue Ops[] = { IntCR, getI32Imm((32 - (3 - Idx)) & 31, dl), in trySETCC()
4633 getI32Imm(31, dl), getI32Imm(31, dl) }; in trySETCC()
4641 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0); in trySETCC()
4642 CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Tmp, getI32Imm(1, dl)); in trySETCC()
4895 SDLoc dl(N); in tryFoldSWTestBRCC() local
4896 SDValue Ops[] = {getI32Imm(PCC, dl), CmpLHS.getOperand(0), N->getOperand(4), in tryFoldSWTestBRCC()
4962 SDLoc dl(N); in tryAsSingleRLWINM() local
4969 SDValue Ops[] = {Val, getI32Imm(SH, dl), getI32Imm(MB, dl), in tryAsSingleRLWINM()
4970 getI32Imm(ME, dl)}; in tryAsSingleRLWINM()
4978 SDValue Ops[] = {Val, getI32Imm(0, dl), getI32Imm(MB, dl), in tryAsSingleRLWINM()
4979 getI32Imm(ME, dl)}; in tryAsSingleRLWINM()
5009 SDLoc dl(N); in tryAsSingleRLWINM8() local
5010 SDValue Ops[] = {N->getOperand(0), getI64Imm(0, dl), getI64Imm(MB - 32, dl), in tryAsSingleRLWINM8()
5011 getI64Imm(ME - 32, dl)}; in tryAsSingleRLWINM8()
5101 SDLoc dl(N); in tryAsSingleRLWIMI() local
5102 SDValue Ops[] = {Val.getOperand(0), Val.getOperand(1), getI32Imm(0, dl), in tryAsSingleRLWIMI()
5103 getI32Imm(MB, dl), getI32Imm(ME, dl)}; in tryAsSingleRLWIMI()
5104 ReplaceNode(N, CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops)); in tryAsSingleRLWIMI()
5134 SDLoc dl(N); in tryAsSingleRLDCL() local
5135 SDValue Ops[] = {Val.getOperand(0), RotateAmt, getI32Imm(MB, dl)}; in tryAsSingleRLDCL()
5151 SDLoc dl(N); in tryAsSingleRLDICL() local
5159 auto ImDef = CurDAG->getMachineNode(PPC::IMPLICIT_DEF, dl, ResultType); in tryAsSingleRLDICL()
5162 Val = SDValue(CurDAG->getMachineNode(PPC::INSERT_SUBREG, dl, ResultType, in tryAsSingleRLDICL()
5164 getI32Imm(1, dl)), in tryAsSingleRLDICL()
5182 SDValue Ops[] = {Val, getI32Imm(SH, dl), getI32Imm(MB, dl)}; in tryAsSingleRLDICL()
5199 SDLoc dl(N); in tryAsSingleRLDICR() local
5200 SDValue Ops[] = {N->getOperand(0), getI32Imm(SH, dl), getI32Imm(MB, dl)}; in tryAsSingleRLDICR()
5233 SDLoc dl(N); in Select() local
5293 Ops[2] = getI32Imm(int(SImmOperand3) & 0xFFFF, dl); in Select()
5309 Ops[0] = getI32Imm(TO, dl); in Select()
5311 Ops[2] = getI32Imm(int(SImmOperand2) & 0xFFFF, dl); in Select()
5316 OpsWithMD = {getI32Imm(24, dl), N->getOperand(2), getI32Imm(0, dl)}; in Select()
5332 MD->getOperand(i))->getString().str()), dl)); in Select()
5400 CurDAG->getTargetConstant(0, dl, MVT::i32)}; in Select()
5401 SDValue BCDOp = SDValue(CurDAG->getMachineNode(Opcode, dl, VTs, Ops), 0); in Select()
5406 SDValue SubRegIdx = CurDAG->getTargetConstant(SubReg, dl, MVT::i32); in Select()
5408 CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG, dl, MVT::i1, in Select()
5415 SDValue(CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, CR6Reg, in Select()
5418 SDValue Ops[] = {Move, getI32Imm((32 - (4 + ShiftVal)) & 31, dl), in Select()
5419 getI32Imm(31, dl), getI32Imm(31, dl)}; in Select()
5424 CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0); in Select()
5425 CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Shift, getI32Imm(1, dl)); in Select()
5456 SDValue(CurDAG->getMachineNode(Opcode, dl, VTs, N->getOperand(2)), 0); in Select()
5459 SDValue SubRegIdx = CurDAG->getTargetConstant(PPC::sub_eq, dl, MVT::i32); in Select()
5462 CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG, dl, MVT::i1, in Select()
5517 ReplaceNode(N, CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, in Select()
5523 ReplaceNode(N, CurDAG->getMachineNode(PPC::ReadTB, dl, MVT::i32, MVT::i32, in Select()
5531 getConstantIntValue(), dl, in Select()
5535 CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, MVT::Glue, in Select()
5544 CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, MVT::Glue, in Select()
5612 Opcode, dl, LD->getValueType(0), in Select()
5650 Opcode, dl, LD->getValueType(0), in Select()
5700 SDNode *Lo = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, in Select()
5702 getI16Imm(ImmLo, dl)); in Select()
5703 SDValue Ops1[] = { SDValue(Lo, 0), getI16Imm(ImmHi, dl)}; in Select()
5723 SDNode *Lo = CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, in Select()
5725 getI16Imm(ImmLo, dl)); in Select()
5726 SDValue Ops1[] = { SDValue(Lo, 0), getI16Imm(ImmHi, dl)}; in Select()
5749 getI32Imm(SH, dl), getI32Imm(MB, dl), in Select()
5750 getI32Imm(ME, dl) }; in Select()
5763 getI32Imm(SH, dl), getI32Imm(MB, dl), in Select()
5764 getI32Imm(ME, dl) }; in Select()
5793 SDValue SDImm = CurDAG->getTargetConstant(SextImm, dl, MVT::i64); in Select()
5794 SDNode *MulNode = CurDAG->getMachineNode(PPC::MULLI8, dl, MVT::i64, in Select()
5797 SDValue Ops[] = {SDValue(MulNode, 0), getI32Imm(Shift, dl), in Select()
5798 getI32Imm(63 - Shift, dl)}; in Select()
5802 SDValue SDImm = CurDAG->getTargetConstant(SextImm, dl, MVT::i32); in Select()
5803 SDNode *MulNode = CurDAG->getMachineNode(PPC::MULLI, dl, MVT::i32, in Select()
5806 SDValue Ops[] = {SDValue(MulNode, 0), getI32Imm(Shift, dl), in Select()
5807 getI32Imm(0, dl), getI32Imm(31 - Shift, dl)}; in Select()
5824 SDValue AndI(CurDAG->getMachineNode(Opcode, dl, InVT, MVT::Glue, in Select()
5826 CurDAG->getTargetConstant(1, dl, InVT)), in Select()
5831 dl, MVT::i32); in Select()
5863 SelectCC(LHS, RHS, IsUnCmp ? ISD::SETUGT : ISD::SETGT, dl); in Select()
5879 CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in Select()
5880 N->getOperand(0), getI32Imm(~0U, dl)); in Select()
5886 SDValue CCReg = SelectCC(N->getOperand(0), N->getOperand(1), CC, dl); in Select()
5902 SDValue CCBit = CurDAG->getTargetExtractSubreg(SRI, dl, MVT::i1, CCReg); in Select()
5904 SDValue NotCCBit(CurDAG->getMachineNode(PPC::CRNOR, dl, MVT::i1, in Select()
5909 SDValue CAndT(CurDAG->getMachineNode(PPC::CRAND, dl, MVT::i1, in Select()
5911 SDValue NotCAndF(CurDAG->getMachineNode(PPC::CRAND, dl, MVT::i1, in Select()
5951 getI32Imm(BROpc, dl) }; in Select()
5999 SDValue DMV = CurDAG->getTargetConstant(DM[1] | (DM[0] << 1), dl, in Select()
6028 SDValue Pred = getI32Imm(PCC, dl); in Select()
6065 SDValue BitComp(CurDAG->getMachineNode(Opc, dl, MVT::i1, in Select()
6076 SDValue CondCode = SelectCC(N->getOperand(2), N->getOperand(3), CC, dl); in Select()
6077 SDValue Ops[] = { getI32Imm(PCC, dl), CondCode, in Select()
6088 Chain = SDValue(CurDAG->getMachineNode(Opc, dl, MVT::Glue, Target, in Select()
6112 auto replaceWith = [this, &dl](unsigned OpCode, SDNode *TocEntry, in Select()
6116 SDNode *MN = CurDAG->getMachineNode(OpCode, dl, OperandTy, GA, TocBase); in Select()
6180 isPPC64 ? PPC::ADDIStocHA8 : PPC::ADDIStocHA, dl, VT, TOCbase, GA); in Select()
6186 isPPC64 ? PPC::LDtocL : PPC::LWZtocL, dl, VT, GA, SDValue(Tmp, 0)); in Select()
6194 ReplaceNode(N, CurDAG->getMachineNode(PPC::ADDItocL, dl, MVT::i64, in Select()
6244 SDValue EltVal = getI32Imm(Elt >> 1, dl); in Select()
6245 SDNode *Tmp = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
6247 ReplaceNode(N, CurDAG->getMachineNode(Opc2, dl, VT, TmpVal, TmpVal)); in Select()
6256 SDValue EltVal = getI32Imm(Elt - 16, dl); in Select()
6257 SDNode *Tmp1 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
6258 EltVal = getI32Imm(-16, dl); in Select()
6259 SDNode *Tmp2 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
6260 ReplaceNode(N, CurDAG->getMachineNode(Opc3, dl, VT, SDValue(Tmp1, 0), in Select()
6270 SDValue EltVal = getI32Imm(Elt + 16, dl); in Select()
6271 SDNode *Tmp1 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
6272 EltVal = getI32Imm(-16, dl); in Select()
6273 SDNode *Tmp2 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
6274 ReplaceNode(N, CurDAG->getMachineNode(Opc2, dl, VT, SDValue(Tmp1, 0), in Select()
6322 Subtarget->isLittleEndian() ? PPC::LVSR : PPC::LVSL, dl, Type, ZeroReg, in Select()
6326 CurDAG->getMachineNode(PPC::LVX, dl, MVT::v16i8, MVT::Other, in Select()
6332 PPC::LVX, dl, MVT::v16i8, MVT::Other, in Select()
6334 LIOpcode, dl, MVT::i32, in Select()
6335 CurDAG->getTargetConstant(1, dl, MVT::i8)), in Select()
6344 CurDAG->getMachineNode(PPC::VPERM, dl, Type, SDValue(LoadLow, 0), in Select()
6347 CurDAG->getTargetConstant(SplatElemIndex, dl, MVT::i8), in Select()
6363 SDLoc dl(N); in combineToCMPB() local
6545 LHS = CurDAG->getAnyExtOrTrunc(LHS, dl, VT); in combineToCMPB()
6546 RHS = CurDAG->getAnyExtOrTrunc(RHS, dl, VT); in combineToCMPB()
6549 Res = CurDAG->getNode(PPCISD::CMPB, dl, VT, LHS, RHS); in combineToCMPB()
6554 Res = CurDAG->getNode(ISD::AND, dl, VT, Res, in combineToCMPB()
6555 CurDAG->getConstant(Mask, dl, VT)); in combineToCMPB()
6563 Res = CurDAG->getNode(ISD::AND, dl, VT, Res, in combineToCMPB()
6564 CurDAG->getConstant(Mask ^ Alt, dl, VT)); in combineToCMPB()
6565 Res = CurDAG->getNode(ISD::XOR, dl, VT, Res, in combineToCMPB()
6566 CurDAG->getConstant(Alt, dl, VT)); in combineToCMPB()
6594 SDLoc dl(N); in foldBoolExts() local
6598 CurDAG->getConstant(N->getOpcode() == ISD::SIGN_EXTEND ? -1 : 1, dl, VT); in foldBoolExts()
6599 SDValue ConstFalse = CurDAG->getConstant(0, dl, VT); in foldBoolExts()
6606 auto TryFold = [this, N, User, dl](SDValue Val) { in foldBoolExts()
6611 return CurDAG->FoldConstantArithmetic(User->getOpcode(), dl, in foldBoolExts()
6632 Res = CurDAG->getSelect(dl, User->getValueType(0), Cond, TrueRes, FalseRes); in foldBoolExts()
7765 SDLoc dl(GA); in PeepholePPC64() local
7774 ImmOpnd = CurDAG->getTargetGlobalAddress(GV, dl, MVT::i64, Offset, Flags); in PeepholePPC64()