From: Francisco Jerez Date: Fri, 2 Sep 2016 04:51:07 +0000 (-0700) Subject: i965/vec4: Change opt_vector_float to keep track of the last offset seen in bytes. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b52fefc4d55a4627bf0d59c78ac531603fa08fda;p=mesa.git i965/vec4: Change opt_vector_float to keep track of the last offset seen in bytes. This simplifies things slightly and makes the pass more correct in presence of sub-GRF offsets. Reviewed-by: Iago Toral Quiroga --- diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp index 49f3a322e3f..dc484ba7cdf 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp @@ -365,7 +365,7 @@ vec4_visitor::opt_vector_float() bool progress = false; foreach_block(block, cfg) { - int last_reg = -1, last_reg_offset = -1; + int last_reg = -1, last_offset = -1; enum brw_reg_file last_reg_file = BAD_FILE; uint8_t imm[4] = { 0 }; @@ -405,7 +405,7 @@ vec4_visitor::opt_vector_float() * sequence. Combine anything we've accumulated so far. */ if (last_reg != inst->dst.nr || - last_reg_offset != inst->dst.offset / REG_SIZE || + last_offset != inst->dst.offset || last_reg_file != inst->dst.file || (vf > 0 && dest_type != need_type)) { @@ -449,7 +449,7 @@ vec4_visitor::opt_vector_float() imm_inst[inst_count++] = inst; last_reg = inst->dst.nr; - last_reg_offset = inst->dst.offset / REG_SIZE; + last_offset = inst->dst.offset; last_reg_file = inst->dst.file; if (vf > 0) dest_type = need_type;