--- src/glsl/opt_minmax.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/src/glsl/opt_minmax.cpp b/src/glsl/opt_minmax.cpp index 8d63d96..f066b45 100644 --- a/src/glsl/opt_minmax.cpp +++ b/src/glsl/opt_minmax.cpp @@ -457,6 +457,22 @@ get_range(ir_rvalue *rval) // Get the range of the addition of op0*op1 and op2 return resolv_add_range(r0, r1); + case ir_triop_lrp: + r0 = get_range(expr->operands[2]); + + // Get the range of (1-a) + r1 = resolv_add_range(get_range(new(mem_ctx) ir_constant(1.0f)), + get_range(neg(expr->operands[2])->as_rvalue())); + + // Get the range of (1-a)*y + r1 = resolv_mul_range(r1, get_range(expr->operands[2])); + + // Get the range of a*x + r0 = resolv_mul_range(r0, get_range(expr->operands[0])); + + // Add the two parts together + return resolv_add_range(r0, r1); + default: break; } -- 2.2.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev