mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 11:18:08 +02:00
i965/fs: Disable CSE on instructions writing to HW_REG.
CSE would otherwise combine the two mul(8) emitted by [iu]mulExtended: mul(8) acc0 x y mach(8) null x y mov(8) lsb acc0 ... mul(8) acc0 x y mach(8) msb x y Into: mul(8) temp x y mov(8) acc0 temp mach(8) null x y mov(8) lsb acc0 ... mov(8) acc0 temp mach(8) msb x y But mul(8) into the accumulator produces more than 32-bits of precision, which is required and lost if multiplying into a general register and moving to the accumulator. Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
06e41a02a3
commit
6ff8f06308
1 changed files with 2 additions and 1 deletions
|
|
@ -98,7 +98,8 @@ fs_visitor::opt_cse_local(bblock_t *block, exec_list *aeb)
|
||||||
if (is_expression(inst) &&
|
if (is_expression(inst) &&
|
||||||
!inst->predicate &&
|
!inst->predicate &&
|
||||||
!inst->is_partial_write() &&
|
!inst->is_partial_write() &&
|
||||||
!inst->conditional_mod)
|
!inst->conditional_mod &&
|
||||||
|
inst->dst.file != HW_REG)
|
||||||
{
|
{
|
||||||
bool found = false;
|
bool found = false;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue