From bc6d486c78a43ab86aecf68e095620d72edc135e Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Mon, 8 Apr 2019 09:24:56 +0200 Subject: [PATCH] ac/nir: fix nir_op_b2f16 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 f2d527540d8..3d2f738edec 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -322,10 +322,16 @@ static LLVMValueRef emit_b2f(struct ac_llvm_context *ctx, ""); result = LLVMBuildBitCast(ctx->builder, result, ctx->f32, ""); - if (bitsize == 32) + switch (bitsize) { + case 16: + return LLVMBuildFPTrunc(ctx->builder, result, ctx->f16, ""); + case 32: return result; - - return LLVMBuildFPExt(ctx->builder, result, ctx->f64, ""); + case 64: + return LLVMBuildFPExt(ctx->builder, result, ctx->f64, ""); + default: + unreachable("Unsupported bit size."); + } } static LLVMValueRef emit_f2b(struct ac_llvm_context *ctx, -- 2.30.2