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

References

lib/Target/X86/X86ISelLowering.cpp
18557   LLVMContext *Context = DAG.getContext();
18562   auto PtrVT = DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout());
18562   auto PtrVT = DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout());
18563   SDValue CPIdx0 = DAG.getConstantPool(C0, PtrVT, 16);
18573   SDValue CPIdx1 = DAG.getConstantPool(C1, PtrVT, 16);
18576   SDValue XR1 = DAG.getNode(ISD::SCALAR_TO_VECTOR, dl, MVT::v2i64,
18579       DAG.getLoad(MVT::v4i32, dl, DAG.getEntryNode(), CPIdx0,
18579       DAG.getLoad(MVT::v4i32, dl, DAG.getEntryNode(), CPIdx0,
18580                   MachinePointerInfo::getConstantPool(DAG.getMachineFunction()),
18583       getUnpackl(DAG, dl, MVT::v4i32, DAG.getBitcast(MVT::v4i32, XR1), CLod0);
18583       getUnpackl(DAG, dl, MVT::v4i32, DAG.getBitcast(MVT::v4i32, XR1), CLod0);
18586       DAG.getLoad(MVT::v2f64, dl, CLod0.getValue(1), CPIdx1,
18587                   MachinePointerInfo::getConstantPool(DAG.getMachineFunction()),
18589   SDValue XR2F = DAG.getBitcast(MVT::v2f64, Unpck1);
18591   SDValue Sub = DAG.getNode(ISD::FSUB, dl, MVT::v2f64, XR2F, CLod1);
18594   if (Subtarget.hasSSE3() && shouldUseHorizontalOp(true, DAG, Subtarget)) {
18595     Result = DAG.getNode(X86ISD::FHADD, dl, MVT::v2f64, Sub, Sub);
18597     SDValue Shuffle = DAG.getVectorShuffle(MVT::v2f64, dl, Sub, Sub, {1,-1});
18598     Result = DAG.getNode(ISD::FADD, dl, MVT::v2f64, Shuffle, Sub);
18601   return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, MVT::f64, Result,
18602                      DAG.getIntPtrConstant(0, dl));