Lines Matching refs:CurDAG
145 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i64); in SelectAddrModeIndexedUImm()
202 Res2 = CurDAG->getTargetConstant(ShtAmt, SDLoc(N), MVT::i32); in SelectRoundingVLShr()
309 Imm = CurDAG->getTargetConstant(MulImm, SDLoc(N), MVT::i32); in SelectCntImm()
325 Imm = CurDAG->getTargetConstant(MulImm, SDLoc(N), MVT::i32); in SelectEXTImm()
340 Imm = CurDAG->getRegister(BaseReg + C, MVT::Other); in ImmToReg()
578 SDValue RC = CurDAG->getTargetConstant(TRC->getID(), dl, MVT::i64); in SelectInlineAsmMemoryOperand()
580 SDValue(CurDAG->getMachineNode(TargetOpcode::COPY_TO_REGCLASS, in SelectInlineAsmMemoryOperand()
615 Val = CurDAG->getTargetConstant(Immed, dl, MVT::i32); in SelectArithImmed()
616 Shift = CurDAG->getTargetConstant(ShVal, dl, MVT::i32); in SelectArithImmed()
649 return SelectArithImmed(CurDAG->getConstant(Immed, SDLoc(N), MVT::i32), Val, in SelectNegArithImmed()
699 if (CurDAG->shouldOptForSize() || V.hasOneUse()) in isWorthFoldingAddr()
792 SDValue NewShiftAmt = CurDAG->getTargetConstant(NewShiftC, DL, VT); in SelectShiftedRegisterFromAnd()
793 SDValue BitWidthMinus1 = CurDAG->getTargetConstant(BitWidth - 1, DL, VT); in SelectShiftedRegisterFromAnd()
794 Reg = SDValue(CurDAG->getMachineNode(NewShiftOp, DL, VT, LHS->getOperand(0), in SelectShiftedRegisterFromAnd()
798 Shift = CurDAG->getTargetConstant(ShVal, DL, MVT::i32); in SelectShiftedRegisterFromAnd()
863 if (CurDAG->shouldOptForSize() || V.hasOneUse()) in isWorthFoldingALU()
899 Shift = CurDAG->getTargetConstant(ShVal, SDLoc(N), MVT::i32); in SelectShiftedRegister()
910 static SDValue narrowIfNeeded(SelectionDAG *CurDAG, SDValue N) { in narrowIfNeeded() argument
915 return CurDAG->getTargetExtractSubreg(AArch64::sub_32, dl, MVT::i32, N); in narrowIfNeeded()
928 Imm = CurDAG->getTargetConstant(RDVLImm, SDLoc(N), MVT::i32); in SelectRDVLImm()
983 Reg = narrowIfNeeded(CurDAG, Reg); in SelectArithExtendedRegister()
984 Shift = CurDAG->getTargetConstant(getArithExtendImm(Ext, ShiftVal), SDLoc(N), in SelectArithExtendedRegister()
1008 Shift = CurDAG->getTargetConstant(getArithExtendImm(Ext, ShiftVal), SDLoc(N), in SelectArithUXTXRegister()
1051 const DataLayout &DL = CurDAG->getDataLayout(); in SelectAddrModeIndexedBitWidth()
1055 Base = CurDAG->getTargetFrameIndex(FI, TLI->getPointerTy(DL)); in SelectAddrModeIndexedBitWidth()
1056 OffImm = CurDAG->getTargetConstant(0, dl, MVT::i64); in SelectAddrModeIndexedBitWidth()
1062 if (CurDAG->isBaseWithConstantOffset(N)) { in SelectAddrModeIndexedBitWidth()
1074 Base = CurDAG->getTargetFrameIndex(FI, TLI->getPointerTy(DL)); in SelectAddrModeIndexedBitWidth()
1076 OffImm = CurDAG->getTargetConstant(RHSC >> Scale, dl, MVT::i64); in SelectAddrModeIndexedBitWidth()
1089 Base = CurDAG->getTargetFrameIndex(FI, TLI->getPointerTy(DL)); in SelectAddrModeIndexedBitWidth()
1091 OffImm = CurDAG->getTargetConstant(RHSC >> Scale, dl, MVT::i64); in SelectAddrModeIndexedBitWidth()
1102 OffImm = CurDAG->getTargetConstant(0, dl, MVT::i64); in SelectAddrModeIndexedBitWidth()
1112 const DataLayout &DL = CurDAG->getDataLayout(); in SelectAddrModeIndexed()
1116 Base = CurDAG->getTargetFrameIndex(FI, TLI->getPointerTy(DL)); in SelectAddrModeIndexed()
1117 OffImm = CurDAG->getTargetConstant(0, dl, MVT::i64); in SelectAddrModeIndexed()
1134 if (CurDAG->isBaseWithConstantOffset(N)) { in SelectAddrModeIndexed()
1142 Base = CurDAG->getTargetFrameIndex(FI, TLI->getPointerTy(DL)); in SelectAddrModeIndexed()
1144 OffImm = CurDAG->getTargetConstant(RHSC >> Scale, dl, MVT::i64); in SelectAddrModeIndexed()
1160 OffImm = CurDAG->getTargetConstant(0, dl, MVT::i64); in SelectAddrModeIndexed()
1172 if (!CurDAG->isBaseWithConstantOffset(N)) in SelectAddrModeUnscaled()
1181 Base = CurDAG->getTargetFrameIndex( in SelectAddrModeUnscaled()
1182 FI, TLI->getPointerTy(CurDAG->getDataLayout())); in SelectAddrModeUnscaled()
1184 OffImm = CurDAG->getTargetConstant(RHSC, SDLoc(N), MVT::i64); in SelectAddrModeUnscaled()
1191 static SDValue Widen(SelectionDAG *CurDAG, SDValue N) { in Widen() argument
1194 CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, dl, MVT::i64), 0); in Widen()
1195 return CurDAG->getTargetInsertSubreg(AArch64::sub_32, dl, MVT::i64, ImpDef, in Widen()
1216 Offset = narrowIfNeeded(CurDAG, N.getOperand(0).getOperand(0)); in SelectExtendedSHL()
1217 SignExtend = CurDAG->getTargetConstant(Ext == AArch64_AM::SXTW, dl, in SelectExtendedSHL()
1221 SignExtend = CurDAG->getTargetConstant(0, dl, MVT::i32); in SelectExtendedSHL()
1264 DoShift = CurDAG->getTargetConstant(true, dl, MVT::i32); in SelectAddrModeWRO()
1272 DoShift = CurDAG->getTargetConstant(true, dl, MVT::i32); in SelectAddrModeWRO()
1277 DoShift = CurDAG->getTargetConstant(false, dl, MVT::i32); in SelectAddrModeWRO()
1285 Offset = narrowIfNeeded(CurDAG, LHS.getOperand(0)); in SelectAddrModeWRO()
1286 SignExtend = CurDAG->getTargetConstant(Ext == AArch64_AM::SXTW, dl, in SelectAddrModeWRO()
1297 Offset = narrowIfNeeded(CurDAG, RHS.getOperand(0)); in SelectAddrModeWRO()
1298 SignExtend = CurDAG->getTargetConstant(Ext == AArch64_AM::SXTW, dl, in SelectAddrModeWRO()
1363 CurDAG->getMachineNode(AArch64::MOVi64imm, DL, MVT::i64, Ops); in SelectAddrModeXRO()
1366 N = CurDAG->getNode(ISD::ADD, DL, MVT::i64, LHS, MOVIV); in SelectAddrModeXRO()
1376 DoShift = CurDAG->getTargetConstant(true, DL, MVT::i32); in SelectAddrModeXRO()
1384 DoShift = CurDAG->getTargetConstant(true, DL, MVT::i32); in SelectAddrModeXRO()
1391 SignExtend = CurDAG->getTargetConstant(false, DL, MVT::i32); in SelectAddrModeXRO()
1392 DoShift = CurDAG->getTargetConstant(false, DL, MVT::i32); in SelectAddrModeXRO()
1453 CurDAG->getTargetConstant(RegClassIDs[Regs.size() - 2], DL, MVT::i32)); in createTuple()
1458 Ops.push_back(CurDAG->getTargetConstant(SubRegs[i], DL, MVT::i32)); in createTuple()
1462 CurDAG->getMachineNode(TargetOpcode::REG_SEQUENCE, DL, MVT::Untyped, Ops); in createTuple()
1484 ReplaceNode(N, CurDAG->getMachineNode(Opc, dl, VT, Ops)); in SelectTable()
1528 AUTKey = CurDAG->getTargetConstant(AUTKeyC, DL, MVT::i64); in SelectPtrauthAuth()
1532 extractPtrauthBlendDiscriminators(AUTDisc, CurDAG); in SelectPtrauthAuth()
1534 SDValue X16Copy = CurDAG->getCopyToReg(CurDAG->getEntryNode(), DL, in SelectPtrauthAuth()
1538 SDNode *AUT = CurDAG->getMachineNode(AArch64::AUT, DL, MVT::i64, Ops); in SelectPtrauthAuth()
1555 AUTKey = CurDAG->getTargetConstant(AUTKeyC, DL, MVT::i64); in SelectPtrauthResign()
1556 PACKey = CurDAG->getTargetConstant(PACKeyC, DL, MVT::i64); in SelectPtrauthResign()
1560 extractPtrauthBlendDiscriminators(AUTDisc, CurDAG); in SelectPtrauthResign()
1564 extractPtrauthBlendDiscriminators(PACDisc, CurDAG); in SelectPtrauthResign()
1566 SDValue X16Copy = CurDAG->getCopyToReg(CurDAG->getEntryNode(), DL, in SelectPtrauthResign()
1572 SDNode *AUTPAC = CurDAG->getMachineNode(AArch64::AUTPAC, DL, MVT::i64, Ops); in SelectPtrauthResign()
1650 SDValue Offset = CurDAG->getTargetConstant(OffsetVal, dl, MVT::i64); in tryIndexedLoad()
1652 SDNode *Res = CurDAG->getMachineNode(Opcode, dl, MVT::i64, DstVT, in tryIndexedLoad()
1657 CurDAG->setNodeMemRefs(cast<MachineSDNode>(Res), {MemOp}); in tryIndexedLoad()
1662 SDValue SubReg = CurDAG->getTargetConstant(AArch64::sub_32, dl, MVT::i32); in tryIndexedLoad()
1664 SDValue(CurDAG->getMachineNode( in tryIndexedLoad()
1666 CurDAG->getTargetConstant(0, dl, MVT::i64), LoadedVal, in tryIndexedLoad()
1674 CurDAG->RemoveDeadNode(N); in tryIndexedLoad()
1689 SDNode *Ld = CurDAG->getMachineNode(Opc, dl, ResTys, Ops); in SelectLoad()
1693 CurDAG->getTargetExtractSubreg(SubRegIdx + i, dl, VT, SuperReg)); in SelectLoad()
1701 CurDAG->setNodeMemRefs(cast<MachineSDNode>(Ld), {MemOp}); in SelectLoad()
1704 CurDAG->RemoveDeadNode(N); in SelectLoad()
1720 SDNode *Ld = CurDAG->getMachineNode(Opc, dl, ResTys, Ops); in SelectPostLoad()
1732 CurDAG->getTargetExtractSubreg(SubRegIdx + i, dl, VT, SuperReg)); in SelectPostLoad()
1736 CurDAG->RemoveDeadNode(N); in SelectPostLoad()
1835 SDNode *WhilePair = CurDAG->getMachineNode(Opc, DL, MVT::Untyped, Ops); in SelectPExtPair()
1839 ReplaceUses(SDValue(N, I), CurDAG->getTargetExtractSubreg( in SelectPExtPair()
1842 CurDAG->RemoveDeadNode(N); in SelectPExtPair()
1851 SDNode *WhilePair = CurDAG->getMachineNode(Opc, DL, MVT::Untyped, Ops); in SelectWhilePair()
1855 ReplaceUses(SDValue(N, I), CurDAG->getTargetExtractSubreg( in SelectWhilePair()
1858 CurDAG->RemoveDeadNode(N); in SelectWhilePair()
1867 SDNode *Intrinsic = CurDAG->getMachineNode(Opcode, DL, MVT::Untyped, Ops); in SelectCVTIntrinsic()
1870 ReplaceUses(SDValue(N, i), CurDAG->getTargetExtractSubreg( in SelectCVTIntrinsic()
1873 CurDAG->RemoveDeadNode(N); in SelectCVTIntrinsic()
1903 Intrinsic = CurDAG->getMachineNode(Opcode, DL, MVT::Untyped, in SelectDestructiveMultiIntrinsic()
1906 Intrinsic = CurDAG->getMachineNode(Opcode, DL, MVT::Untyped, Zdn, Zm); in SelectDestructiveMultiIntrinsic()
1909 ReplaceUses(SDValue(N, i), CurDAG->getTargetExtractSubreg( in SelectDestructiveMultiIntrinsic()
1912 CurDAG->RemoveDeadNode(N); in SelectDestructiveMultiIntrinsic()
1928 CurDAG->getTargetConstant(0, DL, MVT::i64), Scale); in SelectPredicatedLoad()
1936 SDNode *Load = CurDAG->getMachineNode(Opc, DL, ResTys, Ops); in SelectPredicatedLoad()
1939 ReplaceUses(SDValue(N, i), CurDAG->getTargetExtractSubreg( in SelectPredicatedLoad()
1945 CurDAG->RemoveDeadNode(N); in SelectPredicatedLoad()
1960 SDValue Offset = CurDAG->getTargetConstant(0, DL, MVT::i64); in SelectContiguousMultiVectorLoad()
1971 SDNode *Load = CurDAG->getMachineNode(Opc, DL, ResTys, Ops); in SelectContiguousMultiVectorLoad()
1974 ReplaceUses(SDValue(N, i), CurDAG->getTargetExtractSubreg( in SelectContiguousMultiVectorLoad()
1980 CurDAG->RemoveDeadNode(N); in SelectContiguousMultiVectorLoad()
2005 CurDAG->getMachineNode(Opc, DL, {MVT::Untyped, MVT::Other}, Ops); in SelectMultiVectorLuti()
2009 ReplaceUses(SDValue(Node, I), CurDAG->getTargetExtractSubreg( in SelectMultiVectorLuti()
2015 CurDAG->RemoveDeadNode(Node); in SelectMultiVectorLuti()
2030 SDNode *Intrinsic = CurDAG->getMachineNode(Op, DL, MVT::Untyped, Ops); in SelectClamp()
2033 ReplaceUses(SDValue(N, i), CurDAG->getTargetExtractSubreg( in SelectClamp()
2036 CurDAG->RemoveDeadNode(N); in SelectClamp()
2086 SDValue SubReg = CurDAG->getRegister(BaseReg, MVT::Other); in SelectMultiVectorMove()
2088 SDNode *Mov = CurDAG->getMachineNode(Op, DL, {MVT::Untyped, MVT::Other}, Ops); in SelectMultiVectorMove()
2093 CurDAG->getTargetExtractSubreg(AArch64::zsub0 + I, DL, VT, in SelectMultiVectorMove()
2098 CurDAG->RemoveDeadNode(N); in SelectMultiVectorMove()
2124 SDNode *Mov = CurDAG->getMachineNode(Op, DL, {MVT::Untyped, MVT::Other}, Ops); in SelectMultiVectorMoveZ()
2129 CurDAG->getTargetExtractSubreg(AArch64::zsub0 + I, DL, VT, in SelectMultiVectorMoveZ()
2135 CurDAG->RemoveDeadNode(N); in SelectMultiVectorMoveZ()
2159 SDNode *Res = CurDAG->getMachineNode(Opc, DL, MVT::Untyped, Ops); in SelectUnaryMultiIntrinsic()
2163 ReplaceUses(SDValue(N, I), CurDAG->getTargetExtractSubreg( in SelectUnaryMultiIntrinsic()
2165 CurDAG->RemoveDeadNode(N); in SelectUnaryMultiIntrinsic()
2179 SDNode *St = CurDAG->getMachineNode(Opc, dl, N->getValueType(0), Ops); in SelectStore()
2183 CurDAG->setNodeMemRefs(cast<MachineSDNode>(St), {MemOp}); in SelectStore()
2202 CurDAG->getTargetConstant(0, dl, MVT::i64), Scale); in SelectPredicatedStore()
2208 SDNode *St = CurDAG->getMachineNode(Opc, dl, N->getValueType(0), Ops); in SelectPredicatedStore()
2216 const DataLayout &DL = CurDAG->getDataLayout(); in SelectAddrModeFrameIndexSVE()
2222 Base = CurDAG->getTargetFrameIndex(FI, TLI->getPointerTy(DL)); in SelectAddrModeFrameIndexSVE()
2223 OffImm = CurDAG->getTargetConstant(0, dl, MVT::i64); in SelectAddrModeFrameIndexSVE()
2246 SDNode *St = CurDAG->getMachineNode(Opc, dl, ResTys, Ops); in SelectPostStore()
2297 WidenVector(*CurDAG)); in SelectLoadLane()
2305 SDValue Ops[] = {RegSeq, CurDAG->getTargetConstant(LaneNo, dl, MVT::i64), in SelectLoadLane()
2307 SDNode *Ld = CurDAG->getMachineNode(Opc, dl, ResTys, Ops); in SelectLoadLane()
2314 SDValue NV = CurDAG->getTargetExtractSubreg(QSubs[i], dl, WideVT, SuperReg); in SelectLoadLane()
2316 NV = NarrowVector(NV, *CurDAG); in SelectLoadLane()
2321 CurDAG->RemoveDeadNode(N); in SelectLoadLane()
2335 WidenVector(*CurDAG)); in SelectPostLoadLane()
2345 CurDAG->getTargetConstant(LaneNo, dl, in SelectPostLoadLane()
2350 SDNode *Ld = CurDAG->getMachineNode(Opc, dl, ResTys, Ops); in SelectPostLoadLane()
2359 Narrow ? NarrowVector(SuperReg, *CurDAG) : SuperReg); in SelectPostLoadLane()
2365 SDValue NV = CurDAG->getTargetExtractSubreg(QSubs[i], dl, WideVT, in SelectPostLoadLane()
2368 NV = NarrowVector(NV, *CurDAG); in SelectPostLoadLane()
2375 CurDAG->RemoveDeadNode(N); in SelectPostLoadLane()
2389 WidenVector(*CurDAG)); in SelectStoreLane()
2395 SDValue Ops[] = {RegSeq, CurDAG->getTargetConstant(LaneNo, dl, MVT::i64), in SelectStoreLane()
2397 SDNode *St = CurDAG->getMachineNode(Opc, dl, MVT::Other, Ops); in SelectStoreLane()
2401 CurDAG->setNodeMemRefs(cast<MachineSDNode>(St), {MemOp}); in SelectStoreLane()
2417 WidenVector(*CurDAG)); in SelectPostStoreLane()
2426 SDValue Ops[] = {RegSeq, CurDAG->getTargetConstant(LaneNo, dl, MVT::i64), in SelectPostStoreLane()
2430 SDNode *St = CurDAG->getMachineNode(Opc, dl, ResTys, Ops); in SelectPostStoreLane()
2434 CurDAG->setNodeMemRefs(cast<MachineSDNode>(St), {MemOp}); in SelectPostStoreLane()
2439 static bool isBitfieldExtractOpFromAnd(SelectionDAG *CurDAG, SDNode *N, in isBitfieldExtractOpFromAnd() argument
2483 Opd0 = Widen(CurDAG, Op0->getOperand(0).getOperand(0)); in isBitfieldExtractOpFromAnd()
2688 SDValue Opd0 = Widen(CurDAG, Op.getOperand(0)); in tryBitfieldExtractOpFromSExt()
2691 SDValue Ops[] = {Opd0, CurDAG->getTargetConstant(Immr, dl, VT), in tryBitfieldExtractOpFromSExt()
2692 CurDAG->getTargetConstant(Imms, dl, VT)}; in tryBitfieldExtractOpFromSExt()
2693 CurDAG->SelectNodeTo(N, AArch64::SBFMXri, VT, Ops); in tryBitfieldExtractOpFromSExt()
2697 static bool isBitfieldExtractOp(SelectionDAG *CurDAG, SDNode *N, unsigned &Opc, in isBitfieldExtractOp() argument
2710 return isBitfieldExtractOpFromAnd(CurDAG, N, Opc, Opd0, Immr, Imms, in isBitfieldExtractOp()
2741 if (!isBitfieldExtractOp(CurDAG, N, Opc, Opd0, Immr, Imms)) in tryBitfieldExtractOp()
2750 SDValue Ops64[] = {Opd0, CurDAG->getTargetConstant(Immr, dl, MVT::i64), in tryBitfieldExtractOp()
2751 CurDAG->getTargetConstant(Imms, dl, MVT::i64)}; in tryBitfieldExtractOp()
2753 SDNode *BFM = CurDAG->getMachineNode(Opc, dl, MVT::i64, Ops64); in tryBitfieldExtractOp()
2754 SDValue Inner = CurDAG->getTargetExtractSubreg(AArch64::sub_32, dl, in tryBitfieldExtractOp()
2760 SDValue Ops[] = {Opd0, CurDAG->getTargetConstant(Immr, dl, VT), in tryBitfieldExtractOp()
2761 CurDAG->getTargetConstant(Imms, dl, VT)}; in tryBitfieldExtractOp()
2762 CurDAG->SelectNodeTo(N, Opc, VT, Ops); in tryBitfieldExtractOp()
3004 static SDValue getLeftShift(SelectionDAG *CurDAG, SDValue Op, int ShlAmount) { in getLeftShift() argument
3016 ShiftNode = CurDAG->getMachineNode( in getLeftShift()
3018 CurDAG->getTargetConstant(BitWidth - ShlAmount, dl, VT), in getLeftShift()
3019 CurDAG->getTargetConstant(BitWidth - 1 - ShlAmount, dl, VT)); in getLeftShift()
3024 ShiftNode = CurDAG->getMachineNode( in getLeftShift()
3025 UBFMOpc, dl, VT, Op, CurDAG->getTargetConstant(ShrAmount, dl, VT), in getLeftShift()
3026 CurDAG->getTargetConstant(BitWidth - 1, dl, VT)); in getLeftShift()
3033 static bool isBitfieldPositioningOpFromAnd(SelectionDAG *CurDAG, SDValue Op,
3040 static bool isBitfieldPositioningOpFromShl(SelectionDAG *CurDAG, SDValue Op,
3048 static bool isBitfieldPositioningOp(SelectionDAG *CurDAG, SDValue Op, in isBitfieldPositioningOp() argument
3056 KnownBits Known = CurDAG->computeKnownBits(Op); in isBitfieldPositioningOp()
3068 return isBitfieldPositioningOpFromAnd(CurDAG, Op, BiggerPattern, in isBitfieldPositioningOp()
3071 return isBitfieldPositioningOpFromShl(CurDAG, Op, BiggerPattern, in isBitfieldPositioningOp()
3078 static bool isBitfieldPositioningOpFromAnd(SelectionDAG *CurDAG, SDValue Op, in isBitfieldPositioningOpFromAnd() argument
3123 ShlOp0 = Widen(CurDAG, ShlVal.getOperand(0)); in isBitfieldPositioningOpFromAnd()
3162 Src = getLeftShift(CurDAG, ShlOp0, ShlImm - DstLSB); in isBitfieldPositioningOpFromAnd()
3200 static bool isBitfieldPositioningOpFromShl(SelectionDAG *CurDAG, SDValue Op, in isBitfieldPositioningOpFromShl() argument
3228 Src = getLeftShift(CurDAG, Op.getOperand(0), ShlImm - DstLSB); in isBitfieldPositioningOpFromShl()
3241 static bool tryBitfieldInsertOpFromOrAndImm(SDNode *N, SelectionDAG *CurDAG) { in tryBitfieldInsertOpFromOrAndImm() argument
3269 KnownBits Known = CurDAG->computeKnownBits(And); in tryBitfieldInsertOpFromOrAndImm()
3317 SDNode *MOVI = CurDAG->getMachineNode( in tryBitfieldInsertOpFromOrAndImm()
3318 MOVIOpc, DL, VT, CurDAG->getTargetConstant(BFIImm, DL, VT)); in tryBitfieldInsertOpFromOrAndImm()
3322 CurDAG->getTargetConstant(ImmR, DL, VT), in tryBitfieldInsertOpFromOrAndImm()
3323 CurDAG->getTargetConstant(ImmS, DL, VT)}; in tryBitfieldInsertOpFromOrAndImm()
3325 CurDAG->SelectNodeTo(N, Opc, VT, Ops); in tryBitfieldInsertOpFromOrAndImm()
3329 static bool isWorthFoldingIntoOrrWithShift(SDValue Dst, SelectionDAG *CurDAG, in isWorthFoldingIntoOrrWithShift() argument
3371 SDNode *UBFMNode = CurDAG->getMachineNode( in isWorthFoldingIntoOrrWithShift()
3373 CurDAG->getTargetConstant(SrlImm + NumTrailingZeroInShiftedMask, DL, in isWorthFoldingIntoOrrWithShift()
3375 CurDAG->getTargetConstant( in isWorthFoldingIntoOrrWithShift()
3405 SDValue Src, SDValue Dst, SelectionDAG *CurDAG, in tryOrrWithShift() argument
3435 if (isWorthFoldingIntoOrrWithShift(Dst, CurDAG, ShiftedOperand, in tryOrrWithShift()
3438 CurDAG->getTargetConstant(EncodedShiftImm, DL, VT)}; in tryOrrWithShift()
3439 CurDAG->SelectNodeTo(N, OrrOpc, VT, Ops); in tryOrrWithShift()
3453 CurDAG->getTargetConstant( in tryOrrWithShift()
3455 CurDAG->SelectNodeTo(N, OrrOpc, VT, Ops); in tryOrrWithShift()
3472 CurDAG->getTargetConstant( in tryOrrWithShift()
3474 CurDAG->SelectNodeTo(N, OrrOpc, VT, Ops); in tryOrrWithShift()
3494 CurDAG->getTargetConstant( in tryOrrWithShift()
3496 CurDAG->SelectNodeTo(N, OrrOpc, VT, Ops); in tryOrrWithShift()
3505 SelectionDAG *CurDAG) { in tryBitfieldInsertOpFromOr() argument
3550 if (isBitfieldExtractOp(CurDAG, OrOpd0, BFXOpc, Src, ImmR, ImmS, in tryBitfieldInsertOpFromOr()
3569 } else if (isBitfieldPositioningOp(CurDAG, OrOpd0Val, in tryBitfieldInsertOpFromOr()
3585 KnownBits Known = CurDAG->computeKnownBits(OrOpd1Val); in tryBitfieldInsertOpFromOr()
3608 if (tryOrrWithShift(N, OrOpd0Val, OrOpd1Val, Src, Dst, CurDAG, in tryBitfieldInsertOpFromOr()
3614 SDValue Ops[] = {Dst, Src, CurDAG->getTargetConstant(ImmR, DL, VT), in tryBitfieldInsertOpFromOr()
3615 CurDAG->getTargetConstant(ImmS, DL, VT)}; in tryBitfieldInsertOpFromOr()
3617 CurDAG->SelectNodeTo(N, Opc, VT, Ops); in tryBitfieldInsertOpFromOr()
3658 SDNode *LSR = CurDAG->getMachineNode( in tryBitfieldInsertOpFromOr()
3659 ShiftOpc, DL, VT, Src, CurDAG->getTargetConstant(LsrImm, DL, VT), in tryBitfieldInsertOpFromOr()
3660 CurDAG->getTargetConstant(BitWidth - 1, DL, VT)); in tryBitfieldInsertOpFromOr()
3668 CurDAG->getTargetConstant(ImmR, DL, VT), in tryBitfieldInsertOpFromOr()
3669 CurDAG->getTargetConstant(ImmS, DL, VT)}; in tryBitfieldInsertOpFromOr()
3671 CurDAG->SelectNodeTo(N, Opc, VT, Ops); in tryBitfieldInsertOpFromOr()
3687 CurDAG->SelectNodeTo(N, TargetOpcode::IMPLICIT_DEF, N->getValueType(0)); in tryBitfieldInsertOp()
3691 if (tryBitfieldInsertOpFromOr(N, NUsefulBits, CurDAG)) in tryBitfieldInsertOp()
3694 return tryBitfieldInsertOpFromOrAndImm(N, CurDAG); in tryBitfieldInsertOp()
3710 if (!isBitfieldPositioningOp(CurDAG, SDValue(N, 0), /*BiggerPattern=*/false, in tryBitfieldInsertInZeroOp()
3720 SDValue Ops[] = {Op0, CurDAG->getTargetConstant(ImmR, DL, VT), in tryBitfieldInsertInZeroOp()
3721 CurDAG->getTargetConstant(ImmS, DL, VT)}; in tryBitfieldInsertInZeroOp()
3723 CurDAG->SelectNodeTo(N, Opc, VT, Ops); in tryBitfieldInsertInZeroOp()
3796 CurDAG->getCopyFromReg(CurDAG->getEntryNode(), DL, ZeroReg, SubVT); in tryShiftAmountMod()
3798 CurDAG->getMachineNode(NegOpc, DL, SubVT, Zero, Add1); in tryShiftAmountMod()
3816 CurDAG->getCopyFromReg(CurDAG->getEntryNode(), DL, ZeroReg, SubVT); in tryShiftAmountMod()
3818 CurDAG->getMachineNode(NotOpc, DL, SubVT, Zero, Add1); in tryShiftAmountMod()
3839 NewShiftAmt = narrowIfNeeded(CurDAG, NewShiftAmt); in tryShiftAmountMod()
3841 SDValue SubReg = CurDAG->getTargetConstant(AArch64::sub_32, DL, MVT::i32); in tryShiftAmountMod()
3842 MachineSDNode *Ext = CurDAG->getMachineNode( in tryShiftAmountMod()
3844 CurDAG->getTargetConstant(0, DL, MVT::i64), NewShiftAmt, SubReg); in tryShiftAmountMod()
3849 CurDAG->SelectNodeTo(N, Opc, VT, Ops); in tryShiftAmountMod()
3853 static bool checkCVTFixedPointOperandWithFBits(SelectionDAG *CurDAG, SDValue N, in checkCVTFixedPointOperandWithFBits() argument
3899 FixedPos = CurDAG->getTargetConstant(FBits, SDLoc(N), MVT::i32); in checkCVTFixedPointOperandWithFBits()
3905 return checkCVTFixedPointOperandWithFBits(CurDAG, N, FixedPos, RegWidth, in SelectCVTFixedPosOperand()
3912 return checkCVTFixedPointOperandWithFBits(CurDAG, N, FixedPos, RegWidth, in SelectCVTFixedPosRecipOperand()
3984 SDValue SysRegImm = CurDAG->getTargetConstant(Imm, DL, MVT::i32); in tryReadRegister()
3986 CurDAG->SelectNodeTo(N, Opcode64Bit, MVT::i64, MVT::Other /* Chain */, in tryReadRegister()
3989 SDNode *MRRS = CurDAG->getMachineNode( in tryReadRegister()
3996 SDValue Lo = CurDAG->getTargetExtractSubreg(AArch64::sube64, DL, MVT::i64, in tryReadRegister()
3998 SDValue Hi = CurDAG->getTargetExtractSubreg(AArch64::subo64, DL, MVT::i64, in tryReadRegister()
4032 CurDAG->SelectNodeTo( in tryWriteRegister()
4033 N, State, MVT::Other, CurDAG->getTargetConstant(Reg, DL, MVT::i32), in tryWriteRegister()
4034 CurDAG->getTargetConstant(Immed, DL, MVT::i16), N->getOperand(0)); in tryWriteRegister()
4068 CurDAG->SelectNodeTo(N, AArch64::MSR, MVT::Other, in tryWriteRegister()
4069 CurDAG->getTargetConstant(Imm, DL, MVT::i32), in tryWriteRegister()
4074 SDNode *Pair = CurDAG->getMachineNode( in tryWriteRegister()
4076 {CurDAG->getTargetConstant(AArch64::XSeqPairsClassRegClass.getID(), DL, in tryWriteRegister()
4079 CurDAG->getTargetConstant(AArch64::sube64, DL, MVT::i32), in tryWriteRegister()
4081 CurDAG->getTargetConstant(AArch64::subo64, DL, MVT::i32)}); in tryWriteRegister()
4083 CurDAG->SelectNodeTo(N, AArch64::MSRR, MVT::Other, in tryWriteRegister()
4084 CurDAG->getTargetConstant(Imm, DL, MVT::i32), in tryWriteRegister()
4113 SDNode *CmpSwap = CurDAG->getMachineNode( in SelectCMP_SWAP()
4115 CurDAG->getVTList(RegTy, MVT::i32, MVT::Other), Ops); in SelectCMP_SWAP()
4118 CurDAG->setNodeMemRefs(cast<MachineSDNode>(CmpSwap), {MemOp}); in SelectCMP_SWAP()
4122 CurDAG->RemoveDeadNode(N); in SelectCMP_SWAP()
4141 Shift = CurDAG->getTargetConstant(0, DL, MVT::i32); in SelectSVEAddSubImm()
4142 Imm = CurDAG->getTargetConstant(Val, DL, MVT::i32); in SelectSVEAddSubImm()
4149 Shift = CurDAG->getTargetConstant(0, DL, MVT::i32); in SelectSVEAddSubImm()
4150 Imm = CurDAG->getTargetConstant(Val, DL, MVT::i32); in SelectSVEAddSubImm()
4155 Shift = CurDAG->getTargetConstant(8, DL, MVT::i32); in SelectSVEAddSubImm()
4156 Imm = CurDAG->getTargetConstant(Val >> 8, DL, MVT::i32); in SelectSVEAddSubImm()
4191 Shift = CurDAG->getTargetConstant(0, DL, MVT::i32); in SelectSVEAddSubSSatImm()
4192 Imm = CurDAG->getTargetConstant(Val, DL, MVT::i32); in SelectSVEAddSubSSatImm()
4199 Shift = CurDAG->getTargetConstant(0, DL, MVT::i32); in SelectSVEAddSubSSatImm()
4200 Imm = CurDAG->getTargetConstant(Val, DL, MVT::i32); in SelectSVEAddSubSSatImm()
4205 Shift = CurDAG->getTargetConstant(8, DL, MVT::i32); in SelectSVEAddSubSSatImm()
4206 Imm = CurDAG->getTargetConstant(Val >> 8, DL, MVT::i32); in SelectSVEAddSubSSatImm()
4231 Shift = CurDAG->getTargetConstant(0, DL, MVT::i32); in SelectSVECpyDupImm()
4232 Imm = CurDAG->getTargetConstant(Val & 0xFF, DL, MVT::i32); in SelectSVECpyDupImm()
4239 Shift = CurDAG->getTargetConstant(0, DL, MVT::i32); in SelectSVECpyDupImm()
4240 Imm = CurDAG->getTargetConstant(Val & 0xFF, DL, MVT::i32); in SelectSVECpyDupImm()
4245 Shift = CurDAG->getTargetConstant(8, DL, MVT::i32); in SelectSVECpyDupImm()
4246 Imm = CurDAG->getTargetConstant((Val >> 8) & 0xFF, DL, MVT::i32); in SelectSVECpyDupImm()
4262 Imm = CurDAG->getTargetConstant(ImmVal, DL, MVT::i32); in SelectSVESignedArithImm()
4290 Imm = CurDAG->getTargetConstant(ImmVal, SDLoc(N), MVT::i32); in SelectSVEArithImm()
4331 Imm = CurDAG->getTargetConstant(encoding, DL, MVT::i64); in SelectSVELogicalImm()
4360 Imm = CurDAG->getTargetConstant(ImmVal, SDLoc(N), MVT::i32); in SelectSVEShiftImm()
4384 SDValue FiOp = CurDAG->getTargetFrameIndex( in trySelectStackSlotTagP()
4385 FI, TLI->getPointerTy(CurDAG->getDataLayout())); in trySelectStackSlotTagP()
4388 SDNode *Out = CurDAG->getMachineNode( in trySelectStackSlotTagP()
4390 {FiOp, CurDAG->getTargetConstant(0, DL, MVT::i64), N->getOperand(2), in trySelectStackSlotTagP()
4391 CurDAG->getTargetConstant(TagOffset, DL, MVT::i64)}); in trySelectStackSlotTagP()
4407 SDNode *N1 = CurDAG->getMachineNode(AArch64::SUBP, DL, MVT::i64, in SelectTagP()
4409 SDNode *N2 = CurDAG->getMachineNode(AArch64::ADDXrr, DL, MVT::i64, in SelectTagP()
4411 SDNode *N3 = CurDAG->getMachineNode( in SelectTagP()
4413 {SDValue(N2, 0), CurDAG->getTargetConstant(0, DL, MVT::i64), in SelectTagP()
4414 CurDAG->getTargetConstant(TagOffset, DL, MVT::i64)}); in SelectTagP()
4443 auto RC = CurDAG->getTargetConstant(AArch64::ZPRRegClassID, DL, MVT::i64); in trySelectCastFixedLengthToScalableVector()
4444 ReplaceNode(N, CurDAG->getMachineNode(TargetOpcode::COPY_TO_REGCLASS, DL, VT, in trySelectCastFixedLengthToScalableVector()
4472 auto RC = CurDAG->getTargetConstant(AArch64::ZPRRegClassID, DL, MVT::i64); in trySelectCastScalableToFixedLengthVector()
4473 ReplaceNode(N, CurDAG->getMachineNode(TargetOpcode::COPY_TO_REGCLASS, DL, VT, in trySelectCastScalableToFixedLengthVector()
4505 if (!TLI->isAllActivePredicate(*CurDAG, N0.getOperand(0)) || in trySelectXAR()
4506 !TLI->isAllActivePredicate(*CurDAG, N1.getOperand(0))) in trySelectXAR()
4523 CurDAG->getTargetConstant(ShrAmt.getZExtValue(), DL, MVT::i32); in trySelectXAR()
4529 CurDAG->SelectNodeTo(N, Opc, VT, Ops); in trySelectXAR()
4554 SDValue Imm = CurDAG->getTargetConstant( in trySelectXAR()
4561 CurDAG->SelectNodeTo(N, AArch64::XAR, N0.getValueType(), Ops); in trySelectXAR()
4569 LLVM_DEBUG(errs() << "== "; Node->dump(CurDAG); errs() << "\n"); in Select()
4651 SDValue New = CurDAG->getCopyFromReg( in Select()
4652 CurDAG->getEntryNode(), SDLoc(Node), AArch64::WZR, MVT::i32); in Select()
4656 SDValue New = CurDAG->getCopyFromReg( in Select()
4657 CurDAG->getEntryNode(), SDLoc(Node), AArch64::XZR, MVT::i64); in Select()
4670 SDValue TFI = CurDAG->getTargetFrameIndex( in Select()
4671 FI, TLI->getPointerTy(CurDAG->getDataLayout())); in Select()
4673 SDValue Ops[] = { TFI, CurDAG->getTargetConstant(0, DL, MVT::i32), in Select()
4674 CurDAG->getTargetConstant(Shifter, DL, MVT::i32) }; in Select()
4675 CurDAG->SelectNodeTo(Node, AArch64::ADDXri, MVT::i64, Ops); in Select()
4687 SDValue Zero = CurDAG->getCopyFromReg(Chain, DL, AArch64::XZR, MVT::i64); in Select()
4689 CurDAG->getMachineNode(AArch64::GCSSS1, DL, MVT::Other, Val, Chain); in Select()
4690 SDNode *SS2 = CurDAG->getMachineNode(AArch64::GCSSS2, DL, MVT::i64, in Select()
4703 SDNode *Ld = CurDAG->getMachineNode(Op, DL, MVT::i64, MVT::i64, in Select()
4709 CurDAG->setNodeMemRefs(cast<MachineSDNode>(Ld), {MemOp}); in Select()
4726 SDNode *St = CurDAG->getMachineNode(Op, DL, MVT::i32, MVT::Other, Ops); in Select()
4730 CurDAG->setNodeMemRefs(cast<MachineSDNode>(St), {MemOp}); in Select()
5473 SDValue CopyFP = CurDAG->getCopyFromReg(Chain, DL, AArch64::FP, MVT::i64); in Select()
5475 CurDAG->getMachineNode(AArch64::SUBXri, DL, MVT::i64, CopyFP, in Select()
5476 CurDAG->getTargetConstant(8, DL, MVT::i32), in Select()
5477 CurDAG->getTargetConstant(0, DL, MVT::i32)), in Select()
5481 CurDAG->RemoveDeadNode(Node); in Select()
5483 auto &MF = CurDAG->getMachineFunction(); in Select()
7222 const EVT MemVT = getMemVTFromNode(*(CurDAG->getContext()), Root); in SelectAddrModeIndexedSVE()
7223 const DataLayout &DL = CurDAG->getDataLayout(); in SelectAddrModeIndexedSVE()
7231 Base = CurDAG->getTargetFrameIndex(FI, TLI->getPointerTy(DL)); in SelectAddrModeIndexedSVE()
7232 OffImm = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i64); in SelectAddrModeIndexedSVE()
7266 Base = CurDAG->getTargetFrameIndex(FI, TLI->getPointerTy(DL)); in SelectAddrModeIndexedSVE()
7269 OffImm = CurDAG->getTargetConstant(Offset, SDLoc(N), MVT::i64); in SelectAddrModeIndexedSVE()
7304 Offset = CurDAG->getTargetConstant(ImmOff >> Scale, DL, MVT::i64); in SelectSVERegRegAddrMode()
7306 SDNode *MI = CurDAG->getMachineNode(AArch64::MOVi64imm, DL, MVT::i64, Ops); in SelectSVERegRegAddrMode()
7330 return TLI->isAllActivePredicate(*CurDAG, N); in SelectAllActivePredicate()
7347 Offset = CurDAG->getTargetConstant(ImmOff / Scale, SDLoc(N), MVT::i64); in SelectSMETileSlice()
7354 Offset = CurDAG->getTargetConstant(0, SDLoc(N), MVT::i64); in SelectSMETileSlice()