From 9670c087a7a0c6927f847c2609852dceb2583360 Mon Sep 17 00:00:00 2001 From: Ben Skeggs Date: Mon, 8 Jun 2020 06:23:50 +1000 Subject: [PATCH] nvir/nir: use nir_lower_idiv NIR provides a common implementation of this so we don't need to use a hand-written built-in library. v2: - use idiv_precise instead Especially important on SM70 where we don't have an assembler. Signed-off-by: Ben Skeggs Reviewed-by: Karol Herbst Part-of: --- src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp index 1ed34ae2652..fcf811f59cb 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp @@ -3285,6 +3285,11 @@ Converter::run() NIR_PASS_V(nir, nir_lower_alu_to_scalar, NULL, NULL); NIR_PASS_V(nir, nir_lower_phis_to_scalar); + /*TODO: improve this lowering/optimisation loop so that we can use + * nir_opt_idiv_const effectively before this. + */ + NIR_PASS(progress, nir, nir_lower_idiv, nir_lower_idiv_precise); + do { progress = false; NIR_PASS(progress, nir, nir_copy_prop); -- 2.30.2