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 <bskeggs@redhat.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5377>
This commit is contained in:
Ben Skeggs 2020-06-08 06:23:50 +10:00 committed by Marge Bot
parent 59b44f90aa
commit 9670c087a7

View file

@ -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);