Lines Matching refs:is_min
526 bool is_min) const { in GetLinear()
538 if (!is_min && stride_value == 1) { in GetLinear()
549 return GetVal(&cancelled_trip, trip, in_body, is_min); in GetLinear()
551 } else if (is_min && stride_value == -1) { in GetLinear()
564 return SubValue(Value(0), GetVal(&cancelled_trip, trip, in_body, !is_min)); in GetLinear()
571 return AddValue(GetMul(info->op_a, trip, trip, in_body, is_min), in GetLinear()
572 GetVal(info->op_b, trip, in_body, is_min)); in GetLinear()
578 bool is_min) const { in GetPolynomial()
587 Value c = GetVal(info->op_b, trip, in_body, is_min); in GetPolynomial()
588 if (is_min) { in GetPolynomial()
591 Value m = GetVal(trip, trip, in_body, is_min); in GetPolynomial()
604 bool is_min) const { in GetGeometric()
614 const bool is_min_a = a >= 0 ? is_min : !is_min; in GetGeometric()
616 Value b = GetVal(info->op_b, trip, in_body, is_min); in GetGeometric()
626 bool is_min) const { in GetFetch()
630 if (is_min) { in GetFetch()
649 GetFetch(instruction->InputAt(1), trip, in_body, is_min)); in GetFetch()
651 return AddValue(GetFetch(instruction->InputAt(0), trip, in_body, is_min), in GetFetch()
658 GetFetch(instruction->InputAt(1), trip, in_body, !is_min)); in GetFetch()
660 return SubValue(GetFetch(instruction->InputAt(0), trip, in_body, is_min), in GetFetch()
666 return is_min ? Value(0) : Value(std::numeric_limits<int32_t>::max()); in GetFetch()
668 return GetFetch(instruction->InputAt(0)->AsNewArray()->GetLength(), trip, in_body, is_min); in GetFetch()
675 return GetFetch(instruction->InputAt(0), trip, in_body, is_min); in GetFetch()
692 return GetVal(next_info, next_trip, next_in_body, is_min); in GetFetch()
701 bool is_min) const { in GetVal()
708 return AddValue(GetVal(info->op_a, trip, in_body, is_min), in GetVal()
709 GetVal(info->op_b, trip, in_body, is_min)); in GetVal()
711 return SubValue(GetVal(info->op_a, trip, in_body, is_min), in GetVal()
712 GetVal(info->op_b, trip, in_body, !is_min)); in GetVal()
715 GetVal(info->op_b, trip, in_body, !is_min)); in GetVal()
717 return GetMul(info->op_a, info->op_b, trip, in_body, is_min); in GetVal()
719 return GetDiv(info->op_a, info->op_b, trip, in_body, is_min); in GetVal()
725 return GetFetch(info->fetch, trip, in_body, is_min); in GetVal()
728 if (!in_body && !is_min) { // one extra! in GetVal()
729 return GetVal(info->op_a, trip, in_body, is_min); in GetVal()
734 if (is_min) { in GetVal()
737 return SubValue(GetVal(info->op_a, trip, in_body, is_min), Value(1)); in GetVal()
745 return CorrectForType(GetLinear(info, trip, in_body, is_min), info->type); in GetVal()
747 return GetPolynomial(info, trip, in_body, is_min); in GetVal()
749 return GetGeometric(info, trip, in_body, is_min); in GetVal()
752 return MergeVal(GetVal(info->op_a, trip, in_body, is_min), in GetVal()
753 GetVal(info->op_b, trip, in_body, is_min), is_min); in GetVal()
763 bool is_min) const { in GetMul()
767 return MulRangeAndConstant(value, info2, trip, in_body, is_min); in GetMul()
769 return MulRangeAndConstant(value, info1, trip, in_body, is_min); in GetMul()
779 return is_min ? MulValue(v1_min, v2_min) : MulValue(v1_max, v2_max); in GetMul()
781 return is_min ? MulValue(v1_max, v2_min) : MulValue(v1_min, v2_max); in GetMul()
787 return is_min ? MulValue(v1_min, v2_max) : MulValue(v1_max, v2_min); in GetMul()
789 return is_min ? MulValue(v1_max, v2_max) : MulValue(v1_min, v2_min); in GetMul()
799 bool is_min) const { in GetDiv()
803 return DivRangeAndConstant(value, info1, trip, in_body, is_min); in GetDiv()
813 return is_min ? DivValue(v1_min, v2_max) : DivValue(v1_max, v2_min); in GetDiv()
815 return is_min ? DivValue(v1_max, v2_max) : DivValue(v1_min, v2_min); in GetDiv()
821 return is_min ? DivValue(v1_min, v2_min) : DivValue(v1_max, v2_max); in GetDiv()
823 return is_min ? DivValue(v1_max, v2_min) : DivValue(v1_min, v2_max); in GetDiv()
864 bool is_min) const { in MulRangeAndConstant()
867 return MulValue(GetVal(info, trip, in_body, is_min == value >= 0), c); in MulRangeAndConstant()
877 bool is_min) const { in DivRangeAndConstant()
880 return DivValue(GetVal(info, trip, in_body, is_min == value >= 0), c); in DivRangeAndConstant()
937 InductionVarRange::Value InductionVarRange::MergeVal(Value v1, Value v2, bool is_min) const { in MergeVal()
941 is_min ? std::min(v1.b_constant, v2.b_constant) in MergeVal()
1204 bool is_min) const { in GenerateCode()
1229 if (GenerateCode(info->op_a, trip, graph, block, &opa, in_body, is_min) && in GenerateCode()
1230 GenerateCode(info->op_b, trip, graph, block, &opb, in_body, is_min)) { in GenerateCode()
1263 if (GenerateCode(info->op_b, trip, graph, block, &opb, in_body, !is_min)) { in GenerateCode()
1277 if (!in_body && !is_min) { // one extra! in GenerateCode()
1278 return GenerateCode(info->op_a, trip, graph, block, result, in_body, is_min); in GenerateCode()
1283 if (is_min) { in GenerateCode()
1289 if (GenerateCode(info->op_a, trip, graph, block, &opb, in_body, is_min)) { in GenerateCode()
1314 const bool is_min_a = stride_value >= 0 ? is_min : !is_min; in GenerateCode()
1316 GenerateCode(info->op_b, trip, graph, block, &opb, in_body, is_min)) { in GenerateCode()
1344 Value extreme = GetVal(info, trip, in_body, is_min); in GenerateCode()