diff options
author | Eduardo Lima Mitev <[email protected]> | 2019-06-10 21:38:39 +0200 |
---|---|---|
committer | Eduardo Lima Mitev <[email protected]> | 2019-06-10 22:27:46 +0200 |
commit | fb2169040aa056220469a620cd24fa4cef145baf (patch) | |
tree | 9ae492e712a714eba2ff5ec0cd3fc2e50a616308 /src/compiler | |
parent | e9703fb4162e85943c52b6559d3554b521125da4 (diff) |
nir/opt_algebraic: Fix rules for imadsh_mix16
The rules added in patch 3addd7c are inverted:
It should be:
(al * bh) << 16 + c
instead of:
(ah * bl) << 16 + c
Fixes a number of regressions under
dEQP-GLES31.functional.draw_indirect.compute_interop.large.*
on Freedreno.
Reviewed-by: Rob Clark <[email protected]>
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/nir/nir_opt_algebraic.py | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/nir/nir_opt_algebraic.py b/src/compiler/nir/nir_opt_algebraic.py index e4cdce4865b..f1b5893be88 100644 --- a/src/compiler/nir/nir_opt_algebraic.py +++ b/src/compiler/nir/nir_opt_algebraic.py @@ -1110,8 +1110,8 @@ optimizations += [ # 'al * bl': If either 'al' or 'bl' is zero, return zero. (('umul_low', '#a(is_lower_half_zero)', 'b'), (0)), # '(ah * bl) << 16 + c': If either 'ah' or 'bl' is zero, return 'c'. - (('imadsh_mix16', '#a@32(is_upper_half_zero)', 'b@32', 'c@32'), ('c')), - (('imadsh_mix16', 'a@32', '#b@32(is_lower_half_zero)', 'c@32'), ('c')), + (('imadsh_mix16', '#a@32(is_lower_half_zero)', 'b@32', 'c@32'), ('c')), + (('imadsh_mix16', 'a@32', '#b@32(is_upper_half_zero)', 'c@32'), ('c')), ] # This section contains "late" optimizations that should be run before |