mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-23 11:40:39 +02:00
i965/vec4: Optimize sqrt+inv into rsq.
Transform sqrt a, b rcp c, a into sqrt a, b rsq c, b In most cases the sqrt's result is still used, so the improvement here is that we've broken a dependency between these instructions. Leads to 80 fewer INV instructions and 80 more RSQ. Occasionally the sqrt's result is no longer used, leading to: instructions in affected programs: 5005 -> 4949 (-1.12%) Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
parent
189ac07764
commit
b52126b44f
1 changed files with 11 additions and 0 deletions
|
|
@ -731,6 +731,17 @@ vec4_visitor::opt_algebraic()
|
|||
progress = true;
|
||||
}
|
||||
break;
|
||||
case SHADER_OPCODE_RCP: {
|
||||
vec4_instruction *prev = (vec4_instruction *)inst->prev;
|
||||
if (prev->opcode == SHADER_OPCODE_SQRT) {
|
||||
if (inst->src[0].equals(src_reg(prev->dst))) {
|
||||
inst->opcode = SHADER_OPCODE_RSQ;
|
||||
inst->src[0] = prev->src[0];
|
||||
progress = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue