Lines Matching refs:DL

774 EVT SystemZTargetLowering::getSetCCResultType(const DataLayout &DL,  in getSetCCResultType()  argument
1082 bool SystemZTargetLowering::isLegalAddressingMode(const DataLayout &DL, in isLegalAddressingMode() argument
1476 static SDValue convertLocVTToValVT(SelectionDAG &DAG, const SDLoc &DL, in convertLocVTToValVT() argument
1482 Value = DAG.getNode(ISD::AssertSext, DL, VA.getLocVT(), Value, in convertLocVTToValVT()
1485 Value = DAG.getNode(ISD::AssertZext, DL, VA.getLocVT(), Value, in convertLocVTToValVT()
1489 Value = DAG.getNode(ISD::TRUNCATE, DL, VA.getValVT(), Value); in convertLocVTToValVT()
1495 Value = DAG.getBuildVector(MVT::v2i64, DL, {Value, DAG.getUNDEF(MVT::i64)}); in convertLocVTToValVT()
1496 Value = DAG.getNode(ISD::BITCAST, DL, VA.getValVT(), Value); in convertLocVTToValVT()
1505 static SDValue convertValVTToLocVT(SelectionDAG &DAG, const SDLoc &DL, in convertValVTToLocVT() argument
1509 return DAG.getNode(ISD::SIGN_EXTEND, DL, VA.getLocVT(), Value); in convertValVTToLocVT()
1511 return DAG.getNode(ISD::ZERO_EXTEND, DL, VA.getLocVT(), Value); in convertValVTToLocVT()
1513 return DAG.getNode(ISD::ANY_EXTEND, DL, VA.getLocVT(), Value); in convertValVTToLocVT()
1521 Value = DAG.getNode(ISD::FP_EXTEND, DL, MVT::f64, Value); in convertValVTToLocVT()
1525 Value = DAG.getNode(ISD::BITCAST, DL, BitCastToType, Value); in convertValVTToLocVT()
1529 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VA.getLocVT(), Value, in convertValVTToLocVT()
1530 DAG.getConstant(0, DL, MVT::i32)); in convertValVTToLocVT()
1541 SDLoc DL(In); in lowerI128ToGR128() local
1544 Lo = DAG.getNode(ISD::TRUNCATE, DL, MVT::i64, In); in lowerI128ToGR128()
1545 Hi = DAG.getNode(ISD::TRUNCATE, DL, MVT::i64, in lowerI128ToGR128()
1546 DAG.getNode(ISD::SRL, DL, MVT::i128, In, in lowerI128ToGR128()
1547 DAG.getConstant(64, DL, MVT::i32))); in lowerI128ToGR128()
1549 std::tie(Lo, Hi) = DAG.SplitScalar(In, DL, MVT::i64, MVT::i64); in lowerI128ToGR128()
1554 SDNode *Pair = DAG.getMachineNode(SystemZ::PAIR128, DL, in lowerI128ToGR128()
1560 SDLoc DL(In); in lowerGR128ToI128() local
1562 DL, MVT::i64, In); in lowerGR128ToI128()
1564 DL, MVT::i64, In); in lowerGR128ToI128()
1567 Lo = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::i128, Lo); in lowerGR128ToI128()
1568 Hi = DAG.getNode(ISD::ZERO_EXTEND, DL, MVT::i128, Hi); in lowerGR128ToI128()
1569 Hi = DAG.getNode(ISD::SHL, DL, MVT::i128, Hi, in lowerGR128ToI128()
1570 DAG.getConstant(64, DL, MVT::i32)); in lowerGR128ToI128()
1571 return DAG.getNode(ISD::OR, DL, MVT::i128, Lo, Hi); in lowerGR128ToI128()
1573 return DAG.getNode(ISD::BUILD_PAIR, DL, MVT::i128, Lo, Hi); in lowerGR128ToI128()
1578 SelectionDAG &DAG, const SDLoc &DL, SDValue Val, SDValue *Parts, in splitValueIntoRegisterParts() argument
1591 SelectionDAG &DAG, const SDLoc &DL, const SDValue *Parts, unsigned NumParts, in joinRegisterPartsIntoValue() argument
1604 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &DL, in LowerFormalArguments() argument
1665 ArgValue = DAG.getCopyFromReg(Chain, DL, VReg, LocVT); in LowerFormalArguments()
1686 FIN = DAG.getNode(ISD::ADD, DL, PtrVT, FIN, in LowerFormalArguments()
1687 DAG.getIntPtrConstant(4, DL)); in LowerFormalArguments()
1688 ArgValue = DAG.getLoad(LocVT, DL, Chain, FIN, in LowerFormalArguments()
1695 InVals.push_back(DAG.getLoad(VA.getValVT(), DL, Chain, ArgValue, in LowerFormalArguments()
1704 SDValue Address = DAG.getNode(ISD::ADD, DL, PtrVT, ArgValue, in LowerFormalArguments()
1705 DAG.getIntPtrConstant(PartOffset, DL)); in LowerFormalArguments()
1706 InVals.push_back(DAG.getLoad(PartVA.getValVT(), DL, Chain, Address, in LowerFormalArguments()
1711 InVals.push_back(convertLocVTToValVT(DAG, DL, VA, Chain, ArgValue)); in LowerFormalArguments()
1760 SDValue ArgValue = DAG.getCopyFromReg(Chain, DL, VReg, MVT::f64); in LowerFormalArguments()
1761 MemOps[I] = DAG.getStore(ArgValue.getValue(1), DL, ArgValue, FIN, in LowerFormalArguments()
1765 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, in LowerFormalArguments()
1804 static SDValue getADAEntry(SelectionDAG &DAG, SDValue Val, SDLoc DL, in getADAEntry() argument
1812 SDValue Ofs = DAG.getTargetConstant(Offset, DL, PtrVT); in getADAEntry()
1814 SDValue Result = DAG.getNode(SystemZISD::ADA_ENTRY, DL, PtrVT, Val, Reg, Ofs); in getADAEntry()
1817 PtrVT, DL, DAG.getEntryNode(), Result, MachinePointerInfo(), Align(8), in getADAEntry()
1825 static SDValue getADAEntry(SelectionDAG &DAG, const GlobalValue *GV, SDLoc DL, in getADAEntry() argument
1843 SDValue Val = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0, ADAtype); in getADAEntry()
1845 return getADAEntry(DAG, Val, DL, 0, LoadAddr); in getADAEntry()
1849 SDLoc &DL, SDValue &Chain) { in getzOSCalleeAndADA() argument
1863 ADA = DAG.getCopyFromReg(Chain, DL, ADAvReg, PtrVT); in getzOSCalleeAndADA()
1864 Callee = DAG.getTargetGlobalAddress(G->getGlobal(), DL, PtrVT); in getzOSCalleeAndADA()
1865 Callee = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Callee); in getzOSCalleeAndADA()
1869 G->getGlobal(), DL, PtrVT, 0, SystemZII::MO_ADA_DIRECT_FUNC_DESC); in getzOSCalleeAndADA()
1870 ADA = getADAEntry(DAG, GA, DL, ADADelta); in getzOSCalleeAndADA()
1871 Callee = getADAEntry(DAG, GA, DL, EPADelta); in getzOSCalleeAndADA()
1876 ADA = getADAEntry(DAG, ES, DL, ADADelta); in getzOSCalleeAndADA()
1877 Callee = getADAEntry(DAG, ES, DL, EPADelta); in getzOSCalleeAndADA()
1880 ADA = DAG.getNode(ISD::ADD, DL, PtrVT, Callee, in getzOSCalleeAndADA()
1881 DAG.getConstant(ADADelta, DL, PtrVT)); in getzOSCalleeAndADA()
1882 ADA = DAG.getLoad(PtrVT, DL, DAG.getEntryNode(), ADA, in getzOSCalleeAndADA()
1884 Callee = DAG.getNode(ISD::ADD, DL, PtrVT, Callee, in getzOSCalleeAndADA()
1885 DAG.getConstant(EPADelta, DL, PtrVT)); in getzOSCalleeAndADA()
1886 Callee = DAG.getLoad(PtrVT, DL, DAG.getEntryNode(), Callee, in getzOSCalleeAndADA()
1896 SDLoc &DL = CLI.DL; in LowerCall() local
1929 Chain = DAG.getCALLSEQ_START(Chain, NumBytes, 0, DL); in LowerCall()
1956 DAG.getStore(Chain, DL, ArgValue, SpillSlot, in LowerCall()
1964 SDValue Address = DAG.getNode(ISD::ADD, DL, PtrVT, SpillSlot, in LowerCall()
1965 DAG.getIntPtrConstant(PartOffset, DL)); in LowerCall()
1967 DAG.getStore(Chain, DL, PartValue, Address, in LowerCall()
1975 ArgValue = convertValVTToLocVT(DAG, DL, VA, ArgValue); in LowerCall()
1991 StackPtr = DAG.getCopyFromReg(Chain, DL, in LowerCall()
1997 SDValue Address = DAG.getNode(ISD::ADD, DL, PtrVT, StackPtr, in LowerCall()
1998 DAG.getIntPtrConstant(Offset, DL)); in LowerCall()
2002 DAG.getStore(Chain, DL, ArgValue, Address, MachinePointerInfo())); in LowerCall()
2010 DAG.getNode(ISD::EXTRACT_ELEMENT, DL, MVT::i64, ArgValue, in LowerCall()
2011 DAG.getIntPtrConstant(1, DL)); in LowerCall()
2019 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, MemOpChains); in LowerCall()
2028 bool IsBRASL = getzOSCalleeAndADA(DAG, Callee, ADA, DL, Chain); in LowerCall()
2032 Chain = DAG.getCopyToReg(Chain, DL, CalleeReg, Callee, Glue); in LowerCall()
2040 Callee = DAG.getTargetGlobalAddress(G->getGlobal(), DL, PtrVT); in LowerCall()
2041 Callee = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Callee); in LowerCall()
2044 Callee = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Callee); in LowerCall()
2046 Chain = DAG.getCopyToReg(Chain, DL, SystemZ::R1D, Callee, Glue); in LowerCall()
2054 Chain = DAG.getCopyToReg(Chain, DL, RegsToPass[I].first, in LowerCall()
2083 SDValue Ret = DAG.getNode(SystemZISD::SIBCALL, DL, NodeTys, Ops); in LowerCall()
2087 Chain = DAG.getNode(SystemZISD::CALL, DL, NodeTys, Ops); in LowerCall()
2092 Chain = DAG.getCALLSEQ_END(Chain, NumBytes, 0, Glue, DL); in LowerCall()
2103 SDValue RetValue = DAG.getCopyFromReg(Chain, DL, VA.getLocReg(), in LowerCall()
2110 InVals.push_back(convertLocVTToValVT(DAG, DL, VA, Chain, RetValue)); in LowerCall()
2120 ArrayRef<SDValue> Ops, CallingConv::ID CallConv, bool IsSigned, SDLoc DL, in makeExternalCall() argument
2140 CLI.setDebugLoc(DL) in makeExternalCall()
2171 const SDLoc &DL, SelectionDAG &DAG) const { in LowerReturn() argument
2181 return DAG.getNode(SystemZISD::RET_GLUE, DL, MVT::Other, Chain); in LowerReturn()
2198 RetValue = convertValVTToLocVT(DAG, DL, VA, RetValue); in LowerReturn()
2202 Chain = DAG.getCopyToReg(Chain, DL, Reg, RetValue, Glue); in LowerReturn()
2212 return DAG.getNode(SystemZISD::RET_GLUE, DL, MVT::Other, RetOps); in LowerReturn()
2466 static void adjustZeroCmp(SelectionDAG &DAG, const SDLoc &DL, Comparison &C) { in adjustZeroCmp() argument
2480 C.Op1 = DAG.getConstant(0, DL, C.Op1.getValueType()); in adjustZeroCmp()
2486 static void adjustSubwordCmp(SelectionDAG &DAG, const SDLoc &DL, in adjustSubwordCmp() argument
2557 C.Op1 = DAG.getConstant(Value, DL, MVT::i32); in adjustSubwordCmp()
2645 static void adjustForSubtraction(SelectionDAG &DAG, const SDLoc &DL, in adjustForSubtraction() argument
2660 C.Op1 = DAG.getConstant(0, DL, N->getValueType(0)); in adjustForSubtraction()
2716 static void adjustICmpTruncate(SelectionDAG &DAG, const SDLoc &DL, in adjustICmpTruncate() argument
2730 C.Op1 = DAG.getConstant(0, DL, C.Op0.getValueType()); in adjustICmpTruncate()
2848 static void adjustForTestUnderMask(SelectionDAG &DAG, const SDLoc &DL, in adjustForTestUnderMask() argument
2859 C.Op1 = DAG.getNode(ISD::BITCAST, DL, MVT::v16i8, C.Op0.getOperand(1)); in adjustForTestUnderMask()
2860 C.Op0 = DAG.getNode(ISD::BITCAST, DL, MVT::v16i8, C.Op0.getOperand(0)); in adjustForTestUnderMask()
2952 C.Op1 = DAG.getConstant(MaskVal, DL, C.Op0.getValueType()); in adjustForTestUnderMask()
2958 static void adjustICmp128(SelectionDAG &DAG, const SDLoc &DL, in adjustICmp128() argument
2969 C.Op0 = DAG.getNode(ISD::BITCAST, DL, MVT::v2i64, C.Op0); in adjustICmp128()
2970 C.Op1 = DAG.getNode(ISD::BITCAST, DL, MVT::v2i64, C.Op1); in adjustICmp128()
3005 static void adjustForRedundantAnd(SelectionDAG &DAG, const SDLoc &DL, in adjustForRedundantAnd() argument
3057 ISD::CondCode Cond, const SDLoc &DL, in getCmp() argument
3103 adjustForRedundantAnd(DAG, DL, C); in getCmp()
3104 adjustZeroCmp(DAG, DL, C); in getCmp()
3105 adjustSubwordCmp(DAG, DL, C); in getCmp()
3106 adjustForSubtraction(DAG, DL, C); in getCmp()
3108 adjustICmpTruncate(DAG, DL, C); in getCmp()
3116 adjustForTestUnderMask(DAG, DL, C); in getCmp()
3117 adjustICmp128(DAG, DL, C); in getCmp()
3122 static SDValue emitCmp(SelectionDAG &DAG, const SDLoc &DL, Comparison &C) { in emitCmp() argument
3137 return DAG.getNode(SystemZISD::ICMP, DL, MVT::i32, C.Op0, C.Op1, in emitCmp()
3138 DAG.getTargetConstant(C.ICmpType, DL, MVT::i32)); in emitCmp()
3142 return DAG.getNode(SystemZISD::TM, DL, MVT::i32, C.Op0, C.Op1, in emitCmp()
3143 DAG.getTargetConstant(RegisterOnly, DL, MVT::i32)); in emitCmp()
3147 SDValue Val = DAG.getNode(C.Opcode, DL, VTs, C.Op0, C.Op1); in emitCmp()
3152 return DAG.getNode(C.Opcode, DL, VTs, C.Chain, C.Op0, C.Op1); in emitCmp()
3154 return DAG.getNode(C.Opcode, DL, MVT::i32, C.Op0, C.Op1); in emitCmp()
3160 static void lowerMUL_LOHI32(SelectionDAG &DAG, const SDLoc &DL, unsigned Extend, in lowerMUL_LOHI32() argument
3163 Op0 = DAG.getNode(Extend, DL, MVT::i64, Op0); in lowerMUL_LOHI32()
3164 Op1 = DAG.getNode(Extend, DL, MVT::i64, Op1); in lowerMUL_LOHI32()
3165 SDValue Mul = DAG.getNode(ISD::MUL, DL, MVT::i64, Op0, Op1); in lowerMUL_LOHI32()
3166 Hi = DAG.getNode(ISD::SRL, DL, MVT::i64, Mul, in lowerMUL_LOHI32()
3167 DAG.getConstant(32, DL, MVT::i64)); in lowerMUL_LOHI32()
3168 Hi = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Hi); in lowerMUL_LOHI32()
3169 Lo = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Mul); in lowerMUL_LOHI32()
3176 static void lowerGR128Binary(SelectionDAG &DAG, const SDLoc &DL, EVT VT, in lowerGR128Binary() argument
3179 SDValue Result = DAG.getNode(Opcode, DL, MVT::Untyped, Op0, Op1); in lowerGR128Binary()
3181 Even = DAG.getTargetExtractSubreg(SystemZ::even128(Is32Bit), DL, VT, Result); in lowerGR128Binary()
3182 Odd = DAG.getTargetExtractSubreg(SystemZ::odd128(Is32Bit), DL, VT, Result); in lowerGR128Binary()
3188 static SDValue emitSETCC(SelectionDAG &DAG, const SDLoc &DL, SDValue CCReg, in emitSETCC() argument
3190 SDValue Ops[] = {DAG.getConstant(1, DL, MVT::i32), in emitSETCC()
3191 DAG.getConstant(0, DL, MVT::i32), in emitSETCC()
3192 DAG.getTargetConstant(CCValid, DL, MVT::i32), in emitSETCC()
3193 DAG.getTargetConstant(CCMask, DL, MVT::i32), CCReg}; in emitSETCC()
3194 return DAG.getNode(SystemZISD::SELECT_CCMASK, DL, MVT::i32, Ops); in emitSETCC()
3270 static SDValue expandV4F32ToV2F64(SelectionDAG &DAG, int Start, const SDLoc &DL, in expandV4F32ToV2F64() argument
3273 Op = DAG.getVectorShuffle(MVT::v4f32, DL, Op, DAG.getUNDEF(MVT::v4f32), Mask); in expandV4F32ToV2F64()
3276 return DAG.getNode(SystemZISD::STRICT_VEXTEND, DL, VTs, Chain, Op); in expandV4F32ToV2F64()
3278 return DAG.getNode(SystemZISD::VEXTEND, DL, MVT::v2f64, Op); in expandV4F32ToV2F64()
3284 const SDLoc &DL, EVT VT, in getVectorCmp() argument
3293 SDValue H0 = expandV4F32ToV2F64(DAG, 0, DL, CmpOp0, Chain); in getVectorCmp()
3294 SDValue L0 = expandV4F32ToV2F64(DAG, 2, DL, CmpOp0, Chain); in getVectorCmp()
3295 SDValue H1 = expandV4F32ToV2F64(DAG, 0, DL, CmpOp1, Chain); in getVectorCmp()
3296 SDValue L1 = expandV4F32ToV2F64(DAG, 2, DL, CmpOp1, Chain); in getVectorCmp()
3299 SDValue HRes = DAG.getNode(Opcode, DL, VTs, Chain, H0, H1); in getVectorCmp()
3300 SDValue LRes = DAG.getNode(Opcode, DL, VTs, Chain, L0, L1); in getVectorCmp()
3301 SDValue Res = DAG.getNode(SystemZISD::PACK, DL, VT, HRes, LRes); in getVectorCmp()
3305 SDValue NewChain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Chains); in getVectorCmp()
3307 return DAG.getMergeValues(Ops, DL); in getVectorCmp()
3309 SDValue HRes = DAG.getNode(Opcode, DL, MVT::v2i64, H0, H1); in getVectorCmp()
3310 SDValue LRes = DAG.getNode(Opcode, DL, MVT::v2i64, L0, L1); in getVectorCmp()
3311 return DAG.getNode(SystemZISD::PACK, DL, VT, HRes, LRes); in getVectorCmp()
3315 return DAG.getNode(Opcode, DL, VTs, Chain, CmpOp0, CmpOp1); in getVectorCmp()
3317 return DAG.getNode(Opcode, DL, VT, CmpOp0, CmpOp1); in getVectorCmp()
3325 const SDLoc &DL, EVT VT, in lowerVectorSETCC() argument
3346 DL, VT, CmpOp1, CmpOp0, Chain); in lowerVectorSETCC()
3348 DL, VT, CmpOp0, CmpOp1, Chain); in lowerVectorSETCC()
3349 Cmp = DAG.getNode(ISD::OR, DL, VT, LT, GE); in lowerVectorSETCC()
3351 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, in lowerVectorSETCC()
3363 DL, VT, CmpOp1, CmpOp0, Chain); in lowerVectorSETCC()
3365 DL, VT, CmpOp0, CmpOp1, Chain); in lowerVectorSETCC()
3366 Cmp = DAG.getNode(ISD::OR, DL, VT, LT, GT); in lowerVectorSETCC()
3368 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, in lowerVectorSETCC()
3378 Cmp = getVectorCmp(DAG, Opcode, DL, VT, CmpOp0, CmpOp1, Chain); in lowerVectorSETCC()
3382 Cmp = getVectorCmp(DAG, Opcode, DL, VT, CmpOp1, CmpOp0, Chain); in lowerVectorSETCC()
3392 DAG.getSplatBuildVector(VT, DL, DAG.getConstant(-1, DL, MVT::i64)); in lowerVectorSETCC()
3393 Cmp = DAG.getNode(ISD::XOR, DL, VT, Cmp, Mask); in lowerVectorSETCC()
3397 Cmp = DAG.getMergeValues(Ops, DL); in lowerVectorSETCC()
3407 SDLoc DL(Op); in lowerSETCC() local
3410 return lowerVectorSETCC(DAG, DL, VT, CC, CmpOp0, CmpOp1); in lowerSETCC()
3412 Comparison C(getCmp(DAG, CmpOp0, CmpOp1, CC, DL)); in lowerSETCC()
3413 SDValue CCReg = emitCmp(DAG, DL, C); in lowerSETCC()
3414 return emitSETCC(DAG, DL, CCReg, C.CCValid, C.CCMask); in lowerSETCC()
3424 SDLoc DL(Op); in lowerSTRICT_FSETCC() local
3427 SDValue Res = lowerVectorSETCC(DAG, DL, VT, CC, CmpOp0, CmpOp1, in lowerSTRICT_FSETCC()
3432 Comparison C(getCmp(DAG, CmpOp0, CmpOp1, CC, DL, Chain, IsSignaling)); in lowerSTRICT_FSETCC()
3433 SDValue CCReg = emitCmp(DAG, DL, C); in lowerSTRICT_FSETCC()
3435 SDValue Result = emitSETCC(DAG, DL, CCReg, C.CCValid, C.CCMask); in lowerSTRICT_FSETCC()
3437 return DAG.getMergeValues(Ops, DL); in lowerSTRICT_FSETCC()
3445 SDLoc DL(Op); in lowerBR_CC() local
3447 Comparison C(getCmp(DAG, CmpOp0, CmpOp1, CC, DL)); in lowerBR_CC()
3448 SDValue CCReg = emitCmp(DAG, DL, C); in lowerBR_CC()
3450 SystemZISD::BR_CCMASK, DL, Op.getValueType(), Op.getOperand(0), in lowerBR_CC()
3451 DAG.getTargetConstant(C.CCValid, DL, MVT::i32), in lowerBR_CC()
3452 DAG.getTargetConstant(C.CCMask, DL, MVT::i32), Dest, CCReg); in lowerBR_CC()
3466 static SDValue getAbsolute(SelectionDAG &DAG, const SDLoc &DL, SDValue Op, in getAbsolute() argument
3468 Op = DAG.getNode(ISD::ABS, DL, Op.getValueType(), Op); in getAbsolute()
3470 Op = DAG.getNode(ISD::SUB, DL, Op.getValueType(), in getAbsolute()
3471 DAG.getConstant(0, DL, Op.getValueType()), Op); in getAbsolute()
3482 SDLoc DL(Op); in lowerSELECT_CC() local
3484 Comparison C(getCmp(DAG, CmpOp0, CmpOp1, CC, DL)); in lowerSELECT_CC()
3495 return getAbsolute(DAG, DL, TrueOp, C.CCMask & SystemZ::CCMASK_CMP_LT); in lowerSELECT_CC()
3497 return getAbsolute(DAG, DL, FalseOp, C.CCMask & SystemZ::CCMASK_CMP_GT); in lowerSELECT_CC()
3500 SDValue CCReg = emitCmp(DAG, DL, C); in lowerSELECT_CC()
3502 DAG.getTargetConstant(C.CCValid, DL, MVT::i32), in lowerSELECT_CC()
3503 DAG.getTargetConstant(C.CCMask, DL, MVT::i32), CCReg}; in lowerSELECT_CC()
3505 return DAG.getNode(SystemZISD::SELECT_CCMASK, DL, Op.getValueType(), Ops); in lowerSELECT_CC()
3510 SDLoc DL(Node); in lowerGlobalAddress() local
3521 Result = DAG.getTargetGlobalAddress(GV, DL, PtrVT, Anchor); in lowerGlobalAddress()
3522 Result = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Result); in lowerGlobalAddress()
3529 DAG.getTargetGlobalAddress(GV, DL, PtrVT, Anchor + Offset); in lowerGlobalAddress()
3530 Result = DAG.getNode(SystemZISD::PCREL_OFFSET, DL, PtrVT, Full, Result); in lowerGlobalAddress()
3536 Result = DAG.getTargetGlobalAddress(GV, DL, PtrVT); in lowerGlobalAddress()
3537 Result = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Result); in lowerGlobalAddress()
3540 Result = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0, SystemZII::MO_GOT); in lowerGlobalAddress()
3541 Result = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Result); in lowerGlobalAddress()
3542 Result = DAG.getLoad(PtrVT, DL, DAG.getEntryNode(), Result, in lowerGlobalAddress()
3545 Result = getADAEntry(DAG, GV, DL, PtrVT); in lowerGlobalAddress()
3552 Result = DAG.getNode(ISD::ADD, DL, PtrVT, Result, in lowerGlobalAddress()
3553 DAG.getConstant(Offset, DL, PtrVT)); in lowerGlobalAddress()
3562 SDLoc DL(Node); in lowerTLSGetOffset() local
3573 Chain = DAG.getCopyToReg(Chain, DL, SystemZ::R12D, GOT, Glue); in lowerTLSGetOffset()
3575 Chain = DAG.getCopyToReg(Chain, DL, SystemZ::R2D, GOTOffset, Glue); in lowerTLSGetOffset()
3581 Ops.push_back(DAG.getTargetGlobalAddress(Node->getGlobal(), DL, in lowerTLSGetOffset()
3602 Chain = DAG.getNode(Opcode, DL, NodeTys, Ops); in lowerTLSGetOffset()
3606 return DAG.getCopyFromReg(Chain, DL, SystemZ::R2D, PtrVT, Glue); in lowerTLSGetOffset()
3609 SDValue SystemZTargetLowering::lowerThreadPointer(const SDLoc &DL, in lowerThreadPointer() argument
3615 SDValue TPHi = DAG.getCopyFromReg(Chain, DL, SystemZ::A0, MVT::i32); in lowerThreadPointer()
3616 TPHi = DAG.getNode(ISD::ANY_EXTEND, DL, PtrVT, TPHi); in lowerThreadPointer()
3619 SDValue TPLo = DAG.getCopyFromReg(Chain, DL, SystemZ::A1, MVT::i32); in lowerThreadPointer()
3620 TPLo = DAG.getNode(ISD::ZERO_EXTEND, DL, PtrVT, TPLo); in lowerThreadPointer()
3623 SDValue TPHiShifted = DAG.getNode(ISD::SHL, DL, PtrVT, TPHi, in lowerThreadPointer()
3624 DAG.getConstant(32, DL, PtrVT)); in lowerThreadPointer()
3625 return DAG.getNode(ISD::OR, DL, PtrVT, TPHiShifted, TPLo); in lowerThreadPointer()
3632 SDLoc DL(Node); in lowerGlobalTLSAddress() local
3641 SDValue TP = lowerThreadPointer(DL, DAG); in lowerGlobalTLSAddress()
3653 PtrVT, DL, DAG.getEntryNode(), Offset, in lowerGlobalTLSAddress()
3668 PtrVT, DL, DAG.getEntryNode(), Offset, in lowerGlobalTLSAddress()
3686 PtrVT, DL, DAG.getEntryNode(), DTPOffset, in lowerGlobalTLSAddress()
3689 Offset = DAG.getNode(ISD::ADD, DL, PtrVT, Offset, DTPOffset); in lowerGlobalTLSAddress()
3695 Offset = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0, in lowerGlobalTLSAddress()
3697 Offset = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Offset); in lowerGlobalTLSAddress()
3699 DAG.getLoad(PtrVT, DL, DAG.getEntryNode(), Offset, in lowerGlobalTLSAddress()
3711 PtrVT, DL, DAG.getEntryNode(), Offset, in lowerGlobalTLSAddress()
3718 return DAG.getNode(ISD::ADD, DL, PtrVT, TP, Offset); in lowerGlobalTLSAddress()
3723 SDLoc DL(Node); in lowerBlockAddress() local
3729 Result = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Result); in lowerBlockAddress()
3735 SDLoc DL(JT); in lowerJumpTable() local
3740 return DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Result); in lowerJumpTable()
3745 SDLoc DL(CP); in lowerConstantPool() local
3757 return DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Result); in lowerConstantPool()
3767 SDLoc DL(Op); in lowerFRAMEADDR() local
3783 SDValue Offset = DAG.getConstant(TFL->getBackchainOffset(MF), DL, PtrVT); in lowerFRAMEADDR()
3785 BackChain = DAG.getLoad(PtrVT, DL, DAG.getEntryNode(), BackChain, in lowerFRAMEADDR()
3787 BackChain = DAG.getNode(ISD::ADD, DL, PtrVT, BackChain, Offset); in lowerFRAMEADDR()
3803 SDLoc DL(Op); in lowerRETURNADDR() local
3815 SDValue Ptr = DAG.getNode(ISD::ADD, DL, PtrVT, FrameAddr, in lowerRETURNADDR()
3816 DAG.getConstant(Offset, DL, PtrVT)); in lowerRETURNADDR()
3817 return DAG.getLoad(PtrVT, DL, DAG.getEntryNode(), Ptr, in lowerRETURNADDR()
3826 return DAG.getCopyFromReg(DAG.getEntryNode(), DL, LinkReg, PtrVT); in lowerRETURNADDR()
3831 SDLoc DL(Op); in lowerBITCAST() local
3841 SDValue NewLoad = DAG.getLoad(ResVT, DL, LoadN->getChain(), in lowerBITCAST()
3851 SDNode *U64 = DAG.getMachineNode(TargetOpcode::IMPLICIT_DEF, DL, in lowerBITCAST()
3853 In64 = DAG.getTargetInsertSubreg(SystemZ::subreg_h32, DL, in lowerBITCAST()
3856 In64 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, In); in lowerBITCAST()
3857 In64 = DAG.getNode(ISD::SHL, DL, MVT::i64, In64, in lowerBITCAST()
3858 DAG.getConstant(32, DL, MVT::i64)); in lowerBITCAST()
3860 SDValue Out64 = DAG.getNode(ISD::BITCAST, DL, MVT::f64, In64); in lowerBITCAST()
3862 DL, MVT::f32, Out64); in lowerBITCAST()
3865 SDNode *U64 = DAG.getMachineNode(TargetOpcode::IMPLICIT_DEF, DL, MVT::f64); in lowerBITCAST()
3866 SDValue In64 = DAG.getTargetInsertSubreg(SystemZ::subreg_h32, DL, in lowerBITCAST()
3868 SDValue Out64 = DAG.getNode(ISD::BITCAST, DL, MVT::i64, In64); in lowerBITCAST()
3870 return DAG.getTargetExtractSubreg(SystemZ::subreg_h32, DL, in lowerBITCAST()
3872 SDValue Shift = DAG.getNode(ISD::SRL, DL, MVT::i64, Out64, in lowerBITCAST()
3873 DAG.getConstant(32, DL, MVT::i64)); in lowerBITCAST()
3874 return DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Shift); in lowerBITCAST()
3894 SDLoc DL(Op); in lowerVASTART_XPLINK() local
3901 return DAG.getStore(Op.getOperand(0), DL, FR, Op.getOperand(1), in lowerVASTART_XPLINK()
3915 SDLoc DL(Op); in lowerVASTART_ELF() local
3920 DAG.getConstant(FuncInfo->getVarArgsFirstGPR(), DL, PtrVT), in lowerVASTART_ELF()
3921 DAG.getConstant(FuncInfo->getVarArgsFirstFPR(), DL, PtrVT), in lowerVASTART_ELF()
3932 FieldAddr = DAG.getNode(ISD::ADD, DL, PtrVT, FieldAddr, in lowerVASTART_ELF()
3933 DAG.getIntPtrConstant(Offset, DL)); in lowerVASTART_ELF()
3934 MemOps[I] = DAG.getStore(Chain, DL, Fields[I], FieldAddr, in lowerVASTART_ELF()
3938 return DAG.getNode(ISD::TokenFactor, DL, MVT::Other, MemOps); in lowerVASTART_ELF()
3948 SDLoc DL(Op); in lowerVACOPY() local
3952 return DAG.getMemcpy(Chain, DL, DstPtr, SrcPtr, DAG.getIntPtrConstant(Sz, DL), in lowerVACOPY()
3976 SDLoc DL(Op); in lowerDYNAMIC_STACKALLOC_XPLINK() local
3991 NeededSpace = DAG.getNode(ISD::ADD, DL, PtrVT, NeededSpace, in lowerDYNAMIC_STACKALLOC_XPLINK()
3992 DAG.getConstant(ExtraAlignSpace, DL, PtrVT)); in lowerDYNAMIC_STACKALLOC_XPLINK()
4000 CallingConv::C, IsSigned, DL, DoesNotReturn, in lowerDYNAMIC_STACKALLOC_XPLINK()
4011 SDValue NewSPRegNode = DAG.getCopyFromReg(Chain, DL, SPReg, PtrVT, Glue); in lowerDYNAMIC_STACKALLOC_XPLINK()
4015 SDValue ArgAdjust = DAG.getNode(SystemZISD::ADJDYNALLOC, DL, PtrMVT); in lowerDYNAMIC_STACKALLOC_XPLINK()
4016 SDValue Result = DAG.getNode(ISD::ADD, DL, PtrMVT, NewSPRegNode, ArgAdjust); in lowerDYNAMIC_STACKALLOC_XPLINK()
4020 Result = DAG.getNode(ISD::ADD, DL, PtrVT, Result, in lowerDYNAMIC_STACKALLOC_XPLINK()
4021 DAG.getConstant(ExtraAlignSpace, DL, PtrVT)); in lowerDYNAMIC_STACKALLOC_XPLINK()
4022 Result = DAG.getNode(ISD::AND, DL, PtrVT, Result, in lowerDYNAMIC_STACKALLOC_XPLINK()
4023 DAG.getConstant(~(RequiredAlign - 1), DL, PtrVT)); in lowerDYNAMIC_STACKALLOC_XPLINK()
4027 return DAG.getMergeValues(Ops, DL); in lowerDYNAMIC_STACKALLOC_XPLINK()
4041 SDLoc DL(Op); in lowerDYNAMIC_STACKALLOC_ELF() local
4055 SDValue OldSP = DAG.getCopyFromReg(Chain, DL, SPReg, MVT::i64); in lowerDYNAMIC_STACKALLOC_ELF()
4060 Backchain = DAG.getLoad(MVT::i64, DL, Chain, getBackchainAddress(OldSP, DAG), in lowerDYNAMIC_STACKALLOC_ELF()
4065 NeededSpace = DAG.getNode(ISD::ADD, DL, MVT::i64, NeededSpace, in lowerDYNAMIC_STACKALLOC_ELF()
4066 DAG.getConstant(ExtraAlignSpace, DL, MVT::i64)); in lowerDYNAMIC_STACKALLOC_ELF()
4071 NewSP = DAG.getNode(SystemZISD::PROBED_ALLOCA, DL, in lowerDYNAMIC_STACKALLOC_ELF()
4076 NewSP = DAG.getNode(ISD::SUB, DL, MVT::i64, OldSP, NeededSpace); in lowerDYNAMIC_STACKALLOC_ELF()
4078 Chain = DAG.getCopyToReg(Chain, DL, SPReg, NewSP); in lowerDYNAMIC_STACKALLOC_ELF()
4084 SDValue ArgAdjust = DAG.getNode(SystemZISD::ADJDYNALLOC, DL, MVT::i64); in lowerDYNAMIC_STACKALLOC_ELF()
4085 SDValue Result = DAG.getNode(ISD::ADD, DL, MVT::i64, NewSP, ArgAdjust); in lowerDYNAMIC_STACKALLOC_ELF()
4090 DAG.getNode(ISD::ADD, DL, MVT::i64, Result, in lowerDYNAMIC_STACKALLOC_ELF()
4091 DAG.getConstant(ExtraAlignSpace, DL, MVT::i64)); in lowerDYNAMIC_STACKALLOC_ELF()
4093 DAG.getNode(ISD::AND, DL, MVT::i64, Result, in lowerDYNAMIC_STACKALLOC_ELF()
4094 DAG.getConstant(~(RequiredAlign - 1), DL, MVT::i64)); in lowerDYNAMIC_STACKALLOC_ELF()
4098 Chain = DAG.getStore(Chain, DL, Backchain, getBackchainAddress(NewSP, DAG), in lowerDYNAMIC_STACKALLOC_ELF()
4102 return DAG.getMergeValues(Ops, DL); in lowerDYNAMIC_STACKALLOC_ELF()
4107 SDLoc DL(Op); in lowerGET_DYNAMIC_AREA_OFFSET() local
4109 return DAG.getNode(SystemZISD::ADJDYNALLOC, DL, MVT::i64); in lowerGET_DYNAMIC_AREA_OFFSET()
4115 SDLoc DL(Op); in lowerSMUL_LOHI() local
4120 lowerMUL_LOHI32(DAG, DL, ISD::SIGN_EXTEND, Op.getOperand(0), in lowerSMUL_LOHI()
4126 lowerGR128Binary(DAG, DL, VT, SystemZISD::SMUL_LOHI, in lowerSMUL_LOHI()
4142 SDValue C63 = DAG.getConstant(63, DL, MVT::i64); in lowerSMUL_LOHI()
4145 SDValue LH = DAG.getNode(ISD::SRA, DL, VT, LL, C63); in lowerSMUL_LOHI()
4146 SDValue RH = DAG.getNode(ISD::SRA, DL, VT, RL, C63); in lowerSMUL_LOHI()
4150 lowerGR128Binary(DAG, DL, VT, SystemZISD::UMUL_LOHI, in lowerSMUL_LOHI()
4152 SDValue NegLLTimesRH = DAG.getNode(ISD::AND, DL, VT, LL, RH); in lowerSMUL_LOHI()
4153 SDValue NegLHTimesRL = DAG.getNode(ISD::AND, DL, VT, LH, RL); in lowerSMUL_LOHI()
4154 SDValue NegSum = DAG.getNode(ISD::ADD, DL, VT, NegLLTimesRH, NegLHTimesRL); in lowerSMUL_LOHI()
4155 Ops[1] = DAG.getNode(ISD::SUB, DL, VT, Ops[1], NegSum); in lowerSMUL_LOHI()
4157 return DAG.getMergeValues(Ops, DL); in lowerSMUL_LOHI()
4163 SDLoc DL(Op); in lowerUMUL_LOHI() local
4168 lowerMUL_LOHI32(DAG, DL, ISD::ZERO_EXTEND, Op.getOperand(0), in lowerUMUL_LOHI()
4174 lowerGR128Binary(DAG, DL, VT, SystemZISD::UMUL_LOHI, in lowerUMUL_LOHI()
4176 return DAG.getMergeValues(Ops, DL); in lowerUMUL_LOHI()
4184 SDLoc DL(Op); in lowerSDIVREM() local
4190 Op0 = DAG.getNode(ISD::SIGN_EXTEND, DL, MVT::i64, Op0); in lowerSDIVREM()
4192 Op1 = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Op1); in lowerSDIVREM()
4197 lowerGR128Binary(DAG, DL, VT, SystemZISD::SDIVREM, Op0, Op1, Ops[1], Ops[0]); in lowerSDIVREM()
4198 return DAG.getMergeValues(Ops, DL); in lowerSDIVREM()
4204 SDLoc DL(Op); in lowerUDIVREM() local
4209 lowerGR128Binary(DAG, DL, VT, SystemZISD::UDIVREM, in lowerUDIVREM()
4211 return DAG.getMergeValues(Ops, DL); in lowerUDIVREM()
4263 SDLoc DL(Op); in lowerOR() local
4264 SDValue Low32 = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, LowOp); in lowerOR()
4265 return DAG.getTargetInsertSubreg(SystemZ::subreg_l32, DL, in lowerOR()
4275 SDLoc DL(N); in lowerXALUO() local
4293 SDValue Result = DAG.getNode(BaseOp, DL, MVT::i128, LHS, RHS); in lowerXALUO()
4294 SDValue Flag = DAG.getNode(FlagOp, DL, MVT::i128, LHS, RHS); in lowerXALUO()
4295 Flag = DAG.getNode(ISD::AssertZext, DL, MVT::i128, Flag, in lowerXALUO()
4297 Flag = DAG.getZExtOrTrunc(Flag, DL, N->getValueType(1)); in lowerXALUO()
4299 Flag = DAG.getNode(ISD::XOR, DL, Flag.getValueType(), in lowerXALUO()
4300 Flag, DAG.getConstant(1, DL, Flag.getValueType())); in lowerXALUO()
4301 return DAG.getNode(ISD::MERGE_VALUES, DL, N->getVTList(), Result, Flag); in lowerXALUO()
4333 SDValue Result = DAG.getNode(BaseOp, DL, VTs, LHS, RHS); in lowerXALUO()
4335 SDValue SetCC = emitSETCC(DAG, DL, Result.getValue(1), CCValid, CCMask); in lowerXALUO()
4337 SetCC = DAG.getNode(ISD::TRUNCATE, DL, MVT::i1, SetCC); in lowerXALUO()
4339 return DAG.getNode(ISD::MERGE_VALUES, DL, N->getVTList(), Result, SetCC); in lowerXALUO()
4368 SDLoc DL(N); in lowerUADDSUBO_CARRY() local
4387 Carry = DAG.getNode(ISD::XOR, DL, Carry.getValueType(), in lowerUADDSUBO_CARRY()
4388 Carry, DAG.getConstant(1, DL, Carry.getValueType())); in lowerUADDSUBO_CARRY()
4389 Carry = DAG.getZExtOrTrunc(Carry, DL, MVT::i128); in lowerUADDSUBO_CARRY()
4390 SDValue Result = DAG.getNode(BaseOp, DL, MVT::i128, LHS, RHS, Carry); in lowerUADDSUBO_CARRY()
4391 SDValue Flag = DAG.getNode(FlagOp, DL, MVT::i128, LHS, RHS, Carry); in lowerUADDSUBO_CARRY()
4392 Flag = DAG.getNode(ISD::AssertZext, DL, MVT::i128, Flag, in lowerUADDSUBO_CARRY()
4394 Flag = DAG.getZExtOrTrunc(Flag, DL, N->getValueType(1)); in lowerUADDSUBO_CARRY()
4396 Flag = DAG.getNode(ISD::XOR, DL, Flag.getValueType(), in lowerUADDSUBO_CARRY()
4397 Flag, DAG.getConstant(1, DL, Flag.getValueType())); in lowerUADDSUBO_CARRY()
4398 return DAG.getNode(ISD::MERGE_VALUES, DL, N->getVTList(), Result, Flag); in lowerUADDSUBO_CARRY()
4426 Carry = DAG.getNode(SystemZISD::GET_CCMASK, DL, MVT::i32, Carry, in lowerUADDSUBO_CARRY()
4427 DAG.getConstant(CCValid, DL, MVT::i32), in lowerUADDSUBO_CARRY()
4428 DAG.getConstant(CCMask, DL, MVT::i32)); in lowerUADDSUBO_CARRY()
4431 SDValue Result = DAG.getNode(BaseOp, DL, VTs, LHS, RHS, Carry); in lowerUADDSUBO_CARRY()
4433 SDValue SetCC = emitSETCC(DAG, DL, Result.getValue(1), CCValid, CCMask); in lowerUADDSUBO_CARRY()
4435 SetCC = DAG.getNode(ISD::TRUNCATE, DL, MVT::i1, SetCC); in lowerUADDSUBO_CARRY()
4437 return DAG.getNode(ISD::MERGE_VALUES, DL, N->getVTList(), Result, SetCC); in lowerUADDSUBO_CARRY()
4443 SDLoc DL(Op); in lowerCTPOP() local
4447 Op = DAG.getNode(ISD::BITCAST, DL, MVT::v2i64, Op); in lowerCTPOP()
4448 Op = DAG.getNode(ISD::CTPOP, DL, MVT::v2i64, Op); in lowerCTPOP()
4449 SDValue Tmp = DAG.getSplatBuildVector(MVT::v2i64, DL, in lowerCTPOP()
4450 DAG.getConstant(0, DL, MVT::i64)); in lowerCTPOP()
4451 Op = DAG.getNode(SystemZISD::VSUM, DL, VT, Op, Tmp); in lowerCTPOP()
4457 Op = DAG.getNode(ISD::BITCAST, DL, MVT::v16i8, Op); in lowerCTPOP()
4458 Op = DAG.getNode(SystemZISD::POPCNT, DL, MVT::v16i8, Op); in lowerCTPOP()
4463 Op = DAG.getNode(ISD::BITCAST, DL, VT, Op); in lowerCTPOP()
4464 SDValue Shift = DAG.getConstant(8, DL, MVT::i32); in lowerCTPOP()
4465 SDValue Tmp = DAG.getNode(SystemZISD::VSHL_BY_SCALAR, DL, VT, Op, Shift); in lowerCTPOP()
4466 Op = DAG.getNode(ISD::ADD, DL, VT, Op, Tmp); in lowerCTPOP()
4467 Op = DAG.getNode(SystemZISD::VSRL_BY_SCALAR, DL, VT, Op, Shift); in lowerCTPOP()
4471 SDValue Tmp = DAG.getSplatBuildVector(MVT::v16i8, DL, in lowerCTPOP()
4472 DAG.getConstant(0, DL, MVT::i32)); in lowerCTPOP()
4473 Op = DAG.getNode(SystemZISD::VSUM, DL, VT, Op, Tmp); in lowerCTPOP()
4477 SDValue Tmp = DAG.getSplatBuildVector(MVT::v16i8, DL, in lowerCTPOP()
4478 DAG.getConstant(0, DL, MVT::i32)); in lowerCTPOP()
4479 Op = DAG.getNode(SystemZISD::VSUM, DL, MVT::v4i32, Op, Tmp); in lowerCTPOP()
4480 Op = DAG.getNode(SystemZISD::VSUM, DL, VT, Op, Tmp); in lowerCTPOP()
4493 return DAG.getConstant(0, DL, VT); in lowerCTPOP()
4501 Op = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op); in lowerCTPOP()
4502 Op = DAG.getNode(SystemZISD::POPCNT, DL, MVT::i64, Op); in lowerCTPOP()
4503 Op = DAG.getNode(ISD::TRUNCATE, DL, VT, Op); in lowerCTPOP()
4508 SDValue Tmp = DAG.getNode(ISD::SHL, DL, VT, Op, DAG.getConstant(I, DL, VT)); in lowerCTPOP()
4510 Tmp = DAG.getNode(ISD::AND, DL, VT, Tmp, in lowerCTPOP()
4511 DAG.getConstant(((uint64_t)1 << BitSize) - 1, DL, VT)); in lowerCTPOP()
4512 Op = DAG.getNode(ISD::ADD, DL, VT, Op, Tmp); in lowerCTPOP()
4517 Op = DAG.getNode(ISD::SRL, DL, VT, Op, in lowerCTPOP()
4518 DAG.getConstant(BitSize - 8, DL, VT)); in lowerCTPOP()
4525 SDLoc DL(Op); in lowerATOMIC_FENCE() local
4535 return SDValue(DAG.getMachineNode(SystemZ::Serialize, DL, MVT::Other, in lowerATOMIC_FENCE()
4541 return DAG.getNode(ISD::MEMBARRIER, DL, MVT::Other, Op.getOperand(0)); in lowerATOMIC_FENCE()
4558 static void getCSAddressAndShifts(SDValue Addr, SelectionDAG &DAG, SDLoc DL, in getCSAddressAndShifts() argument
4565 AlignedAddr = DAG.getNode(ISD::AND, DL, PtrVT, Addr, in getCSAddressAndShifts()
4566 DAG.getConstant(-4, DL, PtrVT)); in getCSAddressAndShifts()
4570 BitShift = DAG.getNode(ISD::SHL, DL, PtrVT, Addr, in getCSAddressAndShifts()
4571 DAG.getConstant(3, DL, PtrVT)); in getCSAddressAndShifts()
4572 BitShift = DAG.getNode(ISD::TRUNCATE, DL, WideVT, BitShift); in getCSAddressAndShifts()
4576 NegBitShift = DAG.getNode(ISD::SUB, DL, WideVT, in getCSAddressAndShifts()
4577 DAG.getConstant(0, DL, WideVT), BitShift); in getCSAddressAndShifts()
4599 SDLoc DL(Node); in lowerATOMIC_LOAD_OP() local
4605 Src2 = DAG.getConstant(-Const->getSExtValue(), DL, Src2.getValueType()); in lowerATOMIC_LOAD_OP()
4609 getCSAddressAndShifts(Addr, DAG, DL, AlignedAddr, BitShift, NegBitShift); in lowerATOMIC_LOAD_OP()
4617 Src2 = DAG.getNode(ISD::SHL, DL, WideVT, Src2, in lowerATOMIC_LOAD_OP()
4618 DAG.getConstant(32 - BitSize, DL, WideVT)); in lowerATOMIC_LOAD_OP()
4621 Src2 = DAG.getNode(ISD::OR, DL, WideVT, Src2, in lowerATOMIC_LOAD_OP()
4622 DAG.getConstant(uint32_t(-1) >> BitSize, DL, WideVT)); in lowerATOMIC_LOAD_OP()
4627 DAG.getConstant(BitSize, DL, WideVT) }; in lowerATOMIC_LOAD_OP()
4628 SDValue AtomicOp = DAG.getMemIntrinsicNode(Opcode, DL, VTList, Ops, in lowerATOMIC_LOAD_OP()
4633 SDValue ResultShift = DAG.getNode(ISD::ADD, DL, WideVT, BitShift, in lowerATOMIC_LOAD_OP()
4634 DAG.getConstant(BitSize, DL, WideVT)); in lowerATOMIC_LOAD_OP()
4635 SDValue Result = DAG.getNode(ISD::ROTL, DL, WideVT, AtomicOp, ResultShift); in lowerATOMIC_LOAD_OP()
4638 return DAG.getMergeValues(RetOps, DL); in lowerATOMIC_LOAD_OP()
4653 SDLoc DL(Src2); in lowerATOMIC_LOAD_SUB() local
4655 DAG.getNode(ISD::SUB, DL, MemVT, DAG.getConstant(0, DL, MemVT), Src2); in lowerATOMIC_LOAD_SUB()
4656 return DAG.getAtomic(ISD::ATOMIC_LOAD_ADD, DL, MemVT, in lowerATOMIC_LOAD_SUB()
4673 SDLoc DL(Node); in lowerATOMIC_CMP_SWAP() local
4679 return DAG.getMergeValues(Results, DL); in lowerATOMIC_CMP_SWAP()
4690 DL, Tys, Ops, NarrowVT, MMO); in lowerATOMIC_CMP_SWAP()
4691 SDValue Success = emitSETCC(DAG, DL, AtomicOp.getValue(1), in lowerATOMIC_CMP_SWAP()
4705 getCSAddressAndShifts(Addr, DAG, DL, AlignedAddr, BitShift, NegBitShift); in lowerATOMIC_CMP_SWAP()
4710 NegBitShift, DAG.getConstant(BitSize, DL, WideVT) }; in lowerATOMIC_CMP_SWAP()
4711 SDValue AtomicOp = DAG.getMemIntrinsicNode(SystemZISD::ATOMIC_CMP_SWAPW, DL, in lowerATOMIC_CMP_SWAP()
4713 SDValue Success = emitSETCC(DAG, DL, AtomicOp.getValue(1), in lowerATOMIC_CMP_SWAP()
4717 SDValue OrigVal = DAG.getNode(ISD::AssertZext, DL, WideVT, AtomicOp.getValue(0), in lowerATOMIC_CMP_SWAP()
4770 SDLoc DL(Op); in lowerSTACKRESTORE() local
4774 Chain, DL, Regs->getStackPointerRegister(), MVT::i64); in lowerSTACKRESTORE()
4775 Backchain = DAG.getLoad(MVT::i64, DL, Chain, getBackchainAddress(OldSP, DAG), in lowerSTACKRESTORE()
4779 Chain = DAG.getCopyToReg(Chain, DL, Regs->getStackPointerRegister(), NewSP); in lowerSTACKRESTORE()
4782 Chain = DAG.getStore(Chain, DL, Backchain, getBackchainAddress(NewSP, DAG), in lowerSTACKRESTORE()
4795 SDLoc DL(Op); in lowerPREFETCH() local
4799 SDValue Ops[] = {Op.getOperand(0), DAG.getTargetConstant(Code, DL, MVT::i32), in lowerPREFETCH()
4801 return DAG.getMemIntrinsicNode(SystemZISD::PREFETCH, DL, in lowerPREFETCH()
4808 SDLoc DL(CCReg); in getCCResult() local
4809 SDValue IPM = DAG.getNode(SystemZISD::IPM, DL, MVT::i32, CCReg); in getCCResult()
4810 return DAG.getNode(ISD::SRL, DL, MVT::i32, IPM, in getCCResult()
4811 DAG.getConstant(SystemZ::IPM_CC, DL, MVT::i32)); in getCCResult()
5162 static SDValue getPermuteNode(SelectionDAG &DAG, const SDLoc &DL, in getPermuteNode() argument
5172 Op0 = DAG.getNode(ISD::BITCAST, DL, InVT, Op0); in getPermuteNode()
5173 Op1 = DAG.getNode(ISD::BITCAST, DL, InVT, Op1); in getPermuteNode()
5176 SDValue Op2 = DAG.getTargetConstant(P.Operand, DL, MVT::i32); in getPermuteNode()
5177 Op = DAG.getNode(SystemZISD::PERMUTE_DWORDS, DL, InVT, Op0, Op1, Op2); in getPermuteNode()
5181 Op = DAG.getNode(SystemZISD::PACK, DL, OutVT, Op0, Op1); in getPermuteNode()
5183 Op = DAG.getNode(P.Opcode, DL, InVT, Op0, Op1); in getPermuteNode()
5208 static SDValue getGeneralPermuteNode(SelectionDAG &DAG, const SDLoc &DL, in getGeneralPermuteNode() argument
5212 Ops[I] = DAG.getNode(ISD::BITCAST, DL, MVT::v16i8, Ops[I]); in getGeneralPermuteNode()
5217 return DAG.getNode(SystemZISD::SHL_DOUBLE, DL, MVT::v16i8, Ops[OpNo0], in getGeneralPermuteNode()
5219 DAG.getTargetConstant(StartIndex, DL, MVT::i32)); in getGeneralPermuteNode()
5249 IndexNodes[I] = DAG.getConstant(ZeroIdx, DL, MVT::i32); in getGeneralPermuteNode()
5252 IndexNodes[I] = DAG.getConstant(BIdx, DL, MVT::i32); in getGeneralPermuteNode()
5257 SDValue Mask = DAG.getBuildVector(MVT::v16i8, DL, IndexNodes); in getGeneralPermuteNode()
5260 return DAG.getNode(SystemZISD::PERMUTE, DL, MVT::v16i8, Mask, Src, in getGeneralPermuteNode()
5263 return DAG.getNode(SystemZISD::PERMUTE, DL, MVT::v16i8, Src, Mask, in getGeneralPermuteNode()
5271 IndexNodes[I] = DAG.getConstant(Bytes[I], DL, MVT::i32); in getGeneralPermuteNode()
5274 SDValue Op2 = DAG.getBuildVector(MVT::v16i8, DL, IndexNodes); in getGeneralPermuteNode()
5275 return DAG.getNode(SystemZISD::PERMUTE, DL, MVT::v16i8, Ops[0], in getGeneralPermuteNode()
5288 SDValue insertUnpackIfPrepared(SelectionDAG &DAG, const SDLoc &DL, SDValue Op);
5379 SDValue GeneralShuffle::getNode(SelectionDAG &DAG, const SDLoc &DL) { in getNode() argument
5421 Ops[I] = getPermuteNode(DAG, DL, *P, SubOps[0], SubOps[1]); in getNode()
5433 Ops[I] = getGeneralPermuteNode(DAG, DL, SubOps, NewBytes); in getNode()
5456 Op = getPermuteNode(DAG, DL, *P, Ops[OpNo0], Ops[OpNo1]); in getNode()
5458 Op = getGeneralPermuteNode(DAG, DL, &Ops[0], Bytes); in getNode()
5460 Op = insertUnpackIfPrepared(DAG, DL, Op); in getNode()
5462 return DAG.getNode(ISD::BITCAST, DL, VT, Op); in getNode()
5550 const SDLoc &DL, in insertUnpackIfPrepared() argument
5557 SDValue PackedOp = DAG.getNode(ISD::BITCAST, DL, InVT, Op); in insertUnpackIfPrepared()
5561 return DAG.getNode(SystemZISD::UNPACKL_HIGH, DL, OutVT, PackedOp); in insertUnpackIfPrepared()
5574 static SDValue buildScalarToVector(SelectionDAG &DAG, const SDLoc &DL, EVT VT, in buildScalarToVector() argument
5581 return DAG.getBuildVector(VT, DL, Ops); in buildScalarToVector()
5585 return DAG.getNode(ISD::SCALAR_TO_VECTOR, DL, VT, Value); in buildScalarToVector()
5590 static SDValue buildMergeScalars(SelectionDAG &DAG, const SDLoc &DL, EVT VT, in buildMergeScalars() argument
5595 return DAG.getNode(SystemZISD::REPLICATE, DL, VT, Op1); in buildMergeScalars()
5598 return DAG.getNode(SystemZISD::REPLICATE, DL, VT, Op0); in buildMergeScalars()
5599 return DAG.getNode(SystemZISD::MERGE_HIGH, DL, VT, in buildMergeScalars()
5600 buildScalarToVector(DAG, DL, VT, Op0), in buildMergeScalars()
5601 buildScalarToVector(DAG, DL, VT, Op1)); in buildMergeScalars()
5606 static SDValue joinDwords(SelectionDAG &DAG, const SDLoc &DL, SDValue Op0, in joinDwords() argument
5613 Op0 = Op1 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op1); in joinDwords()
5615 Op0 = Op1 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op0); in joinDwords()
5617 Op0 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op0); in joinDwords()
5618 Op1 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op1); in joinDwords()
5620 return DAG.getNode(SystemZISD::JOIN_DWORDS, DL, MVT::v2i64, Op0, Op1); in joinDwords()
5689 SystemZTargetLowering::buildVector(SelectionDAG &DAG, const SDLoc &DL, EVT VT, in buildVector() argument
5720 return DAG.getNode(SystemZISD::REPLICATE, DL, VT, Single); in buildVector()
5732 return joinDwords(DAG, DL, Elems[0], Elems[1]); in buildVector()
5736 return buildMergeScalars(DAG, DL, VT, Elems[0], Elems[1]); in buildVector()
5746 SDValue Op01 = buildMergeScalars(DAG, DL, VT, Elems[0], Elems[1]); in buildVector()
5747 SDValue Op23 = buildMergeScalars(DAG, DL, VT, Elems[2], Elems[3]); in buildVector()
5756 Op01 = DAG.getNode(ISD::BITCAST, DL, MVT::v2i64, Op01); in buildVector()
5757 Op23 = DAG.getNode(ISD::BITCAST, DL, MVT::v2i64, Op23); in buildVector()
5759 DL, MVT::v2i64, Op01, Op23); in buildVector()
5760 return DAG.getNode(ISD::BITCAST, DL, VT, Op); in buildVector()
5786 Result = DAG.getBuildVector(VT, DL, Constants); in buildVector()
5805 Result = DAG.getNode(SystemZISD::REPLICATE, DL, VT, ReplicatedVal); in buildVector()
5815 Result = DAG.getNode(ISD::BITCAST, DL, VT, in buildVector()
5816 joinDwords(DAG, DL, Elem1, Elem2)); in buildVector()
5827 Result = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, Result, Elems[I], in buildVector()
5828 DAG.getConstant(I, DL, MVT::i32)); in buildVector()
5835 SDLoc DL(Op); in lowerBUILD_VECTOR() local
5852 return buildScalarToVector(DAG, DL, VT, Op.getOperand(0)); in lowerBUILD_VECTOR()
5859 return buildVector(DAG, DL, VT, Ops); in lowerBUILD_VECTOR()
5865 SDLoc DL(Op); in lowerVECTOR_SHUFFLE() local
5877 return DAG.getNode(SystemZISD::REPLICATE, DL, VT, Op0.getOperand(Index)); in lowerVECTOR_SHUFFLE()
5879 return DAG.getNode(SystemZISD::SPLAT, DL, VT, Op.getOperand(0), in lowerVECTOR_SHUFFLE()
5880 DAG.getTargetConstant(Index, DL, MVT::i32)); in lowerVECTOR_SHUFFLE()
5897 SDLoc DL(Op); in lowerSCALAR_TO_VECTOR() local
5899 return DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, in lowerSCALAR_TO_VECTOR()
5901 Op.getOperand(0), DAG.getConstant(0, DL, MVT::i32)); in lowerSCALAR_TO_VECTOR()
5907 SDLoc DL(Op); in lowerINSERT_VECTOR_ELT() local
5929 SDValue Res = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, IntVecVT, in lowerINSERT_VECTOR_ELT()
5930 DAG.getNode(ISD::BITCAST, DL, IntVecVT, Op0), in lowerINSERT_VECTOR_ELT()
5931 DAG.getNode(ISD::BITCAST, DL, IntVT, Op1), Op2); in lowerINSERT_VECTOR_ELT()
5932 return DAG.getNode(ISD::BITCAST, DL, VT, Res); in lowerINSERT_VECTOR_ELT()
5939 SDLoc DL(Op); in lowerEXTRACT_VECTOR_ELT() local
5956 SDValue Res = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, IntVT, in lowerEXTRACT_VECTOR_ELT()
5957 DAG.getNode(ISD::BITCAST, DL, IntVecVT, Op0), Op1); in lowerEXTRACT_VECTOR_ELT()
5958 return DAG.getNode(ISD::BITCAST, DL, VT, Res); in lowerEXTRACT_VECTOR_ELT()
5982 SDLoc DL(Op); in lowerZERO_EXTEND_VECTOR_INREG() local
5990 DAG.getSplatVector(InVT, DL, DAG.getConstant(0, DL, InVT.getScalarType())); in lowerZERO_EXTEND_VECTOR_INREG()
6001 SDValue Shuf = DAG.getVectorShuffle(InVT, DL, PackedOp, ZeroVec, Mask); in lowerZERO_EXTEND_VECTOR_INREG()
6002 return DAG.getNode(ISD::BITCAST, DL, OutVT, Shuf); in lowerZERO_EXTEND_VECTOR_INREG()
6010 SDLoc DL(Op); in lowerShift() local
6025 DL, MVT::i32); in lowerShift()
6026 return DAG.getNode(ByScalar, DL, VT, Op0, Shift); in lowerShift()
6034 SDValue Shift = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Splat); in lowerShift()
6035 return DAG.getNode(ByScalar, DL, VT, Op0, Shift); in lowerShift()
6051 SDValue Shift = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, in lowerShift()
6053 return DAG.getNode(ByScalar, DL, VT, Op0, Shift); in lowerShift()
6064 SDLoc DL(Op); in lowerIS_FPCLASS() local
6090 SDValue TDCMaskV = DAG.getConstant(TDCMask, DL, MVT::i64); in lowerIS_FPCLASS()
6092 SDValue Intr = DAG.getNode(SystemZISD::TDC, DL, ResultVT, Arg, TDCMaskV); in lowerIS_FPCLASS()
6098 SDLoc DL(Op); in lowerREADCYCLECOUNTER() local
6110 SystemZISD::STCKF, DL, DAG.getVTList(MVT::Other), StoreOps, MVT::i64, in lowerREADCYCLECOUNTER()
6114 return DAG.getLoad(MVT::i64, DL, Chain, StackPtr, MPI); in lowerREADCYCLECOUNTER()
6300 SDLoc DL(N); in LowerOperationWrapper() local
6305 DL, Tys, Ops, MVT::i128, MMO); in LowerOperationWrapper()
6309 Lowered = expandBitCastI128ToF128(DAG, Lowered, DL); in LowerOperationWrapper()
6315 SDLoc DL(N); in LowerOperationWrapper() local
6319 Val = expandBitCastF128ToI128(DAG, Val, DL); in LowerOperationWrapper()
6325 DL, Tys, Ops, MVT::i128, MMO); in LowerOperationWrapper()
6330 Res = SDValue(DAG.getMachineNode(SystemZ::Serialize, DL, in LowerOperationWrapper()
6336 SDLoc DL(N); in LowerOperationWrapper() local
6343 DL, Tys, Ops, MVT::i128, MMO); in LowerOperationWrapper()
6344 SDValue Success = emitSETCC(DAG, DL, Res.getValue(1), in LowerOperationWrapper()
6346 Success = DAG.getZExtOrTrunc(Success, DL, N->getValueType(1)); in LowerOperationWrapper()
6356 SDLoc DL(N); in LowerOperationWrapper() local
6357 Results.push_back(expandBitCastF128ToI128(DAG, Src, DL)); in LowerOperationWrapper()
6526 SDValue SystemZTargetLowering::combineExtract(const SDLoc &DL, EVT ResVT, in combineExtract() argument
6581 Op = DAG.getNode(ISD::BITCAST, DL, VT, Op); in combineExtract()
6585 Op = DAG.getNode(ISD::TRUNCATE, DL, VT, Op); in combineExtract()
6588 Op = DAG.getNode(ISD::BITCAST, DL, ResVT, Op); in combineExtract()
6621 Op = DAG.getNode(ISD::BITCAST, DL, VecVT, Op); in combineExtract()
6624 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, ResVT, Op, in combineExtract()
6625 DAG.getConstant(Index, DL, MVT::i32)); in combineExtract()
6633 const SDLoc &DL, EVT TruncVT, SDValue Op, DAGCombinerInfo &DCI) const { in combineTruncateExtract() argument
6660 return combineExtract(DL, ResVT, VecVT, Vec, NewIndex, DCI, true); in combineTruncateExtract()
6678 SDLoc DL(N0); in combineZERO_EXTEND() local
6679 SDValue Ops[] = { DAG.getConstant(TrueOp->getZExtValue(), DL, VT), in combineZERO_EXTEND()
6680 DAG.getConstant(FalseOp->getZExtValue(), DL, VT), in combineZERO_EXTEND()
6682 SDValue NewSelect = DAG.getNode(SystemZISD::SELECT_CCMASK, DL, VT, Ops); in combineZERO_EXTEND()
6686 DAG.getNode(ISD::TRUNCATE, DL, N0.getValueType(), NewSelect); in combineZERO_EXTEND()
6729 SDLoc DL(N0); in combineSIGN_EXTEND_INREG() local
6731 DAG.getAllOnesConstant(DL, VT), in combineSIGN_EXTEND_INREG()
6732 DAG.getConstant(0, DL, VT), N0.getOperand(2) }; in combineSIGN_EXTEND_INREG()
6733 return DAG.getNode(ISD::SELECT_CC, DL, VT, Ops); in combineSIGN_EXTEND_INREG()
6878 SDLoc DL(N); in combineLOAD() local
6891 HiPart->getValueType(0), DL, LD->getChain(), LD->getBasePtr(), in combineLOAD()
6900 LoPart->getValueType(0), DL, LD->getChain(), in combineLOAD()
6901 DAG.getObjectPtrOffset(DL, LD->getBasePtr(), TypeSize::getFixed(8)), in combineLOAD()
6910 SDValue Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, ArgChains); in combineLOAD()
6940 SDValue Extract0 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, LdVT, in combineLOAD()
6941 Replicate, DAG.getConstant(0, DL, MVT::i32)); in combineLOAD()
7113 SDLoc DL(SN); in combineSTORE() local
7115 DAG.getStore(SN->getChain(), DL, HiPart, SN->getBasePtr(), in combineSTORE()
7119 DAG.getStore(SN->getChain(), DL, LoPart, in combineSTORE()
7120 DAG.getObjectPtrOffset(DL, SN->getBasePtr(), in combineSTORE()
7126 return DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Chain0, Chain1); in combineSTORE()
8271 DebugLoc DL = MI->getDebugLoc(); in createPHIsForSelects() local
8272 BuildMI(*SinkMBB, SinkInsertionPoint, DL, TII->get(SystemZ::PHI), DestReg) in createPHIsForSelects()
8411 DebugLoc DL = MI.getDebugLoc(); in emitCondStore() local
8431 BuildMI(*MBB, MI, DL, TII->get(STOCOpcode)) in emitCondStore()
8463 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitCondStore()
8472 BuildMI(MBB, DL, TII->get(StoreOpcode)) in emitCondStore()
8568 DebugLoc DL = MI.getDebugLoc(); in emitAtomicLoadBinary() local
8592 BuildMI(MBB, DL, TII->get(LOpcode), OrigVal).add(Base).addImm(Disp).addReg(0); in emitAtomicLoadBinary()
8604 BuildMI(MBB, DL, TII->get(SystemZ::PHI), OldVal) in emitAtomicLoadBinary()
8607 BuildMI(MBB, DL, TII->get(SystemZ::RLL), RotatedOldVal) in emitAtomicLoadBinary()
8612 BuildMI(MBB, DL, TII->get(BinOpcode), Tmp).addReg(RotatedOldVal).add(Src2); in emitAtomicLoadBinary()
8614 BuildMI(MBB, DL, TII->get(SystemZ::XILF), RotatedNewVal) in emitAtomicLoadBinary()
8618 BuildMI(MBB, DL, TII->get(BinOpcode), RotatedNewVal) in emitAtomicLoadBinary()
8624 BuildMI(MBB, DL, TII->get(SystemZ::RISBG32), RotatedNewVal) in emitAtomicLoadBinary()
8627 BuildMI(MBB, DL, TII->get(SystemZ::RLL), NewVal) in emitAtomicLoadBinary()
8629 BuildMI(MBB, DL, TII->get(CSOpcode), Dest) in emitAtomicLoadBinary()
8634 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitAtomicLoadBinary()
8663 DebugLoc DL = MI.getDebugLoc(); in emitAtomicLoadMinMax() local
8690 BuildMI(MBB, DL, TII->get(LOpcode), OrigVal).add(Base).addImm(Disp).addReg(0); in emitAtomicLoadMinMax()
8699 BuildMI(MBB, DL, TII->get(SystemZ::PHI), OldVal) in emitAtomicLoadMinMax()
8702 BuildMI(MBB, DL, TII->get(SystemZ::RLL), RotatedOldVal) in emitAtomicLoadMinMax()
8704 BuildMI(MBB, DL, TII->get(CompareOpcode)) in emitAtomicLoadMinMax()
8706 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitAtomicLoadMinMax()
8715 BuildMI(MBB, DL, TII->get(SystemZ::RISBG32), RotatedAltVal) in emitAtomicLoadMinMax()
8728 BuildMI(MBB, DL, TII->get(SystemZ::PHI), RotatedNewVal) in emitAtomicLoadMinMax()
8731 BuildMI(MBB, DL, TII->get(SystemZ::RLL), NewVal) in emitAtomicLoadMinMax()
8733 BuildMI(MBB, DL, TII->get(CSOpcode), Dest) in emitAtomicLoadMinMax()
8738 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitAtomicLoadMinMax()
8765 DebugLoc DL = MI.getDebugLoc(); in emitAtomicCmpSwapW() local
8795 BuildMI(MBB, DL, TII->get(LOpcode), OrigOldVal) in emitAtomicCmpSwapW()
8815 BuildMI(MBB, DL, TII->get(SystemZ::PHI), OldVal) in emitAtomicCmpSwapW()
8818 BuildMI(MBB, DL, TII->get(SystemZ::PHI), SwapVal) in emitAtomicCmpSwapW()
8821 BuildMI(MBB, DL, TII->get(SystemZ::RLL), OldValRot) in emitAtomicCmpSwapW()
8823 BuildMI(MBB, DL, TII->get(SystemZ::RISBG32), RetrySwapVal) in emitAtomicCmpSwapW()
8825 BuildMI(MBB, DL, TII->get(ZExtOpcode), Dest) in emitAtomicCmpSwapW()
8827 BuildMI(MBB, DL, TII->get(SystemZ::CR)) in emitAtomicCmpSwapW()
8829 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitAtomicCmpSwapW()
8842 BuildMI(MBB, DL, TII->get(SystemZ::RLL), StoreVal) in emitAtomicCmpSwapW()
8844 BuildMI(MBB, DL, TII->get(CSOpcode), RetryOldVal) in emitAtomicCmpSwapW()
8849 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitAtomicCmpSwapW()
8869 const DebugLoc &DL = MI.getDebugLoc(); in emitPair128() local
8872 BuildMI(*MBB, MI, DL, TII->get(TargetOpcode::REG_SEQUENCE), Dest) in emitPair128()
8890 DebugLoc DL = MI.getDebugLoc(); in emitExt128() local
8896 BuildMI(*MBB, MI, DL, TII->get(TargetOpcode::IMPLICIT_DEF), In128); in emitExt128()
8901 BuildMI(*MBB, MI, DL, TII->get(SystemZ::LLILL), Zero64) in emitExt128()
8903 BuildMI(*MBB, MI, DL, TII->get(TargetOpcode::INSERT_SUBREG), NewIn128) in emitExt128()
8907 BuildMI(*MBB, MI, DL, TII->get(TargetOpcode::INSERT_SUBREG), Dest) in emitExt128()
8921 DebugLoc DL = MI.getDebugLoc(); in emitMemMemWrapper() local
8963 BuildMI(*InsMBB, InsPos, DL, TII->get(SystemZ::MVI)) in emitMemMemWrapper()
8966 BuildMI(*InsMBB, InsPos, DL, TII->get(SystemZ::STC)) in emitMemMemWrapper()
8971 BuildMI(*MBB, InsPos, DL, TII->get(Opcode)) in emitMemMemWrapper()
9023 BuildMI(*MBB, MI, DL, TII->get(SystemZ::SRLG), StartCountReg) in emitMemMemWrapper()
9032 BuildMI(*MBB, MI, DL, TII->get(SystemZ::LGHI), Reg).addImm(0); in emitMemMemWrapper()
9070 BuildMI(MBB, DL, TII->get(SystemZ::CGHI)) in emitMemMemWrapper()
9072 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitMemMemWrapper()
9086 BuildMI(MBB, DL, TII->get(SystemZ::CGHI)) in emitMemMemWrapper()
9088 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitMemMemWrapper()
9101 BuildMI(MBB, DL, TII->get(SystemZ::J)).addMBB(AllDoneMBB); in emitMemMemWrapper()
9108 BuildMI(MBB, DL, TII->get(SystemZ::CGHI)) in emitMemMemWrapper()
9110 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitMemMemWrapper()
9147 BuildMI(MBB, DL, TII->get(SystemZ::PHI), ThisDestReg) in emitMemMemWrapper()
9151 BuildMI(MBB, DL, TII->get(SystemZ::PHI), ThisSrcReg) in emitMemMemWrapper()
9154 BuildMI(MBB, DL, TII->get(SystemZ::PHI), ThisCountReg) in emitMemMemWrapper()
9158 BuildMI(MBB, DL, TII->get(SystemZ::PFD)) in emitMemMemWrapper()
9165 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitMemMemWrapper()
9182 BuildMI(MBB, DL, TII->get(SystemZ::LA), NextDestReg) in emitMemMemWrapper()
9185 BuildMI(MBB, DL, TII->get(SystemZ::LA), NextSrcReg) in emitMemMemWrapper()
9187 BuildMI(MBB, DL, TII->get(SystemZ::AGHI), NextCountReg) in emitMemMemWrapper()
9189 BuildMI(MBB, DL, TII->get(SystemZ::CGHI)) in emitMemMemWrapper()
9191 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitMemMemWrapper()
9209 BuildMI(MBB, DL, TII->get(SystemZ::PHI), RemDestReg) in emitMemMemWrapper()
9213 BuildMI(MBB, DL, TII->get(SystemZ::PHI), RemSrcReg) in emitMemMemWrapper()
9221 BuildMI(MBB, DL, TII->get(SystemZ::EXRL_Pseudo)) in emitMemMemWrapper()
9252 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitMemMemWrapper()
9277 DebugLoc DL = MI.getDebugLoc(); in emitStringWrapper() local
9308 BuildMI(MBB, DL, TII->get(SystemZ::PHI), This1Reg) in emitStringWrapper()
9311 BuildMI(MBB, DL, TII->get(SystemZ::PHI), This2Reg) in emitStringWrapper()
9314 BuildMI(MBB, DL, TII->get(TargetOpcode::COPY), SystemZ::R0L).addReg(CharReg); in emitStringWrapper()
9315 BuildMI(MBB, DL, TII->get(Opcode)) in emitStringWrapper()
9318 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitStringWrapper()
9381 DebugLoc DL = MI.getDebugLoc(); in emitLoadAndTestCmp0() local
9391 BuildMI(*MBB, MI, DL, TII->get(Opcode), DstReg) in emitLoadAndTestCmp0()
9404 DebugLoc DL = MI.getDebugLoc(); in emitProbedAlloca() local
9427 BuildMI(MBB, DL, TII->get(SystemZ::PHI), PHIReg) in emitProbedAlloca()
9432 BuildMI(MBB, DL, TII->get(SystemZ::CLGFI)) in emitProbedAlloca()
9435 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitProbedAlloca()
9444 BuildMI(MBB, DL, TII->get(SystemZ::SLGFI), IncReg) in emitProbedAlloca()
9447 BuildMI(MBB, DL, TII->get(SystemZ::SLGFI), SystemZ::R15D) in emitProbedAlloca()
9450 BuildMI(MBB, DL, TII->get(SystemZ::CG)).addReg(SystemZ::R15D) in emitProbedAlloca()
9453 BuildMI(MBB, DL, TII->get(SystemZ::J)).addMBB(LoopTestMBB); in emitProbedAlloca()
9460 BuildMI(MBB, DL, TII->get(SystemZ::CGHI)) in emitProbedAlloca()
9463 BuildMI(MBB, DL, TII->get(SystemZ::BRC)) in emitProbedAlloca()
9472 BuildMI(MBB, DL, TII->get(SystemZ::SLGR), SystemZ::R15D) in emitProbedAlloca()
9475 BuildMI(MBB, DL, TII->get(SystemZ::CG)).addReg(SystemZ::R15D) in emitProbedAlloca()
9482 BuildMI(*MBB, MBB->begin(), DL, TII->get(TargetOpcode::COPY), DstReg) in emitProbedAlloca()
9493 SDLoc DL(SP); in getBackchainAddress() local
9494 return DAG.getNode(ISD::ADD, DL, MVT::i64, SP, in getBackchainAddress()
9495 DAG.getIntPtrConstant(TFL->getBackchainOffset(MF), DL)); in getBackchainAddress()
9713 SDLoc DL(Op); in lowerVECREDUCE_ADD() local
9716 SDValue Zero = DAG.getSplatBuildVector(OpVT, DL, DAG.getConstant(0, DL, VT)); in lowerVECREDUCE_ADD()
9722 Op = DAG.getNode(SystemZISD::VSUM, DL, MVT::v4i32, Op, Zero); in lowerVECREDUCE_ADD()
9726 Op = DAG.getNode(SystemZISD::VSUM, DL, MVT::i128, Op, in lowerVECREDUCE_ADD()
9736 ISD::EXTRACT_VECTOR_ELT, DL, VT, DAG.getBitcast(OpVT, Op), in lowerVECREDUCE_ADD()
9737 DAG.getConstant(OpVT.getVectorNumElements() - 1, DL, MVT::i32)); in lowerVECREDUCE_ADD()