Lines Matching refs:range

30  * Analyzes a sequence of operations to determine some aspects of the range of
49 return (void *)(uintptr_t)(r.range | r.is_integral << 8 | r.is_finite << 9 |
59 .range = v & 0xff,
154 r.range = eq_zero;
156 r.range = gt_zero;
158 r.range = ge_zero;
160 r.range = lt_zero;
162 r.range = le_zero;
164 r.range = ne_zero;
166 r.range = unknown;
192 r.range = eq_zero;
194 r.range = gt_zero;
196 r.range = ge_zero;
198 r.range = lt_zero;
200 r.range = le_zero;
202 r.range = ne_zero;
204 r.range = unknown;
224 r.range = eq_zero;
226 r.range = ge_zero;
228 r.range = gt_zero;
344 * equality should be the range of the non-strict inequality (e.g.,
345 * union_ranges(range(op(lt_zero), range(op(eq_zero))) == range(op(le_zero)).
370 /* Several other unordered tuples span the range of "everything." Each should
378 * ASSERT_UNION_OF_OTHERS_MATCHES_UNKNOWN_*_SOURCE. For any range X,
423 * Analyze an expression to determine the range of its result
426 * about the range of values. There's an implicit grammar that produces
608 r.range = union_ranges(left.range, right.range);
620 if (r.range == unknown && alu->op == nir_op_u2f32)
621 r.range = ge_zero;
628 switch (r.range) {
632 r.range = ge_zero;
638 r.range = gt_zero;
654 r.range = fadd_table[left.range][right.range];
680 r.is_integral = r.is_integral && is_not_negative(r.range);
681 r.range = table[r.range];
760 r.range = table[left.range][right.range];
763 * This means the result range of the fmax will either be the "ideal"
764 * result range (calculated above) or the range of the non-NaN value.
767 r.range = union_ranges(r.range, right.range);
770 r.range = union_ranges(r.range, left.range);
846 r.range = table[left.range][right.range];
849 * This means the result range of the fmin will either be the "ideal"
850 * result range (calculated above) or the range of the non-NaN value.
853 r.range = union_ranges(r.range, right.range);
856 r.range = union_ranges(r.range, left.range);
871 if (left.range != eq_zero && nir_alu_srcs_equal(alu, alu, 0, 1)) {
875 r.range = ge_zero;
876 } else if (left.range != eq_zero && nir_alu_srcs_negative_equal(alu, alu, 0, 1)) {
878 r.range = le_zero;
880 r.range = fmul_table[left.range][right.range];
889 (!is_not_zero(left.range) && right.is_finite) ||
890 (left.is_finite && !is_not_zero(right.range)));
901 analyze_expression(alu, 0, ht, nir_alu_src_type(alu, 0)).range,
915 r.range = fneg_table[r.range];
926 switch (left.range) {
930 r.range = eq_zero;
938 r.range = left.is_a_number ? gt_zero : ge_zero;
946 r.range = ge_zero;
955 analyze_expression(alu, 0, ht, nir_alu_src_type(alu, 0)).range,
979 if (left.is_integral || left.range == le_zero || left.range == lt_zero)
980 r.range = left.range;
981 else if (left.range == ge_zero || left.range == gt_zero)
982 r.range = ge_zero;
983 else if (left.range == ne_zero)
984 r.range = unknown;
1001 if (left.is_integral || left.range == ge_zero || left.range == gt_zero)
1002 r.range = left.range;
1003 else if (left.range == le_zero || left.range == lt_zero)
1004 r.range = le_zero;
1005 else if (left.range == ne_zero)
1006 r.range = unknown;
1024 r.range = left.range;
1025 else if (left.range == ge_zero || left.range == gt_zero)
1026 r.range = ge_zero;
1027 else if (left.range == le_zero || left.range == lt_zero)
1028 r.range = le_zero;
1029 else if (left.range == ne_zero)
1030 r.range = unknown;
1140 is_not_negative(right.range);
1141 r.range = table[left.range][right.range];
1165 if (first.range != eq_zero && nir_alu_srcs_equal(alu, alu, 0, 1)) {
1167 * range.
1170 } else if (first.range != eq_zero && nir_alu_srcs_negative_equal(alu, alu, 0, 1)) {
1174 fmul_range = fmul_table[first.range][second.range];
1176 r.range = fadd_table[fmul_range][third.range];
1196 fadd_table[second.range][fneg_table[first.range]];
1199 fmul_table[third.range][inner_fadd_range];
1201 r.range = fadd_table[first.range][fmul_range];
1210 if (r.range == eq_zero)