Mesa (master): nir/algebraic: Use unsigned comparison when lowering bitfield insert/extract

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jun 24 17:12:23 UTC 2019


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

Author: Daniel Schürmann <daniel.schuermann at campus.tu-berlin.de>
Date:   Thu May  2 15:28:59 2019 +0200

nir/algebraic: Use unsigned comparison when lowering bitfield insert/extract

This lets us use the optimization pattern
(('ult', 31, ('iand', b, 31)), False) to remove the
bcsel instruction for code originating in D3D shaders.

Reviewed-by: Connor Abbott <cwabbott0 at gmail.com>

---

 src/compiler/nir/nir_opt_algebraic.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py
index 6e660dfdc02..0d21696273a 100644
--- a/src/compiler/nir/nir_opt_algebraic.py
+++ b/src/compiler/nir/nir_opt_algebraic.py
@@ -782,7 +782,7 @@ optimizations.extend([
    (('usub_borrow at 32', a, b), ('b2i', ('ult', a, b)), 'options->lower_usub_borrow'),
 
    (('bitfield_insert', 'base', 'insert', 'offset', 'bits'),
-    ('bcsel', ('ilt', 31, 'bits'), 'insert',
+    ('bcsel', ('ult', 31, 'bits'), 'insert',
               ('bfi', ('bfm', 'bits', 'offset'), 'insert', 'base')),
     'options->lower_bitfield_insert'),
    (('ihadd', a, b), ('iadd', ('iand', a, b), ('ishr', ('ixor', a, b), 1)), 'options->lower_hadd'),
@@ -800,7 +800,7 @@ optimizations.extend([
     'options->lower_bitfield_insert_to_shifts'),
 
    (('ibitfield_extract', 'value', 'offset', 'bits'),
-    ('bcsel', ('ilt', 31, 'bits'), 'value',
+    ('bcsel', ('ult', 31, 'bits'), 'value',
               ('ibfe', 'value', 'offset', 'bits')),
     'options->lower_bitfield_extract'),
 




More information about the mesa-commit mailing list