On February 27, 2018 19:11:49 Jason Ekstrand <[email protected]> wrote:
On February 27, 2018 19:07:43 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)")Should this return inf?
Or maybe an unsignaling NaN? I'm not really sure.
+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
