<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Feb 27, 2018 at 7:28 PM, Connor Abbott <span dir="ltr"><<a href="mailto:cwabbott0@gmail.com" target="_blank">cwabbott0@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Floating point division shouldn't signal on division by zero, it<br>
should just return an appropriately-signed infinity, which seems like<br>
a sane thing to do, and way better than just returning 0.</blockquote><div><br>I think that depends on whether or not floating-point exceptions are enabled.  Unfortunately, I don't really know how to enable/disable them. :-(<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> So we<br>
shouldn't do this with fdiv. I guess 0 is as good a result as any for<br>
the integer division, though -- there aren't really any great choices.<br><div class="HOEnZb"><div class="h5"></div></div></blockquote><div><br></div><div>Yeah, 0 is as good as anything.  Honestly, I'm a bit tempted to say that integer division by 0 is always 42. :-)<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">
On Tue, Feb 27, 2018 at 10:07 PM, Timothy Arceri <<a href="mailto:tarceri@itsqueeze.com">tarceri@itsqueeze.com</a>> wrote:<br>
> From the GLSL 4.60 spec Section 5.9 (Expressions):<br>
><br>
>    "Dividing by zero does not cause an exception but does result in<br>
>     an unspecified value."<br>
><br>
> Fixes: 89285e4d47a6 "nir: add new constant folding infrastructure"<br>
><br>
> Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=105271" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/<wbr>show_bug.cgi?id=105271</a><br>
> ---<br>
>  src/compiler/nir/nir_opcodes.<wbr>py | 6 +++---<br>
>  1 file changed, 3 insertions(+), 3 deletions(-)<br>
><br>
> diff --git a/src/compiler/nir/nir_<wbr>opcodes.py b/src/compiler/nir/nir_<wbr>opcodes.py<br>
> index 278562b2bd..dcc5b07d05 100644<br>
> --- a/src/compiler/nir/nir_<wbr>opcodes.py<br>
> +++ b/src/compiler/nir/nir_<wbr>opcodes.py<br>
> @@ -403,9 +403,9 @@ binop("imul_high", tint32, commutative,<br>
>  binop("umul_high", tuint32, commutative,<br>
>        "(uint32_t)(((uint64_t) src0 * (uint64_t) src1) >> 32)")<br>
><br>
> -binop("fdiv", tfloat, "", "src0 / src1")<br>
> -binop("idiv", tint, "", "src0 / src1")<br>
> -binop("udiv", tuint, "", "src0 / src1")<br>
> +binop("fdiv", tfloat, "", "src1 == 0 ? 0 : (src0 / src1)")<br>
> +binop("idiv", tint, "", "src1 == 0 ? 0 : (src0 / src1)")<br>
> +binop("udiv", tuint, "", "src1 == 0 ? 0 : (src0 / src1)")<br>
><br>
>  # returns a boolean representing the carry resulting from the addition of<br>
>  # the two unsigned arguments.<br>
> --<br>
> 2.14.3<br>
><br>
> ______________________________<wbr>_________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
______________________________<wbr>_________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
</div></div></blockquote></div><br></div></div>