gallivm: Cast read_first_invocation source to an int
authorKonstantin Seurer <konstantin.seurer@gmail.com>
Wed, 7 Jun 2023 20:23:52 +0000 (22:23 +0200)
committerMarge Bot <emma+marge@anholt.net>
Thu, 8 Jun 2023 06:07:37 +0000 (06:07 +0000)
cc: mesa-stable

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23515>

src/gallium/auxiliary/gallivm/lp_bld_nir.c

index e10ea32..7566283 100644 (file)
@@ -2192,12 +2192,13 @@ visit_intrinsic(struct lp_build_nir_context *bld_base,
 #endif
    case nir_intrinsic_read_invocation:
    case nir_intrinsic_read_first_invocation: {
-      LLVMValueRef src1 = NULL;
       LLVMValueRef src0 = get_src(bld_base, instr->src[0]);
-      if (instr->intrinsic == nir_intrinsic_read_invocation) {
+      src0 = cast_type(bld_base, src0, nir_type_int, nir_src_bit_size(instr->src[0]));
+
+      LLVMValueRef src1 = NULL;
+      if (instr->intrinsic == nir_intrinsic_read_invocation)
          src1 = cast_type(bld_base, get_src(bld_base, instr->src[1]), nir_type_int, 32);
-         src0 = cast_type(bld_base, src0, nir_type_int, nir_src_bit_size(instr->src[0]));
-      }
+
       bld_base->read_invocation(bld_base, src0, nir_src_bit_size(instr->src[0]), src1, result);
       break;
    }