From: Francisco Jerez Date: Fri, 2 Sep 2016 05:26:59 +0000 (-0700) Subject: i965/vec4: Compare full register offsets in cmod propagation. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0e657b7b55bc7c83c8eb5258cd9522b0e5e581b7;p=mesa.git i965/vec4: Compare full register offsets in cmod propagation. Cmod propagation would misoptimize the program if the destination offset of the generating instruction wasn't exactly the same as the source region offset of the copy instruction. In preparation for adding support for sub-GRF offsets to the VEC4 IR. Reviewed-by: Iago Toral Quiroga --- diff --git a/src/mesa/drivers/dri/i965/brw_vec4_cmod_propagation.cpp b/src/mesa/drivers/dri/i965/brw_vec4_cmod_propagation.cpp index 99773177cdb..c531fba0312 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_cmod_propagation.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_cmod_propagation.cpp @@ -71,7 +71,7 @@ opt_cmod_propagation_local(bblock_t *block) if (regions_overlap(inst->src[0], inst->size_read(0), scan_inst->dst, scan_inst->size_written)) { if ((scan_inst->predicate && scan_inst->opcode != BRW_OPCODE_SEL) || - scan_inst->dst.offset / REG_SIZE != inst->src[0].offset / REG_SIZE || + scan_inst->dst.offset != inst->src[0].offset || (scan_inst->dst.writemask != WRITEMASK_X && scan_inst->dst.writemask != WRITEMASK_XYZW) || (scan_inst->dst.writemask == WRITEMASK_XYZW &&