summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2011-12-19 09:20:57 -0800
committerEric Anholt <[email protected]>2011-12-29 09:33:56 -0800
commit069901e2f5a8f4a58047d25335f2526f1acc7234 (patch)
treee6368b77a501aa49a05b5d6acbd928fc218ac2a6
parent6a1e19d0f63cb086e43505522cb72b0183da9b11 (diff)
i965/fs: Allow constant propagation into IF with embedded compare.
This saves a couple of instructions on most programs with control flow. More interestingly, 6 shaders from unigine sanctuary now fit into 16-wide without register spilling.
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 8ca4a8735d0..b6aa60e84f3 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -1144,6 +1144,7 @@ fs_visitor::propagate_constants()
break;
case BRW_OPCODE_CMP:
+ case BRW_OPCODE_IF:
if (i == 1) {
scan_inst->src[i] = inst->src[0];
progress = true;