Lines Matching refs:Imag

142       : Operation(Op), Real(R), Imag(I) {}  in ComplexDeinterleavingCompositeNode()
152 Value *Imag; member
187 PrintValue(Imag); in dump()
297 if (Node->Real && Node->Imag) in submitCompositeNode()
298 CachedResult[{Node->Real, Node->Imag}] = Node; in submitCompositeNode()
313 NodePtr identifyPartialMul(Instruction *Real, Instruction *Imag);
329 NodePtr identifyAdd(Instruction *Real, Instruction *Imag);
330 NodePtr identifySymmetricOperation(Instruction *Real, Instruction *Imag);
378 NodePtr identifyDeinterleave(Instruction *Real, Instruction *Imag);
384 NodePtr identifySplat(Value *Real, Value *Imag);
386 NodePtr identifyPHINode(Instruction *Real, Instruction *Imag);
390 NodePtr identifySelectNode(Instruction *Real, Instruction *Imag);
550 Instruction *Real, Instruction *Imag, in identifyNodeWithImplicitAdd() argument
552 LLVM_DEBUG(dbgs() << "identifyNodeWithImplicitAdd " << *Real << " / " << *Imag in identifyNodeWithImplicitAdd()
555 if (!Real->hasOneUse() || !Imag->hasOneUse()) { in identifyNodeWithImplicitAdd()
562 (Imag->getOpcode() != Instruction::FMul && in identifyNodeWithImplicitAdd()
563 Imag->getOpcode() != Instruction::Mul)) { in identifyNodeWithImplicitAdd()
571 Value *I0 = Imag->getOperand(0); in identifyNodeWithImplicitAdd()
572 Value *I1 = Imag->getOperand(1); in identifyNodeWithImplicitAdd()
644 ComplexDeinterleavingOperation::CMulPartial, Real, Imag); in identifyNodeWithImplicitAdd()
653 Instruction *Imag) { in identifyPartialMul() argument
654 LLVM_DEBUG(dbgs() << "identifyPartialMul " << *Real << " / " << *Imag in identifyPartialMul()
664 if (IsAdd(Real->getOpcode()) && IsAdd(Imag->getOpcode())) in identifyPartialMul()
666 else if (IsSub(Real->getOpcode()) && IsAdd(Imag->getOpcode())) in identifyPartialMul()
668 else if (IsSub(Real->getOpcode()) && IsSub(Imag->getOpcode())) in identifyPartialMul()
670 else if (IsAdd(Real->getOpcode()) && IsSub(Imag->getOpcode())) in identifyPartialMul()
679 !Imag->getFastMathFlags().allowContract())) { in identifyPartialMul()
688 Value *CI = Imag->getOperand(0); in identifyPartialMul()
689 Instruction *ImagMulI = dyn_cast<Instruction>(Imag->getOperand(1)); in identifyPartialMul()
761 ComplexDeinterleavingOperation::CMulPartial, Real, Imag); in identifyPartialMul()
770 ComplexDeinterleavingGraph::identifyAdd(Instruction *Real, Instruction *Imag) { in identifyAdd() argument
771 LLVM_DEBUG(dbgs() << "identifyAdd " << *Real << " / " << *Imag << "\n"); in identifyAdd()
776 Imag->getOpcode() == Instruction::FAdd) || in identifyAdd()
778 Imag->getOpcode() == Instruction::Add)) in identifyAdd()
781 Imag->getOpcode() == Instruction::FSub) || in identifyAdd()
783 Imag->getOpcode() == Instruction::Sub)) in identifyAdd()
792 auto *AI = dyn_cast<Instruction>(Imag->getOperand(0)); in identifyAdd()
793 auto *BR = dyn_cast<Instruction>(Imag->getOperand(1)); in identifyAdd()
812 prepareCompositeNode(ComplexDeinterleavingOperation::CAdd, Real, Imag); in identifyAdd()
853 Instruction *Imag) { in identifySymmetricOperation() argument
854 if (Real->getOpcode() != Imag->getOpcode()) in identifySymmetricOperation()
858 !isInstructionPotentiallySymmetric(Imag)) in identifySymmetricOperation()
862 auto *I0 = Imag->getOperand(0); in identifySymmetricOperation()
871 auto *I1 = Imag->getOperand(1); in identifySymmetricOperation()
878 Real->getFastMathFlags() != Imag->getFastMathFlags()) in identifySymmetricOperation()
882 Real, Imag); in identifySymmetricOperation()
910 auto *Imag = dyn_cast<Instruction>(I); in identifyNode() local
911 if (!Real || !Imag) in identifyNode()
914 if (NodePtr CN = identifyDeinterleave(Real, Imag)) in identifyNode()
917 if (NodePtr CN = identifyPHINode(Real, Imag)) in identifyNode()
920 if (NodePtr CN = identifySelectNode(Real, Imag)) in identifyNode()
931 if (HasCMulSupport && isInstructionPairMul(Real, Imag)) { in identifyNode()
932 if (NodePtr CN = identifyPartialMul(Real, Imag)) in identifyNode()
936 if (HasCAddSupport && isInstructionPairAdd(Real, Imag)) { in identifyNode()
937 if (NodePtr CN = identifyAdd(Real, Imag)) in identifyNode()
942 if (NodePtr CN = identifyReassocNodes(Real, Imag)) in identifyNode()
946 if (NodePtr CN = identifySymmetricOperation(Real, Imag)) in identifyNode()
956 Instruction *Imag) { in identifyReassocNodes() argument
964 !IsOperationSupported(Imag->getOpcode())) in identifyReassocNodes()
969 if (Real->getFastMathFlags() != Imag->getFastMathFlags()) { in identifyReassocNodes()
1072 !Collect(Imag, ImagMuls, ImagAddends)) in identifyReassocNodes()
1097 FinalNode->Imag = Imag; in identifyReassocNodes()
1107 const Product &Imag) -> Value * { in collectPartialMuls() argument
1108 if (Real.Multiplicand == Imag.Multiplicand || in collectPartialMuls()
1109 Real.Multiplicand == Imag.Multiplier) in collectPartialMuls()
1112 if (Real.Multiplier == Imag.Multiplicand || in collectPartialMuls()
1113 Real.Multiplier == Imag.Multiplier) in collectPartialMuls()
1263 dbgs().indent(4) << "Y: " << *NodeA->Imag << "\n"; in identifyMultiplications()
1265 dbgs().indent(4) << "V: " << *NodeB->Imag << "\n"; in identifyMultiplications()
1435 auto *I = cast<Instruction>(RootNode->Imag); in identifyNodes()
1529 auto *Imag = OperationInstruction[j]; in identifyReductionNodes() local
1530 if (Real->getType() != Imag->getType()) in identifyReductionNodes()
1534 ImagPHI = ReductionInfo[Imag].first; in identifyReductionNodes()
1536 auto Node = identifyNode(Real, Imag); in identifyReductionNodes()
1538 std::swap(Real, Imag); in identifyReductionNodes()
1540 Node = identifyNode(Real, Imag); in identifyReductionNodes()
1548 << *Real << " / " << *Imag << "\n"); in identifyReductionNodes()
1552 ComplexDeinterleavingOperation::ReductionOperation, Real, Imag); in identifyReductionNodes()
1555 RootToNode[Imag] = RootNode; in identifyReductionNodes()
1646 auto *Imag = dyn_cast<Instruction>(Intrinsic->getOperand(1)); in identifyRoot() local
1647 if (!Real || !Imag) in identifyRoot()
1650 return identifyNode(Real, Imag); in identifyRoot()
1663 Instruction *Imag; in identifyRoot() local
1664 if (!match(RootI, m_Shuffle(m_Instruction(Real), m_Instruction(Imag)))) in identifyRoot()
1667 return identifyNode(Real, Imag); in identifyRoot()
1672 Instruction *Imag) { in identifyDeinterleave() argument
1676 match(Imag, m_ExtractValue<1>(m_Specific(I))) && in identifyDeinterleave()
1680 llvm::ComplexDeinterleavingOperation::Deinterleave, Real, Imag); in identifyDeinterleave()
1683 FinalInstructions.insert(Imag); in identifyDeinterleave()
1688 auto *ImagShuffle = dyn_cast<ShuffleVectorInst>(Imag); in identifyDeinterleave()
1815 auto *Imag = dyn_cast<Instruction>(I); in identifySplat() local
1816 if ((!Real && Imag) || (Real && !Imag)) in identifySplat()
1819 if (Real && Imag) { in identifySplat()
1821 if (Real->getParent() != Imag->getParent()) in identifySplat()
1825 FinalInstructions.insert(Imag); in identifySplat()
1834 Instruction *Imag) { in identifyPHINode() argument
1835 if (Real != RealPHI || Imag != ImagPHI) in identifyPHINode()
1840 ComplexDeinterleavingOperation::ReductionPHI, Real, Imag); in identifyPHINode()
1846 Instruction *Imag) { in identifySelectNode() argument
1848 auto *SelectImag = dyn_cast<SelectInst>(Imag); in identifySelectNode()
1856 !match(Imag, m_Select(m_Instruction(MaskB), m_Instruction(AI), in identifySelectNode()
1875 ComplexDeinterleavingOperation::ReductionSelect, Real, Imag); in identifySelectNode()
1957 auto *I = dyn_cast<Instruction>(Node->Imag); in replaceNode()
1963 NewTy, {Node->Real, Node->Imag}); in replaceNode()
1966 Intrinsic::vector_interleave2, NewTy, {Node->Real, Node->Imag}); in replaceNode()
1986 auto *MaskImag = cast<Instruction>(Node->Imag)->getOperand(0); in replaceNode()
2007 auto *Imag = cast<Instruction>(Node->Imag); in processReductionOperation() local
2009 auto *OldPHIImag = ReductionInfo[Imag].first; in processReductionOperation()
2029 auto *FinalReductionImag = ReductionInfo[Imag].second; in processReductionOperation()
2042 FinalReductionImag->replaceUsesOfWith(Imag, NewImag); in processReductionOperation()
2060 auto *RootImag = cast<Instruction>(RootNode->Imag); in replaceNodes()