mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 07:08:04 +02:00
nir/algebraic: Mark some value range analysis-based optimizations imprecise
This didn't fix bug #111308, but it was found will trying to find the actual cause of that bug. Fixes piglit tests (new in piglit!110): - fs-fract-of-NaN.shader_test - fs-lt-nan-tautology.shader_test - fs-ge-nan-tautology.shader_test No shader-db changes on any Intel platform. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111308 Fixes:b77070e293("nir/algebraic: Use value range analysis to eliminate tautological compares") Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com> (cherry picked from commitccb236d1bc)
This commit is contained in:
parent
da03ddf677
commit
2971f079e1
1 changed files with 13 additions and 9 deletions
|
|
@ -806,7 +806,8 @@ optimizations.extend([
|
|||
(('ffloor', 'a(is_integral)'), a),
|
||||
(('fceil', 'a(is_integral)'), a),
|
||||
(('ftrunc', 'a(is_integral)'), a),
|
||||
(('ffract', 'a(is_integral)'), 0.0),
|
||||
# fract(x) = x - floor(x), so fract(NaN) = NaN
|
||||
(('~ffract', 'a(is_integral)'), 0.0),
|
||||
(('fabs', 'a(is_not_negative)'), a),
|
||||
(('iabs', 'a(is_not_negative)'), a),
|
||||
(('fsat', 'a(is_not_positive)'), 0.0),
|
||||
|
|
@ -836,15 +837,18 @@ optimizations.extend([
|
|||
(('fne', 'a(is_not_zero)', 0.0), True),
|
||||
(('feq', 'a(is_not_zero)', 0.0), False),
|
||||
|
||||
(('fge', 'a(is_not_negative)', 'b(is_not_positive)'), True),
|
||||
(('fge', 'b(is_not_positive)', 'a(is_gt_zero)'), False),
|
||||
(('fge', 'a(is_lt_zero)', 'b(is_not_negative)'), False),
|
||||
(('fge', 'b(is_not_negative)', 'a(is_not_positive)'), True),
|
||||
# The results expecting true, must be marked imprecise. The results
|
||||
# expecting false are fine because NaN compared >= or < anything is false.
|
||||
|
||||
(('flt', 'a(is_not_negative)', 'b(is_not_positive)'), False),
|
||||
(('flt', 'b(is_not_positive)', 'a(is_gt_zero)'), True),
|
||||
(('flt', 'a(is_lt_zero)', 'b(is_not_negative)'), True),
|
||||
(('flt', 'b(is_not_negative)', 'a(is_not_positive)'), False),
|
||||
(('~fge', 'a(is_not_negative)', 'b(is_not_positive)'), True),
|
||||
(('fge', 'b(is_not_positive)', 'a(is_gt_zero)'), False),
|
||||
(('fge', 'a(is_lt_zero)', 'b(is_not_negative)'), False),
|
||||
(('~fge', 'b(is_not_negative)', 'a(is_not_positive)'), True),
|
||||
|
||||
(('flt', 'a(is_not_negative)', 'b(is_not_positive)'), False),
|
||||
(('~flt', 'b(is_not_positive)', 'a(is_gt_zero)'), True),
|
||||
(('~flt', 'a(is_lt_zero)', 'b(is_not_negative)'), True),
|
||||
(('flt', 'b(is_not_negative)', 'a(is_not_positive)'), False),
|
||||
|
||||
(('ine', 'a(is_not_zero)', 0), True),
|
||||
(('ieq', 'a(is_not_zero)', 0), False),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue