Lines Matching defs:dl

179     inline SDValue getI16Imm(unsigned Imm, const SDLoc &dl) {
180 return CurDAG->getTargetConstant(Imm, dl, MVT::i16);
185 inline SDValue getI32Imm(unsigned Imm, const SDLoc &dl) {
186 return CurDAG->getTargetConstant(Imm, dl, MVT::i32);
191 inline SDValue getI64Imm(uint64_t Imm, const SDLoc &dl) {
192 return CurDAG->getTargetConstant(Imm, dl, MVT::i64);
196 inline SDValue getSmallIPtrImm(uint64_t Imm, const SDLoc &dl) {
198 Imm, dl, PPCLowering->getPointerTy(CurDAG->getDataLayout()));
231 const SDLoc &dl, SDValue Chain = SDValue());
405 SDLoc dl(Op);
406 SDValue RC = CurDAG->getTargetConstant(TRC->getID(), dl, MVT::i32);
409 dl, Op.getValueType(),
472 DebugLoc dl;
479 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MoveGOTtoLR));
480 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg);
483 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR));
484 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg);
486 BuildMI(FirstMBB, MBBI, dl,
494 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR));
495 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg);
509 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR8));
510 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR8), GlobalBaseReg);
643 SDLoc dl(SN);
649 getSmallIPtrImm(Offset, dl));
651 ReplaceNode(SN, CurDAG->getMachineNode(Opc, dl, N->getValueType(0), TFI,
652 getSmallIPtrImm(Offset, dl)));
781 SDLoc dl(ST);
818 SDNode *MN = CurDAG->getMachineNode(Opcode, dl, VTs, Ops);
829 SDLoc dl(LD);
871 SDNode *MN = CurDAG->getMachineNode(Opcode, dl, VTs, Ops);
882 SDLoc dl(N);
943 SDValue Ops[] = { Op0, Op1, getI32Imm(SH, dl), getI32Imm(MB, dl),
944 getI32Imm(ME, dl) };
945 ReplaceNode(N, CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops));
1019 static SDNode *selectI64ImmDirect(SelectionDAG *CurDAG, const SDLoc &dl,
1030 auto getI32Imm = [CurDAG, dl](unsigned Imm) {
1031 return CurDAG->getTargetConstant(Imm, dl, MVT::i32);
1039 SDValue SDImm = CurDAG->getTargetConstant(Imm, dl, MVT::i64);
1040 return CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, SDImm);
1045 return CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64,
1058 Result = CurDAG->getMachineNode(Opcode, dl, MVT::i64, getI32Imm(ImmHi16));
1059 return CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0),
1069 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64,
1071 return CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, SDValue(Result, 0),
1094 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64,
1096 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0),
1116 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64,
1118 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0),
1126 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64,
1128 return CurDAG->getMachineNode(PPC::ORIS8, dl, MVT::i64, SDValue(Result, 0),
1152 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64,
1154 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0),
1166 CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, getI32Imm(ImmLo16));
1169 CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, getI32Imm(ImmHi16));
1173 CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, getI32Imm(ImmHi16));
1174 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64,
1180 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops);
1195 Result = CurDAG->getMachineNode(Opcode, dl, MVT::i64, getI32Imm(ImmHi16));
1196 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0),
1198 return CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, SDValue(Result, 0),
1211 Result = CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64,
1213 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0),
1215 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0),
1225 Result = CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64,
1227 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0),
1229 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0),
1244 Result = CurDAG->getMachineNode(Opcode, dl, MVT::i64, getI32Imm(ImmHi16));
1245 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0),
1247 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0),
1260 static SDNode *selectI64ImmDirectPrefix(SelectionDAG *CurDAG, const SDLoc &dl,
1269 auto getI32Imm = [CurDAG, dl](unsigned Imm) {
1270 return CurDAG->getTargetConstant(Imm, dl, MVT::i32);
1273 auto getI64Imm = [CurDAG, dl](uint64_t Imm) {
1274 return CurDAG->getTargetConstant(Imm, dl, MVT::i64);
1283 return CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64,
1284 CurDAG->getTargetConstant(Imm, dl, MVT::i64));
1298 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64,
1300 return CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, SDValue(Result, 0),
1320 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64,
1322 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0),
1333 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64,
1335 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0),
1352 CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(RotImm));
1353 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64,
1362 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(Hi32));
1365 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops);
1372 CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(Hi32));
1374 CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(Lo32));
1377 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops);
1380 static SDNode *selectI64Imm(SelectionDAG *CurDAG, const SDLoc &dl, uint64_t Imm,
1385 SDNode *Result = selectI64ImmDirect(CurDAG, dl, Imm, InstCntDirect);
1395 SDNode *ResultP = selectI64ImmDirectPrefix(CurDAG, dl, Imm, InstCntDirectP);
1413 auto getI32Imm = [CurDAG, dl](unsigned Imm) {
1414 return CurDAG->getTargetConstant(Imm, dl, MVT::i32);
1427 auto getSplat = [CurDAG, dl, getI32Imm](uint32_t Hi16, uint32_t Lo16) {
1429 CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, getI32Imm(Hi16));
1430 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64,
1434 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops);
1443 Result = CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops);
1450 Result = CurDAG->getMachineNode(PPC::RLWIMI8, dl, MVT::i64, Ops);
1457 Result = CurDAG->getMachineNode(PPC::RLWIMI8, dl, MVT::i64, Ops);
1468 selectI64ImmDirect(CurDAG, dl, Imm & 0xffffffff00000000, InstCntDirect);
1471 Result = CurDAG->getMachineNode(PPC::ORIS8, dl, MVT::i64,
1476 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0),
1487 SDLoc dl(N);
1493 SDValue SDImm = CurDAG->getTargetConstant(SextImm, dl, MVT::i64);
1495 return CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, SDImm);
1497 return selectI64Imm(CurDAG, dl, Imm);
2114 SDValue getI32Imm(unsigned Imm, const SDLoc &dl) {
2115 return CurDAG->getTargetConstant(Imm, dl, MVT::i32);
2133 SDValue ExtendToInt64(SDValue V, const SDLoc &dl) {
2138 SDValue SubRegIdx = CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32);
2139 SDValue ImDef = SDValue(CurDAG->getMachineNode(PPC::IMPLICIT_DEF, dl,
2141 SDValue ExtVal = SDValue(CurDAG->getMachineNode(PPC::INSERT_SUBREG, dl,
2147 SDValue TruncateToInt32(SDValue V, const SDLoc &dl) {
2152 SDValue SubRegIdx = CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32);
2153 SDValue SubVal = SDValue(CurDAG->getMachineNode(PPC::EXTRACT_SUBREG, dl,
2161 void SelectAndParts32(const SDLoc &dl, SDValue &Res, unsigned *InstCnt) {
2216 { TruncateToInt32(VRI.V, dl), getI32Imm(VRI.RLAmt, dl),
2217 getI32Imm(0, dl), getI32Imm(31, dl) };
2218 VRot = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32,
2221 VRot = TruncateToInt32(VRI.V, dl);
2226 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI_rec, dl, MVT::i32,
2227 VRot, getI32Imm(ANDIMask, dl)),
2231 SDValue(CurDAG->getMachineNode(PPC::ANDIS_rec, dl, MVT::i32, VRot,
2232 getI32Imm(ANDISMask, dl)),
2241 TotalVal = SDValue(CurDAG->getMachineNode(PPC::OR, dl, MVT::i32,
2247 Res = SDValue(CurDAG->getMachineNode(PPC::OR, dl, MVT::i32,
2260 SDLoc dl(N);
2266 SelectAndParts32(dl, Res, InstCnt);
2276 { TruncateToInt32(VRI.V, dl), getI32Imm(VRI.RLAmt, dl),
2277 getI32Imm(0, dl), getI32Imm(31, dl) };
2278 Res = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops),
2281 Res = TruncateToInt32(VRI.V, dl);
2296 { TruncateToInt32(BG.V, dl), getI32Imm(BG.RLAmt, dl),
2297 getI32Imm(Bits.size() - BG.EndIdx - 1, dl),
2298 getI32Imm(Bits.size() - BG.StartIdx - 1, dl) };
2299 Res = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0);
2302 { Res, TruncateToInt32(BG.V, dl), getI32Imm(BG.RLAmt, dl),
2303 getI32Imm(Bits.size() - BG.EndIdx - 1, dl),
2304 getI32Imm(Bits.size() - BG.StartIdx - 1, dl) };
2305 Res = SDValue(CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops), 0);
2322 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI_rec, dl, MVT::i32,
2323 Res, getI32Imm(ANDIMask, dl)),
2327 SDValue(CurDAG->getMachineNode(PPC::ANDIS_rec, dl, MVT::i32, Res,
2328 getI32Imm(ANDISMask, dl)),
2336 Res = SDValue(CurDAG->getMachineNode(PPC::OR, dl, MVT::i32,
2363 SDValue SelectRotMask64(SDValue V, const SDLoc &dl, unsigned RLAmt,
2380 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl),
2381 getI32Imm(InstMaskStart - 32, dl), getI32Imm(InstMaskEnd - 32, dl) };
2382 return SDValue(CurDAG->getMachineNode(PPC::RLWINM8, dl, MVT::i64,
2388 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl),
2389 getI32Imm(InstMaskStart, dl) };
2390 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Ops), 0);
2395 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl),
2396 getI32Imm(InstMaskEnd, dl) };
2397 return SDValue(CurDAG->getMachineNode(PPC::RLDICR, dl, MVT::i64, Ops), 0);
2402 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl),
2403 getI32Imm(InstMaskStart, dl) };
2404 return SDValue(CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, Ops), 0);
2421 V = SelectRotMask64(V, dl, RLAmt1, false, 0, 63);
2422 return SelectRotMask64(V, dl, RLAmt2, false, MaskStart, MaskEnd);
2427 SDValue SelectRotMaskIns64(SDValue Base, SDValue V, const SDLoc &dl,
2444 { ExtendToInt64(Base, dl), ExtendToInt64(V, dl), getI32Imm(RLAmt, dl),
2445 getI32Imm(InstMaskStart - 32, dl), getI32Imm(InstMaskEnd - 32, dl) };
2446 return SDValue(CurDAG->getMachineNode(PPC::RLWIMI8, dl, MVT::i64,
2452 { ExtendToInt64(Base, dl), ExtendToInt64(V, dl), getI32Imm(RLAmt, dl),
2453 getI32Imm(InstMaskStart, dl) };
2454 return SDValue(CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops), 0);
2471 V = SelectRotMask64(V, dl, RLAmt1, false, 0, 63);
2472 return SelectRotMaskIns64(Base, V, dl, RLAmt2, false, MaskStart, MaskEnd);
2475 void SelectAndParts64(const SDLoc &dl, SDValue &Res, unsigned *InstCnt) {
2544 selectI64Imm(CurDAG, dl, Mask, &NumOfSelectInsts);
2593 VRot = SelectRotMask64(VRI.V, dl, VRI.RLAmt, VRI.Repl32,
2605 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI8_rec, dl, MVT::i64,
2606 ExtendToInt64(VRot, dl),
2607 getI32Imm(ANDIMask, dl)),
2611 SDValue(CurDAG->getMachineNode(PPC::ANDIS8_rec, dl, MVT::i64,
2612 ExtendToInt64(VRot, dl),
2613 getI32Imm(ANDISMask, dl)),
2621 TotalVal = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64,
2622 ExtendToInt64(ANDIVal, dl), ANDISVal), 0);
2624 TotalVal = SDValue(selectI64Imm(CurDAG, dl, Mask), 0);
2626 SDValue(CurDAG->getMachineNode(PPC::AND8, dl, MVT::i64,
2627 ExtendToInt64(VRot, dl), TotalVal),
2634 Res = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64,
2635 ExtendToInt64(Res, dl), TotalVal),
2646 SDLoc dl(N);
2652 SelectAndParts64(dl, Res, InstCnt);
2692 Res = SelectRotMask64(VRI.V, dl, VRI.RLAmt, VRI.Repl32,
2727 Res = SelectRotMask64(BG.V, dl, BG.RLAmt, BG.Repl32, BG.StartIdx,
2730 Res = SelectRotMaskIns64(Res, BG.V, dl, BG.RLAmt, BG.Repl32,
2755 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI8_rec, dl, MVT::i64,
2756 ExtendToInt64(Res, dl),
2757 getI32Imm(ANDIMask, dl)),
2761 SDValue(CurDAG->getMachineNode(PPC::ANDIS8_rec, dl, MVT::i64,
2762 ExtendToInt64(Res, dl),
2763 getI32Imm(ANDISMask, dl)),
2771 Res = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64,
2772 ExtendToInt64(ANDIVal, dl), ANDISVal), 0);
2776 SDValue(selectI64Imm(CurDAG, dl, Mask, &NumOfSelectInsts), 0);
2777 Res = SDValue(CurDAG->getMachineNode(PPC::AND8, dl, MVT::i64,
2778 ExtendToInt64(Res, dl), MaskVal),
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);
3005 SDLoc dl(N);
3045 SDValue(CurDAG->getMachineNode(NewOpc, dl,
3053 dl, MVT::i64, MVT::Glue, LHS, RHS),
3062 CurDAG->getTargetConstant(SubRegToExtract, dl, MVT::i32);
3064 SDValue(CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG, dl,
3083 SDLoc dl(LogicOp);
3101 PPC::RLDICL, dl, InVT, InputOp,
3102 S->getI64Imm(0, dl),
3103 S->getI64Imm(63, dl)), 0);
3134 RHS = S->getI64Imm(1, dl);
3138 return SDValue(CurDAG->getMachineNode(NewOpc, dl, MVT::i64, LHS, RHS), 0);
3169 SDLoc dl(Input);
3171 return SDValue(CurDAG->getMachineNode(PPC::EXTSW_32_64, dl,
3204 SDLoc dl(Input);
3206 return SDValue(CurDAG->getMachineNode(PPC::RLDICL_32_64, dl, MVT::i64, Input,
3207 S->getI64Imm(0, dl),
3208 S->getI64Imm(32, dl)), 0);
3217 SDLoc dl(NatWidthRes);
3222 SDValue ImDef(CurDAG->getMachineNode(PPC::IMPLICIT_DEF, dl, MVT::i64), 0);
3224 CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32);
3225 return SDValue(CurDAG->getMachineNode(PPC::INSERT_SUBREG, dl, MVT::i64,
3234 CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32);
3235 return SDValue(CurDAG->getMachineNode(PPC::EXTRACT_SUBREG, dl, MVT::i32,
3242 IntegerCompareEliminator::getCompoundZeroComparisonInGPR(SDValue LHS, SDLoc dl,
3253 dl, InVT, LHS, LHS), 0);
3261 SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, LHS), 0);
3263 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64,
3264 Neg, S->getI64Imm(1, dl),
3265 S->getI64Imm(63, dl)), 0);
3268 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS,
3269 S->getI64Imm(~0ULL, dl)), 0);
3270 ToExtend = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64,
3280 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64,
3281 ToExtend, S->getI64Imm(1, dl),
3282 S->getI64Imm(63, dl)), 0);
3285 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, ToExtend,
3286 S->getI64Imm(63, dl)), 0);
3292 SDValue ShiftOps[] = { ToExtend, S->getI32Imm(1, dl), S->getI32Imm(31, dl),
3293 S->getI32Imm(31, dl) };
3294 return SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32,
3298 return SDValue(CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, ToExtend,
3299 S->getI32Imm(31, dl)), 0);
3301 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, ToExtend,
3302 S->getI32Imm(1, dl)), 0);
3304 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, ToExtend,
3305 S->getI32Imm(-1, dl)), 0);
3318 int64_t RHSValue, SDLoc dl) {
3331 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0);
3333 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Xor), 0);
3334 SDValue ShiftOps[] = { Clz, S->getI32Imm(27, dl), S->getI32Imm(5, dl),
3335 S->getI32Imm(31, dl) };
3336 return SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32,
3343 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0);
3345 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Xor), 0);
3346 SDValue ShiftOps[] = { Clz, S->getI32Imm(27, dl), S->getI32Imm(5, dl),
3347 S->getI32Imm(31, dl) };
3349 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, ShiftOps), 0);
3350 return SDValue(CurDAG->getMachineNode(PPC::XORI, dl, MVT::i32, Shift,
3351 S->getI32Imm(1, dl)), 0);
3357 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt);
3374 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt);
3381 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, LHS, RHS), 0);
3383 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Sub,
3384 S->getI64Imm(1, dl), S->getI64Imm(63, dl)),
3387 SDValue(CurDAG->getMachineNode(PPC::XORI8, dl,
3388 MVT::i64, Shift, S->getI32Imm(1, dl)), 0);
3396 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt);
3405 SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, LHS), 0);
3406 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64,
3407 Neg, S->getI32Imm(1, dl), S->getI32Imm(63, dl)), 0);
3425 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt);
3429 SDValue ShiftOps[] = { LHS, S->getI32Imm(1, dl), S->getI32Imm(31, dl),
3430 S->getI32Imm(31, dl) };
3431 return SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32,
3441 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0);
3442 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64,
3443 SUBFNode, S->getI64Imm(1, dl),
3444 S->getI64Imm(63, dl)), 0);
3458 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, LHS, RHS), 0);
3460 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64,
3461 Subtract, S->getI64Imm(1, dl),
3462 S->getI64Imm(63, dl)), 0);
3463 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, SrdiNode,
3464 S->getI32Imm(1, dl)), 0);
3478 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0);
3479 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64,
3480 Subtract, S->getI64Imm(1, dl),
3481 S->getI64Imm(63, dl)), 0);
3491 int64_t RHSValue, SDLoc dl) {
3507 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0);
3509 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, CountInput), 0);
3510 SDValue SHLOps[] = { Cntlzw, S->getI32Imm(27, dl),
3511 S->getI32Imm(5, dl), S->getI32Imm(31, dl) };
3513 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, SHLOps), 0);
3514 return SDValue(CurDAG->getMachineNode(PPC::NEG, dl, MVT::i32, Slwi), 0);
3525 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0);
3527 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Xor), 0);
3529 { Clz, S->getI32Imm(27, dl), S->getI32Imm(5, dl), S->getI32Imm(31, dl) };
3531 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, ShiftOps), 0);
3533 SDValue(CurDAG->getMachineNode(PPC::XORI, dl, MVT::i32, Shift,
3534 S->getI32Imm(1, dl)), 0);
3535 return SDValue(CurDAG->getMachineNode(PPC::NEG, dl, MVT::i32, Xori), 0);
3541 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt);
3556 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt);
3562 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, MVT::Glue,
3565 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64,
3566 SUBFNode, S->getI64Imm(1, dl),
3567 S->getI64Imm(63, dl)), 0);
3568 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, Srdi,
3569 S->getI32Imm(-1, dl)), 0);
3576 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt);
3584 SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, LHS), 0);
3585 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, Neg,
3586 S->getI64Imm(63, dl)), 0);
3603 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt);
3606 return SDValue(CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, LHS,
3607 S->getI32Imm(31, dl)), 0);
3615 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0);
3616 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64,
3617 SUBFNode, S->getI64Imm(63, dl)), 0);
3631 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, LHS, RHS), 0);
3633 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Subtract,
3634 S->getI32Imm(1, dl), S->getI32Imm(63,dl)),
3636 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, Shift,
3637 S->getI32Imm(-1, dl)), 0);
3651 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0);
3652 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64,
3653 Subtract, S->getI64Imm(63, dl)), 0);
3663 int64_t RHSValue, SDLoc dl) {
3676 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0);
3678 SDValue(CurDAG->getMachineNode(PPC::CNTLZD, dl, MVT::i64, Xor), 0);
3679 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Clz,
3680 S->getI64Imm(58, dl),
3681 S->getI64Imm(63, dl)), 0);
3689 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0);
3691 SDValue(CurDAG->getMachineNode(PPC::ADDIC8, dl, MVT::i64, MVT::Glue,
3692 Xor, S->getI32Imm(~0U, dl)), 0);
3693 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, AC,
3702 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt);
3714 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt);
3716 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS,
3717 S->getI64Imm(1, dl),
3718 S->getI64Imm(63, dl)), 0);
3720 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, RHS,
3721 S->getI64Imm(63, dl)), 0);
3723 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue,
3725 return SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, MVT::Glue,
3734 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt);
3737 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS,
3738 S->getI64Imm(~0ULL, dl)), 0);
3740 SDValue(CurDAG->getMachineNode(PPC::NOR8, dl, MVT::i64, Addi, LHS), 0);
3741 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Nor,
3742 S->getI64Imm(1, dl),
3743 S->getI64Imm(63, dl)), 0);
3757 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt);
3759 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS,
3760 S->getI64Imm(1, dl),
3761 S->getI64Imm(63, dl)), 0);
3763 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64,
3764 LHS, S->getI64Imm(63, dl)), 0);
3766 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64,
3767 RHS, S->getI64Imm(1, dl),
3768 S->getI64Imm(63, dl)), 0);
3770 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue,
3773 SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, MVT::Glue,
3775 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64,
3776 ADDE8Node, S->getI64Imm(1, dl)), 0);
3787 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue,
3790 SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, MVT::Glue,
3792 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64,
3793 SUBFE8Node, S->getI64Imm(1, dl)), 0);
3804 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue,
3807 SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64,
3809 return SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64,
3820 int64_t RHSValue, SDLoc dl) {
3835 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0);
3837 SDValue(CurDAG->getMachineNode(PPC::ADDIC8, dl, MVT::i64, MVT::Glue,
3838 AddInput, S->getI32Imm(~0U, dl)), 0);
3839 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, Addic,
3848 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0);
3850 SDValue(CurDAG->getMachineNode(PPC::SUBFIC8, dl, MVT::i64, MVT::Glue,
3851 Xor, S->getI32Imm(0, dl)), 0);
3852 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, SC,
3861 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt);
3873 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt);
3875 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, RHS,
3876 S->getI64Imm(63, dl)), 0);
3878 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS,
3879 S->getI64Imm(1, dl),
3880 S->getI64Imm(63, dl)), 0);
3882 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue,
3885 SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, MVT::Glue,
3887 return SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, Adde), 0);
3895 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt);
3898 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS,
3899 S->getI64Imm(-1, dl)), 0);
3901 SDValue(CurDAG->getMachineNode(PPC::NOR8, dl, MVT::i64, Add, LHS), 0);
3902 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, Nor,
3903 S->getI64Imm(63, dl)), 0);
3917 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt);
3919 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, LHS,
3920 S->getI64Imm(63, dl)), 0);
3923 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64,
3924 LHS, S->getI64Imm(63, dl)), 0);
3926 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64,
3927 RHS, S->getI64Imm(1, dl),
3928 S->getI64Imm(63, dl)), 0);
3930 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue,
3933 SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64,
3936 SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64,
3937 ADDE8Node, S->getI64Imm(1, dl)), 0);
3938 return SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64,
3950 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue,
3953 SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, MVT::Glue, LHS,
3955 return SDValue(CurDAG->getMachineNode(PPC::NOR8, dl, MVT::i64,
3967 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue,
3969 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64,
4031 SDLoc dl(Compare);
4038 return get32BitSExtCompare(LHS, RHS, CC, RHSValue, dl);
4040 return get32BitZExtCompare(LHS, RHS, CC, RHSValue, dl);
4042 return get64BitSExtCompare(LHS, RHS, CC, RHSValue, dl);
4043 return get64BitZExtCompare(LHS, RHS, CC, RHSValue, dl);
4122 const SDLoc &dl, SDValue Chain) {
4132 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, LHS,
4133 getI32Imm(Imm & 0xFFFF, dl)),
4137 return SDValue(CurDAG->getMachineNode(PPC::CMPWI, dl, MVT::i32, LHS,
4138 getI32Imm(Imm & 0xFFFF, dl)),
4150 SDValue Xor(CurDAG->getMachineNode(PPC::XORIS, dl, MVT::i32, LHS,
4151 getI32Imm(Imm >> 16, dl)), 0);
4152 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, Xor,
4153 getI32Imm(Imm & 0xFFFF, dl)), 0);
4158 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, LHS,
4159 getI32Imm(Imm & 0xFFFF, dl)), 0);
4164 return SDValue(CurDAG->getMachineNode(PPC::CMPWI, dl, MVT::i32, LHS,
4166 dl)),
4176 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, LHS,
4177 getI32Imm(Imm & 0xFFFF, dl)),
4181 return SDValue(CurDAG->getMachineNode(PPC::CMPDI, dl, MVT::i64, LHS,
4182 getI32Imm(Imm & 0xFFFF, dl)),
4195 SDValue Xor(CurDAG->getMachineNode(PPC::XORIS8, dl, MVT::i64, LHS,
4196 getI64Imm(Imm >> 16, dl)), 0);
4197 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, Xor,
4198 getI64Imm(Imm & 0xFFFF, dl)),
4205 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, LHS,
4206 getI64Imm(Imm & 0xFFFF, dl)), 0);
4211 return SDValue(CurDAG->getMachineNode(PPC::CMPDI, dl, MVT::i64, LHS,
4212 getI64Imm(SImm & 0xFFFF, dl)),
4277 CurDAG->getMachineNode(Opc, dl, MVT::i32, MVT::Other, LHS, RHS, Chain),
4280 return SDValue(CurDAG->getMachineNode(Opc, dl, MVT::i32, LHS, RHS), 0);
4472 SDLoc dl(N);
4494 Op = SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Op), 0);
4495 SDValue Ops[] = { Op, getI32Imm(27, dl), getI32Imm(5, dl),
4496 getI32Imm(31, dl) };
4503 SDValue(CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue,
4504 Op, getI32Imm(~0U, dl)), 0);
4509 SDValue Ops[] = { Op, getI32Imm(1, dl), getI32Imm(31, dl),
4510 getI32Imm(31, dl) };
4516 SDValue(CurDAG->getMachineNode(PPC::NEG, dl, MVT::i32, Op), 0);
4517 T = SDValue(CurDAG->getMachineNode(PPC::ANDC, dl, MVT::i32, T, Op), 0);
4518 SDValue Ops[] = { T, getI32Imm(1, dl), getI32Imm(31, dl),
4519 getI32Imm(31, dl) };
4530 Op = SDValue(CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue,
4531 Op, getI32Imm(1, dl)), 0);
4533 SDValue(CurDAG->getMachineNode(PPC::LI, dl,
4535 getI32Imm(0, dl)),
4540 Op = SDValue(CurDAG->getMachineNode(PPC::NOR, dl, MVT::i32, Op, Op), 0);
4541 SDNode *AD = CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue,
4542 Op, getI32Imm(~0U, dl));
4548 SDValue AD = SDValue(CurDAG->getMachineNode(PPC::ADDI, dl, MVT::i32, Op,
4549 getI32Imm(1, dl)), 0);
4550 SDValue AN = SDValue(CurDAG->getMachineNode(PPC::AND, dl, MVT::i32, AD,
4552 SDValue Ops[] = { AN, getI32Imm(1, dl), getI32Imm(31, dl),
4553 getI32Imm(31, dl) };
4558 SDValue Ops[] = { Op, getI32Imm(1, dl), getI32Imm(31, dl),
4559 getI32Imm(31, dl) };
4560 Op = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0);
4561 CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Op, getI32Imm(1, dl));
4583 SDValue VCmp(CurDAG->getMachineNode(VCmpInst, dl, ResVT, LHS, RHS), 0);
4598 SDValue CCReg = SelectCC(LHS, RHS, CC, dl, Chain);
4613 CCReg = CurDAG->getCopyToReg(CurDAG->getEntryNode(), dl, CR7Reg, CCReg,
4616 IntCR = SDValue(CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, CR7Reg,
4619 SDValue Ops[] = { IntCR, getI32Imm((32 - (3 - Idx)) & 31, dl),
4620 getI32Imm(31, dl), getI32Imm(31, dl) };
4628 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0);
4629 CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Tmp, getI32Imm(1, dl));
4882 SDLoc dl(N);
4883 SDValue Ops[] = {getI32Imm(PCC, dl), CmpLHS.getOperand(0), N->getOperand(4),
4949 SDLoc dl(N);
4956 SDValue Ops[] = {Val, getI32Imm(SH, dl), getI32Imm(MB, dl),
4957 getI32Imm(ME, dl)};
4965 SDValue Ops[] = {Val, getI32Imm(0, dl), getI32Imm(MB, dl),
4966 getI32Imm(ME, dl)};
4996 SDLoc dl(N);
4997 SDValue Ops[] = {N->getOperand(0), getI64Imm(0, dl), getI64Imm(MB - 32, dl),
4998 getI64Imm(ME - 32, dl)};
5088 SDLoc dl(N);
5089 SDValue Ops[] = {Val.getOperand(0), Val.getOperand(1), getI32Imm(0, dl),
5090 getI32Imm(MB, dl), getI32Imm(ME, dl)};
5091 ReplaceNode(N, CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops));
5121 SDLoc dl(N);
5122 SDValue Ops[] = {Val.getOperand(0), RotateAmt, getI32Imm(MB, dl)};
5138 SDLoc dl(N);
5146 auto ImDef = CurDAG->getMachineNode(PPC::IMPLICIT_DEF, dl, ResultType);
5149 Val = SDValue(CurDAG->getMachineNode(PPC::INSERT_SUBREG, dl, ResultType,
5151 getI32Imm(1, dl)),
5169 SDValue Ops[] = {Val, getI32Imm(SH, dl), getI32Imm(MB, dl)};
5186 SDLoc dl(N);
5187 SDValue Ops[] = {N->getOperand(0), getI32Imm(SH, dl), getI32Imm(MB, dl)};
5220 SDLoc dl(N);
5280 Ops[2] = getI32Imm(int(SImmOperand3) & 0xFFFF, dl);
5296 Ops[0] = getI32Imm(TO, dl);
5298 Ops[2] = getI32Imm(int(SImmOperand2) & 0xFFFF, dl);
5303 OpsWithMD = {getI32Imm(24, dl), N->getOperand(2), getI32Imm(0, dl)};
5320 MD->getOperand(i))->getString().str()), dl));
5388 CurDAG->getTargetConstant(0, dl, MVT::i32)};
5389 SDValue BCDOp = SDValue(CurDAG->getMachineNode(Opcode, dl, VTs, Ops), 0);
5394 SDValue SubRegIdx = CurDAG->getTargetConstant(SubReg, dl, MVT::i32);
5396 CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG, dl, MVT::i1,
5403 SDValue(CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, CR6Reg,
5406 SDValue Ops[] = {Move, getI32Imm((32 - (4 + ShiftVal)) & 31, dl),
5407 getI32Imm(31, dl), getI32Imm(31, dl)};
5412 CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0);
5413 CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Shift, getI32Imm(1, dl));
5444 SDValue(CurDAG->getMachineNode(Opcode, dl, VTs, N->getOperand(2)), 0);
5447 SDValue SubRegIdx = CurDAG->getTargetConstant(PPC::sub_eq, dl, MVT::i32);
5450 CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG, dl, MVT::i1,
5505 ReplaceNode(N, CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32,
5511 ReplaceNode(N, CurDAG->getMachineNode(PPC::ReadTB, dl, MVT::i32, MVT::i32,
5519 getConstantIntValue(), dl,
5523 CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, MVT::Glue,
5532 CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, MVT::Glue,
5600 Opcode, dl, LD->getValueType(0),
5638 Opcode, dl, LD->getValueType(0),
5688 SDNode *Lo = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64,
5690 getI16Imm(ImmLo, dl));
5691 SDValue Ops1[] = { SDValue(Lo, 0), getI16Imm(ImmHi, dl)};
5711 SDNode *Lo = CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64,
5713 getI16Imm(ImmLo, dl));
5714 SDValue Ops1[] = { SDValue(Lo, 0), getI16Imm(ImmHi, dl)};
5737 getI32Imm(SH, dl), getI32Imm(MB, dl),
5738 getI32Imm(ME, dl) };
5751 getI32Imm(SH, dl), getI32Imm(MB, dl),
5752 getI32Imm(ME, dl) };
5781 SDValue SDImm = CurDAG->getTargetConstant(SextImm, dl, MVT::i64);
5782 SDNode *MulNode = CurDAG->getMachineNode(PPC::MULLI8, dl, MVT::i64,
5785 SDValue Ops[] = {SDValue(MulNode, 0), getI32Imm(Shift, dl),
5786 getI32Imm(63 - Shift, dl)};
5790 SDValue SDImm = CurDAG->getTargetConstant(SextImm, dl, MVT::i32);
5791 SDNode *MulNode = CurDAG->getMachineNode(PPC::MULLI, dl, MVT::i32,
5794 SDValue Ops[] = {SDValue(MulNode, 0), getI32Imm(Shift, dl),
5795 getI32Imm(0, dl), getI32Imm(31 - Shift, dl)};
5812 SDValue AndI(CurDAG->getMachineNode(Opcode, dl, InVT, MVT::Glue,
5814 CurDAG->getTargetConstant(1, dl, InVT)),
5819 dl, MVT::i32);
5851 SelectCC(LHS, RHS, IsUnCmp ? ISD::SETUGT : ISD::SETGT, dl);
5867 CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue,
5868 N->getOperand(0), getI32Imm(~0U, dl));
5874 SDValue CCReg = SelectCC(N->getOperand(0), N->getOperand(1), CC, dl);
5890 SDValue CCBit = CurDAG->getTargetExtractSubreg(SRI, dl, MVT::i1, CCReg);
5892 SDValue NotCCBit(CurDAG->getMachineNode(PPC::CRNOR, dl, MVT::i1,
5897 SDValue CAndT(CurDAG->getMachineNode(PPC::CRAND, dl, MVT::i1,
5899 SDValue NotCAndF(CurDAG->getMachineNode(PPC::CRAND, dl, MVT::i1,
5939 getI32Imm(BROpc, dl) };
5987 SDValue DMV = CurDAG->getTargetConstant(DM[1] | (DM[0] << 1), dl,
6016 SDValue Pred = getI32Imm(PCC, dl);
6053 SDValue BitComp(CurDAG->getMachineNode(Opc, dl, MVT::i1,
6064 SDValue CondCode = SelectCC(N->getOperand(2), N->getOperand(3), CC, dl);
6065 SDValue Ops[] = { getI32Imm(PCC, dl), CondCode,
6076 Chain = SDValue(CurDAG->getMachineNode(Opc, dl, MVT::Glue, Target,
6101 auto replaceWith = [this, &dl](unsigned OpCode, SDNode *TocEntry,
6109 MN = CurDAG->getMachineNode(OpCode, dl, OperandTy, TocBase, GA);
6111 MN = CurDAG->getMachineNode(OpCode, dl, OperandTy, GA, TocBase);
6181 isPPC64 ? PPC::ADDIStocHA8 : PPC::ADDIStocHA, dl, VT, TOCbase, GA);
6188 dl, VT, SDValue(Tmp, 0), GA));
6196 isPPC64 ? PPC::LDtocL : PPC::LWZtocL, dl, VT, GA, SDValue(Tmp, 0));
6205 ReplaceNode(N, CurDAG->getMachineNode(PPC::ADDItocL8, dl, MVT::i64,
6255 SDValue EltVal = getI32Imm(Elt >> 1, dl);
6256 SDNode *Tmp = CurDAG->getMachineNode(Opc1, dl, VT, EltVal);
6258 ReplaceNode(N, CurDAG->getMachineNode(Opc2, dl, VT, TmpVal, TmpVal));
6267 SDValue EltVal = getI32Imm(Elt - 16, dl);
6268 SDNode *Tmp1 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal);
6269 EltVal = getI32Imm(-16, dl);
6270 SDNode *Tmp2 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal);
6271 ReplaceNode(N, CurDAG->getMachineNode(Opc3, dl, VT, SDValue(Tmp1, 0),
6281 SDValue EltVal = getI32Imm(Elt + 16, dl);
6282 SDNode *Tmp1 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal);
6283 EltVal = getI32Imm(-16, dl);
6284 SDNode *Tmp2 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal);
6285 ReplaceNode(N, CurDAG->getMachineNode(Opc2, dl, VT, SDValue(Tmp1, 0),
6333 Subtarget->isLittleEndian() ? PPC::LVSR : PPC::LVSL, dl, Type, ZeroReg,
6337 CurDAG->getMachineNode(PPC::LVX, dl, MVT::v16i8, MVT::Other,
6343 PPC::LVX, dl, MVT::v16i8, MVT::Other,
6345 LIOpcode, dl, MVT::i32,
6346 CurDAG->getTargetConstant(1, dl, MVT::i8)),
6355 CurDAG->getMachineNode(PPC::VPERM, dl, Type, SDValue(LoadLow, 0),
6358 CurDAG->getTargetConstant(SplatElemIndex, dl, MVT::i8),
6374 SDLoc dl(N);
6556 LHS = CurDAG->getAnyExtOrTrunc(LHS, dl, VT);
6557 RHS = CurDAG->getAnyExtOrTrunc(RHS, dl, VT);
6560 Res = CurDAG->getNode(PPCISD::CMPB, dl, VT, LHS, RHS);
6565 Res = CurDAG->getNode(ISD::AND, dl, VT, Res,
6566 CurDAG->getConstant(Mask, dl, VT));
6574 Res = CurDAG->getNode(ISD::AND, dl, VT, Res,
6575 CurDAG->getConstant(Mask ^ Alt, dl, VT));
6576 Res = CurDAG->getNode(ISD::XOR, dl, VT, Res,
6577 CurDAG->getConstant(Alt, dl, VT));
6605 SDLoc dl(N);
6609 CurDAG->getConstant(N->getOpcode() == ISD::SIGN_EXTEND ? -1 : 1, dl, VT);
6610 SDValue ConstFalse = CurDAG->getConstant(0, dl, VT);
6617 auto TryFold = [this, N, User, dl](SDValue Val) {
6622 return CurDAG->FoldConstantArithmetic(User->getOpcode(), dl,
6643 Res = CurDAG->getSelect(dl, User->getValueType(0), Cond, TrueRes, FalseRes);
7897 SDLoc dl(GA);
7906 ImmOpnd = CurDAG->getTargetGlobalAddress(GV, dl, MVT::i64, Offset, Flags);