i965/fs: Allow constant propagation into IF with embedded compare.
authorEric Anholt <eric@anholt.net>
Mon, 19 Dec 2011 17:20:57 +0000 (09:20 -0800)
committerEric Anholt <eric@anholt.net>
Thu, 29 Dec 2011 17:33:56 +0000 (09:33 -0800)
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.

src/mesa/drivers/dri/i965/brw_fs.cpp

index 8ca4a8735d045e1d039df7fdaf5e5b107ef7ccfe..b6aa60e84f3270fb95745c6031d8c501e62d5dbf 100644 (file)
@@ -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;