mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-08 23:18:17 +02:00
nir/opt_algebraic: make some more fcmp patterns exact using nnan
No Foz-DB changes. Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39641>
This commit is contained in:
parent
8d52c59505
commit
b8d1763e0a
1 changed files with 12 additions and 12 deletions
|
|
@ -1111,10 +1111,10 @@ optimizations.extend([
|
|||
(('ior', ('flt', '#a', c), ('flt', '#b', c)), ('flt', ('fmin', a, b), c)),
|
||||
(('ior', ('fge', a, '#b'), ('fge', a, '#c')), ('fge', a, ('fmin', b, c))),
|
||||
(('ior', ('fge', '#a', c), ('fge', '#b', c)), ('fge', ('fmax', a, b), c)),
|
||||
(('~iand', ('flt(is_used_once)', a, b), ('flt', a, c)), ('flt', a, ('fmin', b, c))),
|
||||
(('~iand', ('flt(is_used_once)', a, c), ('flt', b, c)), ('flt', ('fmax', a, b), c)),
|
||||
(('~iand', ('fge(is_used_once)', a, b), ('fge', a, c)), ('fge', a, ('fmax', b, c))),
|
||||
(('~iand', ('fge(is_used_once)', a, c), ('fge', b, c)), ('fge', ('fmin', a, b), c)),
|
||||
(('iand', ('flt(is_used_once,nnan)', a, b), ('flt(nnan)', a, c)), ('flt', a, ('fmin', b, c))),
|
||||
(('iand', ('flt(is_used_once,nnan)', a, c), ('flt(nnan)', b, c)), ('flt', ('fmax', a, b), c)),
|
||||
(('iand', ('fge(is_used_once,nnan)', a, b), ('fge(nnan)', a, c)), ('fge', a, ('fmax', b, c))),
|
||||
(('iand', ('fge(is_used_once,nnan)', a, c), ('fge(nnan)', b, c)), ('fge', ('fmin', a, b), c)),
|
||||
(('iand', ('flt', a, '#b(is_a_number)'), ('flt', a, '#c(is_a_number)')), ('flt', a, ('fmin', b, c))),
|
||||
(('iand', ('flt', '#a(is_a_number)', c), ('flt', '#b(is_a_number)', c)), ('flt', ('fmax', a, b), c)),
|
||||
(('iand', ('fge', a, '#b(is_a_number)'), ('fge', a, '#c(is_a_number)')), ('fge', a, ('fmax', b, c))),
|
||||
|
|
@ -1159,10 +1159,10 @@ for s in [16, 32, 64]:
|
|||
(('ior', ('flt', 0.0, 'a@{}'.format(s)), ('flt(is_used_once)', 'b@{}'.format(s), 0.0)), ('flt', 0.0, ('fmax', a, ('fneg', b)))),
|
||||
(('ior', ('fge(is_used_once)', 0.0, 'a@{}'.format(s)), ('fge', 'b@{}'.format(s), 0.0)), ('fge', 0.0, ('fmin', a, ('fneg', b)))),
|
||||
(('ior', ('fge', 0.0, 'a@{}'.format(s)), ('fge(is_used_once)', 'b@{}'.format(s), 0.0)), ('fge', 0.0, ('fmin', a, ('fneg', b)))),
|
||||
(('~iand', ('flt(is_used_once)', 0.0, 'a@{}'.format(s)), ('flt', 'b@{}'.format(s), 0.0)), ('flt', 0.0, ('fmin', a, ('fneg', b)))),
|
||||
(('~iand', ('flt', 0.0, 'a@{}'.format(s)), ('flt(is_used_once)', 'b@{}'.format(s), 0.0)), ('flt', 0.0, ('fmin', a, ('fneg', b)))),
|
||||
(('~iand', ('fge(is_used_once)', 0.0, 'a@{}'.format(s)), ('fge', 'b@{}'.format(s), 0.0)), ('fge', 0.0, ('fmax', a, ('fneg', b)))),
|
||||
(('~iand', ('fge', 0.0, 'a@{}'.format(s)), ('fge(is_used_once)', 'b@{}'.format(s), 0.0)), ('fge', 0.0, ('fmax', a, ('fneg', b)))),
|
||||
(('iand', ('flt(is_used_once,nnan)', 0.0, 'a@{}'.format(s)), ('flt(nnan)', 'b@{}'.format(s), 0.0)), ('flt', 0.0, ('fmin', a, ('fneg', b)))),
|
||||
(('iand', ('flt(nnan)', 0.0, 'a@{}'.format(s)), ('flt(is_used_once,nnan)', 'b@{}'.format(s), 0.0)), ('flt', 0.0, ('fmin', a, ('fneg', b)))),
|
||||
(('iand', ('fge(is_used_once,nnan)', 0.0, 'a@{}'.format(s)), ('fge(nnan)', 'b@{}'.format(s), 0.0)), ('fge', 0.0, ('fmax', a, ('fneg', b)))),
|
||||
(('iand', ('fge(nnan)', 0.0, 'a@{}'.format(s)), ('fge(is_used_once,nnan)', 'b@{}'.format(s), 0.0)), ('fge', 0.0, ('fmax', a, ('fneg', b)))),
|
||||
|
||||
(('ior', ('feq(is_used_once)', 'a@{}'.format(s), 0.0), ('feq', 'b@{}'.format(s), 0.0)), ('feq', ('fmin', ('fabs', a), ('fabs', b)), 0.0)),
|
||||
(('ior', ('fneu(is_used_once)', 'a@{}'.format(s), 0.0), ('fneu', 'b@{}'.format(s), 0.0)), ('fneu', ('fadd', ('fabs', a), ('fabs', b)), 0.0)),
|
||||
|
|
@ -1434,12 +1434,12 @@ optimizations.extend([
|
|||
# a < fmax(NaN, a) => a < a => false vs a < NaN => false
|
||||
(('flt', a, ('fmax', b, a)), ('flt', a, b)),
|
||||
(('flt', ('fmin', a, b), a), ('flt', b, a)),
|
||||
(('~fge', a, ('fmin', b, a)), True),
|
||||
(('~fge', ('fmax', a, b), a), True),
|
||||
(('fge(nnan)', a, ('fmin', b, a)), True),
|
||||
(('fge(nnan)', ('fmax', a, b), a), True),
|
||||
(('flt', a, ('fmin', b, a)), False),
|
||||
(('flt', ('fmax', a, b), a), False),
|
||||
(('~fge', a, ('fmax', b, a)), ('fge', a, b)),
|
||||
(('~fge', ('fmin', a, b), a), ('fge', b, a)),
|
||||
(('fge(nnan)', a, ('fmax', b, a)), ('fge', a, b)),
|
||||
(('fge(nnan)', ('fmin', a, b), a), ('fge', b, a)),
|
||||
|
||||
(('ilt', a, ('imax', b, a)), ('ilt', a, b)),
|
||||
(('ilt', ('imin', a, b), a), ('ilt', b, a)),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue