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

Lines Matching defs:DL

263 EVT RISCVTargetLowering::getSetCCResultType(const DataLayout &DL, LLVMContext &,
266 return getPointerTy(DL);
298 bool RISCVTargetLowering::isLegalAddressingMode(const DataLayout &DL,
455 SDLoc DL(Op);
459 SDValue NewOp0 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op0);
460 SDValue FPConv = DAG.getNode(RISCVISD::FMV_W_X_RV64, DL, MVT::f32, NewOp0);
468 static SDValue getTargetNode(GlobalAddressSDNode *N, SDLoc DL, EVT Ty,
470 return DAG.getTargetGlobalAddress(N->getGlobal(), DL, Ty, 0, Flags);
473 static SDValue getTargetNode(BlockAddressSDNode *N, SDLoc DL, EVT Ty,
479 static SDValue getTargetNode(ConstantPoolSDNode *N, SDLoc DL, EVT Ty,
488 SDLoc DL(N);
492 SDValue Addr = getTargetNode(N, DL, Ty, DAG, 0);
497 return SDValue(DAG.getMachineNode(RISCV::PseudoLLA, DL, Ty, Addr), 0);
502 return SDValue(DAG.getMachineNode(RISCV::PseudoLA, DL, Ty, Addr), 0);
511 SDValue AddrHi = getTargetNode(N, DL, Ty, DAG, RISCVII::MO_HI);
512 SDValue AddrLo = getTargetNode(N, DL, Ty, DAG, RISCVII::MO_LO);
513 SDValue MNHi = SDValue(DAG.getMachineNode(RISCV::LUI, DL, Ty, AddrHi), 0);
514 return SDValue(DAG.getMachineNode(RISCV::ADDI, DL, Ty, MNHi, AddrLo), 0);
520 SDValue Addr = getTargetNode(N, DL, Ty, DAG, 0);
521 return SDValue(DAG.getMachineNode(RISCV::PseudoLLA, DL, Ty, Addr), 0);
528 SDLoc DL(Op);
543 return DAG.getNode(ISD::ADD, DL, Ty, Addr,
544 DAG.getConstant(Offset, DL, XLenVT));
565 SDLoc DL(N);
575 SDValue Addr = DAG.getTargetGlobalAddress(GV, DL, Ty, 0, 0);
577 SDValue(DAG.getMachineNode(RISCV::PseudoLA_TLS_IE, DL, Ty, Addr), 0);
581 return DAG.getNode(ISD::ADD, DL, Ty, Load, TPReg);
589 DAG.getTargetGlobalAddress(GV, DL, Ty, 0, RISCVII::MO_TPREL_HI);
591 DAG.getTargetGlobalAddress(GV, DL, Ty, 0, RISCVII::MO_TPREL_ADD);
593 DAG.getTargetGlobalAddress(GV, DL, Ty, 0, RISCVII::MO_TPREL_LO);
595 SDValue MNHi = SDValue(DAG.getMachineNode(RISCV::LUI, DL, Ty, AddrHi), 0);
598 DAG.getMachineNode(RISCV::PseudoAddTPRel, DL, Ty, MNHi, TPReg, AddrAdd),
600 return SDValue(DAG.getMachineNode(RISCV::ADDI, DL, Ty, MNAdd, AddrLo), 0);
605 SDLoc DL(N);
613 SDValue Addr = DAG.getTargetGlobalAddress(GV, DL, Ty, 0, 0);
615 SDValue(DAG.getMachineNode(RISCV::PseudoLA_TLS_GD, DL, Ty, Addr), 0);
626 CLI.setDebugLoc(DL)
637 SDLoc DL(Op);
664 return DAG.getNode(ISD::ADD, DL, Ty, Addr,
665 DAG.getConstant(Offset, DL, XLenVT));
673 SDLoc DL(Op);
691 SDValue TargetCC = DAG.getConstant(CCVal, DL, XLenVT);
694 return DAG.getNode(RISCVISD::SELECT_CC, DL, VTs, Ops);
700 SDValue Zero = DAG.getConstant(0, DL, XLenVT);
701 SDValue SetNE = DAG.getConstant(ISD::SETNE, DL, XLenVT);
706 return DAG.getNode(RISCVISD::SELECT_CC, DL, VTs, Ops);
713 SDLoc DL(Op);
720 return DAG.getStore(Op.getOperand(0), DL, FI, Op.getOperand(1),
734 SDLoc DL(Op);
735 SDValue FrameAddr = DAG.getCopyFromReg(DAG.getEntryNode(), DL, FrameReg, VT);
739 SDValue Ptr = DAG.getNode(ISD::ADD, DL, VT, FrameAddr,
740 DAG.getIntPtrConstant(Offset, DL));
742 DAG.getLoad(VT, DL, DAG.getEntryNode(), Ptr, MachinePointerInfo());
760 SDLoc DL(Op);
765 SDValue Offset = DAG.getConstant(Off, DL, VT);
766 return DAG.getLoad(VT, DL, DAG.getEntryNode(),
767 DAG.getNode(ISD::ADD, DL, VT, FrameAddr, Offset),
774 return DAG.getCopyFromReg(DAG.getEntryNode(), DL, Reg, XLenVT);
779 SDLoc DL(Op);
792 SDValue Zero = DAG.getConstant(0, DL, VT);
793 SDValue One = DAG.getConstant(1, DL, VT);
794 SDValue MinusXLen = DAG.getConstant(-(int)Subtarget.getXLen(), DL, VT);
795 SDValue XLenMinus1 = DAG.getConstant(Subtarget.getXLen() - 1, DL, VT);
796 SDValue ShamtMinusXLen = DAG.getNode(ISD::ADD, DL, VT, Shamt, MinusXLen);
797 SDValue XLenMinus1Shamt = DAG.getNode(ISD::SUB, DL, VT, XLenMinus1, Shamt);
799 SDValue LoTrue = DAG.getNode(ISD::SHL, DL, VT, Lo, Shamt);
800 SDValue ShiftRight1Lo = DAG.getNode(ISD::SRL, DL, VT, Lo, One);
802 DAG.getNode(ISD::SRL, DL, VT, ShiftRight1Lo, XLenMinus1Shamt);
803 SDValue ShiftLeftHi = DAG.getNode(ISD::SHL, DL, VT, Hi, Shamt);
804 SDValue HiTrue = DAG.getNode(ISD::OR, DL, VT, ShiftLeftHi, ShiftRightLo);
805 SDValue HiFalse = DAG.getNode(ISD::SHL, DL, VT, Lo, ShamtMinusXLen);
807 SDValue CC = DAG.getSetCC(DL, VT, ShamtMinusXLen, Zero, ISD::SETLT);
809 Lo = DAG.getNode(ISD::SELECT, DL, VT, CC, LoTrue, Zero);
810 Hi = DAG.getNode(ISD::SELECT, DL, VT, CC, HiTrue, HiFalse);
813 return DAG.getMergeValues(Parts, DL);
818 SDLoc DL(Op);
842 SDValue Zero = DAG.getConstant(0, DL, VT);
843 SDValue One = DAG.getConstant(1, DL, VT);
844 SDValue MinusXLen = DAG.getConstant(-(int)Subtarget.getXLen(), DL, VT);
845 SDValue XLenMinus1 = DAG.getConstant(Subtarget.getXLen() - 1, DL, VT);
846 SDValue ShamtMinusXLen = DAG.getNode(ISD::ADD, DL, VT, Shamt, MinusXLen);
847 SDValue XLenMinus1Shamt = DAG.getNode(ISD::SUB, DL, VT, XLenMinus1, Shamt);
849 SDValue ShiftRightLo = DAG.getNode(ISD::SRL, DL, VT, Lo, Shamt);
850 SDValue ShiftLeftHi1 = DAG.getNode(ISD::SHL, DL, VT, Hi, One);
852 DAG.getNode(ISD::SHL, DL, VT, ShiftLeftHi1, XLenMinus1Shamt);
853 SDValue LoTrue = DAG.getNode(ISD::OR, DL, VT, ShiftRightLo, ShiftLeftHi);
854 SDValue HiTrue = DAG.getNode(ShiftRightOp, DL, VT, Hi, Shamt);
855 SDValue LoFalse = DAG.getNode(ShiftRightOp, DL, VT, Hi, ShamtMinusXLen);
857 IsSRA ? DAG.getNode(ISD::SRA, DL, VT, Hi, XLenMinus1) : Zero;
859 SDValue CC = DAG.getSetCC(DL, VT, ShamtMinusXLen, Zero, ISD::SETLT);
861 Lo = DAG.getNode(ISD::SELECT, DL, VT, CC, LoTrue, LoFalse);
862 Hi = DAG.getNode(ISD::SELECT, DL, VT, CC, HiTrue, HiFalse);
865 return DAG.getMergeValues(Parts, DL);
871 SDLoc DL(Op);
909 SDLoc DL(N);
911 SDValue NewOp0 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, N->getOperand(0));
912 SDValue NewOp1 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, N->getOperand(1));
913 SDValue NewRes = DAG.getNode(WOpcode, DL, MVT::i64, NewOp0, NewOp1);
915 return DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, NewRes);
921 SDLoc DL(N);
922 SDValue NewOp0 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, N->getOperand(0));
923 SDValue NewOp1 = DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, N->getOperand(1));
924 SDValue NewWOp = DAG.getNode(N->getOpcode(), DL, MVT::i64, NewOp0, NewOp1);
925 SDValue NewRes = DAG.getNode(ISD::SIGN_EXTEND_INREG, DL, MVT::i64, NewWOp,
927 return DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, NewRes);
933 SDLoc DL(N);
957 makeLibCall(DAG, LC, N->getValueType(0), Op0, CallOptions, DL, Chain);
969 DAG.getNode(RISCVISD::READ_CYCLE_WIDE, DL, VTs, N->getOperand(0));
972 DAG.getNode(ISD::BUILD_PAIR, DL, MVT::i64, RCW, RCW.getValue(1)));
1007 SDLoc DL(N);
1012 DAG.getNode(RISCVISD::FMV_X_ANYEXTW_RV64, DL, MVT::i64, Op0);
1013 Results.push_back(DAG.getNode(ISD::TRUNCATE, DL, MVT::i32, FPConv));
1033 SDLoc DL(N);
1040 SDValue Lo = DAG.getConstant(V.trunc(32), DL, MVT::i32);
1041 SDValue Hi = DAG.getConstant(V.lshr(32).trunc(32), DL, MVT::i32);
1053 DAG.getNode(RISCVISD::SplitF64, DL, DAG.getVTList(MVT::i32, MVT::i32),
1059 SDValue NewHi = DAG.getNode(ISD::XOR, DL, MVT::i32, Hi,
1060 DAG.getConstant(SignBit, DL, MVT::i32));
1064 SDValue NewHi = DAG.getNode(ISD::AND, DL, MVT::i32, Hi,
1065 DAG.getConstant(~SignBit, DL, MVT::i32));
1082 SDLoc DL(N);
1089 DAG.getNode(ISD::ANY_EXTEND, DL, MVT::i64, Op0.getOperand(0));
1100 SDValue NewFMV = DAG.getNode(RISCVISD::FMV_X_ANYEXTW_RV64, DL, MVT::i64,
1105 DAG.getNode(ISD::XOR, DL, MVT::i64, NewFMV,
1106 DAG.getConstant(SignBit, DL, MVT::i64)));
1110 DAG.getNode(ISD::AND, DL, MVT::i64, NewFMV,
1111 DAG.getConstant(~SignBit, DL, MVT::i64)));
1221 DebugLoc DL = MI.getDebugLoc();
1224 BuildMI(LoopMBB, DL, TII->get(RISCV::CSRRS), HiReg)
1227 BuildMI(LoopMBB, DL, TII->get(RISCV::CSRRS), LoReg)
1230 BuildMI(LoopMBB, DL, TII->get(RISCV::CSRRS), ReadAgainReg)
1234 BuildMI(LoopMBB, DL, TII->get(RISCV::BNE))
1252 DebugLoc DL = MI.getDebugLoc();
1266 BuildMI(*BB, MI, DL, TII.get(RISCV::LW), LoReg)
1270 BuildMI(*BB, MI, DL, TII.get(RISCV::LW), HiReg)
1284 DebugLoc DL = MI.getDebugLoc();
1296 BuildMI(*BB, MI, DL, TII.get(RISCV::SW))
1301 BuildMI(*BB, MI, DL, TII.get(RISCV::SW))
1385 DebugLoc DL = MI.getDebugLoc();
1414 BuildMI(HeadMBB, DL, TII.get(Opcode))
1544 static bool CC_RISCV(const DataLayout &DL, RISCVABI::ABI ABI, unsigned ValNo,
1548 unsigned XLen = DL.getLargestLegalIntTypeSizeInBits();
1606 DL.getTypeAllocSize(OrigTy) == TwoXLenInBytes) {
1766 const CCValAssign &VA, const SDLoc &DL) {
1774 Val = DAG.getNode(RISCVISD::FMV_W_X_RV64, DL, MVT::f32, Val);
1777 Val = DAG.getNode(ISD::BITCAST, DL, VA.getValVT(), Val);
1786 const CCValAssign &VA, const SDLoc &DL) {
1810 Val = DAG.getCopyFromReg(Chain, DL, VReg, LocVT);
1815 return convertLocVTToValVT(DAG, Val, VA, DL);
1819 const CCValAssign &VA, const SDLoc &DL) {
1829 Val = DAG.getNode(RISCVISD::FMV_X_ANYEXTW_RV64, DL, MVT::i64, Val);
1832 Val = DAG.getNode(ISD::BITCAST, DL, LocVT, Val);
1841 const CCValAssign &VA, const SDLoc &DL) {
1863 ExtType, DL, LocVT, Chain, FIN,
1869 const CCValAssign &VA, const SDLoc &DL) {
1880 return DAG.getLoad(MVT::f64, DL, Chain, FIN,
1888 SDValue Lo = DAG.getCopyFromReg(Chain, DL, LoVReg, MVT::i32);
1894 Hi = DAG.getLoad(MVT::i32, DL, Chain, FIN,
1900 Hi = DAG.getCopyFromReg(Chain, DL, HiVReg, MVT::i32);
1902 return DAG.getNode(RISCVISD::BuildPairF64, DL, MVT::f64, Lo, Hi);
1965 const SmallVectorImpl<ISD::InputArg> &Ins, const SDLoc &DL,
2013 ArgValue = unpackF64OnRV32DSoftABI(DAG, Chain, VA, DL);
2015 ArgValue = unpackFromRegLoc(DAG, Chain, VA, DL);
2017 ArgValue = unpackFromMemLoc(DAG, Chain, VA, DL);
2023 InVals.push_back(DAG.getLoad(VA.getValVT(), DL, Chain, ArgValue,
2030 SDValue Address = DAG.getNode(ISD::ADD, DL, PtrVT, ArgValue,
2031 DAG.getIntPtrConstant(PartOffset, DL));
2032 InVals.push_back(DAG.getLoad(PartVA.getValVT(), DL, Chain, Address,
2083 SDValue ArgValue = DAG.getCopyFromReg(Chain, DL, Reg, XLenVT);
2086 SDValue Store = DAG.getStore(Chain, DL, ArgValue, PtrOff,
2100 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, OutChains);
2184 SDLoc &DL = CLI.DL;
2234 SDValue SizeNode = DAG.getConstant(Size, DL, XLenVT);
2236 Chain = DAG.getMemcpy(Chain, DL, FIPtr, Arg, SizeNode, Alignment,
2244 Chain = DAG.getCALLSEQ_START(Chain, NumBytes, 0, CLI.DL);
2260 RISCVISD::SplitF64, DL, DAG.getVTList(MVT::i32, MVT::i32), ArgValue);
2271 StackPtr = DAG.getCopyFromReg(Chain, DL, RISCV::X2, PtrVT);
2274 DAG.getStore(Chain, DL, Hi, StackPtr, MachinePointerInfo()));
2294 DAG.getStore(Chain, DL, ArgValue, SpillSlot,
2303 SDValue Address = DAG.getNode(ISD::ADD, DL, PtrVT, SpillSlot,
2304 DAG.getIntPtrConstant(PartOffset, DL));
2306 DAG.getStore(Chain, DL, PartValue, Address,
2312 ArgValue = convertValVTToLocVT(DAG, ArgValue, VA, DL);
2329 StackPtr = DAG.getCopyFromReg(Chain, DL, RISCV::X2, PtrVT);
2331 DAG.getNode(ISD::ADD, DL, PtrVT, StackPtr,
2332 DAG.getIntPtrConstant(VA.getLocMemOffset(), DL));
2336 DAG.getStore(Chain, DL, ArgValue, Address, MachinePointerInfo()));
2342 Chain = DAG.getNode(ISD::TokenFactor, DL, MVT::Other, MemOpChains);
2348 Chain = DAG.getCopyToReg(Chain, DL, Reg.first, Reg.second, Glue);
2372 Callee = DAG.getTargetGlobalAddress(GV, DL, PtrVT, 0, OpFlags);
2410 return DAG.getNode(RISCVISD::TAIL, DL, NodeTys, Ops);
2413 Chain = DAG.getNode(RISCVISD::CALL, DL, NodeTys, Ops);
2419 DAG.getConstant(NumBytes, DL, PtrVT, true),
2420 DAG.getConstant(0, DL, PtrVT, true),
2421 Glue, DL);
2433 DAG.getCopyFromReg(Chain, DL, VA.getLocReg(), VA.getLocVT(), Glue);
2441 DAG.getCopyFromReg(Chain, DL, ArgGPRs[1], MVT::i32, Glue);
2444 RetValue = DAG.getNode(RISCVISD::BuildPairF64, DL, MVT::f64, RetValue,
2448 RetValue = convertLocVTToValVT(DAG, RetValue, VA, DL);
2477 const SDLoc &DL, SelectionDAG &DAG) const {
2503 SDValue SplitF64 = DAG.getNode(RISCVISD::SplitF64, DL,
2517 Chain = DAG.getCopyToReg(Chain, DL, RegLo, Lo, Glue);
2520 Chain = DAG.getCopyToReg(Chain, DL, RegHi, Hi, Glue);
2525 Val = convertValVTToLocVT(DAG, Val, VA, DL);
2526 Chain = DAG.getCopyToReg(Chain, DL, VA.getLocReg(), Val, Glue);
2565 return DAG.getNode(RetOpc, DL, MVT::Other, RetOps);
2568 return DAG.getNode(RISCVISD::RET_FLAG, DL, MVT::Other, RetOps);
2929 const DataLayout &DL = AI->getModule()->getDataLayout();
2931 DL.getTypeStoreSizeInBits(AI->getValOperand()->getType());