Patches 1 - 4 are Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>
Patch 5 probably is too, but I have a question or two. On 02/22/2016 04:13 PM, Matt Turner wrote: > It's not correct to CSE these multiplies > > mul.sat dst1, -a, b > mul.sat dst2, a, b > > by emitting a negated MOV from dst1 to dst2: > > mul.sat dst1, -a, b > mov dst2, -dst1 > > Take 2.0*2.0 for example. The first multiply would produce 0.0 and the > second would produce 1.0. > > Fixes bad generated code in 18 to 22 shaders: > > instructions in affected programs: 432 -> 464 (7.41%) > helped: 4 > HURT: 18 > > Cc: mesa-sta...@lists.freedesktop.org > --- > src/mesa/drivers/dri/i965/brw_fs_cse.cpp | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs_cse.cpp > b/src/mesa/drivers/dri/i965/brw_fs_cse.cpp > index cde6566..0e743de 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs_cse.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs_cse.cpp > @@ -139,6 +139,8 @@ operands_match(const fs_inst *a, const fs_inst *b, bool > *negate) > ys[1].f = ys1_imm; > > *negate = (xs0_negate != xs1_negate) != (ys0_negate != ys1_negate); > + if (*negate && (a->saturate || b->saturate)) > + return false; > return ret; > } else if (!a->is_commutative()) { > bool match = true; > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev