diff options
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp index 60a1b8cf463..3bc4435ac92 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp @@ -453,13 +453,15 @@ fs_visitor::try_constant_propagate(fs_inst *inst, acp_entry *entry) val.type = inst->src[i].type; if (inst->src[i].abs) { - if (!brw_abs_immediate(val.type, &val.fixed_hw_reg)) { + if ((brw->gen >= 8 && is_logic_op(inst->opcode)) || + !brw_abs_immediate(val.type, &val.fixed_hw_reg)) { continue; } } if (inst->src[i].negate) { - if (!brw_negate_immediate(val.type, &val.fixed_hw_reg)) { + if ((brw->gen >= 8 && is_logic_op(inst->opcode)) || + !brw_negate_immediate(val.type, &val.fixed_hw_reg)) { continue; } } |