Lines Matching refs:dl
175 inline SDValue getI16Imm(unsigned Imm, const SDLoc &dl) { in getI16Imm() argument
176 return CurDAG->getTargetConstant(Imm, dl, MVT::i16); in getI16Imm()
181 inline SDValue getI32Imm(unsigned Imm, const SDLoc &dl) { in getI32Imm() argument
182 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in getI32Imm()
187 inline SDValue getI64Imm(uint64_t Imm, const SDLoc &dl) { in getI64Imm() argument
188 return CurDAG->getTargetConstant(Imm, dl, MVT::i64); in getI64Imm()
192 inline SDValue getSmallIPtrImm(uint64_t Imm, const SDLoc &dl) { in getSmallIPtrImm() argument
194 Imm, dl, PPCLowering->getPointerTy(CurDAG->getDataLayout())); in getSmallIPtrImm()
227 const SDLoc &dl, SDValue Chain = SDValue());
397 SDLoc dl(Op); in SelectInlineAsmMemoryOperand() local
398 SDValue RC = CurDAG->getTargetConstant(TRC->getID(), dl, MVT::i32); in SelectInlineAsmMemoryOperand()
401 dl, Op.getValueType(), in SelectInlineAsmMemoryOperand()
454 DebugLoc dl; in getGlobalBaseReg() local
461 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MoveGOTtoLR)); in getGlobalBaseReg()
462 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg); in getGlobalBaseReg()
465 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR)); in getGlobalBaseReg()
466 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg); in getGlobalBaseReg()
468 BuildMI(FirstMBB, MBBI, dl, in getGlobalBaseReg()
476 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR)); in getGlobalBaseReg()
477 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR), GlobalBaseReg); in getGlobalBaseReg()
491 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MovePCtoLR8)); in getGlobalBaseReg()
492 BuildMI(FirstMBB, MBBI, dl, TII.get(PPC::MFLR8), GlobalBaseReg); in getGlobalBaseReg()
644 SDLoc dl(SN); in selectFrameIndex() local
650 getSmallIPtrImm(Offset, dl)); in selectFrameIndex()
652 ReplaceNode(SN, CurDAG->getMachineNode(Opc, dl, N->getValueType(0), TFI, in selectFrameIndex()
653 getSmallIPtrImm(Offset, dl))); in selectFrameIndex()
708 SDLoc dl(ST); in tryTLSXFormStore() local
737 SDNode *MN = CurDAG->getMachineNode(Opcode, dl, VTs, Ops); in tryTLSXFormStore()
753 SDLoc dl(LD); in tryTLSXFormLoad() local
780 SDNode *MN = CurDAG->getMachineNode(Opcode, dl, VTs, Ops); in tryTLSXFormLoad()
791 SDLoc dl(N); in tryBitfieldInsert() local
852 SDValue Ops[] = { Op0, Op1, getI32Imm(SH, dl), getI32Imm(MB, dl), in tryBitfieldInsert()
853 getI32Imm(ME, dl) }; in tryBitfieldInsert()
854 ReplaceNode(N, CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops)); in tryBitfieldInsert()
928 static SDNode *selectI64ImmDirect(SelectionDAG *CurDAG, const SDLoc &dl, in selectI64ImmDirect() argument
939 auto getI32Imm = [CurDAG, dl](unsigned Imm) { in selectI64ImmDirect()
940 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in selectI64ImmDirect()
948 SDValue SDImm = CurDAG->getTargetConstant(Imm, dl, MVT::i64); in selectI64ImmDirect()
949 return CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, SDImm); in selectI64ImmDirect()
954 return CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, in selectI64ImmDirect()
967 Result = CurDAG->getMachineNode(Opcode, dl, MVT::i64, getI32Imm(ImmHi16)); in selectI64ImmDirect()
968 return CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
978 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
980 return CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1003 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1005 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1025 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1027 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1035 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1037 return CurDAG->getMachineNode(PPC::ORIS8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1061 Result = CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, in selectI64ImmDirect()
1063 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1079 Result = CurDAG->getMachineNode(Opcode, dl, MVT::i64, getI32Imm(ImmHi16)); in selectI64ImmDirect()
1080 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1082 return CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1095 Result = CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, in selectI64ImmDirect()
1097 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1099 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1109 Result = CurDAG->getMachineNode(PPC::LIS8, dl, MVT::i64, in selectI64ImmDirect()
1111 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1113 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1121 Result = CurDAG->getMachineNode(Opcode, dl, MVT::i64, getI32Imm(ImmHi16)); in selectI64ImmDirect()
1122 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1127 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops); in selectI64ImmDirect()
1141 Result = CurDAG->getMachineNode(Opcode, dl, MVT::i64, getI32Imm(ImmHi16)); in selectI64ImmDirect()
1142 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1144 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirect()
1157 static SDNode *selectI64ImmDirectPrefix(SelectionDAG *CurDAG, const SDLoc &dl, in selectI64ImmDirectPrefix() argument
1166 auto getI32Imm = [CurDAG, dl](unsigned Imm) { in selectI64ImmDirectPrefix()
1167 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in selectI64ImmDirectPrefix()
1170 auto getI64Imm = [CurDAG, dl](uint64_t Imm) { in selectI64ImmDirectPrefix()
1171 return CurDAG->getTargetConstant(Imm, dl, MVT::i64); in selectI64ImmDirectPrefix()
1180 return CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, in selectI64ImmDirectPrefix()
1181 CurDAG->getTargetConstant(Imm, dl, MVT::i64)); in selectI64ImmDirectPrefix()
1195 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, in selectI64ImmDirectPrefix()
1197 return CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirectPrefix()
1217 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, in selectI64ImmDirectPrefix()
1219 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirectPrefix()
1230 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, in selectI64ImmDirectPrefix()
1232 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, SDValue(Result, 0), in selectI64ImmDirectPrefix()
1249 CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(RotImm)); in selectI64ImmDirectPrefix()
1250 return CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in selectI64ImmDirectPrefix()
1259 Result = CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(Hi32)); in selectI64ImmDirectPrefix()
1262 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops); in selectI64ImmDirectPrefix()
1269 CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(Hi32)); in selectI64ImmDirectPrefix()
1271 CurDAG->getMachineNode(PPC::PLI8, dl, MVT::i64, getI64Imm(Lo32)); in selectI64ImmDirectPrefix()
1274 return CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops); in selectI64ImmDirectPrefix()
1277 static SDNode *selectI64Imm(SelectionDAG *CurDAG, const SDLoc &dl, uint64_t Imm, in selectI64Imm() argument
1282 SDNode *Result = selectI64ImmDirect(CurDAG, dl, Imm, InstCntDirect); in selectI64Imm()
1292 SDNode *ResultP = selectI64ImmDirectPrefix(CurDAG, dl, Imm, InstCntDirectP); in selectI64Imm()
1310 auto getI32Imm = [CurDAG, dl](unsigned Imm) { in selectI64Imm()
1311 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in selectI64Imm()
1315 selectI64ImmDirect(CurDAG, dl, Imm & 0xffffffff00000000, InstCntDirect); in selectI64Imm()
1318 Result = CurDAG->getMachineNode(PPC::ORIS8, dl, MVT::i64, in selectI64Imm()
1323 Result = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, SDValue(Result, 0), in selectI64Imm()
1334 SDLoc dl(N); in selectI64Imm() local
1340 SDValue SDImm = CurDAG->getTargetConstant(SextImm, dl, MVT::i64); in selectI64Imm()
1342 return CurDAG->getMachineNode(PPC::LI8, dl, MVT::i64, SDImm); in selectI64Imm()
1344 return selectI64Imm(CurDAG, dl, Imm); in selectI64Imm()
1950 SDValue getI32Imm(unsigned Imm, const SDLoc &dl) { in getI32Imm() argument
1951 return CurDAG->getTargetConstant(Imm, dl, MVT::i32); in getI32Imm()
1969 SDValue ExtendToInt64(SDValue V, const SDLoc &dl) { in ExtendToInt64() argument
1974 SDValue SubRegIdx = CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32); in ExtendToInt64()
1975 SDValue ImDef = SDValue(CurDAG->getMachineNode(PPC::IMPLICIT_DEF, dl, in ExtendToInt64()
1977 SDValue ExtVal = SDValue(CurDAG->getMachineNode(PPC::INSERT_SUBREG, dl, in ExtendToInt64()
1983 SDValue TruncateToInt32(SDValue V, const SDLoc &dl) { in TruncateToInt32() argument
1988 SDValue SubRegIdx = CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32); in TruncateToInt32()
1989 SDValue SubVal = SDValue(CurDAG->getMachineNode(PPC::EXTRACT_SUBREG, dl, in TruncateToInt32()
1997 void SelectAndParts32(const SDLoc &dl, SDValue &Res, unsigned *InstCnt) { in SelectAndParts32() argument
2052 { TruncateToInt32(VRI.V, dl), getI32Imm(VRI.RLAmt, dl), in SelectAndParts32()
2053 getI32Imm(0, dl), getI32Imm(31, dl) }; in SelectAndParts32()
2054 VRot = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, in SelectAndParts32()
2057 VRot = TruncateToInt32(VRI.V, dl); in SelectAndParts32()
2062 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI_rec, dl, MVT::i32, in SelectAndParts32()
2063 VRot, getI32Imm(ANDIMask, dl)), in SelectAndParts32()
2067 SDValue(CurDAG->getMachineNode(PPC::ANDIS_rec, dl, MVT::i32, VRot, in SelectAndParts32()
2068 getI32Imm(ANDISMask, dl)), in SelectAndParts32()
2077 TotalVal = SDValue(CurDAG->getMachineNode(PPC::OR, dl, MVT::i32, in SelectAndParts32()
2083 Res = SDValue(CurDAG->getMachineNode(PPC::OR, dl, MVT::i32, in SelectAndParts32()
2096 SDLoc dl(N); in Select32() local
2102 SelectAndParts32(dl, Res, InstCnt); in Select32()
2112 { TruncateToInt32(VRI.V, dl), getI32Imm(VRI.RLAmt, dl), in Select32()
2113 getI32Imm(0, dl), getI32Imm(31, dl) }; in Select32()
2114 Res = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), in Select32()
2117 Res = TruncateToInt32(VRI.V, dl); in Select32()
2132 { TruncateToInt32(BG.V, dl), getI32Imm(BG.RLAmt, dl), in Select32()
2133 getI32Imm(Bits.size() - BG.EndIdx - 1, dl), in Select32()
2134 getI32Imm(Bits.size() - BG.StartIdx - 1, dl) }; in Select32()
2135 Res = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0); in Select32()
2138 { Res, TruncateToInt32(BG.V, dl), getI32Imm(BG.RLAmt, dl), in Select32()
2139 getI32Imm(Bits.size() - BG.EndIdx - 1, dl), in Select32()
2140 getI32Imm(Bits.size() - BG.StartIdx - 1, dl) }; in Select32()
2141 Res = SDValue(CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops), 0); in Select32()
2158 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI_rec, dl, MVT::i32, in Select32()
2159 Res, getI32Imm(ANDIMask, dl)), in Select32()
2163 SDValue(CurDAG->getMachineNode(PPC::ANDIS_rec, dl, MVT::i32, Res, in Select32()
2164 getI32Imm(ANDISMask, dl)), in Select32()
2172 Res = SDValue(CurDAG->getMachineNode(PPC::OR, dl, MVT::i32, in Select32()
2199 SDValue SelectRotMask64(SDValue V, const SDLoc &dl, unsigned RLAmt, in SelectRotMask64() argument
2216 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMask64()
2217 getI32Imm(InstMaskStart - 32, dl), getI32Imm(InstMaskEnd - 32, dl) }; in SelectRotMask64()
2218 return SDValue(CurDAG->getMachineNode(PPC::RLWINM8, dl, MVT::i64, in SelectRotMask64()
2224 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMask64()
2225 getI32Imm(InstMaskStart, dl) }; in SelectRotMask64()
2226 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Ops), 0); in SelectRotMask64()
2231 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMask64()
2232 getI32Imm(InstMaskEnd, dl) }; in SelectRotMask64()
2233 return SDValue(CurDAG->getMachineNode(PPC::RLDICR, dl, MVT::i64, Ops), 0); in SelectRotMask64()
2238 { ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMask64()
2239 getI32Imm(InstMaskStart, dl) }; in SelectRotMask64()
2240 return SDValue(CurDAG->getMachineNode(PPC::RLDIC, dl, MVT::i64, Ops), 0); in SelectRotMask64()
2257 V = SelectRotMask64(V, dl, RLAmt1, false, 0, 63); in SelectRotMask64()
2258 return SelectRotMask64(V, dl, RLAmt2, false, MaskStart, MaskEnd); in SelectRotMask64()
2263 SDValue SelectRotMaskIns64(SDValue Base, SDValue V, const SDLoc &dl, in SelectRotMaskIns64() argument
2280 { ExtendToInt64(Base, dl), ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMaskIns64()
2281 getI32Imm(InstMaskStart - 32, dl), getI32Imm(InstMaskEnd - 32, dl) }; in SelectRotMaskIns64()
2282 return SDValue(CurDAG->getMachineNode(PPC::RLWIMI8, dl, MVT::i64, in SelectRotMaskIns64()
2288 { ExtendToInt64(Base, dl), ExtendToInt64(V, dl), getI32Imm(RLAmt, dl), in SelectRotMaskIns64()
2289 getI32Imm(InstMaskStart, dl) }; in SelectRotMaskIns64()
2290 return SDValue(CurDAG->getMachineNode(PPC::RLDIMI, dl, MVT::i64, Ops), 0); in SelectRotMaskIns64()
2307 V = SelectRotMask64(V, dl, RLAmt1, false, 0, 63); in SelectRotMaskIns64()
2308 return SelectRotMaskIns64(Base, V, dl, RLAmt2, false, MaskStart, MaskEnd); in SelectRotMaskIns64()
2311 void SelectAndParts64(const SDLoc &dl, SDValue &Res, unsigned *InstCnt) { in SelectAndParts64() argument
2380 selectI64Imm(CurDAG, dl, Mask, &NumOfSelectInsts); in SelectAndParts64()
2429 VRot = SelectRotMask64(VRI.V, dl, VRI.RLAmt, VRI.Repl32, in SelectAndParts64()
2441 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI8_rec, dl, MVT::i64, in SelectAndParts64()
2442 ExtendToInt64(VRot, dl), in SelectAndParts64()
2443 getI32Imm(ANDIMask, dl)), in SelectAndParts64()
2447 SDValue(CurDAG->getMachineNode(PPC::ANDIS8_rec, dl, MVT::i64, in SelectAndParts64()
2448 ExtendToInt64(VRot, dl), in SelectAndParts64()
2449 getI32Imm(ANDISMask, dl)), in SelectAndParts64()
2457 TotalVal = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in SelectAndParts64()
2458 ExtendToInt64(ANDIVal, dl), ANDISVal), 0); in SelectAndParts64()
2460 TotalVal = SDValue(selectI64Imm(CurDAG, dl, Mask), 0); in SelectAndParts64()
2462 SDValue(CurDAG->getMachineNode(PPC::AND8, dl, MVT::i64, in SelectAndParts64()
2463 ExtendToInt64(VRot, dl), TotalVal), in SelectAndParts64()
2470 Res = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in SelectAndParts64()
2471 ExtendToInt64(Res, dl), TotalVal), in SelectAndParts64()
2482 SDLoc dl(N); in Select64() local
2488 SelectAndParts64(dl, Res, InstCnt); in Select64()
2528 Res = SelectRotMask64(VRI.V, dl, VRI.RLAmt, VRI.Repl32, in Select64()
2563 Res = SelectRotMask64(BG.V, dl, BG.RLAmt, BG.Repl32, BG.StartIdx, in Select64()
2566 Res = SelectRotMaskIns64(Res, BG.V, dl, BG.RLAmt, BG.Repl32, in Select64()
2591 ANDIVal = SDValue(CurDAG->getMachineNode(PPC::ANDI8_rec, dl, MVT::i64, in Select64()
2592 ExtendToInt64(Res, dl), in Select64()
2593 getI32Imm(ANDIMask, dl)), in Select64()
2597 SDValue(CurDAG->getMachineNode(PPC::ANDIS8_rec, dl, MVT::i64, in Select64()
2598 ExtendToInt64(Res, dl), in Select64()
2599 getI32Imm(ANDISMask, dl)), in Select64()
2607 Res = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in Select64()
2608 ExtendToInt64(ANDIVal, dl), ANDISVal), 0); in Select64()
2612 SDValue(selectI64Imm(CurDAG, dl, Mask, &NumOfSelectInsts), 0); in Select64()
2613 Res = SDValue(CurDAG->getMachineNode(PPC::AND8, dl, MVT::i64, in Select64()
2614 ExtendToInt64(Res, dl), MaskVal), in Select64()
2747 SDValue getCompoundZeroComparisonInGPR(SDValue LHS, SDLoc dl,
2750 int64_t RHSValue, SDLoc dl);
2752 int64_t RHSValue, SDLoc dl);
2754 int64_t RHSValue, SDLoc dl);
2756 int64_t RHSValue, SDLoc dl);
2817 SDLoc dl(N); in tryEXTEND() local
2844 SDLoc dl(N); in tryLogicOpOfCompares() local
2884 SDValue(CurDAG->getMachineNode(NewOpc, dl, in tryLogicOpOfCompares()
2892 dl, MVT::i64, MVT::Glue, LHS, RHS), in tryLogicOpOfCompares()
2901 CurDAG->getTargetConstant(SubRegToExtract, dl, MVT::i32); in tryLogicOpOfCompares()
2903 SDValue(CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG, dl, in tryLogicOpOfCompares()
2922 SDLoc dl(LogicOp); in computeLogicOpInGPR() local
2940 PPC::RLDICL, dl, InVT, InputOp, in computeLogicOpInGPR()
2941 S->getI64Imm(0, dl), in computeLogicOpInGPR()
2942 S->getI64Imm(63, dl)), 0); in computeLogicOpInGPR()
2973 RHS = S->getI64Imm(1, dl); in computeLogicOpInGPR()
2977 return SDValue(CurDAG->getMachineNode(NewOpc, dl, MVT::i64, LHS, RHS), 0); in computeLogicOpInGPR()
3008 SDLoc dl(Input); in signExtendInputIfNeeded() local
3010 return SDValue(CurDAG->getMachineNode(PPC::EXTSW_32_64, dl, in signExtendInputIfNeeded()
3043 SDLoc dl(Input); in zeroExtendInputIfNeeded() local
3045 return SDValue(CurDAG->getMachineNode(PPC::RLDICL_32_64, dl, MVT::i64, Input, in zeroExtendInputIfNeeded()
3046 S->getI64Imm(0, dl), in zeroExtendInputIfNeeded()
3047 S->getI64Imm(32, dl)), 0); in zeroExtendInputIfNeeded()
3056 SDLoc dl(NatWidthRes); in addExtOrTrunc() local
3061 SDValue ImDef(CurDAG->getMachineNode(PPC::IMPLICIT_DEF, dl, MVT::i64), 0); in addExtOrTrunc()
3063 CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32); in addExtOrTrunc()
3064 return SDValue(CurDAG->getMachineNode(PPC::INSERT_SUBREG, dl, MVT::i64, in addExtOrTrunc()
3073 CurDAG->getTargetConstant(PPC::sub_32, dl, MVT::i32); in addExtOrTrunc()
3074 return SDValue(CurDAG->getMachineNode(PPC::EXTRACT_SUBREG, dl, MVT::i32, in addExtOrTrunc()
3081 IntegerCompareEliminator::getCompoundZeroComparisonInGPR(SDValue LHS, SDLoc dl, in getCompoundZeroComparisonInGPR() argument
3092 dl, InVT, LHS, LHS), 0); in getCompoundZeroComparisonInGPR()
3100 SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, LHS), 0); in getCompoundZeroComparisonInGPR()
3102 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in getCompoundZeroComparisonInGPR()
3103 Neg, S->getI64Imm(1, dl), in getCompoundZeroComparisonInGPR()
3104 S->getI64Imm(63, dl)), 0); in getCompoundZeroComparisonInGPR()
3107 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS, in getCompoundZeroComparisonInGPR()
3108 S->getI64Imm(~0ULL, dl)), 0); in getCompoundZeroComparisonInGPR()
3109 ToExtend = SDValue(CurDAG->getMachineNode(PPC::OR8, dl, MVT::i64, in getCompoundZeroComparisonInGPR()
3119 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in getCompoundZeroComparisonInGPR()
3120 ToExtend, S->getI64Imm(1, dl), in getCompoundZeroComparisonInGPR()
3121 S->getI64Imm(63, dl)), 0); in getCompoundZeroComparisonInGPR()
3124 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, ToExtend, in getCompoundZeroComparisonInGPR()
3125 S->getI64Imm(63, dl)), 0); in getCompoundZeroComparisonInGPR()
3131 SDValue ShiftOps[] = { ToExtend, S->getI32Imm(1, dl), S->getI32Imm(31, dl), in getCompoundZeroComparisonInGPR()
3132 S->getI32Imm(31, dl) }; in getCompoundZeroComparisonInGPR()
3133 return SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, in getCompoundZeroComparisonInGPR()
3137 return SDValue(CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, ToExtend, in getCompoundZeroComparisonInGPR()
3138 S->getI32Imm(31, dl)), 0); in getCompoundZeroComparisonInGPR()
3140 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, ToExtend, in getCompoundZeroComparisonInGPR()
3141 S->getI32Imm(1, dl)), 0); in getCompoundZeroComparisonInGPR()
3143 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, ToExtend, in getCompoundZeroComparisonInGPR()
3144 S->getI32Imm(-1, dl)), 0); in getCompoundZeroComparisonInGPR()
3157 int64_t RHSValue, SDLoc dl) { in get32BitZExtCompare() argument
3170 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0); in get32BitZExtCompare()
3172 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Xor), 0); in get32BitZExtCompare()
3173 SDValue ShiftOps[] = { Clz, S->getI32Imm(27, dl), S->getI32Imm(5, dl), in get32BitZExtCompare()
3174 S->getI32Imm(31, dl) }; in get32BitZExtCompare()
3175 return SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, in get32BitZExtCompare()
3182 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0); in get32BitZExtCompare()
3184 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Xor), 0); in get32BitZExtCompare()
3185 SDValue ShiftOps[] = { Clz, S->getI32Imm(27, dl), S->getI32Imm(5, dl), in get32BitZExtCompare()
3186 S->getI32Imm(31, dl) }; in get32BitZExtCompare()
3188 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, ShiftOps), 0); in get32BitZExtCompare()
3189 return SDValue(CurDAG->getMachineNode(PPC::XORI, dl, MVT::i32, Shift, in get32BitZExtCompare()
3190 S->getI32Imm(1, dl)), 0); in get32BitZExtCompare()
3196 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt); in get32BitZExtCompare()
3213 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt); in get32BitZExtCompare()
3220 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, LHS, RHS), 0); in get32BitZExtCompare()
3222 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Sub, in get32BitZExtCompare()
3223 S->getI64Imm(1, dl), S->getI64Imm(63, dl)), in get32BitZExtCompare()
3226 SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, in get32BitZExtCompare()
3227 MVT::i64, Shift, S->getI32Imm(1, dl)), 0); in get32BitZExtCompare()
3235 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt); in get32BitZExtCompare()
3244 SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, LHS), 0); in get32BitZExtCompare()
3245 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitZExtCompare()
3246 Neg, S->getI32Imm(1, dl), S->getI32Imm(63, dl)), 0); in get32BitZExtCompare()
3264 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt); in get32BitZExtCompare()
3268 SDValue ShiftOps[] = { LHS, S->getI32Imm(1, dl), S->getI32Imm(31, dl), in get32BitZExtCompare()
3269 S->getI32Imm(31, dl) }; in get32BitZExtCompare()
3270 return SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, in get32BitZExtCompare()
3280 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0); in get32BitZExtCompare()
3281 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitZExtCompare()
3282 SUBFNode, S->getI64Imm(1, dl), in get32BitZExtCompare()
3283 S->getI64Imm(63, dl)), 0); in get32BitZExtCompare()
3297 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, LHS, RHS), 0); in get32BitZExtCompare()
3299 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitZExtCompare()
3300 Subtract, S->getI64Imm(1, dl), in get32BitZExtCompare()
3301 S->getI64Imm(63, dl)), 0); in get32BitZExtCompare()
3302 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, SrdiNode, in get32BitZExtCompare()
3303 S->getI32Imm(1, dl)), 0); in get32BitZExtCompare()
3317 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0); in get32BitZExtCompare()
3318 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitZExtCompare()
3319 Subtract, S->getI64Imm(1, dl), in get32BitZExtCompare()
3320 S->getI64Imm(63, dl)), 0); in get32BitZExtCompare()
3330 int64_t RHSValue, SDLoc dl) { in get32BitSExtCompare() argument
3346 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0); in get32BitSExtCompare()
3348 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, CountInput), 0); in get32BitSExtCompare()
3349 SDValue SHLOps[] = { Cntlzw, S->getI32Imm(27, dl), in get32BitSExtCompare()
3350 S->getI32Imm(5, dl), S->getI32Imm(31, dl) }; in get32BitSExtCompare()
3352 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, SHLOps), 0); in get32BitSExtCompare()
3353 return SDValue(CurDAG->getMachineNode(PPC::NEG, dl, MVT::i32, Slwi), 0); in get32BitSExtCompare()
3364 SDValue(CurDAG->getMachineNode(PPC::XOR, dl, MVT::i32, LHS, RHS), 0); in get32BitSExtCompare()
3366 SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Xor), 0); in get32BitSExtCompare()
3368 { Clz, S->getI32Imm(27, dl), S->getI32Imm(5, dl), S->getI32Imm(31, dl) }; in get32BitSExtCompare()
3370 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, ShiftOps), 0); in get32BitSExtCompare()
3372 SDValue(CurDAG->getMachineNode(PPC::XORI, dl, MVT::i32, Shift, in get32BitSExtCompare()
3373 S->getI32Imm(1, dl)), 0); in get32BitSExtCompare()
3374 return SDValue(CurDAG->getMachineNode(PPC::NEG, dl, MVT::i32, Xori), 0); in get32BitSExtCompare()
3380 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt); in get32BitSExtCompare()
3395 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt); in get32BitSExtCompare()
3401 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, MVT::Glue, in get32BitSExtCompare()
3404 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get32BitSExtCompare()
3405 SUBFNode, S->getI64Imm(1, dl), in get32BitSExtCompare()
3406 S->getI64Imm(63, dl)), 0); in get32BitSExtCompare()
3407 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, Srdi, in get32BitSExtCompare()
3408 S->getI32Imm(-1, dl)), 0); in get32BitSExtCompare()
3415 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt); in get32BitSExtCompare()
3423 SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, LHS), 0); in get32BitSExtCompare()
3424 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, Neg, in get32BitSExtCompare()
3425 S->getI64Imm(63, dl)), 0); in get32BitSExtCompare()
3442 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt); in get32BitSExtCompare()
3445 return SDValue(CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, LHS, in get32BitSExtCompare()
3446 S->getI32Imm(31, dl)), 0); in get32BitSExtCompare()
3454 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0); in get32BitSExtCompare()
3455 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get32BitSExtCompare()
3456 SUBFNode, S->getI64Imm(63, dl)), 0); in get32BitSExtCompare()
3470 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, LHS, RHS), 0); in get32BitSExtCompare()
3472 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Subtract, in get32BitSExtCompare()
3473 S->getI32Imm(1, dl), S->getI32Imm(63,dl)), in get32BitSExtCompare()
3475 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, Shift, in get32BitSExtCompare()
3476 S->getI32Imm(-1, dl)), 0); in get32BitSExtCompare()
3490 SDValue(CurDAG->getMachineNode(PPC::SUBF8, dl, MVT::i64, RHS, LHS), 0); in get32BitSExtCompare()
3491 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get32BitSExtCompare()
3492 Subtract, S->getI64Imm(63, dl)), 0); in get32BitSExtCompare()
3502 int64_t RHSValue, SDLoc dl) { in get64BitZExtCompare() argument
3515 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0); in get64BitZExtCompare()
3517 SDValue(CurDAG->getMachineNode(PPC::CNTLZD, dl, MVT::i64, Xor), 0); in get64BitZExtCompare()
3518 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Clz, in get64BitZExtCompare()
3519 S->getI64Imm(58, dl), in get64BitZExtCompare()
3520 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3528 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0); in get64BitZExtCompare()
3530 SDValue(CurDAG->getMachineNode(PPC::ADDIC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3531 Xor, S->getI32Imm(~0U, dl)), 0); in get64BitZExtCompare()
3532 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, AC, in get64BitZExtCompare()
3541 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt); in get64BitZExtCompare()
3553 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt); in get64BitZExtCompare()
3555 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS, in get64BitZExtCompare()
3556 S->getI64Imm(1, dl), in get64BitZExtCompare()
3557 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3559 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, RHS, in get64BitZExtCompare()
3560 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3562 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3564 return SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3573 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GEZExt); in get64BitZExtCompare()
3576 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS, in get64BitZExtCompare()
3577 S->getI64Imm(~0ULL, dl)), 0); in get64BitZExtCompare()
3579 SDValue(CurDAG->getMachineNode(PPC::NOR8, dl, MVT::i64, Addi, LHS), 0); in get64BitZExtCompare()
3580 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, Nor, in get64BitZExtCompare()
3581 S->getI64Imm(1, dl), in get64BitZExtCompare()
3582 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3596 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LEZExt); in get64BitZExtCompare()
3598 return SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS, in get64BitZExtCompare()
3599 S->getI64Imm(1, dl), in get64BitZExtCompare()
3600 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3602 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get64BitZExtCompare()
3603 LHS, S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3605 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get64BitZExtCompare()
3606 RHS, S->getI64Imm(1, dl), in get64BitZExtCompare()
3607 S->getI64Imm(63, dl)), 0); in get64BitZExtCompare()
3609 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3612 SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3614 return SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, in get64BitZExtCompare()
3615 ADDE8Node, S->getI64Imm(1, dl)), 0); in get64BitZExtCompare()
3626 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3629 SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3631 return SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, in get64BitZExtCompare()
3632 SUBFE8Node, S->getI64Imm(1, dl)), 0); in get64BitZExtCompare()
3643 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitZExtCompare()
3646 SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, in get64BitZExtCompare()
3648 return SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, in get64BitZExtCompare()
3659 int64_t RHSValue, SDLoc dl) { in get64BitSExtCompare() argument
3674 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0); in get64BitSExtCompare()
3676 SDValue(CurDAG->getMachineNode(PPC::ADDIC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3677 AddInput, S->getI32Imm(~0U, dl)), 0); in get64BitSExtCompare()
3678 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, Addic, in get64BitSExtCompare()
3687 SDValue(CurDAG->getMachineNode(PPC::XOR8, dl, MVT::i64, LHS, RHS), 0); in get64BitSExtCompare()
3689 SDValue(CurDAG->getMachineNode(PPC::SUBFIC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3690 Xor, S->getI32Imm(0, dl)), 0); in get64BitSExtCompare()
3691 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, SC, in get64BitSExtCompare()
3700 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt); in get64BitSExtCompare()
3712 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt); in get64BitSExtCompare()
3714 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, RHS, in get64BitSExtCompare()
3715 S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3717 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, LHS, in get64BitSExtCompare()
3718 S->getI64Imm(1, dl), in get64BitSExtCompare()
3719 S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3721 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3724 SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3726 return SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, Adde), 0); in get64BitSExtCompare()
3734 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::GESExt); in get64BitSExtCompare()
3737 SDValue(CurDAG->getMachineNode(PPC::ADDI8, dl, MVT::i64, LHS, in get64BitSExtCompare()
3738 S->getI64Imm(-1, dl)), 0); in get64BitSExtCompare()
3740 SDValue(CurDAG->getMachineNode(PPC::NOR8, dl, MVT::i64, Add, LHS), 0); in get64BitSExtCompare()
3741 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, Nor, in get64BitSExtCompare()
3742 S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3756 return getCompoundZeroComparisonInGPR(LHS, dl, ZeroCompare::LESExt); in get64BitSExtCompare()
3758 return SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, LHS, in get64BitSExtCompare()
3759 S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3762 SDValue(CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, in get64BitSExtCompare()
3763 LHS, S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3765 SDValue(CurDAG->getMachineNode(PPC::RLDICL, dl, MVT::i64, in get64BitSExtCompare()
3766 RHS, S->getI64Imm(1, dl), in get64BitSExtCompare()
3767 S->getI64Imm(63, dl)), 0); in get64BitSExtCompare()
3769 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3772 SDValue(CurDAG->getMachineNode(PPC::ADDE8, dl, MVT::i64, in get64BitSExtCompare()
3775 SDValue(CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, in get64BitSExtCompare()
3776 ADDE8Node, S->getI64Imm(1, dl)), 0); in get64BitSExtCompare()
3777 return SDValue(CurDAG->getMachineNode(PPC::NEG8, dl, MVT::i64, in get64BitSExtCompare()
3789 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3792 SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, MVT::Glue, LHS, in get64BitSExtCompare()
3794 return SDValue(CurDAG->getMachineNode(PPC::NOR8, dl, MVT::i64, in get64BitSExtCompare()
3806 SDValue(CurDAG->getMachineNode(PPC::SUBFC8, dl, MVT::i64, MVT::Glue, in get64BitSExtCompare()
3808 return SDValue(CurDAG->getMachineNode(PPC::SUBFE8, dl, MVT::i64, in get64BitSExtCompare()
3870 SDLoc dl(Compare); in getSETCCInGPR() local
3877 return get32BitSExtCompare(LHS, RHS, CC, RHSValue, dl); in getSETCCInGPR()
3879 return get32BitZExtCompare(LHS, RHS, CC, RHSValue, dl); in getSETCCInGPR()
3881 return get64BitSExtCompare(LHS, RHS, CC, RHSValue, dl); in getSETCCInGPR()
3882 return get64BitZExtCompare(LHS, RHS, CC, RHSValue, dl); in getSETCCInGPR()
3951 const SDLoc &dl, SDValue Chain) { in SelectCC() argument
3961 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, LHS, in SelectCC()
3962 getI32Imm(Imm & 0xFFFF, dl)), in SelectCC()
3966 return SDValue(CurDAG->getMachineNode(PPC::CMPWI, dl, MVT::i32, LHS, in SelectCC()
3967 getI32Imm(Imm & 0xFFFF, dl)), in SelectCC()
3979 SDValue Xor(CurDAG->getMachineNode(PPC::XORIS, dl, MVT::i32, LHS, in SelectCC()
3980 getI32Imm(Imm >> 16, dl)), 0); in SelectCC()
3981 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, Xor, in SelectCC()
3982 getI32Imm(Imm & 0xFFFF, dl)), 0); in SelectCC()
3987 return SDValue(CurDAG->getMachineNode(PPC::CMPLWI, dl, MVT::i32, LHS, in SelectCC()
3988 getI32Imm(Imm & 0xFFFF, dl)), 0); in SelectCC()
3993 return SDValue(CurDAG->getMachineNode(PPC::CMPWI, dl, MVT::i32, LHS, in SelectCC()
3995 dl)), in SelectCC()
4005 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, LHS, in SelectCC()
4006 getI32Imm(Imm & 0xFFFF, dl)), in SelectCC()
4010 return SDValue(CurDAG->getMachineNode(PPC::CMPDI, dl, MVT::i64, LHS, in SelectCC()
4011 getI32Imm(Imm & 0xFFFF, dl)), in SelectCC()
4024 SDValue Xor(CurDAG->getMachineNode(PPC::XORIS8, dl, MVT::i64, LHS, in SelectCC()
4025 getI64Imm(Imm >> 16, dl)), 0); in SelectCC()
4026 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, Xor, in SelectCC()
4027 getI64Imm(Imm & 0xFFFF, dl)), in SelectCC()
4034 return SDValue(CurDAG->getMachineNode(PPC::CMPLDI, dl, MVT::i64, LHS, in SelectCC()
4035 getI64Imm(Imm & 0xFFFF, dl)), 0); in SelectCC()
4040 return SDValue(CurDAG->getMachineNode(PPC::CMPDI, dl, MVT::i64, LHS, in SelectCC()
4041 getI64Imm(SImm & 0xFFFF, dl)), in SelectCC()
4106 CurDAG->getMachineNode(Opc, dl, MVT::i32, MVT::Other, LHS, RHS, Chain), in SelectCC()
4109 return SDValue(CurDAG->getMachineNode(Opc, dl, MVT::i32, LHS, RHS), 0); in SelectCC()
4301 SDLoc dl(N); in trySETCC() local
4323 Op = SDValue(CurDAG->getMachineNode(PPC::CNTLZW, dl, MVT::i32, Op), 0); in trySETCC()
4324 SDValue Ops[] = { Op, getI32Imm(27, dl), getI32Imm(5, dl), in trySETCC()
4325 getI32Imm(31, dl) }; in trySETCC()
4332 SDValue(CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in trySETCC()
4333 Op, getI32Imm(~0U, dl)), 0); in trySETCC()
4338 SDValue Ops[] = { Op, getI32Imm(1, dl), getI32Imm(31, dl), in trySETCC()
4339 getI32Imm(31, dl) }; in trySETCC()
4345 SDValue(CurDAG->getMachineNode(PPC::NEG, dl, MVT::i32, Op), 0); in trySETCC()
4346 T = SDValue(CurDAG->getMachineNode(PPC::ANDC, dl, MVT::i32, T, Op), 0); in trySETCC()
4347 SDValue Ops[] = { T, getI32Imm(1, dl), getI32Imm(31, dl), in trySETCC()
4348 getI32Imm(31, dl) }; in trySETCC()
4359 Op = SDValue(CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in trySETCC()
4360 Op, getI32Imm(1, dl)), 0); in trySETCC()
4362 SDValue(CurDAG->getMachineNode(PPC::LI, dl, in trySETCC()
4364 getI32Imm(0, dl)), in trySETCC()
4369 Op = SDValue(CurDAG->getMachineNode(PPC::NOR, dl, MVT::i32, Op, Op), 0); in trySETCC()
4370 SDNode *AD = CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in trySETCC()
4371 Op, getI32Imm(~0U, dl)); in trySETCC()
4377 SDValue AD = SDValue(CurDAG->getMachineNode(PPC::ADDI, dl, MVT::i32, Op, in trySETCC()
4378 getI32Imm(1, dl)), 0); in trySETCC()
4379 SDValue AN = SDValue(CurDAG->getMachineNode(PPC::AND, dl, MVT::i32, AD, in trySETCC()
4381 SDValue Ops[] = { AN, getI32Imm(1, dl), getI32Imm(31, dl), in trySETCC()
4382 getI32Imm(31, dl) }; in trySETCC()
4387 SDValue Ops[] = { Op, getI32Imm(1, dl), getI32Imm(31, dl), in trySETCC()
4388 getI32Imm(31, dl) }; in trySETCC()
4389 Op = SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0); in trySETCC()
4390 CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Op, getI32Imm(1, dl)); in trySETCC()
4412 SDValue VCmp(CurDAG->getMachineNode(VCmpInst, dl, ResVT, LHS, RHS), 0); in trySETCC()
4427 SDValue CCReg = SelectCC(LHS, RHS, CC, dl, Chain); in trySETCC()
4442 CCReg = CurDAG->getCopyToReg(CurDAG->getEntryNode(), dl, CR7Reg, CCReg, in trySETCC()
4445 IntCR = SDValue(CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, CR7Reg, in trySETCC()
4448 SDValue Ops[] = { IntCR, getI32Imm((32 - (3 - Idx)) & 31, dl), in trySETCC()
4449 getI32Imm(31, dl), getI32Imm(31, dl) }; in trySETCC()
4457 SDValue(CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0); in trySETCC()
4458 CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Tmp, getI32Imm(1, dl)); in trySETCC()
4712 SDLoc dl(N); in tryFoldSWTestBRCC() local
4713 SDValue Ops[] = {getI32Imm(PCC, dl), CmpLHS.getOperand(0), N->getOperand(4), in tryFoldSWTestBRCC()
4727 SDLoc dl(N); in tryAsSingleRLWINM() local
4734 SDValue Ops[] = {Val, getI32Imm(SH, dl), getI32Imm(MB, dl), in tryAsSingleRLWINM()
4735 getI32Imm(ME, dl)}; in tryAsSingleRLWINM()
4743 SDValue Ops[] = {Val, getI32Imm(0, dl), getI32Imm(MB, dl), in tryAsSingleRLWINM()
4744 getI32Imm(ME, dl)}; in tryAsSingleRLWINM()
4774 SDLoc dl(N); in tryAsSingleRLWINM8() local
4775 SDValue Ops[] = {N->getOperand(0), getI64Imm(0, dl), getI64Imm(MB - 32, dl), in tryAsSingleRLWINM8()
4776 getI64Imm(ME - 32, dl)}; in tryAsSingleRLWINM8()
4866 SDLoc dl(N); in tryAsSingleRLWIMI() local
4867 SDValue Ops[] = {Val.getOperand(0), Val.getOperand(1), getI32Imm(0, dl), in tryAsSingleRLWIMI()
4868 getI32Imm(MB, dl), getI32Imm(ME, dl)}; in tryAsSingleRLWIMI()
4869 ReplaceNode(N, CurDAG->getMachineNode(PPC::RLWIMI, dl, MVT::i32, Ops)); in tryAsSingleRLWIMI()
4887 SDLoc dl(N); in tryAsSingleRLDICL() local
4895 auto ImDef = CurDAG->getMachineNode(PPC::IMPLICIT_DEF, dl, ResultType); in tryAsSingleRLDICL()
4898 Val = SDValue(CurDAG->getMachineNode(PPC::INSERT_SUBREG, dl, ResultType, in tryAsSingleRLDICL()
4900 getI32Imm(1, dl)), in tryAsSingleRLDICL()
4918 SDValue Ops[] = {Val, getI32Imm(SH, dl), getI32Imm(MB, dl)}; in tryAsSingleRLDICL()
4935 SDLoc dl(N); in tryAsSingleRLDICR() local
4936 SDValue Ops[] = {N->getOperand(0), getI32Imm(SH, dl), getI32Imm(MB, dl)}; in tryAsSingleRLDICR()
4969 SDLoc dl(N); in Select() local
5019 Ops[2] = getI32Imm(int(SImmOperand3) & 0xFFFF, dl); in Select()
5035 Ops[0] = getI32Imm(TO, dl); in Select()
5037 Ops[2] = getI32Imm(int(SImmOperand2) & 0xFFFF, dl); in Select()
5105 CurDAG->getTargetConstant(0, dl, MVT::i32)}; in Select()
5106 SDValue BCDOp = SDValue(CurDAG->getMachineNode(Opcode, dl, VTs, Ops), 0); in Select()
5111 SDValue SubRegIdx = CurDAG->getTargetConstant(SubReg, dl, MVT::i32); in Select()
5113 CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG, dl, MVT::i1, in Select()
5120 SDValue(CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, CR6Reg, in Select()
5123 SDValue Ops[] = {Move, getI32Imm((32 - (4 + ShiftVal)) & 31, dl), in Select()
5124 getI32Imm(31, dl), getI32Imm(31, dl)}; in Select()
5129 CurDAG->getMachineNode(PPC::RLWINM, dl, MVT::i32, Ops), 0); in Select()
5130 CurDAG->SelectNodeTo(N, PPC::XORI, MVT::i32, Shift, getI32Imm(1, dl)); in Select()
5161 SDValue(CurDAG->getMachineNode(Opcode, dl, VTs, N->getOperand(2)), 0); in Select()
5164 SDValue SubRegIdx = CurDAG->getTargetConstant(PPC::sub_eq, dl, MVT::i32); in Select()
5167 CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG, dl, MVT::i1, in Select()
5222 ReplaceNode(N, CurDAG->getMachineNode(PPC::MFOCRF, dl, MVT::i32, in Select()
5228 ReplaceNode(N, CurDAG->getMachineNode(PPC::ReadTB, dl, MVT::i32, MVT::i32, in Select()
5236 getConstantIntValue(), dl, in Select()
5240 CurDAG->getMachineNode(PPC::SRADI, dl, MVT::i64, MVT::Glue, in Select()
5249 CurDAG->getMachineNode(PPC::SRAWI, dl, MVT::i32, MVT::Glue, in Select()
5315 Opcode, dl, LD->getValueType(0), in Select()
5353 Opcode, dl, LD->getValueType(0), in Select()
5402 SDNode *Lo = CurDAG->getMachineNode(PPC::ORI8, dl, MVT::i64, in Select()
5404 getI16Imm(ImmLo, dl)); in Select()
5405 SDValue Ops1[] = { SDValue(Lo, 0), getI16Imm(ImmHi, dl)}; in Select()
5425 SDNode *Lo = CurDAG->getMachineNode(PPC::XORI8, dl, MVT::i64, in Select()
5427 getI16Imm(ImmLo, dl)); in Select()
5428 SDValue Ops1[] = { SDValue(Lo, 0), getI16Imm(ImmHi, dl)}; in Select()
5451 getI32Imm(SH, dl), getI32Imm(MB, dl), in Select()
5452 getI32Imm(ME, dl) }; in Select()
5465 getI32Imm(SH, dl), getI32Imm(MB, dl), in Select()
5466 getI32Imm(ME, dl) }; in Select()
5495 SDValue SDImm = CurDAG->getTargetConstant(SextImm, dl, MVT::i64); in Select()
5496 SDNode *MulNode = CurDAG->getMachineNode(PPC::MULLI8, dl, MVT::i64, in Select()
5499 SDValue Ops[] = {SDValue(MulNode, 0), getI32Imm(Shift, dl), in Select()
5500 getI32Imm(63 - Shift, dl)}; in Select()
5504 SDValue SDImm = CurDAG->getTargetConstant(SextImm, dl, MVT::i32); in Select()
5505 SDNode *MulNode = CurDAG->getMachineNode(PPC::MULLI, dl, MVT::i32, in Select()
5508 SDValue Ops[] = {SDValue(MulNode, 0), getI32Imm(Shift, dl), in Select()
5509 getI32Imm(0, dl), getI32Imm(31 - Shift, dl)}; in Select()
5526 SDValue AndI(CurDAG->getMachineNode(Opcode, dl, InVT, MVT::Glue, in Select()
5528 CurDAG->getTargetConstant(1, dl, InVT)), in Select()
5533 dl, MVT::i32); in Select()
5565 SelectCC(LHS, RHS, IsUnCmp ? ISD::SETUGT : ISD::SETGT, dl); in Select()
5584 CurDAG->getMachineNode(PPC::ADDIC, dl, MVT::i32, MVT::Glue, in Select()
5585 N->getOperand(0), getI32Imm(~0U, dl)); in Select()
5591 SDValue CCReg = SelectCC(N->getOperand(0), N->getOperand(1), CC, dl); in Select()
5607 SDValue CCBit = CurDAG->getTargetExtractSubreg(SRI, dl, MVT::i1, CCReg); in Select()
5609 SDValue NotCCBit(CurDAG->getMachineNode(PPC::CRNOR, dl, MVT::i1, in Select()
5614 SDValue CAndT(CurDAG->getMachineNode(PPC::CRAND, dl, MVT::i1, in Select()
5616 SDValue NotCAndF(CurDAG->getMachineNode(PPC::CRAND, dl, MVT::i1, in Select()
5656 getI32Imm(BROpc, dl) }; in Select()
5704 SDValue DMV = CurDAG->getTargetConstant(DM[1] | (DM[0] << 1), dl, in Select()
5733 SDValue Pred = getI32Imm(PCC, dl); in Select()
5768 SDValue BitComp(CurDAG->getMachineNode(Opc, dl, MVT::i1, in Select()
5779 SDValue CondCode = SelectCC(N->getOperand(2), N->getOperand(3), CC, dl); in Select()
5780 SDValue Ops[] = { getI32Imm(PCC, dl), CondCode, in Select()
5791 Chain = SDValue(CurDAG->getMachineNode(Opc, dl, MVT::Glue, Target, in Select()
5815 auto replaceWith = [this, &dl](unsigned OpCode, SDNode *TocEntry, in Select()
5819 SDNode *MN = CurDAG->getMachineNode(OpCode, dl, OperandTy, GA, TocBase); in Select()
5883 isPPC64 ? PPC::ADDIStocHA8 : PPC::ADDIStocHA, dl, VT, TOCbase, GA); in Select()
5889 isPPC64 ? PPC::LDtocL : PPC::LWZtocL, dl, VT, GA, SDValue(Tmp, 0)); in Select()
5897 ReplaceNode(N, CurDAG->getMachineNode(PPC::ADDItocL, dl, MVT::i64, in Select()
5947 SDValue EltVal = getI32Imm(Elt >> 1, dl); in Select()
5948 SDNode *Tmp = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
5950 ReplaceNode(N, CurDAG->getMachineNode(Opc2, dl, VT, TmpVal, TmpVal)); in Select()
5959 SDValue EltVal = getI32Imm(Elt - 16, dl); in Select()
5960 SDNode *Tmp1 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
5961 EltVal = getI32Imm(-16, dl); in Select()
5962 SDNode *Tmp2 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
5963 ReplaceNode(N, CurDAG->getMachineNode(Opc3, dl, VT, SDValue(Tmp1, 0), in Select()
5973 SDValue EltVal = getI32Imm(Elt + 16, dl); in Select()
5974 SDNode *Tmp1 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
5975 EltVal = getI32Imm(-16, dl); in Select()
5976 SDNode *Tmp2 = CurDAG->getMachineNode(Opc1, dl, VT, EltVal); in Select()
5977 ReplaceNode(N, CurDAG->getMachineNode(Opc2, dl, VT, SDValue(Tmp1, 0), in Select()
6025 Subtarget->isLittleEndian() ? PPC::LVSR : PPC::LVSL, dl, Type, ZeroReg, in Select()
6029 CurDAG->getMachineNode(PPC::LVX, dl, MVT::v16i8, MVT::Other, in Select()
6035 PPC::LVX, dl, MVT::v16i8, MVT::Other, in Select()
6037 LIOpcode, dl, MVT::i32, in Select()
6038 CurDAG->getTargetConstant(1, dl, MVT::i8)), in Select()
6047 CurDAG->getMachineNode(PPC::VPERM, dl, Type, SDValue(LoadLow, 0), in Select()
6050 CurDAG->getTargetConstant(SplatElemIndex, dl, MVT::i8), in Select()
6066 SDLoc dl(N); in combineToCMPB() local
6248 LHS = CurDAG->getAnyExtOrTrunc(LHS, dl, VT); in combineToCMPB()
6249 RHS = CurDAG->getAnyExtOrTrunc(RHS, dl, VT); in combineToCMPB()
6252 Res = CurDAG->getNode(PPCISD::CMPB, dl, VT, LHS, RHS); in combineToCMPB()
6257 Res = CurDAG->getNode(ISD::AND, dl, VT, Res, in combineToCMPB()
6258 CurDAG->getConstant(Mask, dl, VT)); in combineToCMPB()
6266 Res = CurDAG->getNode(ISD::AND, dl, VT, Res, in combineToCMPB()
6267 CurDAG->getConstant(Mask ^ Alt, dl, VT)); in combineToCMPB()
6268 Res = CurDAG->getNode(ISD::XOR, dl, VT, Res, in combineToCMPB()
6269 CurDAG->getConstant(Alt, dl, VT)); in combineToCMPB()
6297 SDLoc dl(N); in foldBoolExts() local
6301 CurDAG->getConstant(N->getOpcode() == ISD::SIGN_EXTEND ? -1 : 1, dl, VT); in foldBoolExts()
6302 SDValue ConstFalse = CurDAG->getConstant(0, dl, VT); in foldBoolExts()
6309 auto TryFold = [this, N, User, dl](SDValue Val) { in foldBoolExts()
6314 return CurDAG->FoldConstantArithmetic(User->getOpcode(), dl, in foldBoolExts()
6336 Res = CurDAG->getSelect(dl, User->getValueType(0), Cond, TrueRes, FalseRes); in foldBoolExts()
7466 SDLoc dl(GA); in PeepholePPC64() local
7475 ImmOpnd = CurDAG->getTargetGlobalAddress(GV, dl, MVT::i64, Offset, Flags); in PeepholePPC64()