From ad9ff707ce11ca15e52d881cd9d74378b02e43cf Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 12 Aug 2024 13:02:28 +0200 Subject: [PATCH] broadcom: drop backend implementation of nir_op_ufind_msb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We can have NIR do this for us now that we have uclz. Suggested by Georg Lehmann. Reviewed-by: Alejandro PiƱeiro Part-of: --- src/broadcom/compiler/nir_to_vir.c | 4 ---- src/broadcom/vulkan/v3dv_pipeline.c | 1 + src/gallium/drivers/v3d/v3d_screen.c | 1 + 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c index cd91fadaab4..cf3f2d50bb5 100644 --- a/src/broadcom/compiler/nir_to_vir.c +++ b/src/broadcom/compiler/nir_to_vir.c @@ -1619,10 +1619,6 @@ ntq_emit_alu(struct v3d_compile *c, nir_alu_instr *instr) result = vir_CLZ(c, src[0]); break; - case nir_op_ufind_msb: - result = vir_SUB(c, vir_uniform_ui(c, 31), vir_CLZ(c, src[0])); - break; - case nir_op_imul: result = vir_UMUL(c, src[0], src[1]); break; diff --git a/src/broadcom/vulkan/v3dv_pipeline.c b/src/broadcom/vulkan/v3dv_pipeline.c index 1f490223ab5..ebbed6bd05c 100644 --- a/src/broadcom/vulkan/v3dv_pipeline.c +++ b/src/broadcom/vulkan/v3dv_pipeline.c @@ -218,6 +218,7 @@ v3dv_pipeline_get_nir_options(const struct v3d_device_info *devinfo) .lower_to_scalar = true, .lower_device_index_to_zero = true, .lower_fquantize2f16 = true, + .lower_ufind_msb = true, .has_fsub = true, .has_isub = true, .has_uclz = true, diff --git a/src/gallium/drivers/v3d/v3d_screen.c b/src/gallium/drivers/v3d/v3d_screen.c index d82a7626508..5c415eb6b0e 100644 --- a/src/gallium/drivers/v3d/v3d_screen.c +++ b/src/gallium/drivers/v3d/v3d_screen.c @@ -749,6 +749,7 @@ v3d_screen_get_compiler_options(struct pipe_screen *pscreen, nir_lower_shift64 | nir_lower_ufind_msb64, .lower_fquantize2f16 = true, + .lower_ufind_msb = true, .has_fsub = true, .has_isub = true, .has_uclz = true,