reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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));