From c45ce64ea0aa10d511c463456682a54210398da6 Mon Sep 17 00:00:00 2001 From: Italo Nicola Date: Thu, 15 Sep 2022 19:13:43 +0000 Subject: [PATCH] etnaviv: implement nir_op_uclz and lower find_{msb,lsb} to uclz Signed-off-by: Italo Nicola Reviewed-by: Faith Ekstrand Part-of: --- src/gallium/drivers/etnaviv/etnaviv_compiler.c | 3 +++ src/gallium/drivers/etnaviv/etnaviv_compiler_nir_emit.c | 1 + 2 files changed, 4 insertions(+) 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