nir: add lowering for idiv/udiv/umod
Based on the algo from NV50LegalizeSSA::handleDIV() and handleMOD(). See also trans_idiv() in freedreno/ir3/ir3_compiler.c (which was an adaptation of the nv50 code from Ilia Mirkin). A python/numpy script which implements the same algorithm (and is possibly useful for debugging or analysis) can be found here: http://people.freedesktop.org/~robclark/div-lowering.py I've tested this on i965 hacked up to insert the idiv lowering pass, and on freedreno with NIR frontend. Signed-off-by: Rob Clark <robclark@freedesktop.org> Tested-by: Eric Anholt <eric@anholt.net> (vc4)
This commit is contained in:
@@ -1615,6 +1615,7 @@ void nir_lower_samplers(nir_shader *shader,
|
||||
|
||||
void nir_lower_system_values(nir_shader *shader);
|
||||
void nir_lower_tex_projector(nir_shader *shader);
|
||||
void nir_lower_idiv(nir_shader *shader);
|
||||
|
||||
void nir_lower_atomics(nir_shader *shader);
|
||||
void nir_lower_to_source_mods(nir_shader *shader);
|
||||
|
||||
Reference in New Issue
Block a user