diff options
author | Matt Turner <mattst88@gmail.com> | 2018-07-12 17:51:53 -0700 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2019-01-08 22:12:38 -0800 |
commit | 9a786e7a77be887d2a472fd2a257178860e09037 (patch) | |
tree | 1b9b523e718ed3912c62cc877ed45b754bdffcb8 | |
parent | 642e863c5d7cdcaa627a8f7a300aa74834b384fd (diff) |
nir: Optimize reverse shifts
-rw-r--r-- | src/compiler/nir/nir_opt_algebraic.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index 75a3d2ad238..e5d059ec019 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -481,6 +481,9 @@ optimizations = [ (('ishr', a, 0), a), (('ushr', 0, a), 0), (('ushr', a, 0), a), + (('ishl@32', a, ('iabs', ('iadd', b, -32))), ('ishl', a, ('ineg', b))), + (('ishr@32', a, ('iabs', ('iadd', b, -32))), ('ishr', a, ('ineg', b))), + (('ushr@32', a, ('iabs', ('iadd', b, -32))), ('ushr', a, ('ineg', b))), (('iand', 0xff, ('ushr@32', a, 24)), ('ushr', a, 24)), (('iand', 0xffff, ('ushr@32', a, 16)), ('ushr', a, 16)), # Exponential/logarithmic identities |