diff --git a/.gitlab-ci/piglit/cl.txt b/.gitlab-ci/piglit/cl.txt index a71928b7d04..a19649ad2aa 100644 --- a/.gitlab-ci/piglit/cl.txt +++ b/.gitlab-ci/piglit/cl.txt @@ -53,37 +53,9 @@ program/execute/atomic_int64_xor-global-return: skip program/execute/atomic_int64_xor-local: skip program/execute/builtin/builtin-char-popcount-1.2.generated: skip program/execute/builtin/builtin-float-cos-1.0.generated: timeout -program/execute/builtin/builtin-float-fmax-1.0.generated/fmax float1: fail -program/execute/builtin/builtin-float-fmax-1.0.generated/fmax float16: fail -program/execute/builtin/builtin-float-fmax-1.0.generated/fmax float2: fail -program/execute/builtin/builtin-float-fmax-1.0.generated/fmax float4: fail -program/execute/builtin/builtin-float-fmax-1.0.generated/fmax float8: fail -program/execute/builtin/builtin-float-fmax-1.0.generated/tss_fmax float16: fail -program/execute/builtin/builtin-float-fmax-1.0.generated/tss_fmax float2: fail -program/execute/builtin/builtin-float-fmax-1.0.generated/tss_fmax float4: fail -program/execute/builtin/builtin-float-fmax-1.0.generated/tss_fmax float8: fail -program/execute/builtin/builtin-float-fmin-1.0.generated/fmin float1: fail -program/execute/builtin/builtin-float-fmin-1.0.generated/fmin float16: fail -program/execute/builtin/builtin-float-fmin-1.0.generated/fmin float2: fail -program/execute/builtin/builtin-float-fmin-1.0.generated/fmin float4: fail -program/execute/builtin/builtin-float-fmin-1.0.generated/fmin float8: fail -program/execute/builtin/builtin-float-fmin-1.0.generated/tss_fmin float16: fail -program/execute/builtin/builtin-float-fmin-1.0.generated/tss_fmin float2: fail -program/execute/builtin/builtin-float-fmin-1.0.generated/tss_fmin float4: fail -program/execute/builtin/builtin-float-fmin-1.0.generated/tss_fmin float8: fail program/execute/builtin/builtin-float-isfinite-1.0.generated: crash program/execute/builtin/builtin-float-isnormal-1.0.generated: crash program/execute/builtin/builtin-float-ldexp-1.0.generated: fail -program/execute/builtin/builtin-float-maxmag-1.1.generated/maxmag float1: fail -program/execute/builtin/builtin-float-maxmag-1.1.generated/maxmag float16: fail -program/execute/builtin/builtin-float-maxmag-1.1.generated/maxmag float2: fail -program/execute/builtin/builtin-float-maxmag-1.1.generated/maxmag float4: fail -program/execute/builtin/builtin-float-maxmag-1.1.generated/maxmag float8: fail -program/execute/builtin/builtin-float-minmag-1.1.generated/minmag float1: fail -program/execute/builtin/builtin-float-minmag-1.1.generated/minmag float16: fail -program/execute/builtin/builtin-float-minmag-1.1.generated/minmag float2: fail -program/execute/builtin/builtin-float-minmag-1.1.generated/minmag float4: fail -program/execute/builtin/builtin-float-minmag-1.1.generated/minmag float8: fail program/execute/builtin/builtin-float-mix-1.0.generated: crash program/execute/builtin/builtin-float-sin-1.0.generated: timeout program/execute/builtin/builtin-float-sincos-1.0.generated: timeout @@ -126,8 +98,8 @@ program/execute/vstore/vstore-half-private: skip summary: name: results ---- -------- - pass: 3737 - fail: 42 + pass: 3766 + fail: 14 crash: 6 skip: 73 timeout: 4 @@ -138,4 +110,4 @@ summary: changes: 0 fixes: 0 regressions: 0 - total: 3862 + total: 3863 diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir.c b/src/gallium/auxiliary/gallivm/lp_bld_nir.c index f6860809e43..18ff31c3a02 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_nir.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_nir.c @@ -516,6 +516,7 @@ static LLVMValueRef do_alu_action(struct lp_build_nir_context *bld_base, struct gallivm_state *gallivm = bld_base->base.gallivm; LLVMBuilderRef builder = gallivm->builder; LLVMValueRef result; + enum gallivm_nan_behavior minmax_nan = bld_base->shader->info.stage == MESA_SHADER_KERNEL ? GALLIVM_NAN_RETURN_OTHER : GALLIVM_NAN_BEHAVIOR_UNDEFINED; switch (op) { case nir_op_b2f32: result = emit_b2f(bld_base, src[0], 32); @@ -652,7 +653,7 @@ static LLVMValueRef do_alu_action(struct lp_build_nir_context *bld_base, result = fcmp32(bld_base, PIPE_FUNC_LESS, src_bit_size[0], src); break; case nir_op_fmin: - result = lp_build_min(get_flt_bld(bld_base, src_bit_size[0]), src[0], src[1]); + result = lp_build_min_ext(get_flt_bld(bld_base, src_bit_size[0]), src[0], src[1], minmax_nan); break; case nir_op_fmod: { struct lp_build_context *flt_bld = get_flt_bld(bld_base, src_bit_size[0]); @@ -667,7 +668,7 @@ static LLVMValueRef do_alu_action(struct lp_build_nir_context *bld_base, src[0], src[1]); break; case nir_op_fmax: - result = lp_build_max(get_flt_bld(bld_base, src_bit_size[0]), src[0], src[1]); + result = lp_build_max_ext(get_flt_bld(bld_base, src_bit_size[0]), src[0], src[1], minmax_nan); break; case nir_op_fneu32: result = fcmp32(bld_base, PIPE_FUNC_NOTEQUAL, src_bit_size[0], src);