Lines Matching defs:CurDAG

79     return CurDAG->getTargetConstant(Imm, dl, MVT::i32);
118 Pred = CurDAG->getTargetConstant(CN->getZExtValue(), SDLoc(N), MVT::i32);
119 Reg = CurDAG->getRegister(ARM::CPSR, MVT::i32);
359 /// Replace N with M in CurDAG, in a way that also ensures that M gets
429 for (SDNode &N : llvm::make_early_inc_range(CurDAG->allnodes())) {
491 Srl = CurDAG->getNode(ISD::SRL, SDLoc(Srl), MVT::i32,
493 CurDAG->getConstant(Srl_imm + TZ, SDLoc(Srl),
495 N1 = CurDAG->getNode(ISD::AND, SDLoc(N1), MVT::i32,
497 CurDAG->getConstant(And_imm, SDLoc(Srl), MVT::i32));
498 N1 = CurDAG->getNode(ISD::SHL, SDLoc(N1), MVT::i32,
499 N1, CurDAG->getConstant(TZ, SDLoc(Srl), MVT::i32));
500 CurDAG->UpdateNodeOperands(&N, N0, N1);
522 CurDAG->getSubtarget().getInstrInfo());
589 NewMulConst = CurDAG->getConstant(NewMulConstVal, SDLoc(N), MVT::i32);
596 CurDAG->RepositionNode(N.getNode()->getIterator(), M.getNode());
617 Opc = CurDAG->getTargetConstant(
634 Opc = CurDAG->getTargetConstant(ARM_AM::getSORegOpc(ShOpcVal, ShImmVal),
661 Opc = CurDAG->getTargetConstant(ARM_AM::getSORegOpc(ShOpcVal, ShImmVal),
671 return CurDAG->haveNoCommonBitsSet(N, Parent->getOperand(1));
682 !CurDAG->isBaseWithConstantOffset(N)) {
686 Base = CurDAG->getTargetFrameIndex(
687 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
688 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
699 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
712 Base = CurDAG->getTargetFrameIndex(
713 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
715 OffImm = CurDAG->getTargetConstant(RHSC, SDLoc(N), MVT::i32);
722 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
745 Opc = CurDAG->getTargetConstant(ARM_AM::getAM2Opc(AddSub, ShAmt,
756 !CurDAG->isBaseWithConstantOffset(N))
831 Opc = CurDAG->getTargetConstant(ARM_AM::getAM2Opc(AddSub, ShAmt, ShOpcVal),
867 Opc = CurDAG->getTargetConstant(ARM_AM::getAM2Opc(AddSub, ShAmt, ShOpcVal),
883 Offset = CurDAG->getRegister(0, MVT::i32);
884 Opc = CurDAG->getTargetConstant(Val, SDLoc(Op), MVT::i32);
902 Offset = CurDAG->getRegister(0, MVT::i32);
903 Opc = CurDAG->getTargetConstant(ARM_AM::getAM2Opc(AddSub, Val,
924 Opc = CurDAG->getTargetConstant(ARM_AM::getAM3Opc(ARM_AM::sub, 0), SDLoc(N),
929 if (!CurDAG->isBaseWithConstantOffset(N)) {
933 Base = CurDAG->getTargetFrameIndex(
934 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
936 Offset = CurDAG->getRegister(0, MVT::i32);
937 Opc = CurDAG->getTargetConstant(ARM_AM::getAM3Opc(ARM_AM::add, 0), SDLoc(N),
949 Base = CurDAG->getTargetFrameIndex(
950 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
952 Offset = CurDAG->getRegister(0, MVT::i32);
959 Opc = CurDAG->getTargetConstant(ARM_AM::getAM3Opc(AddSub, RHSC), SDLoc(N),
966 Opc = CurDAG->getTargetConstant(ARM_AM::getAM3Opc(ARM_AM::add, 0), SDLoc(N),
981 Offset = CurDAG->getRegister(0, MVT::i32);
982 Opc = CurDAG->getTargetConstant(ARM_AM::getAM3Opc(AddSub, Val), SDLoc(Op),
988 Opc = CurDAG->getTargetConstant(ARM_AM::getAM3Opc(AddSub, 0), SDLoc(Op),
995 if (!CurDAG->isBaseWithConstantOffset(N)) {
999 Base = CurDAG->getTargetFrameIndex(
1000 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1007 Offset = CurDAG->getTargetConstant(ARM_AM::getAM5Opc(ARM_AM::add, 0),
1020 Base = CurDAG->getTargetFrameIndex(
1021 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1031 Offset = CurDAG->getTargetConstant(ARM_AM::getAM5FP16Opc(AddSub, RHSC),
1034 Offset = CurDAG->getTargetConstant(ARM_AM::getAM5Opc(AddSub, RHSC),
1043 Offset = CurDAG->getTargetConstant(ARM_AM::getAM5FP16Opc(ARM_AM::add, 0),
1046 Offset = CurDAG->getTargetConstant(ARM_AM::getAM5Opc(ARM_AM::add, 0),
1087 Align = CurDAG->getTargetConstant(Alignment, SDLoc(N), MVT::i32);
1100 Offset = CurDAG->getRegister(0, MVT::i32);
1110 Label = CurDAG->getTargetConstant(N1->getAsZExtVal(), SDLoc(N), MVT::i32);
1138 if (N.getOpcode() != ISD::ADD && !CurDAG->isBaseWithConstantOffset(N)) {
1163 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1167 if (!CurDAG->isBaseWithConstantOffset(N)) {
1180 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1188 OffImm = CurDAG->getTargetConstant(RHSC, SDLoc(N), MVT::i32);
1223 Base = CurDAG->getTargetFrameIndex(
1224 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1225 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1229 if (!CurDAG->isBaseWithConstantOffset(N))
1248 Base = CurDAG->getTargetFrameIndex(
1249 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1250 OffImm = CurDAG->getTargetConstant(RHSC, SDLoc(N), MVT::i32);
1263 if (N.getOpcode() == ISD::SUB || CurDAG->isBaseWithConstantOffset(N)) {
1271 CurDAG->getTargetConstant(RHSC * (1 << Shift), SDLoc(N), MVT::i32);
1278 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1294 !CurDAG->isBaseWithConstantOffset(N)) {
1298 Base = CurDAG->getTargetFrameIndex(
1299 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1300 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1313 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1330 Base = CurDAG->getTargetFrameIndex(
1331 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1333 OffImm = CurDAG->getTargetConstant(RHSC, SDLoc(N), MVT::i32);
1340 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1347 if (N.getOpcode() == ISD::SUB || CurDAG->isBaseWithConstantOffset(N)) {
1353 Base = CurDAG->getTargetFrameIndex(
1354 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1360 CurDAG->getTargetConstant(RHSC * (1 << Shift), SDLoc(N), MVT::i32);
1367 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1375 !CurDAG->isBaseWithConstantOffset(N))
1387 Base = CurDAG->getTargetFrameIndex(
1388 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1390 OffImm = CurDAG->getTargetConstant(RHSC, SDLoc(N), MVT::i32);
1407 ? CurDAG->getTargetConstant(RHSC, SDLoc(N), MVT::i32)
1408 : CurDAG->getTargetConstant(-RHSC, SDLoc(N), MVT::i32);
1418 if (N.getOpcode() == ISD::SUB || CurDAG->isBaseWithConstantOffset(N)) {
1425 Base = CurDAG->getTargetFrameIndex(
1426 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1432 CurDAG->getTargetConstant(RHSC * (1 << Shift), SDLoc(N), MVT::i32);
1439 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1476 ? CurDAG->getTargetConstant(RHSC * (1 << Shift), SDLoc(N), MVT::i32)
1477 : CurDAG->getTargetConstant(-RHSC * (1 << Shift), SDLoc(N),
1488 OffImm = CurDAG->getTargetConstant(Val, SDLoc(N), MVT::i32);
1498 if (N.getOpcode() != ISD::ADD && !CurDAG->isBaseWithConstantOffset(N))
1549 ShImm = CurDAG->getTargetConstant(ShAmt, SDLoc(N), MVT::i32);
1559 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1561 if (N.getOpcode() != ISD::ADD || !CurDAG->isBaseWithConstantOffset(N))
1575 Base = CurDAG->getTargetFrameIndex(
1576 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1579 OffImm = CurDAG->getTargetConstant(RHSC/4, SDLoc(N), MVT::i32);
1586 static inline SDValue getAL(SelectionDAG *CurDAG, const SDLoc &dl) {
1587 return CurDAG->getTargetConstant((uint64_t)ARMCC::AL, dl, MVT::i32);
1592 CurDAG->setNodeMemRefs(cast<MachineSDNode>(Result), {MemOp});
1651 SDValue Ops[]= { Base, AMOpc, getAL(CurDAG, SDLoc(N)),
1652 CurDAG->getRegister(0, MVT::i32), Chain };
1653 SDNode *New = CurDAG->getMachineNode(Opcode, SDLoc(N), MVT::i32, MVT::i32,
1661 SDValue Ops[]= { Base, Offset, AMOpc, getAL(CurDAG, SDLoc(N)),
1662 CurDAG->getRegister(0, MVT::i32), Chain };
1663 SDNode *New = CurDAG->getMachineNode(Opcode, SDLoc(N), MVT::i32, MVT::i32,
1692 SDValue Ops[]= { Base, getAL(CurDAG, SDLoc(N)),
1693 CurDAG->getRegister(0, MVT::i32), Chain };
1694 SDNode *New = CurDAG->getMachineNode(ARM::tLDR_postidx, SDLoc(N), MVT::i32,
1740 SDValue Ops[]= { Base, Offset, getAL(CurDAG, SDLoc(N)),
1741 CurDAG->getRegister(0, MVT::i32), Chain };
1742 SDNode *New = CurDAG->getMachineNode(Opcode, SDLoc(N), MVT::i32, MVT::i32,
1776 PredReg = CurDAG->getRegister(0, MVT::i32);
1838 CurDAG->getTargetConstant(Pred, SDLoc(N), MVT::i32),
1840 CurDAG->getRegister(0, MVT::i32), // tp_reg
1842 SDNode *New = CurDAG->getMachineNode(Opcode, SDLoc(N), MVT::i32,
1848 CurDAG->RemoveDeadNode(N);
1856 CurDAG->getTargetConstant(ARM::GPRPairRegClassID, dl, MVT::i32);
1857 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::gsub_0, dl, MVT::i32);
1858 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::gsub_1, dl, MVT::i32);
1860 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1867 CurDAG->getTargetConstant(ARM::DPR_VFP2RegClassID, dl, MVT::i32);
1868 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::ssub_0, dl, MVT::i32);
1869 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::ssub_1, dl, MVT::i32);
1871 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1877 SDValue RegClass = CurDAG->getTargetConstant(ARM::QPRRegClassID, dl,
1879 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::dsub_0, dl, MVT::i32);
1880 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::dsub_1, dl, MVT::i32);
1882 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1888 SDValue RegClass = CurDAG->getTargetConstant(ARM::QQPRRegClassID, dl,
1890 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::qsub_0, dl, MVT::i32);
1891 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::qsub_1, dl, MVT::i32);
1893 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1901 CurDAG->getTargetConstant(ARM::QPR_VFP2RegClassID, dl, MVT::i32);
1902 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::ssub_0, dl, MVT::i32);
1903 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::ssub_1, dl, MVT::i32);
1904 SDValue SubReg2 = CurDAG->getTargetConstant(ARM::ssub_2, dl, MVT::i32);
1905 SDValue SubReg3 = CurDAG->getTargetConstant(ARM::ssub_3, dl, MVT::i32);
1908 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1915 SDValue RegClass = CurDAG->getTargetConstant(ARM::QQPRRegClassID, dl,
1917 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::dsub_0, dl, MVT::i32);
1918 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::dsub_1, dl, MVT::i32);
1919 SDValue SubReg2 = CurDAG->getTargetConstant(ARM::dsub_2, dl, MVT::i32);
1920 SDValue SubReg3 = CurDAG->getTargetConstant(ARM::dsub_3, dl, MVT::i32);
1923 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1930 SDValue RegClass = CurDAG->getTargetConstant(ARM::QQQQPRRegClassID, dl,
1932 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::qsub_0, dl, MVT::i32);
1933 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::qsub_1, dl, MVT::i32);
1934 SDValue SubReg2 = CurDAG->getTargetConstant(ARM::qsub_2, dl, MVT::i32);
1935 SDValue SubReg3 = CurDAG->getTargetConstant(ARM::qsub_3, dl, MVT::i32);
1938 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1960 return CurDAG->getTargetConstant(Alignment, dl, MVT::i32);
2164 ResTy = EVT::getVectorVT(*CurDAG->getContext(), MVT::i64, ResTyElts);
2172 SDValue Pred = getAL(CurDAG, dl);
2173 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
2200 VLd = CurDAG->getMachineNode(Opc, dl, ResTys, Ops);
2210 SDValue(CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, dl, ResTy), 0);
2212 SDNode *VLdA = CurDAG->getMachineNode(QOpcodes0[OpcodeIndex], dl,
2230 VLd = CurDAG->getMachineNode(QOpcodes1[OpcodeIndex], dl, ResTys, Ops);
2235 CurDAG->setNodeMemRefs(cast<MachineSDNode>(VLd), {MemOp});
2250 CurDAG->getTargetExtractSubreg(Sub0 + Vec, dl, VT, SuperReg));
2254 CurDAG->RemoveDeadNode(N);
2307 SDValue Pred = getAL(CurDAG, dl);
2308 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
2327 ? SDValue(CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF,dl,VT), 0)
2361 SDNode *VSt = CurDAG->getMachineNode(Opc, dl, ResTys, Ops);
2364 CurDAG->setNodeMemRefs(cast<MachineSDNode>(VSt), {MemOp});
2378 ? SDValue(CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, dl, VT), 0)
2385 SDNode *VStA = CurDAG->getMachineNode(QOpcodes0[OpcodeIndex], dl,
2388 CurDAG->setNodeMemRefs(cast<MachineSDNode>(VStA), {MemOp});
2405 SDNode *VStB = CurDAG->getMachineNode(QOpcodes1[OpcodeIndex], dl, ResTys,
2407 CurDAG->setNodeMemRefs(cast<MachineSDNode>(VStB), {MemOp});
2447 Align = CurDAG->getTargetConstant(Alignment, dl, MVT::i32);
2472 ResTys.push_back(EVT::getVectorVT(*CurDAG->getContext(),
2479 SDValue Pred = getAL(CurDAG, dl);
2480 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
2503 ? SDValue(CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, dl, VT), 0)
2518 SDNode *VLdLn = CurDAG->getMachineNode(Opc, dl, ResTys, Ops);
2519 CurDAG->setNodeMemRefs(cast<MachineSDNode>(VLdLn), {MemOp});
2533 CurDAG->getTargetExtractSubreg(Sub0 + Vec, dl, VT, SuperReg));
2537 CurDAG->RemoveDeadNode(N);
2543 Ops.push_back(CurDAG->getTargetConstant(ARMVCC::Then, Loc, MVT::i32));
2545 Ops.push_back(CurDAG->getRegister(0, MVT::i32)); // tp_reg
2552 Ops.push_back(CurDAG->getTargetConstant(ARMVCC::Then, Loc, MVT::i32));
2554 Ops.push_back(CurDAG->getRegister(0, MVT::i32)); // tp_reg
2560 Ops.push_back(CurDAG->getTargetConstant(ARMVCC::None, Loc, MVT::i32));
2561 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
2562 Ops.push_back(CurDAG->getRegister(0, MVT::i32)); // tp_reg
2568 Ops.push_back(CurDAG->getTargetConstant(ARMVCC::None, Loc, MVT::i32));
2569 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
2570 Ops.push_back(CurDAG->getRegister(0, MVT::i32)); // tp_reg
2572 CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, Loc, InactiveTy), 0));
2609 SDNode *New = CurDAG->getMachineNode(Opcode, SDLoc(N), VTs, Ops);
2614 CurDAG->RemoveDeadNode(N);
2644 Ops.push_back(getAL(CurDAG, Loc));
2645 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
2647 CurDAG->SelectNodeTo(N, Opcode, N->getVTList(), ArrayRef(Ops));
2681 CurDAG->SelectNodeTo(N, Opcode, N->getVTList(), ArrayRef(Ops));
2700 CurDAG->SelectNodeTo(N, ARM::MVE_VSHLC, N->getVTList(), ArrayRef(Ops));
2759 CurDAG->SelectNodeTo(N, Opcode, N->getVTList(), ArrayRef(Ops));
2812 EVT DataTy = EVT::getVectorVT(*CurDAG->getContext(), MVT::i64, NumVecs * 2);
2817 CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, Loc, DataTy), 0);
2823 CurDAG->getMachineNode(OurOpcodes[Stage], Loc, ResultTys, Ops);
2833 CurDAG->getMachineNode(OurOpcodes[NumVecs - 1], Loc, ResultTys, Ops);
2839 CurDAG->getTargetExtractSubreg(ARM::qsub_0 + i, Loc, VT,
2844 CurDAG->RemoveDeadNode(N);
2887 CurDAG->SelectNodeTo(N, Opcode, N->getVTList(), ArrayRef(Ops));
2892 bool IsBigEndian = CurDAG->getDataLayout().isBigEndian();
2924 SDValue Pred = getAL(CurDAG, Loc);
2925 SDValue PredReg = CurDAG->getRegister(0, MVT::i32);
2931 SDNode *InstrNode = CurDAG->getMachineNode(Opcode, Loc, MVT::Untyped, Ops);
2945 SDValue SubReg = CurDAG->getTargetExtractSubreg(SubRegs[ResIdx], Loc,
2950 CurDAG->RemoveDeadNode(N);
2984 Align = CurDAG->getTargetConstant(Alignment, dl, MVT::i32);
3009 EVT ResTy = EVT::getVectorVT(*CurDAG->getContext(), MVT::i64, ResTyElts);
3017 SDValue Pred = getAL(CurDAG, dl);
3018 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3043 CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, dl, ResTy), 0);
3045 SDNode *VLdA = CurDAG->getMachineNode(QOpcodes0[OpcodeIndex], dl, ResTy,
3055 SDNode *VLdDup = CurDAG->getMachineNode(Opc, dl, ResTys, Ops);
3059 CurDAG->setNodeMemRefs(cast<MachineSDNode>(VLdDup), {MemOp});
3070 CurDAG->getTargetExtractSubreg(SubIdx+Vec, dl, VT, SuperReg));
3076 CurDAG->RemoveDeadNode(N);
3127 SDValue NewExt = CurDAG->getTargetExtractSubreg(
3129 SDValue NewIns = CurDAG->getTargetInsertSubreg(
3139 SDValue Inp1 = CurDAG->getTargetExtractSubreg(
3141 SDValue Inp2 = CurDAG->getTargetExtractSubreg(
3144 Inp1 = SDValue(CurDAG->getMachineNode(ARM::VMOVH, dl, MVT::f32, Inp1), 0);
3146 Inp2 = SDValue(CurDAG->getMachineNode(ARM::VMOVH, dl, MVT::f32, Inp2), 0);
3147 SDNode *VINS = CurDAG->getMachineNode(ARM::VINSH, dl, MVT::f32, Inp2, Inp1);
3149 CurDAG->getTargetInsertSubreg(ARM::ssub_0 + Lane2 / 2, dl, MVT::v4f32,
3159 SDNode *VINS = CurDAG->getMachineNode(ARM::VINSH, dl, MVT::f32, Val2, Val1);
3161 CurDAG->getTargetInsertSubreg(ARM::ssub_0 + Lane2 / 2, dl, MVT::v4f32,
3246 VecVal, CurDAG->getConstant(FracBits, SDLoc(N), MVT::i32)};
3268 ReplaceNode(N, CurDAG->getMachineNode(Opcode, SDLoc(N), Type, Ops));
3306 CurDAG->getConstant(1, dl, MVT::i32)};
3309 ReplaceNode(N, CurDAG->getMachineNode(Opcode, dl, Type, Ops));
3367 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3374 CurDAG->getTargetConstant(LSB, dl, MVT::i32),
3375 getAL(CurDAG, dl), Reg0, Reg0 };
3376 CurDAG->SelectNodeTo(N, Opc, MVT::i32, Ops);
3383 CurDAG->getTargetConstant(ARM_AM::getSORegOpc(ShOpcVal, LSB), dl,
3386 getAL(CurDAG, dl), Reg0, Reg0 };
3387 CurDAG->SelectNodeTo(N, ARM::MOVsi, MVT::i32, Ops);
3393 CurDAG->getTargetConstant(LSB, dl, MVT::i32),
3394 CurDAG->getTargetConstant(Width, dl, MVT::i32),
3395 getAL(CurDAG, dl), Reg0 };
3396 CurDAG->SelectNodeTo(N, Opc, MVT::i32, Ops);
3415 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3418 CurDAG->getTargetConstant(LSB, dl, MVT::i32),
3419 CurDAG->getTargetConstant(Width, dl, MVT::i32),
3420 getAL(CurDAG, dl), Reg0 };
3421 CurDAG->SelectNodeTo(N, Opc, MVT::i32, Ops);
3437 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3440 CurDAG->getTargetConstant(Srl_imm, dl, MVT::i32),
3441 CurDAG->getTargetConstant(Width, dl, MVT::i32),
3442 getAL(CurDAG, dl), Reg0 };
3443 CurDAG->SelectNodeTo(N, Opc, MVT::i32, Ops);
3458 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3461 CurDAG->getTargetConstant(LSB, dl, MVT::i32),
3462 CurDAG->getTargetConstant(Width - 1, dl, MVT::i32),
3463 getAL(CurDAG, dl), Reg0 };
3464 CurDAG->SelectNodeTo(N, Opc, MVT::i32, Ops);
3503 CurDAG->SelectNodeTo(N, Opcode, VT, XORSrc0);
3525 SDNode *CmpSwap = CurDAG->getMachineNode(
3527 CurDAG->getVTList(MVT::i32, MVT::i32, MVT::Other), Ops);
3530 CurDAG->setNodeMemRefs(cast<MachineSDNode>(CmpSwap), {MemOp});
3534 CurDAG->RemoveDeadNode(N);
3579 SDValue Ops[] = { Src, CurDAG->getTargetConstant(Imm, dl, MVT::i32),
3580 getAL(CurDAG, dl), CurDAG->getRegister(0, MVT::i32),
3581 CurDAG->getRegister(0, MVT::i32) };
3582 return CurDAG->getMachineNode(Opc, dl, MVT::i32, Ops);
3584 SDValue Ops[] = {CurDAG->getRegister(ARM::CPSR, MVT::i32), Src,
3585 CurDAG->getTargetConstant(Imm, dl, MVT::i32),
3586 getAL(CurDAG, dl), CurDAG->getRegister(0, MVT::i32)};
3587 return CurDAG->getMachineNode(Opc, dl, MVT::i32, Ops);
3665 CurDAG->getRegister(ARM::SP, MVT::i32),
3666 CurDAG->getTargetConstant(RHSC, dl, MVT::i32),
3667 getAL(CurDAG, dl),
3668 CurDAG->getRegister(0, MVT::i32),
3671 CurDAG->getMachineNode(ARM::tSTRspi, dl, MVT::Other, Ops);
3673 CurDAG->setNodeMemRefs(cast<MachineSDNode>(ResNode), {MemOp});
3704 SDValue CPIdx = CurDAG->getTargetConstantPool(
3705 ConstantInt::get(Type::getInt32Ty(*CurDAG->getContext()), Val),
3706 TLI->getPointerTy(CurDAG->getDataLayout()));
3712 getAL(CurDAG, dl),
3713 CurDAG->getRegister(0, MVT::i32),
3714 CurDAG->getEntryNode()
3716 ResNode = CurDAG->getMachineNode(ARM::tLDRpci, dl, MVT::i32, MVT::Other,
3721 CurDAG->getTargetConstant(0, dl, MVT::i32),
3722 getAL(CurDAG, dl),
3723 CurDAG->getRegister(0, MVT::i32),
3724 CurDAG->getEntryNode()
3726 ResNode = CurDAG->getMachineNode(ARM::LDRcp, dl, MVT::i32, MVT::Other,
3732 MachineFunction& MF = CurDAG->getMachineFunction();
3737 CurDAG->setNodeMemRefs(cast<MachineSDNode>(ResNode), {MemOp});
3749 SDValue TFI = CurDAG->getTargetFrameIndex(
3750 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
3757 CurDAG->SelectNodeTo(N, ARM::tADDframe, MVT::i32, TFI,
3758 CurDAG->getTargetConstant(0, dl, MVT::i32));
3763 SDValue Ops[] = { TFI, CurDAG->getTargetConstant(0, dl, MVT::i32),
3764 getAL(CurDAG, dl), CurDAG->getRegister(0, MVT::i32),
3765 CurDAG->getRegister(0, MVT::i32) };
3766 CurDAG->SelectNodeTo(N, Opc, MVT::i32, Ops);
3807 SDValue ShImmOp = CurDAG->getTargetConstant(ShImm, dl, MVT::i32);
3808 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3810 SDValue Ops[] = { V, V, ShImmOp, getAL(CurDAG, dl), Reg0, Reg0 };
3811 CurDAG->SelectNodeTo(N, ARM::t2ADDrs, MVT::i32, Ops);
3814 SDValue Ops[] = { V, V, Reg0, ShImmOp, getAL(CurDAG, dl), Reg0,
3816 CurDAG->SelectNodeTo(N, ARM::ADDrsi, MVT::i32, Ops);
3826 SDValue ShImmOp = CurDAG->getTargetConstant(ShImm, dl, MVT::i32);
3827 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3829 SDValue Ops[] = { V, V, ShImmOp, getAL(CurDAG, dl), Reg0, Reg0 };
3830 CurDAG->SelectNodeTo(N, ARM::t2RSBrs, MVT::i32, Ops);
3833 SDValue Ops[] = { V, V, Reg0, ShImmOp, getAL(CurDAG, dl), Reg0,
3835 CurDAG->SelectNodeTo(N, ARM::RSBrsi, MVT::i32, Ops);
3865 CurDAG->getConstant(~N1C->getZExtValue(), dl, MVT::i32);
3869 CurDAG->RepositionNode(N->getIterator(), NewImm.getNode());
3872 SDValue Ops[] = {CurDAG->getRegister(ARM::CPSR, MVT::i32),
3873 N->getOperand(0), NewImm, getAL(CurDAG, dl),
3874 CurDAG->getRegister(0, MVT::i32)};
3875 ReplaceNode(N, CurDAG->getMachineNode(ARM::tBIC, dl, MVT::i32, Ops));
3878 SDValue Ops[] = {N->getOperand(0), NewImm, getAL(CurDAG, dl),
3879 CurDAG->getRegister(0, MVT::i32),
3880 CurDAG->getRegister(0, MVT::i32)};
3882 CurDAG->getMachineNode(ARM::t2BICrr, dl, MVT::i32, Ops));
3915 SDValue Imm16 = CurDAG->getTargetConstant((N2CVal & 0xFFFF0000U) >> 16,
3918 getAL(CurDAG, dl), CurDAG->getRegister(0, MVT::i32) };
3919 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, VT, Ops));
3930 getAL(CurDAG, dl),
3931 CurDAG->getRegister(0, MVT::i32) };
3932 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, MVT::i32, MVT::i32, Ops));
3938 N->getOperand(3), getAL(CurDAG, dl),
3939 CurDAG->getRegister(0, MVT::i32)};
3941 N, CurDAG->getMachineNode(ARM::t2UMLAL, dl, MVT::i32, MVT::i32, Ops));
3945 N->getOperand(3), getAL(CurDAG, dl),
3946 CurDAG->getRegister(0, MVT::i32),
3947 CurDAG->getRegister(0, MVT::i32) };
3948 ReplaceNode(N, CurDAG->getMachineNode(
3957 N->getOperand(3), getAL(CurDAG, dl),
3958 CurDAG->getRegister(0, MVT::i32)};
3960 N, CurDAG->getMachineNode(ARM::t2SMLAL, dl, MVT::i32, MVT::i32, Ops));
3964 N->getOperand(3), getAL(CurDAG, dl),
3965 CurDAG->getRegister(0, MVT::i32),
3966 CurDAG->getRegister(0, MVT::i32) };
3967 ReplaceNode(N, CurDAG->getMachineNode(
3998 N->getOperand(0), getAL(CurDAG, dl),
3999 CurDAG->getRegister(0, MVT::i32) };
4000 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, MVT::i32, Ops));
4023 SDNode *New = CurDAG->getMachineNode(ARM::t2WhileLoopSetup, dl, MVT::i32,
4026 CurDAG->RemoveDeadNode(N);
4030 SDNode *New = CurDAG->getMachineNode(ARM::t2WhileLoopStart, dl, MVT::Other,
4034 CurDAG->RemoveDeadNode(N);
4042 SDNode *New = CurDAG->getMachineNode(Opc, dl, MVT::Other, Ops);
4044 CurDAG->RemoveDeadNode(N);
4054 if (RegOffset != CurDAG->getRegister(0, MVT::i32)) {
4060 RegOffset = CurDAG->getRegister(0, MVT::i32);
4063 SDNode *New = CurDAG->getMachineNode(ARM::LOADDUAL, dl,
4065 SDValue Lo = CurDAG->getTargetExtractSubreg(ARM::gsub_0, dl, MVT::i32,
4067 SDValue Hi = CurDAG->getTargetExtractSubreg(ARM::gsub_1, dl, MVT::i32,
4073 CurDAG->RemoveDeadNode(N);
4083 if (RegOffset != CurDAG->getRegister(0, MVT::i32)) {
4089 RegOffset = CurDAG->getRegister(0, MVT::i32);
4094 SDNode *New = CurDAG->getMachineNode(ARM::STOREDUAL, dl, MVT::Other, Ops);
4097 CurDAG->RemoveDeadNode(N);
4105 CurDAG->getMachineNode(ARM::t2LoopDec, dl,
4106 CurDAG->getVTList(MVT::i32, MVT::Other), Ops);
4108 CurDAG->RemoveDeadNode(N);
4145 SDValue Size = CurDAG->getTargetConstant(Int.getConstantOperandVal(3),
4150 CurDAG->getMachineNode(ARM::t2LoopDec, dl,
4151 CurDAG->getVTList(MVT::i32, MVT::Other),
4157 CurDAG->getMachineNode(ARM::t2LoopEnd, dl, MVT::Other, EndArgs);
4160 CurDAG->RemoveDeadNode(N);
4161 CurDAG->RemoveDeadNode(InGlue.getNode());
4162 CurDAG->RemoveDeadNode(Int.getNode());
4184 SDValue Tmp2 = CurDAG->getTargetConstant(CC, dl, MVT::i32);
4186 SDNode *ResNode = CurDAG->getMachineNode(Opc, dl, MVT::Other,
4195 CurDAG->RemoveDeadNode(N);
4216 SDValue Ops[] = { X, CurDAG->getTargetConstant(Addend, dl, MVT::i32),
4217 getAL(CurDAG, dl), CurDAG->getRegister(0, MVT::i32),
4218 CurDAG->getRegister(0, MVT::i32) };
4219 Add = CurDAG->getMachineNode(ARM::t2ADDri, dl, MVT::i32, Ops);
4222 SDValue Ops[] = {CurDAG->getRegister(ARM::CPSR, MVT::i32), X,
4223 CurDAG->getTargetConstant(Addend, dl, MVT::i32),
4224 getAL(CurDAG, dl), CurDAG->getRegister(0, MVT::i32)};
4225 Add = CurDAG->getMachineNode(Opc, dl, MVT::i32, Ops);
4229 SDValue Ops2[] = {SDValue(Add, 0), CurDAG->getConstant(0, dl, MVT::i32)};
4230 CurDAG->MorphNodeTo(N, ARMISD::CMPZ, CurDAG->getVTList(MVT::Glue), Ops2);
4257 SDValue NewARMcc = CurDAG->getConstant((unsigned)CC, dl, MVT::i32);
4260 CurDAG->MorphNodeTo(N, ARMISD::CMOV, N->getVTList(), Ops);
4273 SDValue Pred = getAL(CurDAG, dl);
4274 SDValue PredReg = CurDAG->getRegister(0, MVT::i32);
4276 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, VT, VT, Ops));
4285 SDValue Pred = getAL(CurDAG, dl);
4286 SDValue PredReg = CurDAG->getRegister(0, MVT::i32);
4288 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, VT, VT, Ops));
4296 SDValue Pred = getAL(CurDAG, dl);
4297 SDValue PredReg = CurDAG->getRegister(0, MVT::i32);
4299 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, VT, VT, Ops));
4740 Ops.push_back(getAL(CurDAG, dl));
4741 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
4749 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, RetType, Ops));
4773 SDValue Ops[] = {MemAddr, getAL(CurDAG, dl),
4774 CurDAG->getRegister(0, MVT::i32), Chain};
4775 SDNode *Ld = CurDAG->getMachineNode(NewOpc, dl, ResTys, Ops);
4778 CurDAG->setNodeMemRefs(cast<MachineSDNode>(Ld), {MemOp});
4788 CurDAG->getTargetConstant(ARM::gsub_0, dl, MVT::i32);
4789 SDNode *ResNode = CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG,
4801 CurDAG->getTargetConstant(ARM::gsub_1, dl, MVT::i32);
4802 SDNode *ResNode = CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG,
4809 CurDAG->RemoveDeadNode(N);
4834 Ops.push_back(getAL(CurDAG, dl));
4835 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
4842 SDNode *St = CurDAG->getMachineNode(NewOpc, dl, ResTys, Ops);
4845 CurDAG->setNodeMemRefs(cast<MachineSDNode>(St), {MemOp});
5191 SDValue Pred = getAL(CurDAG, dl);
5192 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
5194 CurDAG->SelectNodeTo(N, ARM::BF16_VCVTB, DestTy, Ops);
5202 SDValue Pred = getAL(CurDAG, dl);
5203 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
5205 CurDAG->SelectNodeTo(N, ARM::BF16_VCVT, MVT::v4bf16, Ops);
5371 SelectionDAG *CurDAG,
5384 Ops.push_back(CurDAG->getTargetConstant(IntField, DL, MVT::i32));
5497 getIntOperandsFromRegisterString(RegString->getString(), CurDAG, DL, Ops);
5516 Ops.push_back(getAL(CurDAG, DL));
5517 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
5519 ReplaceNode(N, CurDAG->getMachineNode(Opcode, DL, ResTypes, Ops));
5527 Ops = { CurDAG->getTargetConstant(BankedReg, DL, MVT::i32),
5528 getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5531 N, CurDAG->getMachineNode(IsThumb2 ? ARM::t2MRSbanked : ARM::MRSbanked,
5557 Ops = { getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5560 CurDAG->getMachineNode(Opcode, DL, MVT::i32, MVT::Other, Ops));
5572 SDValue Ops[] = { CurDAG->getTargetConstant(SYSmValue, DL, MVT::i32),
5573 getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5576 N, CurDAG->getMachineNode(ARM::t2MRS_M, DL, MVT::i32, MVT::Other, Ops));
5583 Ops = { getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5585 ReplaceNode(N, CurDAG->getMachineNode(IsThumb2 ? ARM::t2MRS_AR : ARM::MRS,
5591 Ops = { getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5594 N, CurDAG->getMachineNode(IsThumb2 ? ARM::t2MRSsys_AR : ARM::MRSsys, DL,
5612 getIntOperandsFromRegisterString(RegString->getString(), CurDAG, DL, Ops);
5631 Ops.push_back(getAL(CurDAG, DL));
5632 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
5635 ReplaceNode(N, CurDAG->getMachineNode(Opcode, DL, MVT::Other, Ops));
5642 Ops = { CurDAG->getTargetConstant(BankedReg, DL, MVT::i32), N->getOperand(2),
5643 getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5646 N, CurDAG->getMachineNode(IsThumb2 ? ARM::t2MSRbanked : ARM::MSRbanked,
5665 Ops = { N->getOperand(2), getAL(CurDAG, DL),
5666 CurDAG->getRegister(0, MVT::i32), N->getOperand(0) };
5667 ReplaceNode(N, CurDAG->getMachineNode(Opcode, DL, MVT::Other, Ops));
5683 SDValue Ops[] = { CurDAG->getTargetConstant(SYSmValue, DL, MVT::i32),
5684 N->getOperand(2), getAL(CurDAG, DL),
5685 CurDAG->getRegister(0, MVT::i32), N->getOperand(0) };
5686 ReplaceNode(N, CurDAG->getMachineNode(ARM::t2MSR_M, DL, MVT::Other, Ops));
5695 Ops = { CurDAG->getTargetConstant(Mask, DL, MVT::i32), N->getOperand(2),
5696 getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5698 ReplaceNode(N, CurDAG->getMachineNode(IsThumb2 ? ARM::t2MSR_AR : ARM::MSR,
5792 PairedReg = CurDAG->getRegister(GPVR, MVT::Untyped);
5796 SDValue RegCopy = CurDAG->getCopyFromReg(Chain, dl, GPVR, MVT::Untyped,
5800 SDValue Sub0 = CurDAG->getTargetExtractSubreg(ARM::gsub_0, dl, MVT::i32,
5802 SDValue Sub1 = CurDAG->getTargetExtractSubreg(ARM::gsub_1, dl, MVT::i32,
5804 SDValue T0 = CurDAG->getCopyToReg(Sub0, dl, Reg0, Sub0,
5806 SDValue T1 = CurDAG->getCopyToReg(Sub1, dl, Reg1, Sub1, T0.getValue(1));
5811 CurDAG->UpdateNodeOperands(GU, Ops);
5818 SDValue T0 = CurDAG->getCopyFromReg(Chain, dl, Reg0, MVT::i32,
5820 SDValue T1 = CurDAG->getCopyFromReg(Chain, dl, Reg1, MVT::i32,
5827 PairedReg = CurDAG->getRegister(GPVR, MVT::Untyped);
5828 Chain = CurDAG->getCopyToReg(T1, dl, GPVR, Pair, T1.getValue(1));
5844 AsmNodeOperands[AsmNodeOperands.size() -1] = CurDAG->getTargetConstant(
5858 SDValue New = CurDAG->getNode(N->getOpcode(), SDLoc(N),
5859 CurDAG->getVTList(MVT::Other, MVT::Glue), AsmNodeOperands);