On Tue, Nov 10, 2015 at 7:02 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: > On Tue, Nov 10, 2015 at 6:44 PM, Eric Anholt <e...@anholt.net> wrote: >> Ilia Mirkin <imir...@alum.mit.edu> writes: >> >>> In nv50, and in the python script that Rob circulated, we do: >>> >>> bld.mkCmp(OP_SET, CC_GE, TYPE_U32, (s = bld.getSSA()), TYPE_U32, m, b); >>> >>> Do the same in the nir div lowering pass. This fixes the large-udiv-udiv >>> piglit tests on freedreno. >> >> I assume you meant *-op-div-large-uint-uint.shader_test. > > Yes. > >> >> vc4 doesn't have uge yet, but I've got a patch to add it and it does >> fix one subtest. What this lowering pass is actually doing has never >> really made sense to me, but it works, so: >> >> Acked-by: Eric Anholt <e...@anholt.net> > > It's a magical sequence of non-sensical operations which appear to > produce the proper result with high probability... what's so confusing > about that? :) > > More seriously, I think there are Newton-Raphson overtones in what > it's doing, but I never fully traced it down. It kind of loses me > after subtracting 2 from the integer representation of the float bits. > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Where did you get it from? Is there a paper somewhere explaining it? I sort of have a morbid curiosity, perhaps because I got sucked into implementing division/sqrt/rsq for doubles. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev