On Thu, Mar 26, 2015 at 12:27 PM, Matt Turner <[email protected]> wrote: > The thing we want to avoid is int/float comparisons, but int/unsigned > comparisons with 0 are equivalent. > > total instructions in shared programs: 6194829 -> 6193996 (-0.01%) > instructions in affected programs: 117192 -> 116359 (-0.71%) > helped: 471 > --- > src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp > b/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp > index 798fef3..469f2ea 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp > @@ -111,7 +111,9 @@ opt_cmod_propagation_local(bblock_t *block) > break; > > /* Comparisons operate differently for ints and floats */ > - if (scan_inst->dst.type != inst->dst.type) > + if (scan_inst->dst.type != inst->dst.type && > + (scan_inst->dst.type == BRW_REGISTER_TYPE_F || > + inst->dst.type == BRW_REGISTER_TYPE_F))
What about other datatypes such as D or UW? Perhaps we should have some sort of is_integer function and just do is_integer(a) != is_integer(b)? > break; > > /* If the instruction generating inst's source also wrote the > -- > 2.0.5 > > _______________________________________________ > mesa-dev mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
