Mesa (master): glsl_to_nir: fix crashes with int16 shifts

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Sun Sep 6 12:19:34 UTC 2020


Module: Mesa
Branch: master
Commit: 4b7f93b4079b56b5af2d3bf557cbdcd148c0233c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4b7f93b4079b56b5af2d3bf557cbdcd148c0233c

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Thu Sep  3 09:27:58 2020 -0400

glsl_to_nir: fix crashes with int16 shifts

Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6613>

---

 src/compiler/glsl/glsl_to_nir.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp
index afadfa99bb3..4722a77af47 100644
--- a/src/compiler/glsl/glsl_to_nir.cpp
+++ b/src/compiler/glsl/glsl_to_nir.cpp
@@ -2192,10 +2192,10 @@ nir_visitor::visit(ir_expression *ir)
    case ir_binop_logic_xor:
       result = nir_ixor(&b, srcs[0], srcs[1]);
       break;
-   case ir_binop_lshift: result = nir_ishl(&b, srcs[0], srcs[1]); break;
+   case ir_binop_lshift: result = nir_ishl(&b, srcs[0], nir_u2u32(&b, srcs[1])); break;
    case ir_binop_rshift:
-      result = (type_is_signed(out_type)) ? nir_ishr(&b, srcs[0], srcs[1])
-                                          : nir_ushr(&b, srcs[0], srcs[1]);
+      result = (type_is_signed(out_type)) ? nir_ishr(&b, srcs[0], nir_u2u32(&b, srcs[1]))
+                                          : nir_ushr(&b, srcs[0], nir_u2u32(&b, srcs[1]));
       break;
    case ir_binop_imul_high:
       result = (out_type == GLSL_TYPE_INT) ? nir_imul_high(&b, srcs[0], srcs[1])



More information about the mesa-commit mailing list