---
 src/glsl/opt_minmax.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/glsl/opt_minmax.cpp b/src/glsl/opt_minmax.cpp
index 1aa4611..9852dd9 100644
--- a/src/glsl/opt_minmax.cpp
+++ b/src/glsl/opt_minmax.cpp
@@ -326,6 +326,15 @@ get_range(ir_rvalue *rval)
          // We can get the intersection here to limit the range even more
          return range_intersection(r0, minmax_range(low, high));
 
+      case ir_binop_add:
+         r0 = get_range(expr->operands[0]);
+         r1 = get_range(expr->operands[1]);
+         if(r0.low && r1.low)
+            low = add(r0.low, r1.low)->constant_expression_value();
+         if(r0.high && r1.high)
+            high = add(r0.high, r1.high)->constant_expression_value();
+         return minmax_range(low, high);
+
       default:
          break;
       }
-- 
2.0.3

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to