mesa/src/intel/compiler
Ian Romanick e7480f94c1 intel/brw: Combine constants for src0 of integer multiply too
The majority of cases that would have been affected by this actually
had both sources as integer constants. The earlier commit "intel/rt:
Don't directly generate umul_32x16" allowed those to be constant
folded.

v2: Move the a*-1 block to be near the existing a*-1 block.

No shader-db changes on any Intel platform.

fossil-db results:

All Intel platforms had similar results. (Ice Lake shown)
Totals:
Instrs: 165510246 -> 165510222 (-0.00%)
Cycles: 15125198238 -> 15125195835 (-0.00%); split: -0.00%, +0.00%

Totals from 46 (0.01% of 656118) affected shaders:
Instrs: 36010 -> 35986 (-0.07%)
Cycles: 2613658 -> 2611255 (-0.09%); split: -0.17%, +0.07%

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27552>
2024-03-12 21:31:30 +00:00
..
elk nir/opt_shrink_vectors: shrink some intrinsics from start 2024-03-12 18:17:17 +00:00
tests intel/brw: Remove assembler tests for Gfx8- 2024-02-24 02:10:56 +00:00
brw_asm.h intel: Rename i965_{asm,disasm} tools to brw_{asm,disasm} 2024-02-15 09:26:46 +00:00
brw_asm_tool.c intel/brw: Remove automatic_exec_sizes 2024-02-28 05:45:39 +00:00
brw_cfg.cpp intel/brw: Use fs_inst in cfg_t 2024-02-29 20:47:48 -08:00
brw_cfg.h intel/brw: Use fs_inst in cfg_t 2024-02-29 20:47:48 -08:00
brw_compile_gs.cpp intel/brw: Remove runtime_check_aads_emit 2024-02-28 05:45:39 +00:00
brw_compile_tcs.cpp intel/brw: Remove runtime_check_aads_emit 2024-02-28 05:45:39 +00:00
brw_compile_vs.cpp intel/brw: Remove runtime_check_aads_emit 2024-02-28 05:45:39 +00:00
brw_compiler.c intel/brw: Remove brw_shader.h 2024-02-29 19:28:06 +00:00
brw_compiler.h intel/brw: Delete unnecessary brw_wm_prog_data fields 2024-02-29 18:00:14 +00:00
brw_dead_control_flow.cpp intel/brw: Use fs_inst explicitly in various passes 2024-02-29 20:47:48 -08:00
brw_debug_recompile.c intel/brw: Delete brw_wm_prog_key::line_aa 2024-02-29 18:00:14 +00:00
brw_device_sha1_gen_c.py intel/compiler: generate a hash function to use with the shader cache 2024-02-15 16:58:15 -08:00
brw_disasm.c intel/brw: Remove brw_shader.h 2024-02-29 19:28:06 +00:00
brw_disasm.h intel/compiler: Merge intel_disasm.[ch] into corresponding brw files 2024-02-15 09:26:46 +00:00
brw_disasm_info.cpp intel/brw: Use fs_inst in disasm_annotate() 2024-02-29 21:14:13 -08:00
brw_disasm_info.h intel/brw: Use fs_inst in disasm_annotate() 2024-02-29 21:14:13 -08:00
brw_disasm_tool.c intel/brw: Remove Gfx8- code from disassembler 2024-02-28 05:45:38 +00:00
brw_eu.c intel/brw: Remove brw_shader.h 2024-02-29 19:28:06 +00:00
brw_eu.h intel/brw: Delete brw_eu_util.c 2024-02-29 18:00:14 +00:00
brw_eu_compact.c intel/brw: Remove Gfx8- remaining opcodes 2024-02-28 05:45:39 +00:00
brw_eu_defines.h intel/brw: Replace CS_OPCODE_CS_TERMINATE with SHADER_OPCODE_SEND 2024-03-05 11:16:20 +00:00
brw_eu_emit.c intel/brw: Remove automatic_exec_sizes 2024-02-28 05:45:39 +00:00
brw_eu_validate.c intel/compiler: Enforce 64-bit RepCtrl restriction in eu_validate 2024-03-12 21:31:30 +00:00
brw_fs.cpp intel/brw: Correctly dump subnr for FIXED_GRF in INTEL_DEBUG=optimizer 2024-03-12 21:31:30 +00:00
brw_fs.h intel/brw: Replace CS_OPCODE_CS_TERMINATE with SHADER_OPCODE_SEND 2024-03-05 11:16:20 +00:00
brw_fs_bank_conflicts.cpp intel/brw: Remove MRF type 2024-02-28 05:45:39 +00:00
brw_fs_builder.h intel/brw: Remove typedefs from fs_builder 2024-02-29 21:14:13 -08:00
brw_fs_cmod_propagation.cpp intel/brw: Remove Gfx8- code from backend passes 2024-02-28 05:45:38 +00:00
brw_fs_combine_constants.cpp intel/brw: Combine constants for src0 of integer multiply too 2024-03-12 21:31:30 +00:00
brw_fs_copy_propagation.cpp intel/brw: Combine constants for src0 of integer multiply too 2024-03-12 21:31:30 +00:00
brw_fs_cse.cpp intel/brw: Allow CSE on TXF_CMS_W_GFX12_LOGICAL 2024-03-01 22:19:51 +00:00
brw_fs_dead_code_eliminate.cpp intel/brw: Pull dead_code_eliminate out of fs_visitor 2024-02-26 20:54:24 +00:00
brw_fs_generator.cpp intel/brw: Replace CS_OPCODE_CS_TERMINATE with SHADER_OPCODE_SEND 2024-03-05 11:16:20 +00:00
brw_fs_live_variables.cpp intel/brw: Use fs_visitor instead of backend_shader in various passes 2024-02-29 19:28:05 +00:00
brw_fs_live_variables.h intel/brw: Use fs_visitor instead of backend_shader in various passes 2024-02-29 19:28:05 +00:00
brw_fs_lower.cpp intel/brw: Copy the smaller payload in fixup_sends_duplicate_payload 2024-03-05 11:39:26 +00:00
brw_fs_lower_dpas.cpp intel/brw: Use fs_visitor instead of backend_shader in various passes 2024-02-29 19:28:05 +00:00
brw_fs_lower_integer_multiplication.cpp intel/brw: Remove MRF type 2024-02-28 05:45:39 +00:00
brw_fs_lower_pack.cpp intel/brw: Remove F16TO32 and F32TO16 opcodes 2024-02-28 05:45:38 +00:00
brw_fs_lower_regioning.cpp intel/brw: Use hstride instead of stride for accumulator 2024-03-09 18:26:24 +00:00
brw_fs_lower_simd_width.cpp intel/brw: Unindent code after previous change 2024-03-05 12:03:31 +00:00
brw_fs_nir.cpp intel/compiler: Xe2+ can do URB load/store with a byte offset 2024-03-01 16:11:30 +00:00
brw_fs_opt.cpp intel/brw: Call constant combining after copy propagation/algebraic 2024-03-05 11:39:26 +00:00
brw_fs_opt_algebraic.cpp intel/brw: Combine constants for src0 of integer multiply too 2024-03-12 21:31:30 +00:00
brw_fs_opt_virtual_grfs.cpp intel/brw: Move virtual GRF opts into their own file 2024-02-26 20:54:25 +00:00
brw_fs_reg_allocate.cpp intel/brw: Add assertions that EOT messages live in g112+ 2024-03-05 11:39:26 +00:00
brw_fs_register_coalesce.cpp intel/brw: Make register coalescing obey the g112-g127 restriction 2024-03-05 11:39:26 +00:00
brw_fs_saturate_propagation.cpp intel/brw: Simplify usage of reg immediate helpers 2024-03-01 17:52:09 +00:00
brw_fs_scoreboard.cpp intel/brw: Use fs_visitor instead of backend_shader in various passes 2024-02-29 19:28:05 +00:00
brw_fs_sel_peephole.cpp intel/brw: Pull peephole_sel out of fs_visitor 2024-02-26 20:54:25 +00:00
brw_fs_thread_payload.cpp intel/brw: Remove extra stage_prog_data field in fs_visitor 2024-02-29 19:28:06 +00:00
brw_fs_validate.cpp intel/compiler: Add basic CFG validation 2023-11-30 20:58:05 +00:00
brw_fs_visitor.cpp intel/brw: Replace CS_OPCODE_CS_TERMINATE with SHADER_OPCODE_SEND 2024-03-05 11:16:20 +00:00
brw_fs_workaround.cpp intel/brw: Use fs_inst explicitly in various passes 2024-02-29 20:47:48 -08:00
brw_gram.y intel/brw: Delete legacy SFIDs 2024-02-29 18:00:14 +00:00
brw_inst.h intel/brw: Replace CS_OPCODE_CS_TERMINATE with SHADER_OPCODE_SEND 2024-03-05 11:16:20 +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: Simplify usage of reg immediate helpers 2024-03-01 17:52:09 +00:00
brw_ir_performance.cpp intel/brw: Replace CS_OPCODE_CS_TERMINATE with SHADER_OPCODE_SEND 2024-03-05 11:16:20 +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 intel/compiler: Remove use of thread_local for opcode tables 2022-06-30 23:46:35 +00:00
brw_kernel.c intel/brw: Remove Gfx8- code from NIR options 2024-02-28 05:45:38 +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: Delete SINCOS 2024-02-29 18:00:14 +00:00
brw_lower_logical_sends.cpp intel/brw: Silence "statement may fall through" warning 2024-03-12 21:31:30 +00:00
brw_mesh.cpp intel/brw: Remove runtime_check_aads_emit 2024-02-28 05:45:39 +00:00
brw_nir.c nir/opt_shrink_vectors: shrink some intrinsics from start 2024-03-12 18:17:17 +00:00
brw_nir.h intel/brw: Remove brw_shader.h 2024-02-29 19:28:06 +00:00
brw_nir_analyze_ubo_ranges.c intel/brw: Delete constant_buffer_0_is_relative 2024-02-29 18:00:14 +00:00
brw_nir_lower_alpha_to_coverage.c intel/compiler: Rename BRW_WM_MSAA_* enums to INTEL_MSAA_* 2024-02-14 22:31:23 -08:00
brw_nir_lower_cooperative_matrix.c intel/cmat: Generate better code for nir_intrinsic_cmat_insert 2023-12-29 20:28:54 -08:00
brw_nir_lower_cs_intrinsics.c intel/compiler: Use "intel" prefix for walk_order enum 2024-02-21 00:38:35 +00:00
brw_nir_lower_intersection_shader.c intel/nir/rt: fix reportIntersection() hitT handling 2023-11-17 07:06:30 +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 treewide: Use nir_before/after_impl for more elaborate cases 2023-08-30 19:30:58 +00:00
brw_nir_lower_shader_calls.c intel/rt: Don't directly generate umul_32x16 2024-02-02 00:02:05 +00:00
brw_nir_lower_storage_image.c intel/brw: Remove Gfx8- code from lower storage image pass 2024-02-28 05:45:38 +00:00
brw_nir_rt.c intel/brw: Always use scalar shaders 2024-02-28 05:45:37 +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 nir: Drop "SSA" from NIR language 2023-08-12 16:44:41 -04:00
brw_nir_trig_workarounds.py driconf: Add a limit_trig_input_range option 2022-05-13 06:47:53 +00:00
brw_packed_float.c
brw_predicated_break.cpp intel/brw: Use fs_inst explicitly in various passes 2024-02-29 20:47:48 -08:00
brw_prim.h intel/compiler: Split 3DPRIM_* defines out to a separate header. 2022-06-30 23:46:35 +00:00
brw_private.h intel/brw: Remove brw_shader.h 2024-02-29 19:28:06 +00:00
brw_reg.h intel/brw: Simplify usage of reg immediate helpers 2024-03-01 17:52:09 +00:00
brw_reg_type.c intel/brw: Remove Gfx8- code from register type helpers 2024-02-28 05:45:38 +00:00
brw_reg_type.h
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: Replace CS_OPCODE_CS_TERMINATE with SHADER_OPCODE_SEND 2024-03-05 11:16:20 +00:00
brw_shader.cpp intel/brw: Integer multiply w/ DW and W sources is not commutative 2024-03-12 21:31:30 +00:00
brw_simd_selection.cpp intel/fs/xe2+: Stop building SIMD8 compute-like shaders (CS/BS/TS/MS). 2023-12-22 10:37:00 -08:00
brw_vue_map.c intel/brw: Remove Gfx8- code from VUE map 2024-02-28 05:45:38 +00:00
intel_clc.c intel/clc: Fix file descriptor leak 2024-02-28 04:30:33 +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/compiler: Pack texture LOD and offset to a single 32-bit value 2024-02-27 00:22:46 +00:00
intel_nir_blockify_uniform_loads.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00:00
intel_nir_clamp_image_1d_2d_array_sizes.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00:00
intel_nir_clamp_per_vertex_loads.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00:00
intel_nir_lower_conversions.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00:00
intel_nir_lower_non_uniform_barycentric_at_sample.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00:00
intel_nir_lower_non_uniform_resource_intel.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00:00
intel_nir_lower_shading_rate_output.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00:00
intel_nir_lower_sparse.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00: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 intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00:00
intel_nir_opt_peephole_imul32x16.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00:00
intel_nir_tcs_workarounds.c intel/compiler: Rename the passes and files related to intel_nir.h 2024-02-16 22:35:05 +00: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: Use C++ for brw_disasm_info.c 2024-02-29 20:47:48 -08:00
test_eu_compact.cpp intel/brw: Remove EU compaction tests for Gfx8- 2024-02-24 02:10:56 +00:00
test_eu_validate.cpp intel/brw: Remove MRF type 2024-02-28 05:45:39 +00:00
test_fs_cmod_propagation.cpp intel/brw: Change unit tests to use TEX_LOGICAL instead of TEX 2024-03-01 22:19:50 +00:00
test_fs_combine_constants.cpp intel/brw: Pull opt_combine_constants out of fs_visitor 2024-02-26 20:54:24 +00:00
test_fs_copy_propagation.cpp intel/brw: Pull opt_copy_propagation out of fs_visitor 2024-02-26 20:54:24 +00:00
test_fs_saturate_propagation.cpp intel/brw: Change unit tests to use TEX_LOGICAL instead of TEX 2024-03-01 22:19:50 +00:00
test_fs_scoreboard.cpp intel/brw: Pull lower_scoreboard out of fs_visitor 2024-02-26 20:54:25 +00:00
test_predicated_break.cpp intel/brw: Use fs_visitor instead of backend_shader in various passes 2024-02-29 19:28:05 +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