mesa/src/intel/compiler/elk
Ian Romanick 11c6b6c102 intel/elk: Remove dsign optimization
This bit from the comment should have been a big red flag:

    There are currently zero instances of fsign(double(x))*IMM in
    shader-db or any test suite, so it is hard to care at this time.

The implementation of that path was incorrect. The XOR instructions
should be predicated like the OR instruction in the non-multiplication
path. As a result, dsign(zero_value) * x will not produce the correct
result.

Instead of fixing this code that is never exercised by anything, replace
it with the simple lowering in NIR.

Ironically, the vec4 implementation is correct. The odds of encountering
an application that is performace limited by dsign performance in vertex
processing stages on Ivy Bridge or Haswell is infinitesimal.

No shader-db changes on any Intel platform.

v2: Delete 's' in emit_fsign as it is now unused.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> [v1]
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29095>
2024-05-14 01:28:20 +00:00
..
tests intel/elk: Remove a bunch of files that don't apply for Gfx8- 2024-02-24 00:24:30 +00:00
elk_asm.h intel/elk: Remove SYNC opcode and SWSB annotations 2024-03-07 15:53:18 +00:00
elk_asm_tool.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_cfg.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_cfg.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_clip.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_clip_line.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_clip_point.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_clip_tri.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_clip_unfilled.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_clip_util.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_compile_clip.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_compile_ff_gs.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_compile_sf.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_compiler.c intel/elk: Remove dsign optimization 2024-05-14 01:28:20 +00:00
elk_compiler.h intel/elk: Clean up unused code in elk_compiler.h 2024-03-07 15:53:19 +00:00
elk_dead_control_flow.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_dead_control_flow.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_debug_recompile.c intel/elk: Remove coarse pixel handling 2024-03-07 15:53:18 +00:00
elk_disasm.c treewide: Replace usage of macro DEBUG with MESA_DEBUG when possible 2024-03-22 18:22:34 +00:00
elk_disasm.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_disasm_info.c intel/compiler: Remove nir_print_instr hack in disasm_info 2024-02-29 23:08:16 +00:00
elk_disasm_info.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_disasm_tool.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_eu.c intel/elk: Remove Gfx9+ from EU emission 2024-03-07 15:53:18 +00:00
elk_eu.h intel/elk: Remove remaining Gfx9+ code 2024-03-07 15:53:19 +00:00
elk_eu_compact.c intel/elk: Remove EU compaction logic for Gfx9+ 2024-03-07 15:53:18 +00:00
elk_eu_defines.h intel/elk: Remove FB_WRITE_LOGICAL_SRC_SRC_STENCIL 2024-03-07 15:53:18 +00:00
elk_eu_emit.c intel/elk: Remove uses of intel_device_info_is_9lp() 2024-03-07 15:53:18 +00:00
elk_eu_opcodes.h intel/elk: Remove unused sources from ELK_SHADER_OPCODE_SEND 2024-03-07 15:53:18 +00:00
elk_eu_util.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_eu_validate.c intel/elk: Remove uses of intel_device_info_is_9lp() 2024-03-07 15:53:18 +00:00
elk_fs.cpp intel/elk: Remove multi-polygon support 2024-03-07 15:53:19 +00:00
elk_fs.h intel/elk: Remove multi-polygon support 2024-03-07 15:53:19 +00:00
elk_fs_bank_conflicts.cpp intel/elk: Remove Gfx9+ from passes 2024-03-07 15:53:18 +00:00
elk_fs_builder.h intel/elk: Remove remaining Gfx9+ code 2024-03-07 15:53:19 +00:00
elk_fs_cmod_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_combine_constants.cpp treewide: Replace usage of macro DEBUG with MESA_DEBUG when possible 2024-03-22 18:22:34 +00:00
elk_fs_copy_propagation.cpp intel/elk: Remove multi-polygon support 2024-03-07 15:53:19 +00:00
elk_fs_cse.cpp intel/elk: Remove ex_desc and ex_mlen from elk_inst 2024-03-07 15:53:18 +00:00
elk_fs_dead_code_eliminate.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_generator.cpp intel/elk: Remove multi-polygon support 2024-03-07 15:53:19 +00:00
elk_fs_live_variables.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_live_variables.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_lower_pack.cpp intel/elk: Remove Gfx9+ from passes 2024-03-07 15:53:18 +00:00
elk_fs_lower_regioning.cpp intel/elk: Remove Gfx9+ from passes 2024-03-07 15:53:18 +00:00
elk_fs_nir.cpp intel/elk: Remove dsign optimization 2024-05-14 01:28:20 +00:00
elk_fs_reg_allocate.cpp intel/elk: Remove Gfx9+ from passes 2024-03-07 15:53:18 +00:00
elk_fs_register_coalesce.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_saturate_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_sel_peephole.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_fs_thread_payload.cpp intel/elk: Remove coarse pixel handling 2024-03-07 15:53:18 +00:00
elk_fs_validate.cpp intel/elk: Remove validation code for Gfx9+ 2024-03-07 15:53:18 +00:00
elk_fs_visitor.cpp intel/elk: Remove multi-polygon support 2024-03-07 15:53:19 +00:00
elk_gfx6_gs_visitor.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_gfx6_gs_visitor.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_gram.y intel/elk: Remove Gfx9+ from asm grammar 2024-03-07 15:53:18 +00:00
elk_inst.h intel/elk: Remove remaining Gfx9+ code 2024-03-07 15:53:19 +00:00
elk_interpolation_map.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_ir.h intel/elk: Remove unused SEND features 2024-03-07 15:53:18 +00:00
elk_ir_allocator.h intel/elk: Rename C++ namespace 2024-02-24 00:24:31 +00:00
elk_ir_analysis.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_ir_fs.h intel/elk: Remove Gfx9+ from Reg related code 2024-03-07 15:53:18 +00:00
elk_ir_performance.cpp intel/elk: Remove Gfx9+ from passes 2024-03-07 15:53:18 +00:00
elk_ir_performance.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_ir_vec4.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_isa_info.h intel/elk: Create separate header for opcodes 2024-02-24 00:24:31 +00:00
elk_lex.l intel/elk: Remove SYNC opcode and SWSB annotations 2024-03-07 15:53:18 +00:00
elk_lower_logical_sends.cpp intel/elk: Remove coarse pixel handling 2024-03-07 15:53:18 +00:00
elk_nir.c intel/elk: Delete stray nir_opt_dce 2024-04-04 23:42:28 +00:00
elk_nir.h intel/elk: Move nir_options to its own c/h file pair 2024-02-24 00:24:32 +00:00
elk_nir_analyze_boolean_resolves.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_nir_analyze_ubo_ranges.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_nir_attribute_workarounds.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_nir_lower_alpha_to_coverage.c intel/elk: Create separate header for opcodes 2024-02-24 00:24:31 +00:00
elk_nir_lower_cs_intrinsics.c intel/elk: Remove Gfx9+ from passes 2024-03-07 15:53:18 +00:00
elk_nir_lower_storage_image.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_nir_options.c intel: set compact_arrays in compiler options 2024-04-12 18:43:48 +00:00
elk_nir_options.h intel/elk: Move nir_options to its own c/h file pair 2024-02-24 00:24:32 +00:00
elk_nir_private.h intel/elk: Don't include elk_eu_defines.h in elk_nir.h 2024-02-24 00:24:31 +00:00
elk_nir_trig_workarounds.py intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_packed_float.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_predicated_break.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_prim.h intel/elk: Rename header guards 2024-02-24 00:24:31 +00:00
elk_private.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_reg.h intel/elk: Remove Gfx9+ from Reg related code 2024-03-07 15:53:18 +00:00
elk_reg_type.c intel/elk: Remove Gfx9+ from Reg related code 2024-03-07 15:53:18 +00:00
elk_reg_type.h intel/elk: Remove Gfx9+ from Reg related code 2024-03-07 15:53:18 +00:00
elk_schedule_instructions.cpp intel/elk: Remove Gfx9+ dataport messages 2024-03-07 15:53:18 +00:00
elk_shader.cpp intel/elk: Remove Gfx9+ from compile/run functions 2024-03-07 15:53:18 +00:00
elk_shader.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_simd_selection.cpp intel/elk: Remove Gfx9+ from compile/run functions 2024-03-07 15:53:18 +00:00
elk_test_eu_compact.cpp intel/elk: Remove tests for Gfx9+ 2024-02-24 01:41:31 +00:00
elk_test_eu_validate.cpp intel/elk: Remove uses of intel_device_info_is_9lp() 2024-03-07 15:53:18 +00:00
elk_test_fs_cmod_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_fs_combine_constants.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_fs_copy_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_fs_saturate_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_predicated_break.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_simd_selection.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_vec4_cmod_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_vec4_copy_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_vec4_dead_code_eliminate.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_vec4_register_coalesce.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_test_vf_float_conversions.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4.cpp intel/elk: Remove multi-polygon support 2024-03-07 15:53:19 +00:00
elk_vec4.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_builder.h intel/elk: Remove remaining Gfx9+ code 2024-03-07 15:53:19 +00:00
elk_vec4_cmod_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_copy_propagation.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_cse.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_dead_code_eliminate.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_generator.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_gs_nir.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_gs_visitor.cpp intel/elk: Remove BTD and RT opcodes 2024-03-07 15:53:17 +00:00
elk_vec4_gs_visitor.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_live_variables.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_live_variables.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_nir.cpp intel/elk: Remove dsign optimization 2024-05-14 01:28:20 +00:00
elk_vec4_reg_allocate.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_surface_builder.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_surface_builder.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_tcs.cpp intel/elk: Remove use_tcs_multi_patch 2024-03-07 15:53:18 +00:00
elk_vec4_tcs.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_tes.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_tes.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_visitor.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_vs.h intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vec4_vs_visitor.cpp intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
elk_vue_map.c intel/elk: Rename symbols 2024-02-24 00:24:31 +00:00
meson.build intel/compiler: Remove nir_print_instr hack in disasm_info 2024-02-29 23:08:16 +00:00