From: Ben Skeggs Date: Sun, 7 Jun 2020 20:23:50 +0000 (+1000) Subject: nvir/nir: use nir_lower_idiv X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9670c087a7a0c6927f847c2609852dceb2583360;p=mesa.git 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: --- 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);