diff --git a/src/gallium/drivers/etnaviv/etnaviv_compiler.c b/src/gallium/drivers/etnaviv/etnaviv_compiler.c index 0eb45686263..66f49e89906 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_compiler.c +++ b/src/gallium/drivers/etnaviv/etnaviv_compiler.c @@ -73,6 +73,9 @@ etna_compiler_create(const char *renderer, const struct etna_specs *specs) .lower_pack_64_2x32_split = true, .lower_unpack_32_2x16_split = true, .lower_unpack_64_2x32_split = true, + .lower_find_lsb = true, + .lower_ifind_msb_to_uclz = true, + .lower_ufind_msb_to_uclz = true, }; compiler->regs = etna_ra_setup(compiler); diff --git a/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c b/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c index 347bb482f20..d232861a17c 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c +++ b/src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c @@ -128,6 +128,7 @@ static const struct etna_op_info etna_ops[] = { IOP(ishl, LSHIFT, 0_X_1), IOP(ishr, RSHIFT, 0_X_1), UOP(ushr, RSHIFT, 0_X_1), + UOP(uclz, LEADZERO, 0_X_X), }; void