diff options
author | Eric Anholt <[email protected]> | 2013-04-11 09:54:41 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2013-04-12 16:32:12 -0700 |
commit | adf251406b5cf5e74f88c91799228dd9cc8dac29 (patch) | |
tree | 0e969495bdf9aac8d4f61e46835b8d0f0494dc14 /src/mesa | |
parent | eaca8a94e27d5ec13fcbe5158212310292270e51 (diff) |
i965/fs: Fix some untriggered optimization bugs with uncompressed/sechalf.
We have this support for firsthalf/sechalf instructions, which would be
called in the !has_compr4 (aka original gen4) 16-wide case. We currently
only support 16-wide for gen5+, so we weren't tripping over this, but it
would have been a problem if we ever try to enable it.
Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 76ecd6958f0..516bf918175 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -1998,7 +1998,7 @@ fs_visitor::register_coalesce_2() fs_inst *inst = (fs_inst *)node; if (inst->opcode != BRW_OPCODE_MOV || - inst->predicate || + inst->is_partial_write() || inst->saturate || inst->src[0].file != GRF || inst->src[0].negate || @@ -2099,7 +2099,7 @@ fs_visitor::register_coalesce() continue; if (inst->opcode != BRW_OPCODE_MOV || - inst->predicate || + inst->is_partial_write() || inst->saturate || inst->dst.file != GRF || (inst->src[0].file != GRF && inst->src[0].file != UNIFORM)|| @@ -2201,7 +2201,7 @@ fs_visitor::compute_to_mrf() next_ip++; if (inst->opcode != BRW_OPCODE_MOV || - inst->predicate || + inst->is_partial_write() || inst->dst.file != MRF || inst->src[0].file != GRF || inst->dst.type != inst->src[0].type || inst->src[0].abs || inst->src[0].negate || inst->src[0].smear != -1) @@ -2408,7 +2408,7 @@ fs_visitor::remove_duplicate_mrf_writes() if (inst->opcode == BRW_OPCODE_MOV && inst->dst.file == MRF && inst->src[0].file == GRF && - !inst->predicate) { + !inst->is_partial_write()) { last_mrf_move[inst->dst.reg] = inst; } } |