nir: add lower_ldexp to nir compiler options

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Timothy Arceri 2018-02-27 19:19:21 +11:00
parent 08fa84bb9a
commit a050ea60ee
6 changed files with 8 additions and 2 deletions

View file

@ -1893,6 +1893,7 @@ const nir_shader_compiler_options v3d_nir_options = {
.lower_fpow = true,
.lower_fsat = true,
.lower_fsqrt = true,
.lower_ldexp = true,
.native_integers = true,
};

View file

@ -1859,6 +1859,8 @@ typedef struct nir_shader_compiler_options {
/** lowers ffract to fsub+ffloor: */
bool lower_ffract;
bool lower_ldexp;
bool lower_pack_half_2x16;
bool lower_pack_unorm_2x16;
bool lower_pack_snorm_2x16;

View file

@ -560,8 +560,8 @@ def ldexp(f, exp, bits):
return ('fmul', ('fmul', f, pow2_1), pow2_2)
optimizations += [
(('ldexp@32', 'x', 'exp'), ldexp('x', 'exp', 32)),
(('ldexp@64', 'x', 'exp'), ldexp('x', 'exp', 64)),
(('ldexp@32', 'x', 'exp'), ldexp('x', 'exp', 32), 'options->lower_ldexp'),
(('ldexp@64', 'x', 'exp'), ldexp('x', 'exp', 64), 'options->lower_ldexp'),
]
# Unreal Engine 4 demo applications open-codes bitfieldReverse()

View file

@ -44,6 +44,7 @@ static const nir_shader_compiler_options options = {
.lower_fmod32 = true,
.lower_fmod64 = true,
.lower_fdiv = true,
.lower_ldexp = true,
.fuse_ffma = true,
.native_integers = true,
.vertex_id_zero_based = true,

View file

@ -2188,6 +2188,7 @@ static const nir_shader_compiler_options nir_options = {
.lower_fpow = true,
.lower_fsat = true,
.lower_fsqrt = true,
.lower_ldexp = true,
.lower_negate = true,
.native_integers = true,
.max_unroll_iterations = 32,

View file

@ -41,6 +41,7 @@
.lower_usub_borrow = true, \
.lower_fdiv = true, \
.lower_flrp64 = true, \
.lower_ldexp = true, \
.native_integers = true, \
.use_interpolated_input_intrinsics = true, \
.vertex_id_zero_based = true