On Tue, Mar 17, 2015 at 10:56 PM, Matt Turner <matts...@gmail.com> wrote: > Thanks. Looked through stats and at some of the regressions.
I disabled the pow(x, y) optimization in NIR, turned off the SEL peephole in the fs backend, and added neg/abs to block_check_for_allowed_instrs() (will test and send a patch) to make other differences more apparent. The biggest thing I'm seeing so far is that NIR greedily combines multiplies into MADs, even when the multiplication's result is used in multiple places, meaning we still have to do the multiply. shaders/warsow/7.shader_test is a great (and small) example of this. I think the same might apply to matching saturate. In valley/medium/242 we match some min(max(x, 0.0), 1.0) where the result of the max(x, 1.0) is used in another place. It doesn't seem to cause extra instructions, so I'm not sure it's actually a problem. The actual regression in valley/medium/242 is pretty clear -- we're not matching MADs when the the addition is negated. I have a patch for this already. I'll test it and send it out. I'm having a hard time finding regressions that aren't because of being too greedy with MADs. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev