mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 09:30:13 +01:00
i965/fs: don't propagate cmod when the exec sizes differ
This can happen when the source of the compare was split by the SIMD lowering pass. Potentially, we could allow the case where the exec size of scan_inst is larger, and scan_inst has the right quarter selected, but doing that seems a little more risky. v2: Merge the bail condition into the the previous if/break block (Matt) Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
70171a9c89
commit
95ac3b1dae
1 changed files with 2 additions and 1 deletions
|
|
@ -90,7 +90,8 @@ opt_cmod_propagation_local(bblock_t *block)
|
|||
foreach_inst_in_block_reverse_starting_from(fs_inst, scan_inst, inst) {
|
||||
if (scan_inst->overwrites_reg(inst->src[0])) {
|
||||
if (scan_inst->is_partial_write() ||
|
||||
scan_inst->dst.reg_offset != inst->src[0].reg_offset)
|
||||
scan_inst->dst.reg_offset != inst->src[0].reg_offset ||
|
||||
scan_inst->exec_size != inst->exec_size)
|
||||
break;
|
||||
|
||||
/* CMP's result is the same regardless of dest type. */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue