Lines Matching refs:reduction
340 static bool HasReductionFormat(HInstruction* reduction, HInstruction* phi) { in HasReductionFormat() argument
341 if (reduction->IsAdd()) { in HasReductionFormat()
342 return (reduction->InputAt(0) == phi && reduction->InputAt(1) != phi) || in HasReductionFormat()
343 (reduction->InputAt(0) != phi && reduction->InputAt(1) == phi); in HasReductionFormat()
344 } else if (reduction->IsSub()) { in HasReductionFormat()
345 return (reduction->InputAt(0) == phi && reduction->InputAt(1) != phi); in HasReductionFormat()
351 static HVecReduce::ReductionKind GetReductionKind(HVecOperation* reduction) { in GetReductionKind() argument
352 if (reduction->IsVecAdd() || in GetReductionKind()
353 reduction->IsVecSub() || in GetReductionKind()
354 reduction->IsVecSADAccumulate() || in GetReductionKind()
355 reduction->IsVecDotProd()) { in GetReductionKind()
358 LOG(FATAL) << "Unsupported SIMD reduction " << reduction->GetId(); in GetReductionKind()
1793 void HLoopOptimization::GenerateVecReductionPhiInputs(HPhi* phi, HInstruction* reduction) { in GenerateVecReductionPhiInputs() argument
1796 HInstruction* new_red = vector_map_->Get(reduction); in GenerateVecReductionPhiInputs()
2284 HInstruction* reduction = inputs[1]; in TrySetPhiReduction() local
2285 if (HasReductionFormat(reduction, phi)) { in TrySetPhiReduction()
2290 reduction->GetUses().HasExactlyOneElement() && in TrySetPhiReduction()
2291 !reduction->HasEnvironmentUses() && in TrySetPhiReduction()
2298 reductions_->Put(reduction, phi); in TrySetPhiReduction()