mesa/src/compiler
Marcin Ślusarz 89bc8ff408 glsl/opt_algebraic: disable invalid optimization
When operators other than eq and ne are involved we can't really
move operands around and negate them because such transformation
may change the value of the whole expression.

Some examples:

For unsigned var:
0 >= 1u + var would eventually become 0xffffffff >= var,
which would always evaluate to true, when original expression
was true only for var == 0xffffffff.

For signed var:
0 >= 1 + var would become -1 >= var, which would evaluate to
false for var == 2147483647, when original expression evaluated
to true (because signed overflow is defined to wrap around in
glsl, 1 + 2147483647 == -2147483648, so 0 >= -2147483648).

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5226
Fixes: 34ec1a24d6 ("glsl: Optimize (x + y cmp 0) into (x cmp -y).")
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12359>
2021-08-17 08:17:52 +00:00
..
glsl glsl/opt_algebraic: disable invalid optimization 2021-08-17 08:17:52 +00:00
nir nir: fix GCM when GVN enabled 2021-08-17 03:15:49 +00:00
spirv spirv: create ffma more often 2021-08-16 17:19:45 +00:00
builtin_type_macros.h compiler/types: Add 64-bit image types 2020-11-09 17:17:39 +00:00
glsl_types.cpp glsl: add missing support for explicit components in interface blocks 2021-05-13 08:07:53 +00:00
glsl_types.h glsl: add missing support for explicit components in interface blocks 2021-05-13 08:07:53 +00:00
meson.build spirv: add some tests for volatile/available/visible 2020-09-01 17:15:22 +00:00
nir_types.cpp nir: Add a size_align helper function for aligning elements to 16 bytes. 2020-11-16 13:54:22 -08:00
nir_types.h nir: Add a size_align helper function for aligning elements to 16 bytes. 2020-11-16 13:54:22 -08:00
shader_enums.c tu, freedreno/a6xx, ir3: Rewrite tess PrimID handling 2021-08-05 16:35:41 +00:00
shader_enums.h tu, freedreno/a6xx, ir3: Rewrite tess PrimID handling 2021-08-05 16:35:41 +00:00
shader_info.h mesa: move gl_program::is_arb_asm to shader_info 2021-07-28 08:49:30 +00:00