From: Rhys Perry Date: Thu, 6 Dec 2018 15:00:21 +0000 (+0000) Subject: ac/nir: fix 64-bit nir_op_f2f16_rtz X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7e5004e30a8bbce34067bf2a9bcfde485936a0c2;p=mesa.git ac/nir: fix 64-bit nir_op_f2f16_rtz Signed-off-by: Rhys Perry Reviewed-by: Samuel Pitoiset --- diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 9646a65df1e..336346f6040 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -884,6 +884,8 @@ static void visit_alu(struct ac_nir_context *ctx, const nir_alu_instr *instr) break; case nir_op_f2f16_rtz: src[0] = ac_to_float(&ctx->ac, src[0]); + if (LLVMTypeOf(src[0]) == ctx->ac.f64) + src[0] = LLVMBuildFPTrunc(ctx->ac.builder, src[0], ctx->ac.f32, ""); LLVMValueRef param[2] = { src[0], ctx->ac.f32_0 }; result = ac_build_cvt_pkrtz_f16(&ctx->ac, param); result = LLVMBuildExtractElement(ctx->ac.builder, result, ctx->ac.i32_0, "");