• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Target/SystemZ/

Lines Matching defs:DL

679 EVT SystemZTargetLowering::getSetCCResultType(const DataLayout &DL,
955 bool SystemZTargetLowering::isLegalAddressingMode(const DataLayout &DL,
1311 static SDValue convertLocVTToValVT(SelectionDAG &DAG, const SDLoc &DL,
1317 Value = DAG.getNode(ISD::AssertSext, DL, VA.getLocVT(), Value,
1320 Value = DAG.getNode(ISD::AssertZext, DL, VA.getLocVT(), Value,
1324 Value = DAG.getNode(ISD::TRUNCATE, DL, VA.getValVT(), Value);
1330 Value = DAG.getBuildVector(MVT::v2i64, DL, {Value, DAG.getUNDEF(MVT::i64)});
1331 Value = DAG.getNode(ISD::BITCAST, DL, VA.getValVT(), Value);
1340 static SDValue convertValVTToLocVT(SelectionDAG &DAG, const SDLoc &DL,
1344 return DAG.getNode(ISD::SIGN_EXTEND, DL, VA.getLocVT(), Value);
1346 return DAG.getNode(ISD::ZERO_EXTEND, DL, VA.getLocVT(), Value);
1348 return DAG.getNode(ISD::ANY_EXTEND, DL, VA.getLocVT(), Value);
1354 Value = DAG.getNode(ISD::BITCAST, DL, MVT::v2i64, Value);
1355 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, VA.getLocVT(), Value,
1356 DAG.getConstant(0, DL, MVT::i32));
1366 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &DL,
1427 ArgValue = DAG.getCopyFromReg(Chain, DL, VReg, LocVT);
1440 FIN = DAG.getNode(ISD::ADD, DL, PtrVT, FIN,
1441 DAG.getIntPtrConstant(4, DL));
1442 ArgValue = DAG.getLoad(LocVT, DL, Chain, FIN,
1449 InVals.push_back(DAG.getLoad(VA.getValVT(), DL, Chain, ArgValue,
1458 SDValue Address = DAG.getNode(ISD::ADD, DL, PtrVT, ArgValue,
1459 DAG.getIntPtrConstant(PartOffset, DL));
1460 InVals.push_back(DAG.getLoad(PartVA.getValVT(), DL, Chain, Address,
1465 InVals.push_back(convertLocVTToValVT(DAG, DL, VA, Chain, ArgValue));
1496 SDValue ArgValue = DAG.getCopyFromReg(Chain, DL, VReg, MVT::f64);
1497 MemOps[I] = DAG.getStore(ArgValue.getValue(1), DL, ArgValue, FIN,
1501 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other,
1535 SDLoc &DL = CLI.DL;
1568 Chain = DAG.getCALLSEQ_START(Chain, NumBytes, 0, DL);
1583 DAG.getStore(Chain, DL, ArgValue, SpillSlot,
1592 SDValue Address = DAG.getNode(ISD::ADD, DL, PtrVT, SpillSlot,
1593 DAG.getIntPtrConstant(PartOffset, DL));
1595 DAG.getStore(Chain, DL, PartValue, Address,
1601 ArgValue = convertValVTToLocVT(DAG, DL, VA, ArgValue);
1612 StackPtr = DAG.getCopyFromReg(Chain, DL, SystemZ::R15D, PtrVT);
1616 SDValue Address = DAG.getNode(ISD::ADD, DL, PtrVT, StackPtr,
1617 DAG.getIntPtrConstant(Offset, DL));
1621 DAG.getStore(Chain, DL, ArgValue, Address, MachinePointerInfo()));
1627 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, MemOpChains);
1634 Callee = DAG.getTargetGlobalAddress(G->getGlobal(), DL, PtrVT);
1635 Callee = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Callee);
1638 Callee = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Callee);
1640 Chain = DAG.getCopyToReg(Chain, DL, SystemZ::R1D, Callee, Glue);
1647 Chain = DAG.getCopyToReg(Chain, DL, RegsToPass[I].first,
1676 return DAG.getNode(SystemZISD::SIBCALL, DL, NodeTys, Ops);
1677 Chain = DAG.getNode(SystemZISD::CALL, DL, NodeTys, Ops);
1683 DAG.getConstant(NumBytes, DL, PtrVT, true),
1684 DAG.getConstant(0, DL, PtrVT, true),
1685 Glue, DL);
1698 SDValue RetValue = DAG.getCopyFromReg(Chain, DL, VA.getLocReg(),
1705 InVals.push_back(convertLocVTToValVT(DAG, DL, VA, Chain, RetValue));
1736 const SDLoc &DL, SelectionDAG &DAG) const {
1750 return DAG.getNode(SystemZISD::RET_FLAG, DL, MVT::Other, Chain);
1767 RetValue = convertValVTToLocVT(DAG, DL, VA, RetValue);
1771 Chain = DAG.getCopyToReg(Chain, DL, Reg, RetValue, Glue);
1781 return DAG.getNode(SystemZISD::RET_FLAG, DL, MVT::Other, RetOps);
2035 static void adjustZeroCmp(SelectionDAG &DAG, const SDLoc &DL, Comparison &C) {
2049 C.Op1 = DAG.getConstant(0, DL, C.Op1.getValueType());
2055 static void adjustSubwordCmp(SelectionDAG &DAG, const SDLoc &DL,
2124 C.Op1 = DAG.getConstant(Value, DL, MVT::i32);
2211 static void adjustForSubtraction(SelectionDAG &DAG, const SDLoc &DL,
2221 C.Op1 = DAG.getConstant(0, DL, N->getValueType(0));
2281 static void adjustICmpTruncate(SelectionDAG &DAG, const SDLoc &DL,
2293 C.Op1 = DAG.getConstant(0, DL, C.Op0.getValueType());
2412 static void adjustForTestUnderMask(SelectionDAG &DAG, const SDLoc &DL,
2495 C.Op1 = DAG.getConstant(MaskVal, DL, C.Op0.getValueType());
2503 static void adjustForRedundantAnd(SelectionDAG &DAG, const SDLoc &DL,
2555 ISD::CondCode Cond, const SDLoc &DL,
2600 adjustForRedundantAnd(DAG, DL, C);
2601 adjustZeroCmp(DAG, DL, C);
2602 adjustSubwordCmp(DAG, DL, C);
2603 adjustForSubtraction(DAG, DL, C);
2605 adjustICmpTruncate(DAG, DL, C);
2613 adjustForTestUnderMask(DAG, DL, C);
2618 static SDValue emitCmp(SelectionDAG &DAG, const SDLoc &DL, Comparison &C) {
2633 return DAG.getNode(SystemZISD::ICMP, DL, MVT::i32, C.Op0, C.Op1,
2634 DAG.getTargetConstant(C.ICmpType, DL, MVT::i32));
2638 return DAG.getNode(SystemZISD::TM, DL, MVT::i32, C.Op0, C.Op1,
2639 DAG.getTargetConstant(RegisterOnly, DL, MVT::i32));
2643 return DAG.getNode(C.Opcode, DL, VTs, C.Chain, C.Op0, C.Op1);
2645 return DAG.getNode(C.Opcode, DL, MVT::i32, C.Op0, C.Op1);
2651 static void lowerMUL_LOHI32(SelectionDAG &DAG, const SDLoc &DL, unsigned Extend,
2654 Op0 = DAG.getNode(Extend, DL, MVT::i64, Op0);
2655 Op1 = DAG.getNode(Extend, DL, MVT::i64, Op1);
2656 SDValue Mul = DAG.getNode(ISD::MUL, DL, MVT::i64, Op0, Op1);
2657 Hi = DAG.getNode(ISD::SRL, DL, MVT::i64, Mul,
2658 DAG.getConstant(32, DL, MVT::i64));
2659 Hi = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Hi);
2660 Lo = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Mul);
2667 static void lowerGR128Binary(SelectionDAG &DAG, const SDLoc &DL, EVT VT,
2670 SDValue Result = DAG.getNode(Opcode, DL, MVT::Untyped, Op0, Op1);
2672 Even = DAG.getTargetExtractSubreg(SystemZ::even128(Is32Bit), DL, VT, Result);
2673 Odd = DAG.getTargetExtractSubreg(SystemZ::odd128(Is32Bit), DL, VT, Result);
2679 static SDValue emitSETCC(SelectionDAG &DAG, const SDLoc &DL, SDValue CCReg,
2681 SDValue Ops[] = {DAG.getConstant(1, DL, MVT::i32),
2682 DAG.getConstant(0, DL, MVT::i32),
2683 DAG.getTargetConstant(CCValid, DL, MVT::i32),
2684 DAG.getTargetConstant(CCMask, DL, MVT::i32), CCReg};
2685 return DAG.getNode(SystemZISD::SELECT_CCMASK, DL, MVT::i32, Ops);
2761 static SDValue expandV4F32ToV2F64(SelectionDAG &DAG, int Start, const SDLoc &DL,
2764 Op = DAG.getVectorShuffle(MVT::v4f32, DL, Op, DAG.getUNDEF(MVT::v4f32), Mask);
2767 return DAG.getNode(SystemZISD::STRICT_VEXTEND, DL, VTs, Chain, Op);
2769 return DAG.getNode(SystemZISD::VEXTEND, DL, MVT::v2f64, Op);
2775 const SDLoc &DL, EVT VT,
2784 SDValue H0 = expandV4F32ToV2F64(DAG, 0, DL, CmpOp0, Chain);
2785 SDValue L0 = expandV4F32ToV2F64(DAG, 2, DL, CmpOp0, Chain);
2786 SDValue H1 = expandV4F32ToV2F64(DAG, 0, DL, CmpOp1, Chain);
2787 SDValue L1 = expandV4F32ToV2F64(DAG, 2, DL, CmpOp1, Chain);
2790 SDValue HRes = DAG.getNode(Opcode, DL, VTs, Chain, H0, H1);
2791 SDValue LRes = DAG.getNode(Opcode, DL, VTs, Chain, L0, L1);
2792 SDValue Res = DAG.getNode(SystemZISD::PACK, DL, VT, HRes, LRes);
2796 SDValue NewChain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, Chains);
2798 return DAG.getMergeValues(Ops, DL);
2800 SDValue HRes = DAG.getNode(Opcode, DL, MVT::v2i64, H0, H1);
2801 SDValue LRes = DAG.getNode(Opcode, DL, MVT::v2i64, L0, L1);
2802 return DAG.getNode(SystemZISD::PACK, DL, VT, HRes, LRes);
2806 return DAG.getNode(Opcode, DL, VTs, Chain, CmpOp0, CmpOp1);
2808 return DAG.getNode(Opcode, DL, VT, CmpOp0, CmpOp1);
2816 const SDLoc &DL, EVT VT,
2837 DL, VT, CmpOp1, CmpOp0, Chain);
2839 DL, VT, CmpOp0, CmpOp1, Chain);
2840 Cmp = DAG.getNode(ISD::OR, DL, VT, LT, GE);
2842 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other,
2854 DL, VT, CmpOp1, CmpOp0, Chain);
2856 DL, VT, CmpOp0, CmpOp1, Chain);
2857 Cmp = DAG.getNode(ISD::OR, DL, VT, LT, GT);
2859 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other,
2869 Cmp = getVectorCmp(DAG, Opcode, DL, VT, CmpOp0, CmpOp1, Chain);
2873 Cmp = getVectorCmp(DAG, Opcode, DL, VT, CmpOp1, CmpOp0, Chain);
2883 DAG.getSplatBuildVector(VT, DL, DAG.getConstant(-1, DL, MVT::i64));
2884 Cmp = DAG.getNode(ISD::XOR, DL, VT, Cmp, Mask);
2888 Cmp = DAG.getMergeValues(Ops, DL);
2898 SDLoc DL(Op);
2901 return lowerVectorSETCC(DAG, DL, VT, CC, CmpOp0, CmpOp1);
2903 Comparison C(getCmp(DAG, CmpOp0, CmpOp1, CC, DL));
2904 SDValue CCReg = emitCmp(DAG, DL, C);
2905 return emitSETCC(DAG, DL, CCReg, C.CCValid, C.CCMask);
2915 SDLoc DL(Op);
2918 SDValue Res = lowerVectorSETCC(DAG, DL, VT, CC, CmpOp0, CmpOp1,
2923 Comparison C(getCmp(DAG, CmpOp0, CmpOp1, CC, DL, Chain, IsSignaling));
2924 SDValue CCReg = emitCmp(DAG, DL, C);
2926 SDValue Result = emitSETCC(DAG, DL, CCReg, C.CCValid, C.CCMask);
2928 return DAG.getMergeValues(Ops, DL);
2936 SDLoc DL(Op);
2938 Comparison C(getCmp(DAG, CmpOp0, CmpOp1, CC, DL));
2939 SDValue CCReg = emitCmp(DAG, DL, C);
2941 SystemZISD::BR_CCMASK, DL, Op.getValueType(), Op.getOperand(0),
2942 DAG.getTargetConstant(C.CCValid, DL, MVT::i32),
2943 DAG.getTargetConstant(C.CCMask, DL, MVT::i32), Dest, CCReg);
2959 static SDValue getAbsolute(SelectionDAG &DAG, const SDLoc &DL, SDValue Op,
2961 Op = DAG.getNode(SystemZISD::IABS, DL, Op.getValueType(), Op);
2963 Op = DAG.getNode(ISD::SUB, DL, Op.getValueType(),
2964 DAG.getConstant(0, DL, Op.getValueType()), Op);
2975 SDLoc DL(Op);
2977 Comparison C(getCmp(DAG, CmpOp0, CmpOp1, CC, DL));
2988 return getAbsolute(DAG, DL, TrueOp, C.CCMask & SystemZ::CCMASK_CMP_LT);
2990 return getAbsolute(DAG, DL, FalseOp, C.CCMask & SystemZ::CCMASK_CMP_GT);
2993 SDValue CCReg = emitCmp(DAG, DL, C);
2995 DAG.getTargetConstant(C.CCValid, DL, MVT::i32),
2996 DAG.getTargetConstant(C.CCMask, DL, MVT::i32), CCReg};
2998 return DAG.getNode(SystemZISD::SELECT_CCMASK, DL, Op.getValueType(), Ops);
3003 SDLoc DL(Node);
3014 Result = DAG.getTargetGlobalAddress(GV, DL, PtrVT, Anchor);
3015 Result = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Result);
3022 DAG.getTargetGlobalAddress(GV, DL, PtrVT, Anchor + Offset);
3023 Result = DAG.getNode(SystemZISD::PCREL_OFFSET, DL, PtrVT, Full, Result);
3029 Result = DAG.getTargetGlobalAddress(GV, DL, PtrVT);
3030 Result = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Result);
3033 Result = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0, SystemZII::MO_GOT);
3034 Result = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Result);
3035 Result = DAG.getLoad(PtrVT, DL, DAG.getEntryNode(), Result,
3042 Result = DAG.getNode(ISD::ADD, DL, PtrVT, Result,
3043 DAG.getConstant(Offset, DL, PtrVT));
3052 SDLoc DL(Node);
3063 Chain = DAG.getCopyToReg(Chain, DL, SystemZ::R12D, GOT, Glue);
3065 Chain = DAG.getCopyToReg(Chain, DL, SystemZ::R2D, GOTOffset, Glue);
3071 Ops.push_back(DAG.getTargetGlobalAddress(Node->getGlobal(), DL,
3092 Chain = DAG.getNode(Opcode, DL, NodeTys, Ops);
3096 return DAG.getCopyFromReg(Chain, DL, SystemZ::R2D, PtrVT, Glue);
3099 SDValue SystemZTargetLowering::lowerThreadPointer(const SDLoc &DL,
3105 SDValue TPHi = DAG.getCopyFromReg(Chain, DL, SystemZ::A0, MVT::i32);
3106 TPHi = DAG.getNode(ISD::ANY_EXTEND, DL, PtrVT, TPHi);
3109 SDValue TPLo = DAG.getCopyFromReg(Chain, DL, SystemZ::A1, MVT::i32);
3110 TPLo = DAG.getNode(ISD::ZERO_EXTEND, DL, PtrVT, TPLo);
3113 SDValue TPHiShifted = DAG.getNode(ISD::SHL, DL, PtrVT, TPHi,
3114 DAG.getConstant(32, DL, PtrVT));
3115 return DAG.getNode(ISD::OR, DL, PtrVT, TPHiShifted, TPLo);
3122 SDLoc DL(Node);
3131 SDValue TP = lowerThreadPointer(DL, DAG);
3143 PtrVT, DL, DAG.getEntryNode(), Offset,
3158 PtrVT, DL, DAG.getEntryNode(), Offset,
3176 PtrVT, DL, DAG.getEntryNode(), DTPOffset,
3179 Offset = DAG.getNode(ISD::ADD, DL, PtrVT, Offset, DTPOffset);
3185 Offset = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0,
3187 Offset = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Offset);
3189 DAG.getLoad(PtrVT, DL, DAG.getEntryNode(), Offset,
3201 PtrVT, DL, DAG.getEntryNode(), Offset,
3208 return DAG.getNode(ISD::ADD, DL, PtrVT, TP, Offset);
3213 SDLoc DL(Node);
3219 Result = DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Result);
3225 SDLoc DL(JT);
3230 return DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Result);
3235 SDLoc DL(CP);
3247 return DAG.getNode(SystemZISD::PCREL_WRAPPER, DL, PtrVT, Result);
3258 SDLoc DL(Op);
3265 return DAG.getConstant(0, DL, PtrVT);
3288 SDLoc DL(Op);
3299 return DAG.getCopyFromReg(DAG.getEntryNode(), DL, LinkReg, PtrVT);
3304 SDLoc DL(Op);
3314 SDValue NewLoad = DAG.getLoad(ResVT, DL, LoadN->getChain(),
3324 SDNode *U64 = DAG.getMachineNode(TargetOpcode::IMPLICIT_DEF, DL,
3326 In64 = DAG.getTargetInsertSubreg(SystemZ::subreg_h32, DL,
3329 In64 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, In);
3330 In64 = DAG.getNode(ISD::SHL, DL, MVT::i64, In64,
3331 DAG.getConstant(32, DL, MVT::i64));
3333 SDValue Out64 = DAG.getNode(ISD::BITCAST, DL, MVT::f64, In64);
3335 DL, MVT::f32, Out64);
3338 SDNode *U64 = DAG.getMachineNode(TargetOpcode::IMPLICIT_DEF, DL, MVT::f64);
3339 SDValue In64 = DAG.getTargetInsertSubreg(SystemZ::subreg_h32, DL,
3341 SDValue Out64 = DAG.getNode(ISD::BITCAST, DL, MVT::i64, In64);
3343 return DAG.getTargetExtractSubreg(SystemZ::subreg_h32, DL,
3345 SDValue Shift = DAG.getNode(ISD::SRL, DL, MVT::i64, Out64,
3346 DAG.getConstant(32, DL, MVT::i64));
3347 return DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Shift);
3362 SDLoc DL(Op);
3367 DAG.getConstant(FuncInfo->getVarArgsFirstGPR(), DL, PtrVT),
3368 DAG.getConstant(FuncInfo->getVarArgsFirstFPR(), DL, PtrVT),
3379 FieldAddr = DAG.getNode(ISD::ADD, DL, PtrVT, FieldAddr,
3380 DAG.getIntPtrConstant(Offset, DL));
3381 MemOps[I] = DAG.getStore(Chain, DL, Fields[I], FieldAddr,
3385 return DAG.getNode(ISD::TokenFactor, DL, MVT::Other, MemOps);
3395 SDLoc DL(Op);
3397 return DAG.getMemcpy(Chain, DL, DstPtr, SrcPtr, DAG.getIntPtrConstant(32, DL),
3413 SDLoc DL(Op);
3428 SDValue OldSP = DAG.getCopyFromReg(Chain, DL, SPReg, MVT::i64);
3433 Backchain = DAG.getLoad(MVT::i64, DL, Chain, OldSP, MachinePointerInfo());
3437 NeededSpace = DAG.getNode(ISD::ADD, DL, MVT::i64, NeededSpace,
3438 DAG.getConstant(ExtraAlignSpace, DL, MVT::i64));
3443 NewSP = DAG.getNode(SystemZISD::PROBED_ALLOCA, DL,
3448 NewSP = DAG.getNode(ISD::SUB, DL, MVT::i64, OldSP, NeededSpace);
3450 Chain = DAG.getCopyToReg(Chain, DL, SPReg, NewSP);
3456 SDValue ArgAdjust = DAG.getNode(SystemZISD::ADJDYNALLOC, DL, MVT::i64);
3457 SDValue Result = DAG.getNode(ISD::ADD, DL, MVT::i64, NewSP, ArgAdjust);
3462 DAG.getNode(ISD::ADD, DL, MVT::i64, Result,
3463 DAG.getConstant(ExtraAlignSpace, DL, MVT::i64));
3465 DAG.getNode(ISD::AND, DL, MVT::i64, Result,
3466 DAG.getConstant(~(RequiredAlign - 1), DL, MVT::i64));
3470 Chain = DAG.getStore(Chain, DL, Backchain, NewSP, MachinePointerInfo());
3473 return DAG.getMergeValues(Ops, DL);
3478 SDLoc DL(Op);
3480 return DAG.getNode(SystemZISD::ADJDYNALLOC, DL, MVT::i64);
3486 SDLoc DL(Op);
3491 lowerMUL_LOHI32(DAG, DL, ISD::SIGN_EXTEND, Op.getOperand(0),
3497 lowerGR128Binary(DAG, DL, VT, SystemZISD::SMUL_LOHI,
3513 SDValue C63 = DAG.getConstant(63, DL, MVT::i64);
3516 SDValue LH = DAG.getNode(ISD::SRA, DL, VT, LL, C63);
3517 SDValue RH = DAG.getNode(ISD::SRA, DL, VT, RL, C63);
3521 lowerGR128Binary(DAG, DL, VT, SystemZISD::UMUL_LOHI,
3523 SDValue NegLLTimesRH = DAG.getNode(ISD::AND, DL, VT, LL, RH);
3524 SDValue NegLHTimesRL = DAG.getNode(ISD::AND, DL, VT, LH, RL);
3525 SDValue NegSum = DAG.getNode(ISD::ADD, DL, VT, NegLLTimesRH, NegLHTimesRL);
3526 Ops[1] = DAG.getNode(ISD::SUB, DL, VT, Ops[1], NegSum);
3528 return DAG.getMergeValues(Ops, DL);
3534 SDLoc DL(Op);
3539 lowerMUL_LOHI32(DAG, DL, ISD::ZERO_EXTEND, Op.getOperand(0),
3545 lowerGR128Binary(DAG, DL, VT, SystemZISD::UMUL_LOHI,
3547 return DAG.getMergeValues(Ops, DL);
3555 SDLoc DL(Op);
3561 Op0 = DAG.getNode(ISD::SIGN_EXTEND, DL, MVT::i64, Op0);
3563 Op1 = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Op1);
3568 lowerGR128Binary(DAG, DL, VT, SystemZISD::SDIVREM, Op0, Op1, Ops[1], Ops[0]);
3569 return DAG.getMergeValues(Ops, DL);
3575 SDLoc DL(Op);
3577 // DL(G) returns the remainder in the even register and the
3580 lowerGR128Binary(DAG, DL, VT, SystemZISD::UDIVREM,
3582 return DAG.getMergeValues(Ops, DL);
3634 SDLoc DL(Op);
3635 SDValue Low32 = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, LowOp);
3636 return DAG.getTargetInsertSubreg(SystemZ::subreg_l32, DL,
3646 SDLoc DL(N);
3676 SDValue Result = DAG.getNode(BaseOp, DL, VTs, LHS, RHS);
3678 SDValue SetCC = emitSETCC(DAG, DL, Result.getValue(1), CCValid, CCMask);
3680 SetCC = DAG.getNode(ISD::TRUNCATE, DL, MVT::i1, SetCC);
3682 return DAG.getNode(ISD::MERGE_VALUES, DL, N->getVTList(), Result, SetCC);
3711 SDLoc DL(N);
3737 Carry = DAG.getNode(SystemZISD::GET_CCMASK, DL, MVT::i32, Carry,
3738 DAG.getConstant(CCValid, DL, MVT::i32),
3739 DAG.getConstant(CCMask, DL, MVT::i32));
3742 SDValue Result = DAG.getNode(BaseOp, DL, VTs, LHS, RHS, Carry);
3744 SDValue SetCC = emitSETCC(DAG, DL, Result.getValue(1), CCValid, CCMask);
3746 SetCC = DAG.getNode(ISD::TRUNCATE, DL, MVT::i1, SetCC);
3748 return DAG.getNode(ISD::MERGE_VALUES, DL, N->getVTList(), Result, SetCC);
3754 SDLoc DL(Op);
3759 Op = DAG.getNode(ISD::BITCAST, DL, MVT::v16i8, Op);
3760 Op = DAG.getNode(SystemZISD::POPCNT, DL, MVT::v16i8, Op);
3765 Op = DAG.getNode(ISD::BITCAST, DL, VT, Op);
3766 SDValue Shift = DAG.getConstant(8, DL, MVT::i32);
3767 SDValue Tmp = DAG.getNode(SystemZISD::VSHL_BY_SCALAR, DL, VT, Op, Shift);
3768 Op = DAG.getNode(ISD::ADD, DL, VT, Op, Tmp);
3769 Op = DAG.getNode(SystemZISD::VSRL_BY_SCALAR, DL, VT, Op, Shift);
3773 SDValue Tmp = DAG.getSplatBuildVector(MVT::v16i8, DL,
3774 DAG.getConstant(0, DL, MVT::i32));
3775 Op = DAG.getNode(SystemZISD::VSUM, DL, VT, Op, Tmp);
3779 SDValue Tmp = DAG.getSplatBuildVector(MVT::v16i8, DL,
3780 DAG.getConstant(0, DL, MVT::i32));
3781 Op = DAG.getNode(SystemZISD::VSUM, DL, MVT::v4i32, Op, Tmp);
3782 Op = DAG.getNode(SystemZISD::VSUM, DL, VT, Op, Tmp);
3795 return DAG.getConstant(0, DL, VT);
3803 Op = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op);
3804 Op = DAG.getNode(SystemZISD::POPCNT, DL, MVT::i64, Op);
3805 Op = DAG.getNode(ISD::TRUNCATE, DL, VT, Op);
3810 SDValue Tmp = DAG.getNode(ISD::SHL, DL, VT, Op, DAG.getConstant(I, DL, VT));
3812 Tmp = DAG.getNode(ISD::AND, DL, VT, Tmp,
3813 DAG.getConstant(((uint64_t)1 << BitSize) - 1, DL, VT));
3814 Op = DAG.getNode(ISD::ADD, DL, VT, Op, Tmp);
3819 Op = DAG.getNode(ISD::SRL, DL, VT, Op,
3820 DAG.getConstant(BitSize - 8, DL, VT));
3827 SDLoc DL(Op);
3837 return SDValue(DAG.getMachineNode(SystemZ::Serialize, DL, MVT::Other,
3843 return DAG.getNode(SystemZISD::MEMBARRIER, DL, MVT::Other, Op.getOperand(0));
3888 SDLoc DL(Node);
3895 Src2 = DAG.getConstant(-Const->getSExtValue(), DL, Src2.getValueType());
3899 SDValue AlignedAddr = DAG.getNode(ISD::AND, DL, PtrVT, Addr,
3900 DAG.getConstant(-4, DL, PtrVT));
3904 SDValue BitShift = DAG.getNode(ISD::SHL, DL, PtrVT, Addr,
3905 DAG.getConstant(3, DL, PtrVT));
3906 BitShift = DAG.getNode(ISD::TRUNCATE, DL, WideVT, BitShift);
3910 SDValue NegBitShift = DAG.getNode(ISD::SUB, DL, WideVT,
3911 DAG.getConstant(0, DL, WideVT), BitShift);
3919 Src2 = DAG.getNode(ISD::SHL, DL, WideVT, Src2,
3920 DAG.getConstant(32 - BitSize, DL, WideVT));
3923 Src2 = DAG.getNode(ISD::OR, DL, WideVT, Src2,
3924 DAG.getConstant(uint32_t(-1) >> BitSize, DL, WideVT));
3929 DAG.getConstant(BitSize, DL, WideVT) };
3930 SDValue AtomicOp = DAG.getMemIntrinsicNode(Opcode, DL, VTList, Ops,
3935 SDValue ResultShift = DAG.getNode(ISD::ADD, DL, WideVT, BitShift,
3936 DAG.getConstant(BitSize, DL, WideVT));
3937 SDValue Result = DAG.getNode(ISD::ROTL, DL, WideVT, AtomicOp, ResultShift);
3940 return DAG.getMergeValues(RetOps, DL);
3955 SDLoc DL(Src2);
3962 NegSrc2 = DAG.getConstant(Value, DL, MemVT);
3965 NegSrc2 = DAG.getNode(ISD::SUB, DL, MemVT, DAG.getConstant(0, DL, MemVT),
3969 return DAG.getAtomic(ISD::ATOMIC_LOAD_ADD, DL, MemVT,
3989 SDLoc DL(Node);
3999 DL, Tys, Ops, NarrowVT, MMO);
4000 SDValue Success = emitSETCC(DAG, DL, AtomicOp.getValue(1),
4015 SDValue AlignedAddr = DAG.getNode(ISD::AND, DL, PtrVT, Addr,
4016 DAG.getConstant(-4, DL, PtrVT));
4020 SDValue BitShift = DAG.getNode(ISD::SHL, DL, PtrVT, Addr,
4021 DAG.getConstant(3, DL, PtrVT));
4022 BitShift = DAG.getNode(ISD::TRUNCATE, DL, WideVT, BitShift);
4026 SDValue NegBitShift = DAG.getNode(ISD::SUB, DL, WideVT,
4027 DAG.getConstant(0, DL, WideVT), BitShift);
4032 NegBitShift, DAG.getConstant(BitSize, DL, WideVT) };
4033 SDValue AtomicOp = DAG.getMemIntrinsicNode(SystemZISD::ATOMIC_CMP_SWAPW, DL,
4035 SDValue Success = emitSETCC(DAG, DL, AtomicOp.getValue(1),
4089 SDLoc DL(Op);
4092 SDValue OldSP = DAG.getCopyFromReg(Chain, DL, SystemZ::R15D, MVT::i64);
4093 Backchain = DAG.getLoad(MVT::i64, DL, Chain, OldSP, MachinePointerInfo());
4096 Chain = DAG.getCopyToReg(Chain, DL, SystemZ::R15D, NewSP);
4099 Chain = DAG.getStore(Chain, DL, Backchain, NewSP, MachinePointerInfo());
4111 SDLoc DL(Op);
4115 SDValue Ops[] = {Op.getOperand(0), DAG.getTargetConstant(Code, DL, MVT::i32),
4117 return DAG.getMemIntrinsicNode(SystemZISD::PREFETCH, DL,
4124 SDLoc DL(CCReg);
4125 SDValue IPM = DAG.getNode(SystemZISD::IPM, DL, MVT::i32, CCReg);
4126 return DAG.getNode(ISD::SRL, DL, MVT::i32, IPM,
4127 DAG.getConstant(SystemZ::IPM_CC, DL, MVT::i32));
4444 static SDValue getPermuteNode(SelectionDAG &DAG, const SDLoc &DL,
4454 Op0 = DAG.getNode(ISD::BITCAST, DL, InVT, Op0);
4455 Op1 = DAG.getNode(ISD::BITCAST, DL, InVT, Op1);
4458 SDValue Op2 = DAG.getTargetConstant(P.Operand, DL, MVT::i32);
4459 Op = DAG.getNode(SystemZISD::PERMUTE_DWORDS, DL, InVT, Op0, Op1, Op2);
4463 Op = DAG.getNode(SystemZISD::PACK, DL, OutVT, Op0, Op1);
4465 Op = DAG.getNode(P.Opcode, DL, InVT, Op0, Op1);
4490 static SDValue getGeneralPermuteNode(SelectionDAG &DAG, const SDLoc &DL,
4494 Ops[I] = DAG.getNode(ISD::BITCAST, DL, MVT::v16i8, Ops[I]);
4499 return DAG.getNode(SystemZISD::SHL_DOUBLE, DL, MVT::v16i8, Ops[OpNo0],
4501 DAG.getTargetConstant(StartIndex, DL, MVT::i32));
4531 IndexNodes[I] = DAG.getConstant(ZeroIdx, DL, MVT::i32);
4534 IndexNodes[I] = DAG.getConstant(BIdx, DL, MVT::i32);
4539 SDValue Mask = DAG.getBuildVector(MVT::v16i8, DL, IndexNodes);
4542 return DAG.getNode(SystemZISD::PERMUTE, DL, MVT::v16i8, Mask, Src,
4545 return DAG.getNode(SystemZISD::PERMUTE, DL, MVT::v16i8, Src, Mask,
4553 IndexNodes[I] = DAG.getConstant(Bytes[I], DL, MVT::i32);
4556 SDValue Op2 = DAG.getBuildVector(MVT::v16i8, DL, IndexNodes);
4557 return DAG.getNode(SystemZISD::PERMUTE, DL, MVT::v16i8, Ops[0],
4570 SDValue insertUnpackIfPrepared(SelectionDAG &DAG, const SDLoc &DL, SDValue Op);
4661 SDValue GeneralShuffle::getNode(SelectionDAG &DAG, const SDLoc &DL) {
4703 Ops[I] = getPermuteNode(DAG, DL, *P, SubOps[0], SubOps[1]);
4715 Ops[I] = getGeneralPermuteNode(DAG, DL, SubOps, NewBytes);
4738 Op = getPermuteNode(DAG, DL, *P, Ops[OpNo0], Ops[OpNo1]);
4740 Op = getGeneralPermuteNode(DAG, DL, &Ops[0], Bytes);
4742 Op = insertUnpackIfPrepared(DAG, DL, Op);
4744 return DAG.getNode(ISD::BITCAST, DL, VT, Op);
4832 const SDLoc &DL,
4839 SDValue PackedOp = DAG.getNode(ISD::BITCAST, DL, InVT, Op);
4843 return DAG.getNode(SystemZISD::UNPACKL_HIGH, DL, OutVT, PackedOp);
4856 static SDValue buildScalarToVector(SelectionDAG &DAG, const SDLoc &DL, EVT VT,
4863 return DAG.getBuildVector(VT, DL, Ops);
4867 return DAG.getNode(ISD::SCALAR_TO_VECTOR, DL, VT, Value);
4872 static SDValue buildMergeScalars(SelectionDAG &DAG, const SDLoc &DL, EVT VT,
4877 return DAG.getNode(SystemZISD::REPLICATE, DL, VT, Op1);
4880 return DAG.getNode(SystemZISD::REPLICATE, DL, VT, Op0);
4881 return DAG.getNode(SystemZISD::MERGE_HIGH, DL, VT,
4882 buildScalarToVector(DAG, DL, VT, Op0),
4883 buildScalarToVector(DAG, DL, VT, Op1));
4888 static SDValue joinDwords(SelectionDAG &DAG, const SDLoc &DL, SDValue Op0,
4895 Op0 = Op1 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op1);
4897 Op0 = Op1 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op0);
4899 Op0 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op0);
4900 Op1 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op1);
4902 return DAG.getNode(SystemZISD::JOIN_DWORDS, DL, MVT::v2i64, Op0, Op1);
4968 SystemZTargetLowering::buildVector(SelectionDAG &DAG, const SDLoc &DL, EVT VT,
4999 return DAG.getNode(SystemZISD::REPLICATE, DL, VT, Single);
5011 return joinDwords(DAG, DL, Elems[0], Elems[1]);
5015 return buildMergeScalars(DAG, DL, VT, Elems[0], Elems[1]);
5025 SDValue Op01 = buildMergeScalars(DAG, DL, VT, Elems[0], Elems[1]);
5026 SDValue Op23 = buildMergeScalars(DAG, DL, VT, Elems[2], Elems[3]);
5035 Op01 = DAG.getNode(ISD::BITCAST, DL, MVT::v2i64, Op01);
5036 Op23 = DAG.getNode(ISD::BITCAST, DL, MVT::v2i64, Op23);
5038 DL, MVT::v2i64, Op01, Op23);
5039 return DAG.getNode(ISD::BITCAST, DL, VT, Op);
5065 Result = DAG.getBuildVector(VT, DL, Constants);
5084 Result = DAG.getNode(SystemZISD::REPLICATE, DL, VT, ReplicatedVal);
5094 Result = DAG.getNode(ISD::BITCAST, DL, VT,
5095 joinDwords(DAG, DL, Elem1, Elem2));
5106 Result = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, VT, Result, Elems[I],
5107 DAG.getConstant(I, DL, MVT::i32));
5114 SDLoc DL(Op);
5131 return buildScalarToVector(DAG, DL, VT, Op.getOperand(0));
5138 return buildVector(DAG, DL, VT, Ops);
5144 SDLoc DL(Op);
5156 return DAG.getNode(SystemZISD::REPLICATE, DL, VT, Op0.getOperand(Index));
5158 return DAG.getNode(SystemZISD::SPLAT, DL, VT, Op.getOperand(0),
5159 DAG.getTargetConstant(Index, DL, MVT::i32));
5176 SDLoc DL(Op);
5178 return DAG.getNode(ISD::INSERT_VECTOR_ELT, DL,
5180 Op.getOperand(0), DAG.getConstant(0, DL, MVT::i32));
5186 SDLoc DL(Op);
5208 SDValue Res = DAG.getNode(ISD::INSERT_VECTOR_ELT, DL, IntVecVT,
5209 DAG.getNode(ISD::BITCAST, DL, IntVecVT, Op0),
5210 DAG.getNode(ISD::BITCAST, DL, IntVT, Op1), Op2);
5211 return DAG.getNode(ISD::BITCAST, DL, VT, Res);
5218 SDLoc DL(Op);
5235 SDValue Res = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, IntVT,
5236 DAG.getNode(ISD::BITCAST, DL, IntVecVT, Op0), Op1);
5237 return DAG.getNode(ISD::BITCAST, DL, VT, Res);
5261 SDLoc DL(Op);
5269 DAG.getSplatVector(InVT, DL, DAG.getConstant(0, DL, InVT.getScalarType()));
5280 SDValue Shuf = DAG.getVectorShuffle(InVT, DL, PackedOp, ZeroVec, Mask);
5281 return DAG.getNode(ISD::BITCAST, DL, OutVT, Shuf);
5289 SDLoc DL(Op);
5304 DL, MVT::i32);
5305 return DAG.getNode(ByScalar, DL, VT, Op0, Shift);
5313 SDValue Shift = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, Splat);
5314 return DAG.getNode(ByScalar, DL, VT, Op0, Shift);
5330 SDValue Shift = DAG.getNode(ISD::TRUNCATE, DL, MVT::i32,
5332 return DAG.getNode(ByScalar, DL, VT, Op0, Shift);
5467 SDLoc DL(In);
5468 SDValue Lo = DAG.getNode(ISD::EXTRACT_ELEMENT, DL, MVT::i64, In,
5469 DAG.getIntPtrConstant(0, DL));
5470 SDValue Hi = DAG.getNode(ISD::EXTRACT_ELEMENT, DL, MVT::i64, In,
5471 DAG.getIntPtrConstant(1, DL));
5472 SDNode *Pair = DAG.getMachineNode(SystemZ::PAIR128, DL,
5478 SDLoc DL(In);
5480 DL, MVT::i64, In);
5482 DL, MVT::i64, In);
5483 return DAG.getNode(ISD::BUILD_PAIR, DL, MVT::i128, Lo, Hi);
5492 SDLoc DL(N);
5497 DL, Tys, Ops, MVT::i128, MMO);
5503 SDLoc DL(N);
5510 DL, Tys, Ops, MVT::i128, MMO);
5515 Res = SDValue(DAG.getMachineNode(SystemZ::Serialize, DL,
5521 SDLoc DL(N);
5528 DL, Tys, Ops, MVT::i128, MMO);
5529 SDValue Success = emitSETCC(DAG, DL, Res.getValue(1),
5531 Success = DAG.getZExtOrTrunc(Success, DL, N->getValueType(1));
5697 SDValue SystemZTargetLowering::combineExtract(const SDLoc &DL, EVT ResVT,
5752 Op = DAG.getNode(ISD::BITCAST, DL, VT, Op);
5756 Op = DAG.getNode(ISD::TRUNCATE, DL, VT, Op);
5759 Op = DAG.getNode(ISD::BITCAST, DL, ResVT, Op);
5792 Op = DAG.getNode(ISD::BITCAST, DL, VecVT, Op);
5795 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, ResVT, Op,
5796 DAG.getConstant(Index, DL, MVT::i32));
5804 const SDLoc &DL, EVT TruncVT, SDValue Op, DAGCombinerInfo &DCI) const {
5830 return combineExtract(DL, ResVT, VecVT, Vec, NewIndex, DCI, true);
5848 SDLoc DL(N0);
5849 SDValue Ops[] = { DAG.getConstant(TrueOp->getZExtValue(), DL, VT),
5850 DAG.getConstant(FalseOp->getZExtValue(), DL, VT),
5852 SDValue NewSelect = DAG.getNode(SystemZISD::SELECT_CCMASK, DL, VT, Ops);
5856 DAG.getNode(ISD::TRUNCATE, DL, N0.getValueType(), NewSelect);
5877 SDLoc DL(N0);
5879 DAG.getConstant(-1, DL, VT), DAG.getConstant(0, DL, VT),
5881 return DAG.getNode(ISD::SELECT_CC, DL, VT, Ops);
5977 SDLoc DL(N);
5978 SDValue Extract0 = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, DL, LdVT,
5979 Replicate, DAG.getConstant(0, DL, MVT::i32));
7122 DebugLoc DL = MI->getDebugLoc();
7123 BuildMI(*SinkMBB, SinkInsertionPoint, DL, TII->get(SystemZ::PHI), DestReg)
7245 DebugLoc DL = MI.getDebugLoc();
7265 BuildMI(*MBB, MI, DL, TII->get(STOCOpcode))
7296 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
7305 BuildMI(MBB, DL, TII->get(StoreOpcode))
7340 DebugLoc DL = MI.getDebugLoc();
7374 BuildMI(MBB, DL, TII->get(LOpcode), OrigVal).add(Base).addImm(Disp).addReg(0);
7386 BuildMI(MBB, DL, TII->get(SystemZ::PHI), OldVal)
7390 BuildMI(MBB, DL, TII->get(SystemZ::RLL), RotatedOldVal)
7395 BuildMI(MBB, DL, TII->get(BinOpcode), Tmp).addReg(RotatedOldVal).add(Src2);
7398 BuildMI(MBB, DL, TII->get(SystemZ::XILF), RotatedNewVal)
7404 BuildMI(MBB, DL, TII->get(SystemZ::LCGR), Tmp2).addReg(Tmp);
7405 BuildMI(MBB, DL, TII->get(SystemZ::AGHI), RotatedNewVal)
7410 BuildMI(MBB, DL, TII->get(BinOpcode), RotatedNewVal)
7416 BuildMI(MBB, DL, TII->get(SystemZ::RISBG32), RotatedNewVal)
7420 BuildMI(MBB, DL, TII->get(SystemZ::RLL), NewVal)
7422 BuildMI(MBB, DL, TII->get(CSOpcode), Dest)
7427 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
7458 DebugLoc DL = MI.getDebugLoc();
7494 BuildMI(MBB, DL, TII->get(LOpcode), OrigVal).add(Base).addImm(Disp).addReg(0);
7503 BuildMI(MBB, DL, TII->get(SystemZ::PHI), OldVal)
7507 BuildMI(MBB, DL, TII->get(SystemZ::RLL), RotatedOldVal)
7509 BuildMI(MBB, DL, TII->get(CompareOpcode))
7511 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
7521 BuildMI(MBB, DL, TII->get(SystemZ::RISBG32), RotatedAltVal)
7534 BuildMI(MBB, DL, TII->get(SystemZ::PHI), RotatedNewVal)
7538 BuildMI(MBB, DL, TII->get(SystemZ::RLL), NewVal)
7540 BuildMI(MBB, DL, TII->get(CSOpcode), Dest)
7545 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
7574 DebugLoc DL = MI.getDebugLoc();
7604 BuildMI(MBB, DL, TII->get(LOpcode), OrigOldVal)
7625 BuildMI(MBB, DL, TII->get(SystemZ::PHI), OldVal)
7628 BuildMI(MBB, DL, TII->get(SystemZ::PHI), CmpVal)
7631 BuildMI(MBB, DL, TII->get(SystemZ::PHI), SwapVal)
7634 BuildMI(MBB, DL, TII->get(SystemZ::RLL), Dest)
7636 BuildMI(MBB, DL, TII->get(SystemZ::RISBG32), RetryCmpVal)
7638 BuildMI(MBB, DL, TII->get(SystemZ::CR))
7640 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
7656 BuildMI(MBB, DL, TII->get(SystemZ::RISBG32), RetrySwapVal)
7658 BuildMI(MBB, DL, TII->get(SystemZ::RLL), StoreVal)
7660 BuildMI(MBB, DL, TII->get(CSOpcode), RetryOldVal)
7665 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
7688 DebugLoc DL = MI.getDebugLoc();
7696 BuildMI(*MBB, MI, DL, TII->get(TargetOpcode::IMPLICIT_DEF), Tmp1);
7697 BuildMI(*MBB, MI, DL, TII->get(TargetOpcode::INSERT_SUBREG), Tmp2)
7699 BuildMI(*MBB, MI, DL, TII->get(TargetOpcode::INSERT_SUBREG), Dest)
7716 DebugLoc DL = MI.getDebugLoc();
7722 BuildMI(*MBB, MI, DL, TII->get(TargetOpcode::IMPLICIT_DEF), In128);
7727 BuildMI(*MBB, MI, DL, TII->get(SystemZ::LLILL), Zero64)
7729 BuildMI(*MBB, MI, DL, TII->get(TargetOpcode::INSERT_SUBREG), NewIn128)
7733 BuildMI(*MBB, MI, DL, TII->get(TargetOpcode::INSERT_SUBREG), Dest)
7746 DebugLoc DL = MI.getDebugLoc();
7804 BuildMI(MBB, DL, TII->get(SystemZ::PHI), ThisDestReg)
7808 BuildMI(MBB, DL, TII->get(SystemZ::PHI), ThisSrcReg)
7811 BuildMI(MBB, DL, TII->get(SystemZ::PHI), ThisCountReg)
7815 BuildMI(MBB, DL, TII->get(SystemZ::PFD))
7818 BuildMI(MBB, DL, TII->get(Opcode))
7822 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
7840 BuildMI(MBB, DL, TII->get(SystemZ::LA), NextDestReg)
7843 BuildMI(MBB, DL, TII->get(SystemZ::LA), NextSrcReg)
7845 BuildMI(MBB, DL, TII->get(SystemZ::AGHI), NextCountReg)
7847 BuildMI(MBB, DL, TII->get(SystemZ::CGHI))
7849 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
7887 BuildMI(*MBB, MI, DL, TII->get(Opcode))
7901 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
7927 DebugLoc DL = MI.getDebugLoc();
7958 BuildMI(MBB, DL, TII->get(SystemZ::PHI), This1Reg)
7961 BuildMI(MBB, DL, TII->get(SystemZ::PHI), This2Reg)
7964 BuildMI(MBB, DL, TII->get(TargetOpcode::COPY), SystemZ::R0L).addReg(CharReg);
7965 BuildMI(MBB, DL, TII->get(Opcode))
7968 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
8034 DebugLoc DL = MI.getDebugLoc();
8044 BuildMI(*MBB, MI, DL, TII->get(Opcode), DstReg)
8058 DebugLoc DL = MI.getDebugLoc();
8081 BuildMI(MBB, DL, TII->get(SystemZ::PHI), PHIReg)
8086 BuildMI(MBB, DL, TII->get(SystemZ::CLGFI))
8089 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
8098 BuildMI(MBB, DL, TII->get(SystemZ::SLGFI), IncReg)
8101 BuildMI(MBB, DL, TII->get(SystemZ::SLGFI), SystemZ::R15D)
8104 BuildMI(MBB, DL, TII->get(SystemZ::CG)).addReg(SystemZ::R15D)
8107 BuildMI(MBB, DL, TII->get(SystemZ::J)).addMBB(LoopTestMBB);
8114 BuildMI(MBB, DL, TII->get(SystemZ::CGHI))
8117 BuildMI(MBB, DL, TII->get(SystemZ::BRC))
8126 BuildMI(MBB, DL, TII->get(SystemZ::SLGR), SystemZ::R15D)
8129 BuildMI(MBB, DL, TII->get(SystemZ::CG)).addReg(SystemZ::R15D)
8136 BuildMI(*MBB, MBB->begin(), DL, TII->get(TargetOpcode::COPY), DstReg)