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

References

lib/Target/X86/X86ISelLowering.cpp
18241   SDValue SafeShAmt = DAG.getNode(ISD::AND, dl, MVT::i8, ShAmt,
18242                                   DAG.getConstant(VTBits - 1, dl, MVT::i8));
18243   SDValue Tmp1 = isSRA ? DAG.getNode(ISD::SRA, dl, VT, ShOpHi,
18244                                      DAG.getConstant(VTBits - 1, dl, MVT::i8))
18245                        : DAG.getConstant(0, dl, VT);
18249     Tmp2 = DAG.getNode(ISD::FSHL, dl, VT, ShOpHi, ShOpLo, ShAmt);
18250     Tmp3 = DAG.getNode(ISD::SHL, dl, VT, ShOpLo, SafeShAmt);
18252     Tmp2 = DAG.getNode(ISD::FSHR, dl, VT, ShOpHi, ShOpLo, ShAmt);
18253     Tmp3 = DAG.getNode(isSRA ? ISD::SRA : ISD::SRL, dl, VT, ShOpHi, SafeShAmt);
18259   SDValue AndNode = DAG.getNode(ISD::AND, dl, MVT::i8, ShAmt,
18260                                 DAG.getConstant(VTBits, dl, MVT::i8));
18261   SDValue Cond = DAG.getSetCC(dl, MVT::i8, AndNode,
18262                              DAG.getConstant(0, dl, MVT::i8), ISD::SETNE);
18266     Hi = DAG.getNode(ISD::SELECT, dl, VT, Cond, Tmp3, Tmp2);
18267     Lo = DAG.getNode(ISD::SELECT, dl, VT, Cond, Tmp1, Tmp3);
18269     Lo = DAG.getNode(ISD::SELECT, dl, VT, Cond, Tmp3, Tmp2);
18270     Hi = DAG.getNode(ISD::SELECT, dl, VT, Cond, Tmp1, Tmp3);
18273   return DAG.getMergeValues({ Lo, Hi }, dl);