nir: fix signed overflow for iadd constant folding
authorRhys Perry <pendingchaos02@gmail.com>
Thu, 29 Jul 2021 10:12:29 +0000 (11:12 +0100)
committerMarge Bot <eric+marge@anholt.net>
Mon, 9 Aug 2021 11:00:39 +0000 (11:00 +0000)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12039>

src/compiler/nir/nir_opcodes.py

index e37419c..2897a68 100644 (file)
@@ -626,7 +626,7 @@ if (nir_is_rounding_mode_rtz(execution_mode, bit_size)) {
    dst = src0 + src1;
 }
 """)
-binop("iadd", tint, _2src_commutative + associative, "src0 + src1")
+binop("iadd", tint, _2src_commutative + associative, "(uint64_t)src0 + (uint64_t)src1")
 binop("iadd_sat", tint, _2src_commutative, """
       src1 > 0 ?
          (src0 + src1 < src0 ? (1ull << (bit_size - 1)) - 1 : src0 + src1) :