From e39a6b940f23a50c148620a98175a6ec442d4003 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Tue, 26 Mar 2019 11:34:42 +0100 Subject: [PATCH] ac/nir: fix nir_op_b2i16 Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- src/amd/common/ac_nir_to_llvm.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 7b457015e16..4e9af58538f 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -344,10 +344,16 @@ static LLVMValueRef emit_b2i(struct ac_llvm_context *ctx, { LLVMValueRef result = LLVMBuildAnd(ctx->builder, src0, ctx->i32_1, ""); - if (bitsize == 32) + switch (bitsize) { + case 16: + return LLVMBuildTrunc(ctx->builder, result, ctx->i16, ""); + case 32: return result; - - return LLVMBuildZExt(ctx->builder, result, ctx->i64, ""); + case 64: + return LLVMBuildZExt(ctx->builder, result, ctx->i64, ""); + default: + unreachable("Unsupported bit size."); + } } static LLVMValueRef emit_i2b(struct ac_llvm_context *ctx, -- 2.30.2