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

Lines Matching refs:SDValue

175 SDValue LanaiTargetLowering::LowerOperation(SDValue Op,
285 SDValue Op, std::string &Constraint, std::vector<SDValue> &Ops,
287 SDValue Result(nullptr, 0);
396 SDValue LanaiTargetLowering::LowerFormalArguments(
397 SDValue Chain, CallingConv::ID CallConv, bool IsVarArg,
399 SelectionDAG &DAG, SmallVectorImpl<SDValue> &InVals) const {
409 SDValue LanaiTargetLowering::LowerCall(TargetLowering::CallLoweringInfo &CLI,
410 SmallVectorImpl<SDValue> &InVals) const {
414 SmallVectorImpl<SDValue> &OutVals = CLI.OutVals;
416 SDValue Chain = CLI.Chain;
417 SDValue Callee = CLI.Callee;
437 SDValue LanaiTargetLowering::LowerCCCArguments(
438 SDValue Chain, CallingConv::ID CallConv, bool IsVarArg,
440 SelectionDAG &DAG, SmallVectorImpl<SDValue> &InVals) const {
465 SDValue ArgValue = DAG.getCopyFromReg(Chain, DL, VReg, RegVT);
503 SDValue FIN = DAG.getFrameIndex(FI, MVT::i32);
519 SDValue Copy = DAG.getCopyToReg(DAG.getEntryNode(), DL, Reg, InVals[0]);
533 SDValue
534 LanaiTargetLowering::LowerReturn(SDValue Chain, CallingConv::ID CallConv,
537 const SmallVectorImpl<SDValue> &OutVals,
549 SDValue Flag;
550 SmallVector<SDValue, 4> RetOps(1, Chain);
574 SDValue Val =
591 ArrayRef<SDValue>(&RetOps[0], RetOps.size()));
596 SDValue LanaiTargetLowering::LowerCCCCallTo(
597 SDValue Chain, SDValue Callee, CallingConv::ID CallConv, bool IsVarArg,
599 const SmallVectorImpl<SDValue> &OutVals,
601 SelectionDAG &DAG, SmallVectorImpl<SDValue> &InVals) const {
628 SmallVector<SDValue, 8> ByValArgs;
634 SDValue Arg = OutVals[I];
639 SDValue FIPtr = DAG.getFrameIndex(FI, getPointerTy(DAG.getDataLayout()));
640 SDValue SizeNode = DAG.getConstant(Size, DL, MVT::i32);
652 SmallVector<std::pair<unsigned, SDValue>, 4> RegsToPass;
653 SmallVector<SDValue, 12> MemOpChains;
654 SDValue StackPtr;
659 SDValue Arg = OutVals[I];
694 SDValue PtrOff =
707 ArrayRef<SDValue>(&MemOpChains[0], MemOpChains.size()));
709 SDValue InFlag;
734 SmallVector<SDValue, 8> Ops;
755 ArrayRef<SDValue>(&Ops[0], Ops.size()));
774 SDValue LanaiTargetLowering::LowerCallResult(
775 SDValue Chain, SDValue InFlag, CallingConv::ID CallConv, bool IsVarArg,
777 SelectionDAG &DAG, SmallVectorImpl<SDValue> &InVals) const {
801 static LPCC::CondCode IntCondCCodeToICC(SDValue CC, const SDLoc &DL,
802 SDValue &RHS, SelectionDAG &DAG) {
866 SDValue LanaiTargetLowering::LowerBR_CC(SDValue Op, SelectionDAG &DAG) const {
867 SDValue Chain = Op.getOperand(0);
868 SDValue Cond = Op.getOperand(1);
869 SDValue LHS = Op.getOperand(2);
870 SDValue RHS = Op.getOperand(3);
871 SDValue Dest = Op.getOperand(4);
875 SDValue TargetCC = DAG.getConstant(CC, DL, MVT::i32);
876 SDValue Flag =
883 SDValue LanaiTargetLowering::LowerMUL(SDValue Op, SelectionDAG &DAG) const {
886 return SDValue();
890 return SDValue();
934 return SDValue();
936 SDValue Res;
938 SDValue V = Op->getOperand(0);
959 SDValue Op =
969 SDValue LanaiTargetLowering::LowerSETCC(SDValue Op, SelectionDAG &DAG) const {
970 SDValue LHS = Op.getOperand(0);
971 SDValue RHS = Op.getOperand(1);
972 SDValue Cond = Op.getOperand(2);
976 SDValue TargetCC = DAG.getConstant(CC, DL, MVT::i32);
977 SDValue Flag =
983 SDValue LanaiTargetLowering::LowerSELECT_CC(SDValue Op,
985 SDValue LHS = Op.getOperand(0);
986 SDValue RHS = Op.getOperand(1);
987 SDValue TrueV = Op.getOperand(2);
988 SDValue FalseV = Op.getOperand(3);
989 SDValue Cond = Op.getOperand(4);
993 SDValue TargetCC = DAG.getConstant(CC, DL, MVT::i32);
994 SDValue Flag =
1002 SDValue LanaiTargetLowering::LowerVASTART(SDValue Op, SelectionDAG &DAG) const {
1007 SDValue FI = DAG.getFrameIndex(FuncInfo->getVarArgsFrameIndex(),
1017 SDValue LanaiTargetLowering::LowerDYNAMIC_STACKALLOC(SDValue Op,
1019 SDValue Chain = Op.getOperand(0);
1020 SDValue Size = Op.getOperand(1);
1026 SDValue StackPointer = DAG.getCopyFromReg(Chain, DL, SPReg, MVT::i32);
1030 SDValue Sub = DAG.getNode(ISD::SUB, DL, MVT::i32, StackPointer, Size);
1042 SDValue ArgAdjust = DAG.getNode(LanaiISD::ADJDYNALLOC, DL, MVT::i32, Sub);
1046 SDValue CopyChain = DAG.getCopyToReg(Chain, DL, SPReg, Sub);
1048 SDValue Ops[2] = {ArgAdjust, CopyChain};
1052 SDValue LanaiTargetLowering::LowerRETURNADDR(SDValue Op,
1062 SDValue FrameAddr = LowerFRAMEADDR(Op, DAG);
1064 SDValue Ptr = DAG.getNode(ISD::ADD, DL, VT, FrameAddr,
1075 SDValue LanaiTargetLowering::LowerFRAMEADDR(SDValue Op,
1082 SDValue FrameAddr = DAG.getCopyFromReg(DAG.getEntryNode(), DL, Lanai::FP, VT);
1086 SDValue Ptr = DAG.getNode(ISD::ADD, DL, VT, FrameAddr,
1125 SDValue LanaiTargetLowering::LowerConstantPool(SDValue Op,
1138 SDValue Small = DAG.getTargetConstantPool(
1147 SDValue Hi = DAG.getTargetConstantPool(C, MVT::i32, N->getAlign(),
1149 SDValue Lo = DAG.getTargetConstantPool(C, MVT::i32, N->getAlign(),
1153 SDValue Result = DAG.getNode(ISD::OR, DL, MVT::i32, Hi, Lo);
1158 SDValue LanaiTargetLowering::LowerGlobalAddress(SDValue Op,
1172 SDValue Small = DAG.getTargetGlobalAddress(
1182 SDValue Hi = DAG.getTargetGlobalAddress(
1184 SDValue Lo = DAG.getTargetGlobalAddress(
1192 SDValue LanaiTargetLowering::LowerBlockAddress(SDValue Op,
1200 SDValue Hi = DAG.getBlockAddress(BA, MVT::i32, true, OpFlagHi);
1201 SDValue Lo = DAG.getBlockAddress(BA, MVT::i32, true, OpFlagLo);
1204 SDValue Result = DAG.getNode(ISD::OR, DL, MVT::i32, Hi, Lo);
1208 SDValue LanaiTargetLowering::LowerJumpTable(SDValue Op,
1215 SDValue Small = DAG.getTargetJumpTable(
1224 SDValue Hi = DAG.getTargetJumpTable(
1226 SDValue Lo = DAG.getTargetJumpTable(
1230 SDValue Result = DAG.getNode(ISD::OR, DL, MVT::i32, Hi, Lo);
1235 SDValue LanaiTargetLowering::LowerSHL_PARTS(SDValue Op,
1241 SDValue ShOpLo = Op.getOperand(0);
1242 SDValue ShOpHi = Op.getOperand(1);
1243 SDValue ShAmt = Op.getOperand(2);
1252 SDValue RevShAmt = DAG.getNode(ISD::SUB, dl, MVT::i32,
1254 SDValue LoBitsForHi = DAG.getNode(ISD::SRL, dl, VT, ShOpLo, RevShAmt);
1258 SDValue Zero = DAG.getConstant(0, dl, MVT::i32);
1259 SDValue SetCC = DAG.getSetCC(dl, MVT::i32, ShAmt, Zero, ISD::SETEQ);
1262 SDValue ExtraShAmt = DAG.getNode(ISD::SUB, dl, MVT::i32, ShAmt,
1264 SDValue HiBitsForHi = DAG.getNode(ISD::SHL, dl, VT, ShOpHi, ShAmt);
1265 SDValue HiForNormalShift =
1268 SDValue HiForBigShift = DAG.getNode(ISD::SHL, dl, VT, ShOpLo, ExtraShAmt);
1271 SDValue Hi =
1276 SDValue LoForNormalShift = DAG.getNode(ISD::SHL, dl, VT, ShOpLo, ShAmt);
1277 SDValue Lo = DAG.getSelect(
1280 SDValue Ops[2] = {Lo, Hi};
1284 SDValue LanaiTargetLowering::LowerSRL_PARTS(SDValue Op,
1289 SDValue ShOpLo = Op.getOperand(0);
1290 SDValue ShOpHi = Op.getOperand(1);
1291 SDValue ShAmt = Op.getOperand(2);
1304 SDValue Zero = DAG.getConstant(0, dl, MVT::i32);
1305 SDValue NegatedPlus32 = DAG.getNode(
1307 SDValue SetCC = DAG.getSetCC(dl, MVT::i32, NegatedPlus32, Zero, ISD::SETLE);
1309 SDValue Hi = DAG.getNode(ISD::SRL, dl, MVT::i32, ShOpHi, ShAmt);
1312 SDValue Lo = DAG.getNode(ISD::SRL, dl, MVT::i32, ShOpLo, ShAmt);
1314 SDValue CarryBits =
1316 SDValue ShiftIsZero = DAG.getSetCC(dl, MVT::i32, ShAmt, Zero, ISD::SETEQ);
1320 SDValue Ops[2] = {Lo, Hi};
1325 static inline bool isZeroOrAllOnes(SDValue N, bool AllOnes) {
1347 static bool isConditionalZeroOrAllOnes(SDNode *N, bool AllOnes, SDValue &CC,
1348 bool &Invert, SDValue &OtherOp,
1355 SDValue N1 = N->getOperand(1);
1356 SDValue N2 = N->getOperand(2);
1418 static SDValue combineSelectAndUse(SDNode *N, SDValue Slct, SDValue OtherOp,
1423 SDValue NonConstantVal;
1424 SDValue CCOp;
1428 return SDValue();
1431 SDValue TrueVal = OtherOp;
1432 SDValue FalseVal =
1442 static SDValue
1445 SDValue N0 = N->getOperand(0);
1446 SDValue N1 = N->getOperand(1);
1448 if (SDValue Result = combineSelectAndUse(N, N0, N1, DCI, AllOnes))
1451 if (SDValue Result = combineSelectAndUse(N, N1, N0, DCI, AllOnes))
1453 return SDValue();
1457 static SDValue PerformSUBCombine(SDNode *N,
1459 SDValue N0 = N->getOperand(0);
1460 SDValue N1 = N->getOperand(1);
1464 if (SDValue Result = combineSelectAndUse(N, N1, N0, DCI, /*AllOnes=*/false))
1467 return SDValue();
1470 SDValue LanaiTargetLowering::PerformDAGCombine(SDNode *N,
1485 return SDValue();
1489 const SDValue Op, KnownBits &Known, const APInt &DemandedElts,