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

References

lib/Target/X86/X86ISelLowering.cpp
18795   auto PtrVT = getPointerTy(DAG.getDataLayout());
18800     return LowerF128Call(Op, DAG, RTLIB::getUINTTOFP(SrcVT, DstVT));
18803     return lowerUINT_TO_FP_vec(Op, DAG, Subtarget);
18805   if (SDValue Extract = vectorizeExtractedCast(Op, DAG, Subtarget))
18817     N0 = DAG.getNode(ISD::ZERO_EXTEND, dl, MVT::i64, N0);
18818     return DAG.getNode(ISD::SINT_TO_FP, dl, DstVT, N0);
18821   if (SDValue V = LowerI64IntToFP_AVX512DQ(Op, DAG, Subtarget))
18825     return LowerUINT_TO_FP_i64(Op, DAG, Subtarget);
18827     return LowerUINT_TO_FP_i32(Op, DAG, Subtarget);
18832   SDValue StackSlot = DAG.CreateStackTemporary(MVT::i64);
18834     SDValue OffsetSlot = DAG.getMemBasePlusOffset(StackSlot, 4, dl);
18835     SDValue Store1 = DAG.getStore(DAG.getEntryNode(), dl, Op.getOperand(0),
18835     SDValue Store1 = DAG.getStore(DAG.getEntryNode(), dl, Op.getOperand(0),
18837     SDValue Store2 = DAG.getStore(Store1, dl, DAG.getConstant(0, dl, MVT::i32),
18837     SDValue Store2 = DAG.getStore(Store1, dl, DAG.getConstant(0, dl, MVT::i32),
18839     SDValue Fild = BuildFILD(Op, MVT::i64, Store2, StackSlot, DAG);
18849     ValueToStore = DAG.getBitcast(MVT::f64, ValueToStore);
18850   SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, ValueToStore, StackSlot,
18850   SDValue Store = DAG.getStore(DAG.getEntryNode(), dl, ValueToStore, StackSlot,
18858   MachineMemOperand *MMO = DAG.getMachineFunction().getMachineMemOperand(
18859       MachinePointerInfo::getFixedStack(DAG.getMachineFunction(), SSFI),
18862   SDVTList Tys = DAG.getVTList(MVT::f80, MVT::Other);
18864   SDValue Fild = DAG.getMemIntrinsicNode(X86ISD::FILD, dl, Tys, Ops,
18870   SDValue SignSet = DAG.getSetCC(
18871       dl, getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), MVT::i64),
18871       dl, getSetCCResultType(DAG.getDataLayout(), *DAG.getContext(), MVT::i64),
18872       Op.getOperand(0), DAG.getConstant(0, dl, MVT::i64), ISD::SETLT);
18875   SDValue FudgePtr = DAG.getConstantPool(
18876       ConstantInt::get(*DAG.getContext(), FF.zext(64)), PtrVT);
18879   SDValue Zero = DAG.getIntPtrConstant(0, dl);
18880   SDValue Four = DAG.getIntPtrConstant(4, dl);
18881   SDValue Offset = DAG.getSelect(dl, Zero.getValueType(), SignSet, Zero, Four);
18882   FudgePtr = DAG.getNode(ISD::ADD, dl, PtrVT, FudgePtr, Offset);
18886   SDValue Fudge = DAG.getExtLoad(
18887       ISD::EXTLOAD, dl, MVT::f80, DAG.getEntryNode(), FudgePtr,
18888       MachinePointerInfo::getConstantPool(DAG.getMachineFunction()), MVT::f32,
18892   SDValue Add = DAG.getNode(ISD::FADD, dl, MVT::f80, Fild, Fudge);
18893   return DAG.getNode(ISD::FP_ROUND, dl, DstVT, Add,
18894                      DAG.getIntPtrConstant(0, dl));