reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Target/RISCV/RISCVISelLowering.cpp
  786   SDValue Zero = DAG.getConstant(0, DL, VT);
  787   SDValue One = DAG.getConstant(1, DL, VT);
  788   SDValue MinusXLen = DAG.getConstant(-(int)Subtarget.getXLen(), DL, VT);
  789   SDValue XLenMinus1 = DAG.getConstant(Subtarget.getXLen() - 1, DL, VT);
  790   SDValue ShamtMinusXLen = DAG.getNode(ISD::ADD, DL, VT, Shamt, MinusXLen);
  791   SDValue XLenMinus1Shamt = DAG.getNode(ISD::SUB, DL, VT, XLenMinus1, Shamt);
  793   SDValue ShiftRightLo = DAG.getNode(ISD::SRL, DL, VT, Lo, Shamt);
  794   SDValue ShiftLeftHi1 = DAG.getNode(ISD::SHL, DL, VT, Hi, One);
  796       DAG.getNode(ISD::SHL, DL, VT, ShiftLeftHi1, XLenMinus1Shamt);
  797   SDValue LoTrue = DAG.getNode(ISD::OR, DL, VT, ShiftRightLo, ShiftLeftHi);
  798   SDValue HiTrue = DAG.getNode(ShiftRightOp, DL, VT, Hi, Shamt);
  799   SDValue LoFalse = DAG.getNode(ShiftRightOp, DL, VT, Hi, ShamtMinusXLen);
  801       IsSRA ? DAG.getNode(ISD::SRA, DL, VT, Hi, XLenMinus1) : Zero;
  803   SDValue CC = DAG.getSetCC(DL, VT, ShamtMinusXLen, Zero, ISD::SETLT);
  805   Lo = DAG.getNode(ISD::SELECT, DL, VT, CC, LoTrue, LoFalse);
  806   Hi = DAG.getNode(ISD::SELECT, DL, VT, CC, HiTrue, HiFalse);
  809   return DAG.getMergeValues(Parts, DL);