mesa/src/compiler
Ian Romanick 6a09d33549 nir: Add a pass to generate BFI instructions from logical operations
Inspired by a commit message in !30934, I set about optimizing the code
generated for nir_copysign. It would be possible to just implement an
opt_algebraic pattern for the specific values used by nir_copysign, but
this casts a slightly larger net.

As noted in a comment in the code, there may be variations of the
pattern that this pass misses. The opt_algebraic pattern would miss them
too.

v2: Use nir_def_replace. Suggested by Alyssa. Allow more "root"
instruction types. Suggested by Georg.

v3: Treat extract_u16(x, 0) as (x & 0x0000ffff), and treat extract_u8(x,
0) as (x & 0x000000ff).

v4: Use nir_scalar. Suggested by Georg.

Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31006>
2024-09-13 00:21:00 +00:00
..
clc clc: fix compilation error with llvm-20 2024-09-05 09:44:03 +00:00
glsl mesa/main: add gles-compatible check helpers 2024-09-10 10:10:44 +00:00
isaspec build: pass licensing information in SPDX form 2024-06-29 12:42:49 -07:00
nir nir: Add a pass to generate BFI instructions from logical operations 2024-09-13 00:21:00 +00:00
rust compiler/rust: Force native build for the compiler_proc library 2024-08-08 14:41:52 +00:00
spirv spirv: Allow Mesh/Task to use derivative execution modes 2024-09-10 18:22:42 +00:00
builtin_types.py compiler/types: Add multisample vimage/vtexture types 2024-08-27 15:06:16 +00:00
builtin_types_c.py util,vulkan,mesa,compiler: Generate source files with utf8 encoding from mako template 2023-12-07 12:41:07 +00:00
builtin_types_h.py util,vulkan,mesa,compiler: Generate source files with utf8 encoding from mako template 2023-12-07 12:41:07 +00:00
glsl_types.c compiler/types: Add multisample vimage/vtexture types 2024-08-27 15:06:16 +00:00
glsl_types.h nir/lower_vars_to_scratch: calculate threshold-limited variable size separately 2024-08-07 14:32:28 +00:00
meson.build nak: Move bitset to compiler crate 2024-08-07 21:08:18 +00:00
shader_enums.c nir: add SYSTEM_VALUE_BASE_WORKGROUP_ID 2024-04-24 20:18:48 +00:00
shader_enums.h compiler, vk: Support subgroup size of 4 2024-08-29 03:30:31 +00:00
shader_info.h compiler: Allow derivative_group to be used for all stages in shader_info 2024-09-03 20:03:18 +00:00