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

References

lib/Target/RISCV/RISCVISelLowering.cpp
  736   SDValue Zero = DAG.getConstant(0, DL, VT);
  737   SDValue One = DAG.getConstant(1, DL, VT);
  738   SDValue MinusXLen = DAG.getConstant(-(int)Subtarget.getXLen(), DL, VT);
  739   SDValue XLenMinus1 = DAG.getConstant(Subtarget.getXLen() - 1, DL, VT);
  740   SDValue ShamtMinusXLen = DAG.getNode(ISD::ADD, DL, VT, Shamt, MinusXLen);
  741   SDValue XLenMinus1Shamt = DAG.getNode(ISD::SUB, DL, VT, XLenMinus1, Shamt);
  743   SDValue LoTrue = DAG.getNode(ISD::SHL, DL, VT, Lo, Shamt);
  744   SDValue ShiftRight1Lo = DAG.getNode(ISD::SRL, DL, VT, Lo, One);
  746       DAG.getNode(ISD::SRL, DL, VT, ShiftRight1Lo, XLenMinus1Shamt);
  747   SDValue ShiftLeftHi = DAG.getNode(ISD::SHL, DL, VT, Hi, Shamt);
  748   SDValue HiTrue = DAG.getNode(ISD::OR, DL, VT, ShiftLeftHi, ShiftRightLo);
  749   SDValue HiFalse = DAG.getNode(ISD::SHL, DL, VT, Lo, ShamtMinusXLen);
  751   SDValue CC = DAG.getSetCC(DL, VT, ShamtMinusXLen, Zero, ISD::SETLT);
  753   Lo = DAG.getNode(ISD::SELECT, DL, VT, CC, LoTrue, Zero);
  754   Hi = DAG.getNode(ISD::SELECT, DL, VT, CC, HiTrue, HiFalse);
  757   return DAG.getMergeValues(Parts, DL);