From b52fefc4d55a4627bf0d59c78ac531603fa08fda Mon Sep 17 00:00:00 2001 From: Francisco Jerez Date: Thu, 1 Sep 2016 21:51:07 -0700 Subject: [PATCH] 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 --- src/mesa/drivers/dri/i965/brw_vec4.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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; -- 2.30.2