# Pastebin uMcnpedh diff --git a/src/freedreno/ir3/ir3_compiler.c b/src/freedreno/ir3/ir3_compiler.c index 0b25ac66f73f..4a6491c057c7 100644 --- a/src/freedreno/ir3/ir3_compiler.c +++ b/src/freedreno/ir3/ir3_compiler.c @@ -87,6 +87,8 @@ static const nir_shader_compiler_options ir3_base_options = { .lower_insert_word = true, .lower_helper_invocation = true, .lower_bitfield_insert = true, + .lower_bitfield_extract8 = true, + .lower_bitfield_extract16 = true, .lower_bitfield_extract = true, .lower_pack_half_2x16 = true, .lower_pack_snorm_4x8 = true, diff --git a/src/freedreno/ir3/ir3_nir.c b/src/freedreno/ir3/ir3_nir.c index 851138a8f510..4b1dfbdf7346 100644 --- a/src/freedreno/ir3/ir3_nir.c +++ b/src/freedreno/ir3/ir3_nir.c @@ -251,6 +251,8 @@ ir3_lower_bit_size(const nir_instr *instr, UNUSED void *data) case nir_op_umin: case nir_op_ushr: return alu->def.bit_size == 8 ? 16 : 0; + case nir_op_bitfield_reverse: + return alu->def.bit_size < 32 ? 32 : 0; case nir_op_ieq: case nir_op_ige: case nir_op_ilt: