Lines Matching refs:reduction
342 static bool HasReductionFormat(HInstruction* reduction, HInstruction* phi) { in HasReductionFormat() argument
343 if (reduction->IsAdd()) { in HasReductionFormat()
344 return (reduction->InputAt(0) == phi && reduction->InputAt(1) != phi) || in HasReductionFormat()
345 (reduction->InputAt(0) != phi && reduction->InputAt(1) == phi); in HasReductionFormat()
346 } else if (reduction->IsSub()) { in HasReductionFormat()
347 return (reduction->InputAt(0) == phi && reduction->InputAt(1) != phi); in HasReductionFormat()
353 static HVecReduce::ReductionKind GetReductionKind(HVecOperation* reduction) { in GetReductionKind() argument
354 if (reduction->IsVecAdd() || in GetReductionKind()
355 reduction->IsVecSub() || in GetReductionKind()
356 reduction->IsVecSADAccumulate() || in GetReductionKind()
357 reduction->IsVecDotProd()) { in GetReductionKind()
360 LOG(FATAL) << "Unsupported SIMD reduction " << reduction->GetId(); in GetReductionKind()
1792 void HLoopOptimization::GenerateVecReductionPhiInputs(HPhi* phi, HInstruction* reduction) { in GenerateVecReductionPhiInputs() argument
1795 HInstruction* new_red = vector_map_->Get(reduction); in GenerateVecReductionPhiInputs()
2295 HInstruction* reduction = inputs[1]; in TrySetPhiReduction() local
2296 if (HasReductionFormat(reduction, phi)) { in TrySetPhiReduction()
2301 reduction->GetUses().HasExactlyOneElement() && in TrySetPhiReduction()
2302 !reduction->HasEnvironmentUses() && in TrySetPhiReduction()
2309 reductions_->Put(reduction, phi); in TrySetPhiReduction()