Lines Matching defs:NodePtr
152 using NodePtr = std::shared_ptr<ComplexDeinterleavingCompositeNode>;
171 void addOperand(NodePtr Node) {
222 using NodePtr = ComplexDeinterleavingCompositeNode::NodePtr;
229 NodePtr Node;
242 SmallVector<NodePtr> CompositeNodes;
243 DenseMap<std::pair<Value *, Value *>, NodePtr> CachedResult;
248 std::map<Instruction *, NodePtr> RootToNode;
298 NodePtr prepareCompositeNode(ComplexDeinterleavingOperation Operation,
308 NodePtr submitCompositeNode(NodePtr Node) {
326 NodePtr identifyPartialMul(Instruction *Real, Instruction *Imag);
331 NodePtr
342 NodePtr identifyAdd(Instruction *Real, Instruction *Imag);
343 NodePtr identifySymmetricOperation(Instruction *Real, Instruction *Imag);
344 NodePtr identifyPartialReduction(Value *R, Value *I);
345 NodePtr identifyDotProduct(Value *Inst);
347 NodePtr identifyNode(Value *R, Value *I);
353 NodePtr identifyAdditions(std::list<Addend> &RealAddends,
356 NodePtr Accumulator);
359 NodePtr extractPositiveAddend(std::list<Addend> &RealAddends,
365 NodePtr identifyMultiplications(std::vector<Product> &RealMuls,
367 NodePtr Accumulator);
382 NodePtr identifyReassocNodes(Instruction *I, Instruction *J);
384 NodePtr identifyRoot(Instruction *I);
393 NodePtr identifyDeinterleave(Instruction *Real, Instruction *Imag);
399 NodePtr identifySplat(Value *Real, Value *Imag);
401 NodePtr identifyPHINode(Instruction *Real, Instruction *Imag);
405 NodePtr identifySelectNode(Instruction *Real, Instruction *Imag);
564 ComplexDeinterleavingGraph::NodePtr
647 NodePtr CommonNode = identifyNode(PartialMatch.first, PartialMatch.second);
653 NodePtr UncommonNode = identifyNode(UncommonRealOp, UncommonImagOp);
659 NodePtr Node = prepareCompositeNode(
667 ComplexDeinterleavingGraph::NodePtr
757 NodePtr CNode = identifyNodeWithImplicitAdd(CRInst, CIInst, PartialMatch);
763 NodePtr UncommonRes = identifyNode(UncommonRealOp, UncommonImagOp);
770 NodePtr CommonRes = identifyNode(PartialMatch.first, PartialMatch.second);
776 NodePtr Node = prepareCompositeNode(
785 ComplexDeinterleavingGraph::NodePtr
816 NodePtr ResA = identifyNode(AR, AI);
821 NodePtr ResB = identifyNode(BR, BI);
827 NodePtr Node =
867 ComplexDeinterleavingGraph::NodePtr
880 NodePtr Op0 = identifyNode(R0, I0);
881 NodePtr Op1 = nullptr;
910 ComplexDeinterleavingGraph::NodePtr
924 NodePtr CN =
927 NodePtr ANode;
1011 NodePtr Node = identifyNode(AReal, AImag);
1031 ComplexDeinterleavingGraph::NodePtr
1047 if (NodePtr CN = identifyDotProduct(IInst))
1053 ComplexDeinterleavingGraph::NodePtr
1061 if (NodePtr CN = identifyPartialReduction(R, I))
1068 if (NodePtr CN = identifySplat(R, I))
1076 if (NodePtr CN = identifyDeinterleave(Real, Imag))
1079 if (NodePtr CN = identifyPHINode(Real, Imag))
1082 if (NodePtr CN = identifySelectNode(Real, Imag))
1094 if (NodePtr CN = identifyPartialMul(Real, Imag))
1099 if (NodePtr CN = identifyAdd(Real, Imag))
1104 if (NodePtr CN = identifyReassocNodes(Real, Imag))
1108 if (NodePtr CN = identifySymmetricOperation(Real, Imag))
1116 ComplexDeinterleavingGraph::NodePtr
1240 NodePtr FinalNode;
1315 ComplexDeinterleavingGraph::NodePtr
1318 NodePtr Accumulator = nullptr) {
1327 std::map<Value *, NodePtr> CommonToNode;
1359 NodePtr Result = Accumulator;
1431 NodePtr NodeMul = prepareCompositeNode(
1472 ComplexDeinterleavingGraph::NodePtr
1475 std::optional<FastMathFlags> Flags, NodePtr Accumulator = nullptr) {
1479 NodePtr Result;
1507 NodePtr AddNode;
1522 NodePtr TmpNode;
1564 ComplexDeinterleavingGraph::NodePtr
1760 for (NodePtr N : CompositeNodes) {
1848 ComplexDeinterleavingGraph::NodePtr
1879 ComplexDeinterleavingGraph::NodePtr
1888 NodePtr PlaceholderNode = prepareCompositeNode(
1979 NodePtr PlaceholderNode =
1988 ComplexDeinterleavingGraph::NodePtr
2036 NodePtr PlaceholderNode =
2041 ComplexDeinterleavingGraph::NodePtr
2048 NodePtr PlaceholderNode = prepareCompositeNode(
2053 ComplexDeinterleavingGraph::NodePtr
2083 NodePtr PlaceholderNode = prepareCompositeNode(