From: Eric Anholt Date: Sat, 18 Jan 2014 18:36:28 +0000 (-0800) Subject: glsl: Optimize ~~x into x. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2c2aa353366c610382273bea10656e6d6960ce3b;p=mesa.git glsl: Optimize ~~x into x. v2: Fix pasteo of an extra abs being inserted (caught by many). Rewrite to drop the silly switch statement. Reviewed-by: Matt Turner (v1) --- diff --git a/src/glsl/opt_algebraic.cpp b/src/glsl/opt_algebraic.cpp index d1f6435f44f..681973dda0e 100644 --- a/src/glsl/opt_algebraic.cpp +++ b/src/glsl/opt_algebraic.cpp @@ -218,6 +218,11 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir) this->mem_ctx = ralloc_parent(ir); switch (ir->operation) { + case ir_unop_bit_not: + if (op_expr[0] && op_expr[0]->operation == ir_unop_bit_not) + return op_expr[0]->operands[0]; + break; + case ir_unop_abs: if (op_expr[0] == NULL) break;