summaryrefslogtreecommitdiff
path: root/src/gallium/auxiliary
diff options
context:
space:
mode:
authorErik Faye-Lund <erik.faye-lund@collabora.com>2021-04-12 16:20:06 +0200
committerMarge Bot <eric+marge@anholt.net>2021-04-20 07:49:21 +0000
commitda5f346e6c63a17352ed8aacd6b1c182a1a9971d (patch)
tree2ecb91975ff6482c4b41c6675135aa10bdb62a8e /src/gallium/auxiliary
parent106da39b19ba1cc243ef3aff934a1b5e8d6aa7f6 (diff)
gallivm: handle 16-bit input in i2b32
Fixes: dac8cb981f4 ("gallivm/nir: allow 8/16-bit conversion and comparison.") Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10185>
Diffstat (limited to 'src/gallium/auxiliary')
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_nir.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir.c b/src/gallium/auxiliary/gallivm/lp_bld_nir.c
index c1581ba6a84..38afac47de6 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_nir.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_nir.c
@@ -206,7 +206,9 @@ static LLVMValueRef int_to_bool32(struct lp_build_nir_context *bld_base,
LLVMBuilderRef builder = bld_base->base.gallivm->builder;
struct lp_build_context *int_bld = get_int_bld(bld_base, is_unsigned, src_bit_size);
LLVMValueRef result = lp_build_compare(bld_base->base.gallivm, int_bld->type, PIPE_FUNC_NOTEQUAL, val, int_bld->zero);
- if (src_bit_size == 64)
+ if (src_bit_size == 16)
+ result = LLVMBuildSExt(builder, result, bld_base->int_bld.vec_type, "");
+ else if (src_bit_size == 64)
result = LLVMBuildTrunc(builder, result, bld_base->int_bld.vec_type, "");
return result;
}