From: Samuel Pitoiset Date: Thu, 24 Oct 2019 16:48:54 +0000 (+0200) Subject: radv: fix OpQuantizeToF16 for NaN on GFX6-7 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=59127925010bfbab09e0c22a41ce77b334f59942;p=mesa.git radv: fix OpQuantizeToF16 for NaN on GFX6-7 Do not flush NaN to 0. Fixes dEQP-VK.spirv_assembly.instruction.compute.opquantize.propagated_nans Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- diff --git a/src/amd/llvm/ac_nir_to_llvm.c b/src/amd/llvm/ac_nir_to_llvm.c index cd7091ad163..3d758759af7 100644 --- a/src/amd/llvm/ac_nir_to_llvm.c +++ b/src/amd/llvm/ac_nir_to_llvm.c @@ -356,10 +356,10 @@ static LLVMValueRef emit_f2f16(struct ac_llvm_context *ctx, */ LLVMValueRef temp, cond2; temp = emit_intrin_1f_param(ctx, "llvm.fabs", ctx->f32, result); - cond = LLVMBuildFCmp(ctx->builder, LLVMRealUGT, + cond = LLVMBuildFCmp(ctx->builder, LLVMRealOGT, LLVMBuildBitCast(ctx->builder, LLVMConstInt(ctx->i32, 0x38800000, false), ctx->f32, ""), temp, ""); - cond2 = LLVMBuildFCmp(ctx->builder, LLVMRealUNE, + cond2 = LLVMBuildFCmp(ctx->builder, LLVMRealONE, temp, ctx->f32_0, ""); cond = LLVMBuildAnd(ctx->builder, cond, cond2, ""); result = LLVMBuildSelect(ctx->builder, cond, ctx->f32_0, result, "");