Lines Matching defs:CurDAG
77 return CurDAG->getTargetConstant(Imm, dl, MVT::i32);
350 /// Replace N with M in CurDAG, in a way that also ensures that M gets
420 for (SDNode &N : llvm::make_early_inc_range(CurDAG->allnodes())) {
482 Srl = CurDAG->getNode(ISD::SRL, SDLoc(Srl), MVT::i32,
484 CurDAG->getConstant(Srl_imm + TZ, SDLoc(Srl),
486 N1 = CurDAG->getNode(ISD::AND, SDLoc(N1), MVT::i32,
488 CurDAG->getConstant(And_imm, SDLoc(Srl), MVT::i32));
489 N1 = CurDAG->getNode(ISD::SHL, SDLoc(N1), MVT::i32,
490 N1, CurDAG->getConstant(TZ, SDLoc(Srl), MVT::i32));
491 CurDAG->UpdateNodeOperands(&N, N0, N1);
513 CurDAG->getSubtarget().getInstrInfo());
580 NewMulConst = CurDAG->getConstant(NewMulConstVal, SDLoc(N), MVT::i32);
587 CurDAG->RepositionNode(N.getNode()->getIterator(), M.getNode());
608 Opc = CurDAG->getTargetConstant(
625 Opc = CurDAG->getTargetConstant(ARM_AM::getSORegOpc(ShOpcVal, ShImmVal),
652 Opc = CurDAG->getTargetConstant(ARM_AM::getSORegOpc(ShOpcVal, ShImmVal),
662 return CurDAG->haveNoCommonBitsSet(N, Parent->getOperand(1));
673 !CurDAG->isBaseWithConstantOffset(N)) {
677 Base = CurDAG->getTargetFrameIndex(
678 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
679 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
690 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
703 Base = CurDAG->getTargetFrameIndex(
704 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
706 OffImm = CurDAG->getSignedTargetConstant(RHSC, SDLoc(N), MVT::i32);
713 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
736 Opc = CurDAG->getTargetConstant(ARM_AM::getAM2Opc(AddSub, ShAmt,
747 !CurDAG->isBaseWithConstantOffset(N))
822 Opc = CurDAG->getTargetConstant(ARM_AM::getAM2Opc(AddSub, ShAmt, ShOpcVal),
858 Opc = CurDAG->getTargetConstant(ARM_AM::getAM2Opc(AddSub, ShAmt, ShOpcVal),
874 Offset = CurDAG->getRegister(0, MVT::i32);
875 Opc = CurDAG->getSignedTargetConstant(Val, SDLoc(Op), MVT::i32);
893 Offset = CurDAG->getRegister(0, MVT::i32);
894 Opc = CurDAG->getTargetConstant(ARM_AM::getAM2Opc(AddSub, Val,
915 Opc = CurDAG->getTargetConstant(ARM_AM::getAM3Opc(ARM_AM::sub, 0), SDLoc(N),
920 if (!CurDAG->isBaseWithConstantOffset(N)) {
924 Base = CurDAG->getTargetFrameIndex(
925 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
927 Offset = CurDAG->getRegister(0, MVT::i32);
928 Opc = CurDAG->getTargetConstant(ARM_AM::getAM3Opc(ARM_AM::add, 0), SDLoc(N),
940 Base = CurDAG->getTargetFrameIndex(
941 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
943 Offset = CurDAG->getRegister(0, MVT::i32);
950 Opc = CurDAG->getTargetConstant(ARM_AM::getAM3Opc(AddSub, RHSC), SDLoc(N),
957 Opc = CurDAG->getTargetConstant(ARM_AM::getAM3Opc(ARM_AM::add, 0), SDLoc(N),
972 Offset = CurDAG->getRegister(0, MVT::i32);
973 Opc = CurDAG->getTargetConstant(ARM_AM::getAM3Opc(AddSub, Val), SDLoc(Op),
979 Opc = CurDAG->getTargetConstant(ARM_AM::getAM3Opc(AddSub, 0), SDLoc(Op),
986 if (!CurDAG->isBaseWithConstantOffset(N)) {
990 Base = CurDAG->getTargetFrameIndex(
991 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
998 Offset = CurDAG->getTargetConstant(ARM_AM::getAM5Opc(ARM_AM::add, 0),
1011 Base = CurDAG->getTargetFrameIndex(
1012 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1022 Offset = CurDAG->getTargetConstant(ARM_AM::getAM5FP16Opc(AddSub, RHSC),
1025 Offset = CurDAG->getTargetConstant(ARM_AM::getAM5Opc(AddSub, RHSC),
1034 Offset = CurDAG->getTargetConstant(ARM_AM::getAM5FP16Opc(ARM_AM::add, 0),
1037 Offset = CurDAG->getTargetConstant(ARM_AM::getAM5Opc(ARM_AM::add, 0),
1078 Align = CurDAG->getTargetConstant(Alignment, SDLoc(N), MVT::i32);
1091 Offset = CurDAG->getRegister(0, MVT::i32);
1101 Label = CurDAG->getTargetConstant(N1->getAsZExtVal(), SDLoc(N), MVT::i32);
1129 if (N.getOpcode() != ISD::ADD && !CurDAG->isBaseWithConstantOffset(N)) {
1154 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1158 if (!CurDAG->isBaseWithConstantOffset(N)) {
1171 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1179 OffImm = CurDAG->getSignedTargetConstant(RHSC, SDLoc(N), MVT::i32);
1214 Base = CurDAG->getTargetFrameIndex(
1215 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1216 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1220 if (!CurDAG->isBaseWithConstantOffset(N))
1239 Base = CurDAG->getTargetFrameIndex(
1240 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1241 OffImm = CurDAG->getSignedTargetConstant(RHSC, SDLoc(N), MVT::i32);
1254 if (N.getOpcode() == ISD::SUB || CurDAG->isBaseWithConstantOffset(N)) {
1261 OffImm = CurDAG->getSignedTargetConstant(RHSC * (1 << Shift), SDLoc(N),
1269 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1285 !CurDAG->isBaseWithConstantOffset(N)) {
1289 Base = CurDAG->getTargetFrameIndex(
1290 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1291 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1304 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1321 Base = CurDAG->getTargetFrameIndex(
1322 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1324 OffImm = CurDAG->getSignedTargetConstant(RHSC, SDLoc(N), MVT::i32);
1331 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1338 if (N.getOpcode() == ISD::SUB || CurDAG->isBaseWithConstantOffset(N)) {
1344 Base = CurDAG->getTargetFrameIndex(
1345 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1350 OffImm = CurDAG->getSignedTargetConstant(RHSC * (1 << Shift), SDLoc(N),
1358 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1366 !CurDAG->isBaseWithConstantOffset(N))
1378 Base = CurDAG->getTargetFrameIndex(
1379 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1381 OffImm = CurDAG->getSignedTargetConstant(RHSC, SDLoc(N), MVT::i32);
1398 ? CurDAG->getSignedTargetConstant(RHSC, SDLoc(N), MVT::i32)
1399 : CurDAG->getSignedTargetConstant(-RHSC, SDLoc(N), MVT::i32);
1409 if (N.getOpcode() == ISD::SUB || CurDAG->isBaseWithConstantOffset(N)) {
1416 Base = CurDAG->getTargetFrameIndex(
1417 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1422 OffImm = CurDAG->getSignedTargetConstant(RHSC * (1 << Shift), SDLoc(N),
1430 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1466 ? CurDAG->getSignedTargetConstant(RHSC * (1 << Shift),
1468 : CurDAG->getSignedTargetConstant(-RHSC * (1 << Shift),
1479 OffImm = CurDAG->getSignedTargetConstant(Val, SDLoc(N), MVT::i32);
1489 if (N.getOpcode() != ISD::ADD && !CurDAG->isBaseWithConstantOffset(N))
1540 ShImm = CurDAG->getTargetConstant(ShAmt, SDLoc(N), MVT::i32);
1550 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i32);
1552 if (N.getOpcode() != ISD::ADD || !CurDAG->isBaseWithConstantOffset(N))
1566 Base = CurDAG->getTargetFrameIndex(
1567 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
1570 OffImm = CurDAG->getTargetConstant(RHSC/4, SDLoc(N), MVT::i32);
1577 static inline SDValue getAL(SelectionDAG *CurDAG, const SDLoc &dl) {
1578 return CurDAG->getTargetConstant((uint64_t)ARMCC::AL, dl, MVT::i32);
1583 CurDAG->setNodeMemRefs(cast<MachineSDNode>(Result), {MemOp});
1642 SDValue Ops[]= { Base, AMOpc, getAL(CurDAG, SDLoc(N)),
1643 CurDAG->getRegister(0, MVT::i32), Chain };
1644 SDNode *New = CurDAG->getMachineNode(Opcode, SDLoc(N), MVT::i32, MVT::i32,
1652 SDValue Ops[]= { Base, Offset, AMOpc, getAL(CurDAG, SDLoc(N)),
1653 CurDAG->getRegister(0, MVT::i32), Chain };
1654 SDNode *New = CurDAG->getMachineNode(Opcode, SDLoc(N), MVT::i32, MVT::i32,
1683 SDValue Ops[]= { Base, getAL(CurDAG, SDLoc(N)),
1684 CurDAG->getRegister(0, MVT::i32), Chain };
1685 SDNode *New = CurDAG->getMachineNode(ARM::tLDR_postidx, SDLoc(N), MVT::i32,
1731 SDValue Ops[]= { Base, Offset, getAL(CurDAG, SDLoc(N)),
1732 CurDAG->getRegister(0, MVT::i32), Chain };
1733 SDNode *New = CurDAG->getMachineNode(Opcode, SDLoc(N), MVT::i32, MVT::i32,
1767 PredReg = CurDAG->getRegister(0, MVT::i32);
1829 CurDAG->getTargetConstant(Pred, SDLoc(N), MVT::i32),
1831 CurDAG->getRegister(0, MVT::i32), // tp_reg
1833 SDNode *New = CurDAG->getMachineNode(Opcode, SDLoc(N), MVT::i32,
1839 CurDAG->RemoveDeadNode(N);
1847 CurDAG->getTargetConstant(ARM::GPRPairRegClassID, dl, MVT::i32);
1848 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::gsub_0, dl, MVT::i32);
1849 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::gsub_1, dl, MVT::i32);
1851 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1858 CurDAG->getTargetConstant(ARM::DPR_VFP2RegClassID, dl, MVT::i32);
1859 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::ssub_0, dl, MVT::i32);
1860 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::ssub_1, dl, MVT::i32);
1862 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1868 SDValue RegClass = CurDAG->getTargetConstant(ARM::QPRRegClassID, dl,
1870 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::dsub_0, dl, MVT::i32);
1871 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::dsub_1, dl, MVT::i32);
1873 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1879 SDValue RegClass = CurDAG->getTargetConstant(ARM::QQPRRegClassID, dl,
1881 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::qsub_0, dl, MVT::i32);
1882 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::qsub_1, dl, MVT::i32);
1884 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1892 CurDAG->getTargetConstant(ARM::QPR_VFP2RegClassID, dl, MVT::i32);
1893 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::ssub_0, dl, MVT::i32);
1894 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::ssub_1, dl, MVT::i32);
1895 SDValue SubReg2 = CurDAG->getTargetConstant(ARM::ssub_2, dl, MVT::i32);
1896 SDValue SubReg3 = CurDAG->getTargetConstant(ARM::ssub_3, dl, MVT::i32);
1899 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1906 SDValue RegClass = CurDAG->getTargetConstant(ARM::QQPRRegClassID, dl,
1908 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::dsub_0, dl, MVT::i32);
1909 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::dsub_1, dl, MVT::i32);
1910 SDValue SubReg2 = CurDAG->getTargetConstant(ARM::dsub_2, dl, MVT::i32);
1911 SDValue SubReg3 = CurDAG->getTargetConstant(ARM::dsub_3, dl, MVT::i32);
1914 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1921 SDValue RegClass = CurDAG->getTargetConstant(ARM::QQQQPRRegClassID, dl,
1923 SDValue SubReg0 = CurDAG->getTargetConstant(ARM::qsub_0, dl, MVT::i32);
1924 SDValue SubReg1 = CurDAG->getTargetConstant(ARM::qsub_1, dl, MVT::i32);
1925 SDValue SubReg2 = CurDAG->getTargetConstant(ARM::qsub_2, dl, MVT::i32);
1926 SDValue SubReg3 = CurDAG->getTargetConstant(ARM::qsub_3, dl, MVT::i32);
1929 return CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, dl, VT, Ops);
1951 return CurDAG->getTargetConstant(Alignment, dl, MVT::i32);
2155 ResTy = EVT::getVectorVT(*CurDAG->getContext(), MVT::i64, ResTyElts);
2163 SDValue Pred = getAL(CurDAG, dl);
2164 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
2191 VLd = CurDAG->getMachineNode(Opc, dl, ResTys, Ops);
2201 SDValue(CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, dl, ResTy), 0);
2203 SDNode *VLdA = CurDAG->getMachineNode(QOpcodes0[OpcodeIndex], dl,
2221 VLd = CurDAG->getMachineNode(QOpcodes1[OpcodeIndex], dl, ResTys, Ops);
2226 CurDAG->setNodeMemRefs(cast<MachineSDNode>(VLd), {MemOp});
2241 CurDAG->getTargetExtractSubreg(Sub0 + Vec, dl, VT, SuperReg));
2245 CurDAG->RemoveDeadNode(N);
2298 SDValue Pred = getAL(CurDAG, dl);
2299 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
2318 ? SDValue(CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF,dl,VT), 0)
2352 SDNode *VSt = CurDAG->getMachineNode(Opc, dl, ResTys, Ops);
2355 CurDAG->setNodeMemRefs(cast<MachineSDNode>(VSt), {MemOp});
2369 ? SDValue(CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, dl, VT), 0)
2376 SDNode *VStA = CurDAG->getMachineNode(QOpcodes0[OpcodeIndex], dl,
2379 CurDAG->setNodeMemRefs(cast<MachineSDNode>(VStA), {MemOp});
2396 SDNode *VStB = CurDAG->getMachineNode(QOpcodes1[OpcodeIndex], dl, ResTys,
2398 CurDAG->setNodeMemRefs(cast<MachineSDNode>(VStB), {MemOp});
2438 Align = CurDAG->getTargetConstant(Alignment, dl, MVT::i32);
2463 ResTys.push_back(EVT::getVectorVT(*CurDAG->getContext(),
2470 SDValue Pred = getAL(CurDAG, dl);
2471 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
2494 ? SDValue(CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, dl, VT), 0)
2509 SDNode *VLdLn = CurDAG->getMachineNode(Opc, dl, ResTys, Ops);
2510 CurDAG->setNodeMemRefs(cast<MachineSDNode>(VLdLn), {MemOp});
2524 CurDAG->getTargetExtractSubreg(Sub0 + Vec, dl, VT, SuperReg));
2528 CurDAG->RemoveDeadNode(N);
2534 Ops.push_back(CurDAG->getTargetConstant(ARMVCC::Then, Loc, MVT::i32));
2536 Ops.push_back(CurDAG->getRegister(0, MVT::i32)); // tp_reg
2543 Ops.push_back(CurDAG->getTargetConstant(ARMVCC::Then, Loc, MVT::i32));
2545 Ops.push_back(CurDAG->getRegister(0, MVT::i32)); // tp_reg
2551 Ops.push_back(CurDAG->getTargetConstant(ARMVCC::None, Loc, MVT::i32));
2552 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
2553 Ops.push_back(CurDAG->getRegister(0, MVT::i32)); // tp_reg
2559 Ops.push_back(CurDAG->getTargetConstant(ARMVCC::None, Loc, MVT::i32));
2560 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
2561 Ops.push_back(CurDAG->getRegister(0, MVT::i32)); // tp_reg
2563 CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, Loc, InactiveTy), 0));
2600 SDNode *New = CurDAG->getMachineNode(Opcode, SDLoc(N), VTs, Ops);
2605 CurDAG->RemoveDeadNode(N);
2635 Ops.push_back(getAL(CurDAG, Loc));
2636 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
2638 CurDAG->SelectNodeTo(N, Opcode, N->getVTList(), ArrayRef(Ops));
2672 CurDAG->SelectNodeTo(N, Opcode, N->getVTList(), ArrayRef(Ops));
2691 CurDAG->SelectNodeTo(N, ARM::MVE_VSHLC, N->getVTList(), ArrayRef(Ops));
2750 CurDAG->SelectNodeTo(N, Opcode, N->getVTList(), ArrayRef(Ops));
2803 EVT DataTy = EVT::getVectorVT(*CurDAG->getContext(), MVT::i64, NumVecs * 2);
2808 CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, Loc, DataTy), 0);
2814 CurDAG->getMachineNode(OurOpcodes[Stage], Loc, ResultTys, Ops);
2824 CurDAG->getMachineNode(OurOpcodes[NumVecs - 1], Loc, ResultTys, Ops);
2830 CurDAG->getTargetExtractSubreg(ARM::qsub_0 + i, Loc, VT,
2835 CurDAG->RemoveDeadNode(N);
2878 CurDAG->SelectNodeTo(N, Opcode, N->getVTList(), ArrayRef(Ops));
2883 bool IsBigEndian = CurDAG->getDataLayout().isBigEndian();
2915 SDValue Pred = getAL(CurDAG, Loc);
2916 SDValue PredReg = CurDAG->getRegister(0, MVT::i32);
2922 SDNode *InstrNode = CurDAG->getMachineNode(Opcode, Loc, MVT::Untyped, Ops);
2936 SDValue SubReg = CurDAG->getTargetExtractSubreg(SubRegs[ResIdx], Loc,
2941 CurDAG->RemoveDeadNode(N);
2975 Align = CurDAG->getTargetConstant(Alignment, dl, MVT::i32);
3000 EVT ResTy = EVT::getVectorVT(*CurDAG->getContext(), MVT::i64, ResTyElts);
3008 SDValue Pred = getAL(CurDAG, dl);
3009 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3034 CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, dl, ResTy), 0);
3036 SDNode *VLdA = CurDAG->getMachineNode(QOpcodes0[OpcodeIndex], dl, ResTy,
3046 SDNode *VLdDup = CurDAG->getMachineNode(Opc, dl, ResTys, Ops);
3050 CurDAG->setNodeMemRefs(cast<MachineSDNode>(VLdDup), {MemOp});
3061 CurDAG->getTargetExtractSubreg(SubIdx+Vec, dl, VT, SuperReg));
3067 CurDAG->RemoveDeadNode(N);
3118 SDValue NewExt = CurDAG->getTargetExtractSubreg(
3120 SDValue NewIns = CurDAG->getTargetInsertSubreg(
3130 SDValue Inp1 = CurDAG->getTargetExtractSubreg(
3132 SDValue Inp2 = CurDAG->getTargetExtractSubreg(
3135 Inp1 = SDValue(CurDAG->getMachineNode(ARM::VMOVH, dl, MVT::f32, Inp1), 0);
3137 Inp2 = SDValue(CurDAG->getMachineNode(ARM::VMOVH, dl, MVT::f32, Inp2), 0);
3138 SDNode *VINS = CurDAG->getMachineNode(ARM::VINSH, dl, MVT::f32, Inp2, Inp1);
3140 CurDAG->getTargetInsertSubreg(ARM::ssub_0 + Lane2 / 2, dl, MVT::v4f32,
3150 SDNode *VINS = CurDAG->getMachineNode(ARM::VINSH, dl, MVT::f32, Val2, Val1);
3152 CurDAG->getTargetInsertSubreg(ARM::ssub_0 + Lane2 / 2, dl, MVT::v4f32,
3237 VecVal, CurDAG->getConstant(FracBits, SDLoc(N), MVT::i32)};
3259 ReplaceNode(N, CurDAG->getMachineNode(Opcode, SDLoc(N), Type, Ops));
3297 CurDAG->getConstant(1, dl, MVT::i32)};
3300 ReplaceNode(N, CurDAG->getMachineNode(Opcode, dl, Type, Ops));
3358 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3365 CurDAG->getTargetConstant(LSB, dl, MVT::i32),
3366 getAL(CurDAG, dl), Reg0, Reg0 };
3367 CurDAG->SelectNodeTo(N, Opc, MVT::i32, Ops);
3374 CurDAG->getTargetConstant(ARM_AM::getSORegOpc(ShOpcVal, LSB), dl,
3377 getAL(CurDAG, dl), Reg0, Reg0 };
3378 CurDAG->SelectNodeTo(N, ARM::MOVsi, MVT::i32, Ops);
3384 CurDAG->getTargetConstant(LSB, dl, MVT::i32),
3385 CurDAG->getTargetConstant(Width, dl, MVT::i32),
3386 getAL(CurDAG, dl), Reg0 };
3387 CurDAG->SelectNodeTo(N, Opc, MVT::i32, Ops);
3406 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3409 CurDAG->getTargetConstant(LSB, dl, MVT::i32),
3410 CurDAG->getTargetConstant(Width, dl, MVT::i32),
3411 getAL(CurDAG, dl), Reg0 };
3412 CurDAG->SelectNodeTo(N, Opc, MVT::i32, Ops);
3428 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3431 CurDAG->getTargetConstant(Srl_imm, dl, MVT::i32),
3432 CurDAG->getTargetConstant(Width, dl, MVT::i32),
3433 getAL(CurDAG, dl), Reg0 };
3434 CurDAG->SelectNodeTo(N, Opc, MVT::i32, Ops);
3449 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3452 CurDAG->getTargetConstant(LSB, dl, MVT::i32),
3453 CurDAG->getTargetConstant(Width - 1, dl, MVT::i32),
3454 getAL(CurDAG, dl), Reg0 };
3455 CurDAG->SelectNodeTo(N, Opc, MVT::i32, Ops);
3494 CurDAG->SelectNodeTo(N, Opcode, VT, XORSrc0);
3516 SDNode *CmpSwap = CurDAG->getMachineNode(
3518 CurDAG->getVTList(MVT::i32, MVT::i32, MVT::Other), Ops);
3521 CurDAG->setNodeMemRefs(cast<MachineSDNode>(CmpSwap), {MemOp});
3525 CurDAG->RemoveDeadNode(N);
3570 SDValue Ops[] = { Src, CurDAG->getTargetConstant(Imm, dl, MVT::i32),
3571 getAL(CurDAG, dl), CurDAG->getRegister(0, MVT::i32),
3572 CurDAG->getRegister(0, MVT::i32) };
3573 return CurDAG->getMachineNode(Opc, dl, MVT::i32, Ops);
3575 SDValue Ops[] = {CurDAG->getRegister(ARM::CPSR, MVT::i32), Src,
3576 CurDAG->getTargetConstant(Imm, dl, MVT::i32),
3577 getAL(CurDAG, dl), CurDAG->getRegister(0, MVT::i32)};
3578 return CurDAG->getMachineNode(Opc, dl, MVT::i32, Ops);
3660 CurDAG->getRegister(ARM::SP, MVT::i32),
3661 CurDAG->getTargetConstant(RHSC, dl, MVT::i32),
3662 getAL(CurDAG, dl),
3663 CurDAG->getRegister(0, MVT::i32),
3666 CurDAG->getMachineNode(ARM::tSTRspi, dl, MVT::Other, Ops);
3668 CurDAG->setNodeMemRefs(cast<MachineSDNode>(ResNode), {MemOp});
3699 SDValue CPIdx = CurDAG->getTargetConstantPool(
3700 ConstantInt::get(Type::getInt32Ty(*CurDAG->getContext()), Val),
3701 TLI->getPointerTy(CurDAG->getDataLayout()));
3707 getAL(CurDAG, dl),
3708 CurDAG->getRegister(0, MVT::i32),
3709 CurDAG->getEntryNode()
3711 ResNode = CurDAG->getMachineNode(ARM::tLDRpci, dl, MVT::i32, MVT::Other,
3716 CurDAG->getTargetConstant(0, dl, MVT::i32),
3717 getAL(CurDAG, dl),
3718 CurDAG->getRegister(0, MVT::i32),
3719 CurDAG->getEntryNode()
3721 ResNode = CurDAG->getMachineNode(ARM::LDRcp, dl, MVT::i32, MVT::Other,
3727 MachineFunction& MF = CurDAG->getMachineFunction();
3732 CurDAG->setNodeMemRefs(cast<MachineSDNode>(ResNode), {MemOp});
3744 SDValue TFI = CurDAG->getTargetFrameIndex(
3745 FI, TLI->getPointerTy(CurDAG->getDataLayout()));
3752 CurDAG->SelectNodeTo(N, ARM::tADDframe, MVT::i32, TFI,
3753 CurDAG->getTargetConstant(0, dl, MVT::i32));
3758 SDValue Ops[] = { TFI, CurDAG->getTargetConstant(0, dl, MVT::i32),
3759 getAL(CurDAG, dl), CurDAG->getRegister(0, MVT::i32),
3760 CurDAG->getRegister(0, MVT::i32) };
3761 CurDAG->SelectNodeTo(N, Opc, MVT::i32, Ops);
3802 SDValue ShImmOp = CurDAG->getTargetConstant(ShImm, dl, MVT::i32);
3803 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3805 SDValue Ops[] = { V, V, ShImmOp, getAL(CurDAG, dl), Reg0, Reg0 };
3806 CurDAG->SelectNodeTo(N, ARM::t2ADDrs, MVT::i32, Ops);
3809 SDValue Ops[] = { V, V, Reg0, ShImmOp, getAL(CurDAG, dl), Reg0,
3811 CurDAG->SelectNodeTo(N, ARM::ADDrsi, MVT::i32, Ops);
3821 SDValue ShImmOp = CurDAG->getTargetConstant(ShImm, dl, MVT::i32);
3822 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
3824 SDValue Ops[] = { V, V, ShImmOp, getAL(CurDAG, dl), Reg0, Reg0 };
3825 CurDAG->SelectNodeTo(N, ARM::t2RSBrs, MVT::i32, Ops);
3828 SDValue Ops[] = { V, V, Reg0, ShImmOp, getAL(CurDAG, dl), Reg0,
3830 CurDAG->SelectNodeTo(N, ARM::RSBrsi, MVT::i32, Ops);
3859 SDValue NewImm = CurDAG->getConstant(~Imm, dl, MVT::i32);
3863 CurDAG->RepositionNode(N->getIterator(), NewImm.getNode());
3866 SDValue Ops[] = {CurDAG->getRegister(ARM::CPSR, MVT::i32),
3867 N->getOperand(0), NewImm, getAL(CurDAG, dl),
3868 CurDAG->getRegister(0, MVT::i32)};
3869 ReplaceNode(N, CurDAG->getMachineNode(ARM::tBIC, dl, MVT::i32, Ops));
3872 SDValue Ops[] = {N->getOperand(0), NewImm, getAL(CurDAG, dl),
3873 CurDAG->getRegister(0, MVT::i32),
3874 CurDAG->getRegister(0, MVT::i32)};
3876 CurDAG->getMachineNode(ARM::t2BICrr, dl, MVT::i32, Ops));
3909 SDValue Imm16 = CurDAG->getTargetConstant((N2CVal & 0xFFFF0000U) >> 16,
3912 getAL(CurDAG, dl), CurDAG->getRegister(0, MVT::i32) };
3913 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, VT, Ops));
3924 getAL(CurDAG, dl),
3925 CurDAG->getRegister(0, MVT::i32) };
3926 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, MVT::i32, MVT::i32, Ops));
3932 N->getOperand(3), getAL(CurDAG, dl),
3933 CurDAG->getRegister(0, MVT::i32)};
3935 N, CurDAG->getMachineNode(ARM::t2UMLAL, dl, MVT::i32, MVT::i32, Ops));
3939 N->getOperand(3), getAL(CurDAG, dl),
3940 CurDAG->getRegister(0, MVT::i32),
3941 CurDAG->getRegister(0, MVT::i32) };
3942 ReplaceNode(N, CurDAG->getMachineNode(
3951 N->getOperand(3), getAL(CurDAG, dl),
3952 CurDAG->getRegister(0, MVT::i32)};
3954 N, CurDAG->getMachineNode(ARM::t2SMLAL, dl, MVT::i32, MVT::i32, Ops));
3958 N->getOperand(3), getAL(CurDAG, dl),
3959 CurDAG->getRegister(0, MVT::i32),
3960 CurDAG->getRegister(0, MVT::i32) };
3961 ReplaceNode(N, CurDAG->getMachineNode(
3992 N->getOperand(0), getAL(CurDAG, dl),
3993 CurDAG->getRegister(0, MVT::i32) };
3994 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, MVT::i32, Ops));
4017 SDNode *New = CurDAG->getMachineNode(ARM::t2WhileLoopSetup, dl, MVT::i32,
4020 CurDAG->RemoveDeadNode(N);
4024 SDNode *New = CurDAG->getMachineNode(ARM::t2WhileLoopStart, dl, MVT::Other,
4028 CurDAG->RemoveDeadNode(N);
4036 SDNode *New = CurDAG->getMachineNode(Opc, dl, MVT::Other, Ops);
4038 CurDAG->RemoveDeadNode(N);
4048 if (RegOffset != CurDAG->getRegister(0, MVT::i32)) {
4054 RegOffset = CurDAG->getRegister(0, MVT::i32);
4057 SDNode *New = CurDAG->getMachineNode(ARM::LOADDUAL, dl,
4059 SDValue Lo = CurDAG->getTargetExtractSubreg(ARM::gsub_0, dl, MVT::i32,
4061 SDValue Hi = CurDAG->getTargetExtractSubreg(ARM::gsub_1, dl, MVT::i32,
4067 CurDAG->RemoveDeadNode(N);
4077 if (RegOffset != CurDAG->getRegister(0, MVT::i32)) {
4083 RegOffset = CurDAG->getRegister(0, MVT::i32);
4088 SDNode *New = CurDAG->getMachineNode(ARM::STOREDUAL, dl, MVT::Other, Ops);
4091 CurDAG->RemoveDeadNode(N);
4099 CurDAG->getMachineNode(ARM::t2LoopDec, dl,
4100 CurDAG->getVTList(MVT::i32, MVT::Other), Ops);
4102 CurDAG->RemoveDeadNode(N);
4137 SDValue Size = CurDAG->getTargetConstant(Int.getConstantOperandVal(3),
4142 CurDAG->getMachineNode(ARM::t2LoopDec, dl,
4143 CurDAG->getVTList(MVT::i32, MVT::Other),
4149 CurDAG->getMachineNode(ARM::t2LoopEnd, dl, MVT::Other, EndArgs);
4152 CurDAG->RemoveDeadNode(N);
4153 CurDAG->RemoveDeadNode(Flags.getNode());
4154 CurDAG->RemoveDeadNode(Int.getNode());
4176 SDValue Tmp2 = CurDAG->getTargetConstant(CC, dl, MVT::i32);
4177 Chain = CurDAG->getCopyToReg(Chain, dl, ARM::CPSR, Flags, SDValue());
4178 SDValue Ops[] = {N1, Tmp2, CurDAG->getRegister(ARM::CPSR, MVT::i32), Chain,
4180 CurDAG->SelectNodeTo(N, Opc, MVT::Other, Ops);
4201 SDValue Ops[] = { X, CurDAG->getTargetConstant(Addend, dl, MVT::i32),
4202 getAL(CurDAG, dl), CurDAG->getRegister(0, MVT::i32),
4203 CurDAG->getRegister(0, MVT::i32) };
4204 Add = CurDAG->getMachineNode(ARM::t2ADDri, dl, MVT::i32, Ops);
4207 SDValue Ops[] = {CurDAG->getRegister(ARM::CPSR, MVT::i32), X,
4208 CurDAG->getTargetConstant(Addend, dl, MVT::i32),
4209 getAL(CurDAG, dl), CurDAG->getRegister(0, MVT::i32)};
4210 Add = CurDAG->getMachineNode(Opc, dl, MVT::i32, Ops);
4214 SDValue Ops2[] = {SDValue(Add, 0), CurDAG->getConstant(0, dl, MVT::i32)};
4215 CurDAG->MorphNodeTo(N, ARMISD::CMPZ, N->getVTList(), Ops2);
4242 SDValue NewARMcc = CurDAG->getConstant((unsigned)CC, dl, MVT::i32);
4245 CurDAG->MorphNodeTo(N, ARMISD::CMOV, N->getVTList(), Ops);
4257 SDValue Pred = getAL(CurDAG, dl);
4258 SDValue PredReg = CurDAG->getRegister(0, MVT::i32);
4260 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, VT, VT, Ops));
4269 SDValue Pred = getAL(CurDAG, dl);
4270 SDValue PredReg = CurDAG->getRegister(0, MVT::i32);
4272 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, VT, VT, Ops));
4280 SDValue Pred = getAL(CurDAG, dl);
4281 SDValue PredReg = CurDAG->getRegister(0, MVT::i32);
4283 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, VT, VT, Ops));
4724 Ops.push_back(getAL(CurDAG, dl));
4725 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
4733 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, RetType, Ops));
4757 SDValue Ops[] = {MemAddr, getAL(CurDAG, dl),
4758 CurDAG->getRegister(0, MVT::i32), Chain};
4759 SDNode *Ld = CurDAG->getMachineNode(NewOpc, dl, ResTys, Ops);
4762 CurDAG->setNodeMemRefs(cast<MachineSDNode>(Ld), {MemOp});
4772 CurDAG->getTargetConstant(ARM::gsub_0, dl, MVT::i32);
4773 SDNode *ResNode = CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG,
4785 CurDAG->getTargetConstant(ARM::gsub_1, dl, MVT::i32);
4786 SDNode *ResNode = CurDAG->getMachineNode(TargetOpcode::EXTRACT_SUBREG,
4793 CurDAG->RemoveDeadNode(N);
4818 Ops.push_back(getAL(CurDAG, dl));
4819 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
4826 SDNode *St = CurDAG->getMachineNode(NewOpc, dl, ResTys, Ops);
4829 CurDAG->setNodeMemRefs(cast<MachineSDNode>(St), {MemOp});
5175 SDValue Pred = getAL(CurDAG, dl);
5176 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
5178 CurDAG->SelectNodeTo(N, ARM::BF16_VCVTB, DestTy, Ops);
5186 SDValue Pred = getAL(CurDAG, dl);
5187 SDValue Reg0 = CurDAG->getRegister(0, MVT::i32);
5189 CurDAG->SelectNodeTo(N, ARM::BF16_VCVT, MVT::v4bf16, Ops);
5355 SelectionDAG *CurDAG,
5368 Ops.push_back(CurDAG->getTargetConstant(IntField, DL, MVT::i32));
5481 getIntOperandsFromRegisterString(RegString->getString(), CurDAG, DL, Ops);
5500 Ops.push_back(getAL(CurDAG, DL));
5501 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
5503 ReplaceNode(N, CurDAG->getMachineNode(Opcode, DL, ResTypes, Ops));
5511 Ops = { CurDAG->getTargetConstant(BankedReg, DL, MVT::i32),
5512 getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5515 N, CurDAG->getMachineNode(IsThumb2 ? ARM::t2MRSbanked : ARM::MRSbanked,
5541 Ops = { getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5544 CurDAG->getMachineNode(Opcode, DL, MVT::i32, MVT::Other, Ops));
5556 SDValue Ops[] = { CurDAG->getTargetConstant(SYSmValue, DL, MVT::i32),
5557 getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5560 N, CurDAG->getMachineNode(ARM::t2MRS_M, DL, MVT::i32, MVT::Other, Ops));
5567 Ops = { getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5569 ReplaceNode(N, CurDAG->getMachineNode(IsThumb2 ? ARM::t2MRS_AR : ARM::MRS,
5575 Ops = { getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5578 N, CurDAG->getMachineNode(IsThumb2 ? ARM::t2MRSsys_AR : ARM::MRSsys, DL,
5596 getIntOperandsFromRegisterString(RegString->getString(), CurDAG, DL, Ops);
5615 Ops.push_back(getAL(CurDAG, DL));
5616 Ops.push_back(CurDAG->getRegister(0, MVT::i32));
5619 ReplaceNode(N, CurDAG->getMachineNode(Opcode, DL, MVT::Other, Ops));
5626 Ops = { CurDAG->getTargetConstant(BankedReg, DL, MVT::i32), N->getOperand(2),
5627 getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5630 N, CurDAG->getMachineNode(IsThumb2 ? ARM::t2MSRbanked : ARM::MSRbanked,
5649 Ops = { N->getOperand(2), getAL(CurDAG, DL),
5650 CurDAG->getRegister(0, MVT::i32), N->getOperand(0) };
5651 ReplaceNode(N, CurDAG->getMachineNode(Opcode, DL, MVT::Other, Ops));
5667 SDValue Ops[] = { CurDAG->getTargetConstant(SYSmValue, DL, MVT::i32),
5668 N->getOperand(2), getAL(CurDAG, DL),
5669 CurDAG->getRegister(0, MVT::i32), N->getOperand(0) };
5670 ReplaceNode(N, CurDAG->getMachineNode(ARM::t2MSR_M, DL, MVT::Other, Ops));
5679 Ops = { CurDAG->getTargetConstant(Mask, DL, MVT::i32), N->getOperand(2),
5680 getAL(CurDAG, DL), CurDAG->getRegister(0, MVT::i32),
5682 ReplaceNode(N, CurDAG->getMachineNode(IsThumb2 ? ARM::t2MSR_AR : ARM::MSR,
5776 PairedReg = CurDAG->getRegister(GPVR, MVT::Untyped);
5780 SDValue RegCopy = CurDAG->getCopyFromReg(Chain, dl, GPVR, MVT::Untyped,
5784 SDValue Sub0 = CurDAG->getTargetExtractSubreg(ARM::gsub_0, dl, MVT::i32,
5786 SDValue Sub1 = CurDAG->getTargetExtractSubreg(ARM::gsub_1, dl, MVT::i32,
5788 SDValue T0 = CurDAG->getCopyToReg(Sub0, dl, Reg0, Sub0,
5790 SDValue T1 = CurDAG->getCopyToReg(Sub1, dl, Reg1, Sub1, T0.getValue(1));
5795 CurDAG->UpdateNodeOperands(GU, Ops);
5802 SDValue T0 = CurDAG->getCopyFromReg(Chain, dl, Reg0, MVT::i32,
5804 SDValue T1 = CurDAG->getCopyFromReg(Chain, dl, Reg1, MVT::i32,
5811 PairedReg = CurDAG->getRegister(GPVR, MVT::Untyped);
5812 Chain = CurDAG->getCopyToReg(T1, dl, GPVR, Pair, T1.getValue(1));
5828 AsmNodeOperands[AsmNodeOperands.size() -1] = CurDAG->getTargetConstant(
5842 SDValue New = CurDAG->getNode(N->getOpcode(), SDLoc(N),
5843 CurDAG->getVTList(MVT::Other, MVT::Glue), AsmNodeOperands);