i965: Handle ir_binop_ubo_load in boolean expression code.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 4 Sep 2014 07:18:45 +0000 (00:18 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 8 Sep 2014 22:43:52 +0000 (15:43 -0700)
commita20cc2796f5d55e49956ac0bc5d61ca027eec7f9
tree371a4a687eb4a6542c47ad2346f01110e69087a6
parentb9699e09bc2f4418093df00d212166c84e3cd71e
i965: Handle ir_binop_ubo_load in boolean expression code.

UBO loads can be boolean-valued expressions, too, so we need to handle
them in emit_bool_to_cond_code() and emit_if_gen6().

However, unlike most expressions, it doesn't make sense to evaluate
their operands, then do something with the results.  We just want to
evaluate the UBO load as a whole---which performs the read from
memory---then load the boolean result into the flag register.

Instead of adding code to handle it, we can simply bypass the
ir_expression handling, and fall through to the default code, which will
do exactly that.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83468
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Cc: mesa-stable@lists.freedesktop.org
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp