aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancisco Jerez <[email protected]>2016-09-01 21:16:14 -0700
committerFrancisco Jerez <[email protected]>2016-09-14 14:50:55 -0700
commit9ae77d702043231571b5ef08951224e3c77baddd (patch)
tree44cef3a9e53f78783b75d2fb42081214df99ad9b
parent3a4ea7cf803cb5af2b7d0e7d71ee4825294a94aa (diff)
i965/fs: Compare full register offsets in cmod propagation pass.
This could potentially have misoptimized a program in cases where inst->src[0] had a non-zero sub-GRF offset. Reviewed-by: Iago Toral Quiroga <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp
index 7607d201bcb..291ae4c24d2 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp
@@ -90,8 +90,7 @@ opt_cmod_propagation_local(const gen_device_info *devinfo, 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.offset / REG_SIZE !=
- inst->src[0].offset / REG_SIZE ||
+ scan_inst->dst.offset != inst->src[0].offset ||
scan_inst->exec_size != inst->exec_size)
break;