mesa/src/intel/compiler
Sviatoslav Peleshko 57344052b6 intel/brw: Don't apply discard_if condition opt if it can change results
We can't just always negate the alu instruction's cmod, because negating
it can produce different results when the argument is NaN float. We can
still do that if the condition is == or !=.

Fixes: 0ba9497e ("intel/fs: Improve discard_if code generation")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11800
Signed-off-by: Sviatoslav Peleshko <sviatoslav.peleshko@globallogic.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31042>
2024-09-27 11:52:27 +00:00
..
elk intel/elk: delete copy constructor and copy-assignment-operator 2024-09-16 20:31:45 +00:00
tests intel/brw: Remove assembler tests for Gfx8- 2024-02-24 02:10:56 +00:00
brw_asm.c intel/brw: Add DUMP flag to brw_assemble 2024-09-27 02:46:28 +00:00
brw_asm.h intel/brw: Add DUMP flag to brw_assemble 2024-09-27 02:46:28 +00:00
brw_asm_internal.h intel/brw: Split off assembler logic into library 2024-07-12 19:34:23 +00:00
brw_asm_tool.c intel/brw: Split off assembler logic into library 2024-07-12 19:34:23 +00:00
brw_cfg.cpp intel/brw: Add a file parameter to idom_tree::dump() 2024-08-22 22:54:45 +00:00
brw_cfg.h intel/brw: Add a file parameter to idom_tree::dump() 2024-08-22 22:54:45 +00:00
brw_compile_bs.cpp intel/brw: Move calculate_cfg out of fs_visitor 2024-07-25 15:37:13 +00:00
brw_compile_cs.cpp intel/brw: Move calculate_cfg out of fs_visitor 2024-07-25 15:37:13 +00:00
brw_compile_fs.cpp intel/brw: Skip per-primitive inputs when computing flat input mask 2024-09-27 08:15:18 +00:00
brw_compile_gs.cpp intel/brw: Move calculate_cfg out of fs_visitor 2024-07-25 15:37:13 +00:00
brw_compile_mesh.cpp brw: switch mesh/task URB fence prior to EOT to GPU 2024-08-27 13:38:14 +00:00
brw_compile_tcs.cpp intel/brw: Move calculate_cfg out of fs_visitor 2024-07-25 15:37:13 +00:00
brw_compile_tes.cpp intel/brw: Move calculate_cfg out of fs_visitor 2024-07-25 15:37:13 +00:00
brw_compile_vs.cpp intel/brw: Move calculate_cfg out of fs_visitor 2024-07-25 15:37:13 +00:00
brw_compiler.c intel/brw/xe2: Allow int64 conversions 2024-08-21 20:16:00 +00:00
brw_compiler.h brw: remove unused prog_data field 2024-08-22 19:44:40 +00:00
brw_debug_recompile.c intel/brw: Simplify @file annotations 2024-07-22 22:48:03 +00:00
brw_def_analysis.cpp intel/brw: Track the number of uses of each def in def_analysis 2024-06-18 09:02:25 +00:00
brw_device_sha1_gen_c.py intel/compiler: drop unused ray-tracing fields from cache hash 2024-03-22 00:01:28 +00:00
brw_disasm.c intel/brw: Expose functions to convert LSC enums to strings 2024-09-12 20:54:36 +00:00
brw_disasm.h intel/brw: Expose functions to convert LSC enums to strings 2024-09-12 20:54:36 +00:00
brw_disasm_info.cpp intel/brw: Simplify fs_inst annotation 2024-08-28 03:59:50 +00:00
brw_disasm_info.h intel/brw: Simplify fs_inst annotation 2024-08-28 03:59:50 +00:00
brw_disasm_tool.c intel/brw: Remove Gfx8- code from disassembler 2024-02-28 05:45:38 +00:00
brw_eu.c brw,elk: Fix opening flags on dumping shader binaries 2024-08-27 08:26:08 +00:00
brw_eu.h intel/brw: Get rid of the lsc_msg_desc_wcmask helper 2024-08-27 09:25:59 +00:00
brw_eu_compact.c intel/brw: Remove long register file names 2024-08-25 22:08:14 +00:00
brw_eu_defines.h brw: move null_rt control up a layer 2024-09-23 15:56:02 +00:00
brw_eu_emit.c brw: add a comment what Gfx12.5 URB fences 2024-08-27 13:38:14 +00:00
brw_eu_validate.c intel/brw: Only validate GRF boundary crossing restriction for GRFs 2024-09-24 03:39:05 +00:00
brw_fs.cpp intel/brw: Delete old-style surface and A64 message opcodes 2024-09-12 20:54:36 +00:00
brw_fs.h intel/brw: Replace predicated break optimization with a simple peephole 2024-08-05 19:17:55 -07:00
brw_fs_bank_conflicts.cpp intel/brw: Simplify @file annotations 2024-07-22 22:48:03 +00:00
brw_fs_builder.h intel/brw: Remove special treatment for 2-src in emit() helper 2024-08-30 04:33:47 +00:00
brw_fs_cmod_propagation.cpp brw: Fix mov cmod propagation when there's int signedness mismatch 2024-09-09 22:13:08 +00:00
brw_fs_combine_constants.cpp intel/brw: Move calculate_cfg out of fs_visitor 2024-07-25 15:37:13 +00:00
brw_fs_copy_propagation.cpp intel/brw: Delete old-style surface and A64 message opcodes 2024-09-12 20:54:36 +00:00
brw_fs_cse.cpp intel/brw: Use CSE for LOAD_SUBGROUP_INVOCATION 2024-08-08 18:20:49 +00:00
brw_fs_dead_code_eliminate.cpp intel/brw: Delete old-style surface and A64 message opcodes 2024-09-12 20:54:36 +00:00
brw_fs_generator.cpp intel/brw: Don't include sync.nop in INTEL_DEBUG instruction counts 2024-09-24 03:12:32 +00:00
brw_fs_live_variables.cpp intel/brw: Simplify @file annotations 2024-07-22 22:48:03 +00:00
brw_fs_live_variables.h intel/brw: Replace uses of fs_reg with brw_reg 2024-07-03 02:53:19 +00:00
brw_fs_lower.cpp intel/brw: Simplify fs_inst annotation 2024-08-28 03:59:50 +00:00
brw_fs_lower_dpas.cpp intel/brw: Replace uses of fs_reg with brw_reg 2024-07-03 02:53:19 +00:00
brw_fs_lower_integer_multiplication.cpp intel/brw: Replace uses of fs_reg with brw_reg 2024-07-03 02:53:19 +00:00
brw_fs_lower_pack.cpp intel/brw: Replace uses of fs_reg with brw_reg 2024-07-03 02:53:19 +00:00
brw_fs_lower_regioning.cpp intel/brw: lower math op regions for Xe2+ 2024-09-24 09:58:28 +00:00
brw_fs_lower_simd_width.cpp intel/brw: Delete old-style surface and A64 message opcodes 2024-09-12 20:54:36 +00:00
brw_fs_nir.cpp intel/brw: Don't apply discard_if condition opt if it can change results 2024-09-27 11:52:27 +00:00
brw_fs_opt.cpp intel/brw: Remove long register file names 2024-08-25 22:08:14 +00:00
brw_fs_opt_algebraic.cpp intel/brw: Rename fs_reg_* helpers to brw_reg_* 2024-07-03 02:53:19 +00:00
brw_fs_opt_virtual_grfs.cpp brw: fix virtual register splitting to not go below physical register size 2024-09-18 23:26:34 +00:00
brw_fs_reg_allocate.cpp brw: align spilling offsets to physical register sizes 2024-09-04 23:05:31 +00:00
brw_fs_register_coalesce.cpp intel/brw: Simplify @file annotations 2024-07-22 22:48:03 +00:00
brw_fs_saturate_propagation.cpp intel/brw: Use def analysis for simple cases of saturate propagation 2024-08-09 14:26:05 -07:00
brw_fs_scoreboard.cpp intel/brw: Simplify @file annotations 2024-07-22 22:48:03 +00:00
brw_fs_thread_payload.cpp intel/brw: Replace uses of fs_reg with brw_reg 2024-07-03 02:53:19 +00:00
brw_fs_validate.cpp intel/brw: Introduce new MEMORY_*_LOGICAL opcodes 2024-09-12 20:54:36 +00:00
brw_fs_visitor.cpp intel/brw: Move interp_reg and per_primitive_reg out of fs_visitor 2024-07-25 15:37:13 +00:00
brw_fs_workaround.cpp intel/brw: Replace uses of fs_reg with brw_reg 2024-07-03 02:53:19 +00:00
brw_gram.y intel/brw: Add SWSB MATH pipe to assembler 2024-09-26 20:40:28 +00:00
brw_inst.h intel/brw: Remove long register file names 2024-08-25 22:08:14 +00:00
brw_ir.h intel/brw: Fold backend_reg into fs_reg 2024-03-01 17:52:09 +00:00
brw_ir_allocator.h intel/compiler,intel/blorp,intel/vulkan: decouple vulkan driver and compiler from gallium 2023-08-03 22:00:15 +00:00
brw_ir_analysis.h
brw_ir_fs.h intel/brw: Copy prop from raw integer moves with mismatched types 2024-08-30 03:39:31 +00:00
brw_ir_performance.cpp intel/brw: Replace uses of fs_reg with brw_reg 2024-07-03 02:53:19 +00:00
brw_ir_performance.h intel/brw: Fold backend_shader into fs_visitor 2024-02-29 19:28:05 +00:00
brw_isa_info.h
brw_kernel.c intel-clc: missing printf lowering 2024-08-06 17:55:18 +00:00
brw_kernel.h intel-clc: Use correct set of nir_options when building for Gfx8 2024-02-24 00:24:32 +00:00
brw_lex.l intel/brw: Add SWSB MATH pipe to assembler 2024-09-26 20:40:28 +00:00
brw_lower_logical_sends.cpp brw: remove EOT handling from sampler messages 2024-09-25 10:22:40 +00:00
brw_nir.c brw: fix TGM messages to use cmask lsc opcodes 2024-09-17 09:28:58 +00:00
brw_nir.h iris: ensure null render target for specific cases 2024-09-23 15:56:02 +00:00
brw_nir_analyze_ubo_ranges.c intel/brw/xe2: Update brw_nir_analyze_ubo_ranges to account for 512b physical registers 2024-04-01 00:00:03 +00:00
brw_nir_lower_alpha_to_coverage.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
brw_nir_lower_cooperative_matrix.c intel/brw/xe2+: Allow vec16 for cooperative matrix 2024-06-25 14:17:47 -07:00
brw_nir_lower_cs_intrinsics.c compiler: Allow derivative_group to be used for all stages in shader_info 2024-09-03 20:03:18 +00:00
brw_nir_lower_fsign.py intel/brw: Use range analysis to optimize fsign 2024-05-14 01:28:21 +00:00
brw_nir_lower_intersection_shader.c intel/rt: fix terminateOnFirstHit handling 2024-08-05 21:43:36 +00:00
brw_nir_lower_ray_queries.c intel/nir: only consider ray query variables in lowering 2024-02-24 12:56:30 +00:00
brw_nir_lower_rt_intrinsics.c brw/rt: fix ray_object_(direction|origin) for closest-hit shaders 2024-08-13 10:28:50 +00:00
brw_nir_lower_shader_calls.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
brw_nir_lower_storage_image.c intel/brw: Drop image_{load,store}_raw_intel handling 2024-08-09 07:20:08 +00:00
brw_nir_opt_fsat.c intel/brw: Move fsat instructions closer to the source 2024-08-09 14:26:10 -07:00
brw_nir_rt.c treewide: use nir_def_replace sometimes 2024-06-21 15:36:56 +00:00
brw_nir_rt.h anv: support VK_PIPELINE_CREATE_RAY_TRACING_SKIP_* 2022-10-20 00:03:55 +00:00
brw_nir_rt_builder.h intel: Fix bad align_offset on global_constant_uniform_block_intel 2024-08-21 20:44:57 +00:00
brw_nir_trig_workarounds.py
brw_packed_float.c
brw_prim.h
brw_print.cpp intel/brw: Delete old-style surface and A64 message opcodes 2024-09-12 20:54:36 +00:00
brw_private.h intel/brw: fix subgroup size of geometry stages for lnl+ 2024-05-14 23:13:37 +00:00
brw_reg.h intel/brw: Pack brw_reg struct 2024-08-28 03:59:50 +00:00
brw_reg_type.c intel/brw: Rename brw_reg_type_to_hw_type to brw_type_encode 2024-04-25 11:41:48 +00:00
brw_reg_type.h intel/brw: Make a helper for finding the largest of two types 2024-04-29 07:51:45 +00:00
brw_rt.h intel: Use ALIGN_POT instead of ALIGN inside macro define 2024-01-03 12:46:10 +00:00
brw_schedule_instructions.cpp intel/brw: Only force g0's liveness to be the whole program if spilling 2024-08-01 16:37:34 -07:00
brw_shader.cpp intel/brw: Delete old-style surface and A64 message opcodes 2024-09-12 20:54:36 +00:00
brw_simd_selection.cpp intel/brw: fix subgroup size of geometry stages for lnl+ 2024-05-14 23:13:37 +00:00
brw_vue_map.c intel/brw: Simplify @file annotations 2024-07-22 22:48:03 +00:00
intel_clc.c intel/clc: Free disk_cache 2024-07-24 20:46:28 +00:00
intel_gfx_ver_enum.h intel/compiler: Rename brw_gfx_ver_enum.h to intel_gfx_ver_enum.h 2024-02-16 22:35:05 +00:00
intel_nir.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00:00
intel_nir.h intel/nir: add printf lowering 2024-05-15 13:13:38 +00:00
intel_nir_blockify_uniform_loads.c intel/nir: remove load_global_const_block_intel intrinsic 2024-08-16 11:12:39 +00:00
intel_nir_clamp_image_1d_2d_array_sizes.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_clamp_per_vertex_loads.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_lower_conversions.c intel/nir: Don't needlessly split u2f16 for nir_type_uint32 2024-07-11 02:37:05 -07:00
intel_nir_lower_non_uniform_barycentric_at_sample.c intel/compiler: Ensure load_barycentric_at_sample and load_interpolated_input remain together 2024-04-04 23:42:27 +00:00
intel_nir_lower_non_uniform_resource_intel.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_lower_printf.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_lower_shading_rate_output.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_lower_sparse.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_lower_texture.c intel/compiler: Pack texture LOD and offset to a single 32-bit value 2024-02-27 00:22:46 +00:00
intel_nir_opt_peephole_ffma.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_opt_peephole_imul32x16.c treewide: use nir_metadata_control_flow 2024-06-17 16:28:14 -04:00
intel_nir_tcs_workarounds.c intel/nir: Set src_type on TCS quads workaround store_output 2024-05-02 13:58:21 -07:00
intel_shader_enums.h intel/compiler: Use "intel" prefix for walk_order enum 2024-02-21 00:38:35 +00:00
meson.build intel/brw: Move fsat instructions closer to the source 2024-08-09 14:26:10 -07:00
test_eu_compact.cpp intel/brw: Remove long register file names 2024-08-25 22:08:14 +00:00
test_eu_validate.cpp intel/brw: Remove long register file names 2024-08-25 22:08:14 +00:00
test_fs_cmod_propagation.cpp brw: Fix mov cmod propagation when there's int signedness mismatch 2024-09-09 22:13:08 +00:00
test_fs_combine_constants.cpp intel/brw: Move calculate_cfg out of fs_visitor 2024-07-25 15:37:13 +00:00
test_fs_copy_propagation.cpp intel/brw: Copy prop from raw integer moves with mismatched types 2024-08-30 03:39:31 +00:00
test_fs_cse.cpp intel/brw: Move calculate_cfg out of fs_visitor 2024-07-25 15:37:13 +00:00
test_fs_saturate_propagation.cpp intel/brw: Move calculate_cfg out of fs_visitor 2024-07-25 15:37:13 +00:00
test_fs_scoreboard.cpp intel/brw: Consider pipe when comparing SWSB in tests 2024-09-25 19:32:31 +00:00
test_simd_selection.cpp intel: Remove brw_ prefix from process debug function 2024-02-16 22:35:05 +00:00
test_vf_float_conversions.cpp