On Tue, Feb 27, 2018 at 7:28 PM, Connor Abbott <[email protected]> wrote:

> Floating point division shouldn't signal on division by zero, it
> should just return an appropriately-signed infinity, which seems like
> a sane thing to do, and way better than just returning 0.


I think that depends on whether or not floating-point exceptions are
enabled.  Unfortunately, I don't really know how to enable/disable them. :-(


> So we
> shouldn't do this with fdiv. I guess 0 is as good a result as any for
> the integer division, though -- there aren't really any great choices.
>

Yeah, 0 is as good as anything.  Honestly, I'm a bit tempted to say that
integer division by 0 is always 42. :-)


> On Tue, Feb 27, 2018 at 10:07 PM, Timothy Arceri <[email protected]>
> wrote:
> > From the GLSL 4.60 spec Section 5.9 (Expressions):
> >
> >    "Dividing by zero does not cause an exception but does result in
> >     an unspecified value."
> >
> > Fixes: 89285e4d47a6 "nir: add new constant folding infrastructure"
> >
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105271
> > ---
> >  src/compiler/nir/nir_opcodes.py | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/compiler/nir/nir_opcodes.py b/src/compiler/nir/nir_
> opcodes.py
> > index 278562b2bd..dcc5b07d05 100644
> > --- a/src/compiler/nir/nir_opcodes.py
> > +++ b/src/compiler/nir/nir_opcodes.py
> > @@ -403,9 +403,9 @@ binop("imul_high", tint32, commutative,
> >  binop("umul_high", tuint32, commutative,
> >        "(uint32_t)(((uint64_t) src0 * (uint64_t) src1) >> 32)")
> >
> > -binop("fdiv", tfloat, "", "src0 / src1")
> > -binop("idiv", tint, "", "src0 / src1")
> > -binop("udiv", tuint, "", "src0 / src1")
> > +binop("fdiv", tfloat, "", "src1 == 0 ? 0 : (src0 / src1)")
> > +binop("idiv", tint, "", "src1 == 0 ? 0 : (src0 / src1)")
> > +binop("udiv", tuint, "", "src1 == 0 ? 0 : (src0 / src1)")
> >
> >  # returns a boolean representing the carry resulting from the addition
> of
> >  # the two unsigned arguments.
> > --
> > 2.14.3
> >
> > _______________________________________________
> > mesa-dev mailing list
> > [email protected]
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to