From 123f90cf367d3feceea0dbea84b2bdd6be26a146 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Tue, 3 Dec 2019 14:48:03 +1000 Subject: [PATCH] gallivm/nir: copy compare ordering code from tgsi This fixes some isinf/isnan tests copying what the tgsi code paths do for float compares Reviewed-by: Roland Scheidegger --- src/gallium/auxiliary/gallivm/lp_bld_nir.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir.c b/src/gallium/auxiliary/gallivm/lp_bld_nir.c index 31b420b246b..8861a8324b5 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_nir.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_nir.c @@ -235,7 +235,12 @@ static LLVMValueRef fcmp32(struct lp_build_nir_context *bld_base, { LLVMBuilderRef builder = bld_base->base.gallivm->builder; struct lp_build_context *flt_bld = get_flt_bld(bld_base, src_bit_size); - LLVMValueRef result = lp_build_cmp(flt_bld, compare, src[0], src[1]); + LLVMValueRef result; + + if (compare != PIPE_FUNC_NOTEQUAL) + result = lp_build_cmp_ordered(flt_bld, compare, src[0], src[1]); + else + result = lp_build_cmp(flt_bld, compare, src[0], src[1]); if (src_bit_size == 64) result = LLVMBuildTrunc(builder, result, bld_base->int_bld.vec_type, ""); return result; -- 2.30.2