mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-29 16:40:13 +01:00
i965: Fold vectorize_mov() back into the one caller.
After the previous patch, this helper is only called in one place. So, just fold it back in - there are a lot of parameters here and not much code. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
9967561158
commit
2a25a5142b
2 changed files with 16 additions and 28 deletions
|
|
@ -349,28 +349,6 @@ src_reg::equals(const src_reg &r) const
|
|||
!reladdr && !r.reladdr);
|
||||
}
|
||||
|
||||
bool
|
||||
vec4_visitor::vectorize_mov(bblock_t *block, vec4_instruction *inst,
|
||||
uint8_t imm[4], vec4_instruction *imm_inst[4],
|
||||
int inst_count, unsigned writemask)
|
||||
{
|
||||
if (inst_count < 2)
|
||||
return false;
|
||||
|
||||
unsigned vf;
|
||||
memcpy(&vf, imm, sizeof(vf));
|
||||
vec4_instruction *mov = MOV(imm_inst[0]->dst, brw_imm_vf(vf));
|
||||
mov->dst.type = BRW_REGISTER_TYPE_F;
|
||||
mov->dst.writemask = writemask;
|
||||
inst->insert_before(block, mov);
|
||||
|
||||
for (int i = 0; i < inst_count; i++) {
|
||||
imm_inst[i]->remove(block);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
vec4_visitor::opt_vector_float()
|
||||
{
|
||||
|
|
@ -405,8 +383,22 @@ vec4_visitor::opt_vector_float()
|
|||
if (last_reg != inst->dst.nr ||
|
||||
last_reg_offset != inst->dst.reg_offset ||
|
||||
last_reg_file != inst->dst.file) {
|
||||
progress |= vectorize_mov(block, inst, imm, imm_inst, inst_count,
|
||||
writemask);
|
||||
|
||||
if (inst_count > 1) {
|
||||
unsigned vf;
|
||||
memcpy(&vf, imm, sizeof(vf));
|
||||
vec4_instruction *mov = MOV(imm_inst[0]->dst, brw_imm_vf(vf));
|
||||
mov->dst.type = BRW_REGISTER_TYPE_F;
|
||||
mov->dst.writemask = writemask;
|
||||
inst->insert_before(block, mov);
|
||||
|
||||
for (int i = 0; i < inst_count; i++) {
|
||||
imm_inst[i]->remove(block);
|
||||
}
|
||||
|
||||
progress = true;
|
||||
}
|
||||
|
||||
inst_count = 0;
|
||||
last_reg = -1;
|
||||
writemask = 0;
|
||||
|
|
|
|||
|
|
@ -359,10 +359,6 @@ protected:
|
|||
virtual void gs_end_primitive();
|
||||
|
||||
private:
|
||||
bool vectorize_mov(bblock_t *block, vec4_instruction *inst,
|
||||
uint8_t imm[4], vec4_instruction *imm_inst[4],
|
||||
int inst_count, unsigned writemask);
|
||||
|
||||
/**
|
||||
* If true, then register allocation should fail instead of spilling.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue