Module: Mesa
Branch: master
Commit: 42d2cae90750360922ce1ca5af5609a1b661e669
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=42d2cae90750360922ce1ca5af5609a1b661e669

Author: Eric Anholt <[email protected]>
Date:   Wed Feb  6 13:12:25 2019 -0800

nir: Move panfrost's isign lowering to nir_opt_algebraic.

I wanted to reuse this from v3d.

Reviewed-by: Alyssa Rosenzweig <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>

---

 src/compiler/nir/nir.h                                        | 3 +++
 src/compiler/nir/nir_opt_algebraic.py                         | 2 ++
 src/gallium/drivers/panfrost/midgard/midgard_compile.h        | 1 +
 src/gallium/drivers/panfrost/midgard/midgard_nir_algebraic.py | 1 -
 4 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h
index 353a160478..94ca6c4646 100644
--- a/src/compiler/nir/nir.h
+++ b/src/compiler/nir/nir.h
@@ -2156,6 +2156,9 @@ typedef struct nir_shader_compiler_options {
    /** enables rules to lower idiv by power-of-two: */
    bool lower_idiv;
 
+   /** enables rules to lower isign to imin+imax */
+   bool lower_isign;
+
    /* Does the native fdot instruction replicate its result for four
     * components?  If so, then opt_algebraic_late will turn all fdotN
     * instructions into fdot_replicatedN instructions.
diff --git a/src/compiler/nir/nir_opt_algebraic.py 
b/src/compiler/nir/nir_opt_algebraic.py
index 75a3d2ad23..11d6aca118 100644
--- a/src/compiler/nir/nir_opt_algebraic.py
+++ b/src/compiler/nir/nir_opt_algebraic.py
@@ -758,6 +758,8 @@ optimizations = [
                                                             ('extract_i8', 
'v', 3))),
                                            127.0))),
      'options->lower_unpack_snorm_4x8'),
+
+   (('isign', a), ('imin', ('imax', a, -1), 1), 'options->lower_isign'),
 ]
 
 invert = OrderedDict([('feq', 'fne'), ('fne', 'feq'), ('fge', 'flt'), ('flt', 
'fge')])
diff --git a/src/gallium/drivers/panfrost/midgard/midgard_compile.h 
b/src/gallium/drivers/panfrost/midgard/midgard_compile.h
index 887fd4e746..2fcbc31716 100644
--- a/src/gallium/drivers/panfrost/midgard/midgard_compile.h
+++ b/src/gallium/drivers/panfrost/midgard/midgard_compile.h
@@ -71,6 +71,7 @@ static const nir_shader_compiler_options midgard_nir_options 
= {
         .lower_fmod64 = true,
         .lower_fdiv = true,
         .lower_idiv = true,
+        .lower_isign = true,
 
         .vertex_id_zero_based = true,
         .lower_extract_byte = true,
diff --git a/src/gallium/drivers/panfrost/midgard/midgard_nir_algebraic.py 
b/src/gallium/drivers/panfrost/midgard/midgard_nir_algebraic.py
index 44441727b7..07ea427359 100644
--- a/src/gallium/drivers/panfrost/midgard/midgard_nir_algebraic.py
+++ b/src/gallium/drivers/panfrost/midgard/midgard_nir_algebraic.py
@@ -31,7 +31,6 @@ b = 'b'
 
 algebraic = [
     (('b2i32', a), ('iand@32', "a@32", 1)),
-    (('isign', a), ('imin', ('imax', a, -1), 1)),
     (('fge', a, b), ('flt', b, a)),
 
     # XXX: We have hw ops for this, just unknown atm..

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to