gallivm: handle fisfinite/fisnormal

lower one, do the other.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12207>
This commit is contained in:
Dave Airlie 2021-08-06 07:22:59 +10:00
parent ad92c2b253
commit 78b4e417d4
3 changed files with 4 additions and 2 deletions

View file

@ -673,6 +673,9 @@ static LLVMValueRef do_alu_action(struct lp_build_nir_context *bld_base,
result = LLVMBuildTrunc(builder, result, bld_base->uint_bld.vec_type, ""); result = LLVMBuildTrunc(builder, result, bld_base->uint_bld.vec_type, "");
break; break;
} }
case nir_op_fisfinite32:
result = lp_build_isfinite(get_flt_bld(bld_base, src_bit_size[0]), src[0]);
break;
case nir_op_flog2: case nir_op_flog2:
result = lp_build_log2_safe(&bld_base->base, src[0]); result = lp_build_log2_safe(&bld_base->base, src[0]);
break; break;

View file

@ -53,8 +53,6 @@ program/execute/atomic_int64_xor-global-return: skip
program/execute/atomic_int64_xor-local: skip program/execute/atomic_int64_xor-local: skip
program/execute/builtin/builtin-char-popcount-1.2.generated: 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-cos-1.0.generated: timeout
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-ldexp-1.0.generated: fail
program/execute/builtin/builtin-float-sin-1.0.generated: timeout program/execute/builtin/builtin-float-sin-1.0.generated: timeout
program/execute/builtin/builtin-float-sincos-1.0.generated: timeout program/execute/builtin/builtin-float-sincos-1.0.generated: timeout

View file

@ -600,6 +600,7 @@ static const struct nir_shader_compiler_options gallivm_nir_options = {
.lower_vector_cmp = true, .lower_vector_cmp = true,
.lower_device_index_to_zero = true, .lower_device_index_to_zero = true,
.support_16bit_alu = true, .support_16bit_alu = true,
.lower_fisnormal = true,
}; };
static void static void