Mesa (master): radv: fix OpQuantizeToF16 for NaN on GFX6-7

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Oct 28 08:43:32 UTC 2019


Module: Mesa
Branch: master
Commit: 59127925010bfbab09e0c22a41ce77b334f59942
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=59127925010bfbab09e0c22a41ce77b334f59942

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Thu Oct 24 18:48:54 2019 +0200

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 <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

---

 src/amd/llvm/ac_nir_to_llvm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

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, "");




More information about the mesa-commit mailing list