nir: add pack_32_2x16_split/unpack_32_2x16_split lowering
The new option replaces the two other _split lowering options, since there's no need for separate options. Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Rob Clark <robdclark@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4738>
This commit is contained in:
committed by
Marge Bot
parent
cbeda7f78e
commit
42093bb694
@@ -2863,18 +2863,18 @@ typedef struct nir_shader_compiler_options {
|
||||
bool lower_ldexp;
|
||||
|
||||
bool lower_pack_half_2x16;
|
||||
bool lower_pack_half_2x16_split;
|
||||
bool lower_pack_unorm_2x16;
|
||||
bool lower_pack_snorm_2x16;
|
||||
bool lower_pack_unorm_4x8;
|
||||
bool lower_pack_snorm_4x8;
|
||||
bool lower_unpack_half_2x16;
|
||||
bool lower_unpack_half_2x16_split;
|
||||
bool lower_unpack_unorm_2x16;
|
||||
bool lower_unpack_snorm_2x16;
|
||||
bool lower_unpack_unorm_4x8;
|
||||
bool lower_unpack_snorm_4x8;
|
||||
|
||||
bool lower_pack_split;
|
||||
|
||||
bool lower_extract_byte;
|
||||
bool lower_extract_word;
|
||||
|
||||
|
||||
@@ -1295,15 +1295,27 @@ optimizations.extend([
|
||||
|
||||
(('pack_half_2x16_split', 'a@32', 'b@32'),
|
||||
('ior', ('ishl', ('u2u32', ('f2f16', b)), 16), ('u2u32', ('f2f16', a))),
|
||||
'options->lower_pack_half_2x16_split'),
|
||||
'options->lower_pack_split'),
|
||||
|
||||
(('unpack_half_2x16_split_x', 'a@32'),
|
||||
('f2f32', ('u2u16', a)),
|
||||
'options->lower_unpack_half_2x16_split'),
|
||||
'options->lower_pack_split'),
|
||||
|
||||
(('unpack_half_2x16_split_y', 'a@32'),
|
||||
('f2f32', ('u2u16', ('ushr', a, 16))),
|
||||
'options->lower_unpack_half_2x16_split'),
|
||||
'options->lower_pack_split'),
|
||||
|
||||
(('pack_32_2x16_split', 'a@16', 'b@16'),
|
||||
('ior', ('ishl', ('u2u32', b), 16), ('u2u32', a)),
|
||||
'options->lower_pack_split'),
|
||||
|
||||
(('unpack_32_2x16_split_x', 'a@32'),
|
||||
('u2u16', a),
|
||||
'options->lower_pack_split'),
|
||||
|
||||
(('unpack_32_2x16_split_y', 'a@32'),
|
||||
('u2u16', ('ushr', 'a', 16)),
|
||||
'options->lower_pack_split'),
|
||||
|
||||
(('isign', a), ('imin', ('imax', a, -1), 1), 'options->lower_isign'),
|
||||
(('fsign', a), ('fsub', ('b2f', ('flt', 0.0, a)), ('b2f', ('flt', a, 0.0))), 'options->lower_fsign'),
|
||||
|
||||
@@ -58,17 +58,16 @@ static const nir_shader_compiler_options options = {
|
||||
.lower_bitfield_insert_to_shifts = true,
|
||||
.lower_bitfield_extract_to_shifts = true,
|
||||
.lower_pack_half_2x16 = true,
|
||||
.lower_pack_half_2x16_split = true,
|
||||
.lower_pack_snorm_4x8 = true,
|
||||
.lower_pack_snorm_2x16 = true,
|
||||
.lower_pack_unorm_4x8 = true,
|
||||
.lower_pack_unorm_2x16 = true,
|
||||
.lower_unpack_half_2x16 = true,
|
||||
.lower_unpack_half_2x16_split = true,
|
||||
.lower_unpack_snorm_4x8 = true,
|
||||
.lower_unpack_snorm_2x16 = true,
|
||||
.lower_unpack_unorm_4x8 = true,
|
||||
.lower_unpack_unorm_2x16 = true,
|
||||
.lower_pack_split = true,
|
||||
.use_interpolated_input_intrinsics = true,
|
||||
.lower_rotate = true,
|
||||
.lower_to_scalar = true,
|
||||
@@ -100,17 +99,16 @@ static const nir_shader_compiler_options options_a6xx = {
|
||||
.lower_bitfield_insert_to_shifts = true,
|
||||
.lower_bitfield_extract_to_shifts = true,
|
||||
.lower_pack_half_2x16 = true,
|
||||
.lower_pack_half_2x16_split = true,
|
||||
.lower_pack_snorm_4x8 = true,
|
||||
.lower_pack_snorm_2x16 = true,
|
||||
.lower_pack_unorm_4x8 = true,
|
||||
.lower_pack_unorm_2x16 = true,
|
||||
.lower_unpack_half_2x16 = true,
|
||||
.lower_unpack_half_2x16_split = true,
|
||||
.lower_unpack_snorm_4x8 = true,
|
||||
.lower_unpack_snorm_2x16 = true,
|
||||
.lower_unpack_unorm_4x8 = true,
|
||||
.lower_unpack_unorm_2x16 = true,
|
||||
.lower_pack_split = true,
|
||||
.use_interpolated_input_intrinsics = true,
|
||||
.lower_rotate = true,
|
||||
.vectorize_io = true,
|
||||
|
||||
@@ -52,17 +52,16 @@ static const nir_shader_compiler_options bifrost_nir_options = {
|
||||
.lower_rotate = true,
|
||||
|
||||
.lower_pack_half_2x16 = true,
|
||||
.lower_pack_half_2x16_split = true,
|
||||
.lower_pack_unorm_2x16 = true,
|
||||
.lower_pack_snorm_2x16 = true,
|
||||
.lower_pack_unorm_4x8 = true,
|
||||
.lower_pack_snorm_4x8 = true,
|
||||
.lower_unpack_half_2x16 = true,
|
||||
.lower_unpack_half_2x16_split = true,
|
||||
.lower_unpack_unorm_2x16 = true,
|
||||
.lower_unpack_snorm_2x16 = true,
|
||||
.lower_unpack_unorm_4x8 = true,
|
||||
.lower_unpack_snorm_4x8 = true,
|
||||
.lower_pack_split = true,
|
||||
|
||||
.lower_doubles_options = nir_lower_dmod,
|
||||
|
||||
|
||||
@@ -62,17 +62,16 @@ static const nir_shader_compiler_options midgard_nir_options = {
|
||||
.lower_rotate = true,
|
||||
|
||||
.lower_pack_half_2x16 = true,
|
||||
.lower_pack_half_2x16_split = true,
|
||||
.lower_pack_unorm_2x16 = true,
|
||||
.lower_pack_snorm_2x16 = true,
|
||||
.lower_pack_unorm_4x8 = true,
|
||||
.lower_pack_snorm_4x8 = true,
|
||||
.lower_unpack_half_2x16 = true,
|
||||
.lower_unpack_half_2x16_split = true,
|
||||
.lower_unpack_unorm_2x16 = true,
|
||||
.lower_unpack_snorm_2x16 = true,
|
||||
.lower_unpack_unorm_4x8 = true,
|
||||
.lower_unpack_snorm_4x8 = true,
|
||||
.lower_pack_split = true,
|
||||
|
||||
.lower_doubles_options = nir_lower_dmod,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user