nir: Remove unnecessary subtraction optimizations
These optimizations are already covered after lowering. Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
This commit is contained in:
@@ -204,7 +204,6 @@ optimizations = [
|
||||
# If x < 0: 1 - fsat(x) => 1 - 0 => 1 and fsat(1 - x) => fsat(> 1) => 1
|
||||
# If x > 1: 1 - fsat(x) => 1 - 1 => 0 and fsat(1 - x) => fsat(< 0) => 0
|
||||
(('~fadd', ('fneg(is_used_once)', ('fsat(is_used_once)', 'a(is_not_fmul)')), 1.0), ('fsat', ('fadd', 1.0, ('fneg', a)))),
|
||||
(('~fsub', 1.0, ('fsat', a)), ('fsat', ('fsub', 1.0, a))),
|
||||
|
||||
# 1 - ((1 - a) * (1 - b))
|
||||
# 1 - (1 - a - b + a*b)
|
||||
@@ -668,7 +667,6 @@ optimizations.extend([
|
||||
# True/False are ~0 and 0 in NIR. b2i of True is 1, and -1 is ~0 (True).
|
||||
(('ineg', ('b2i32', 'a@32')), a),
|
||||
(('flt', ('fneg', ('b2f', 'a@1')), 0), a), # Generated by TGSI KILL_IF.
|
||||
(('flt', ('fsub', 0.0, ('b2f', 'a@1')), 0), a), # Generated by TGSI KILL_IF.
|
||||
# Comparison with the same args. Note that these are not done for
|
||||
# the float versions because NaN always returns false on float
|
||||
# inequalities.
|
||||
@@ -934,16 +932,8 @@ optimizations.extend([
|
||||
(('iand', 0xffff, a), ('extract_u16', a, 0), '!options->lower_extract_word'),
|
||||
|
||||
# Subtracts
|
||||
(('~fsub', a, ('fsub', 0.0, b)), ('fadd', a, b)),
|
||||
(('isub', a, ('isub', 0, b)), ('iadd', a, b)),
|
||||
(('isub', ('iadd', a, b), b), a),
|
||||
(('~fsub', ('fadd', a, b), b), a),
|
||||
(('ussub_4x8', a, 0), a),
|
||||
(('ussub_4x8', a, ~0), 0),
|
||||
(('~fadd', a, ('fsub', 0.0, b)), ('fsub', a, b)),
|
||||
(('iadd', a, ('isub', 0, b)), ('isub', a, b)),
|
||||
(('fabs', ('fsub', 0.0, a)), ('fabs', a)),
|
||||
(('iabs', ('isub', 0, a)), ('iabs', a)),
|
||||
# Lower all Subtractions first - they can get recombined later
|
||||
(('fsub', a, b), ('fadd', a, ('fneg', b))),
|
||||
(('isub', a, b), ('iadd', a, ('ineg', b))),
|
||||
|
Reference in New Issue
Block a user