mesa/src/intel/compiler
Paulo Zanoni d107a0bff8 intel/fs: Assert the GPU supports 64bit ops if present at lower_scoreboard time.
On platforms where we don't support 64 bit instructions we shouldn't
pass such instructions for the code generator to lower into supported
instructions, because this makes their execution pipeline
unpredictable to the scoreboard lowering pass on XeHP+ platforms.

We really should be reducing all these 64 bit instructions before code
generation, so here we add an assert to help us catch and fix these
cases more easily.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
[ Francisco Jerez: Also allow has_integer_dword_mul. ]

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14273>
2022-01-25 22:40:44 +00:00
..
brw_cfg.cpp intel/fs: Add physical fall-through CFG edge for unconditional BREAK instruction. 2021-12-21 00:43:29 +00:00
brw_cfg.h intel/compiler: Add cfg_t::adjust_block_ips() method 2021-07-14 09:56:59 -07:00
brw_clip.h
brw_clip_line.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_clip_point.c
brw_clip_tri.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_clip_unfilled.c
brw_clip_util.c intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_compile_clip.c mesa/*: add a shader primitive type to get away from GL types. 2022-01-19 21:54:58 +00:00
brw_compile_ff_gs.c intel: fix INTEL_DEBUG environment variable on 32-bit systems 2021-10-15 19:55:14 +00:00
brw_compile_sf.c intel: fix INTEL_DEBUG environment variable on 32-bit systems 2021-10-15 19:55:14 +00:00
brw_compiler.c nir/algebraic: Separate has_dot_4x8 into has_sdot_4x8 and has_udot_4x8 2022-01-10 13:20:39 +02:00
brw_compiler.h intel/brw: drop gl header from the brw backend. 2022-01-19 21:54:58 +00:00
brw_dead_control_flow.cpp intel/compiler: Pass detailed dependency classes to invalidate_analysis() 2020-03-06 10:20:39 -08:00
brw_dead_control_flow.h
brw_debug_recompile.c mesa/*: use an internal enum for tessellation primitive types. 2022-01-19 21:54:58 +00:00
brw_disasm.c intel/compiler: Prepare disasm for 16-bit sampler params 2021-11-22 21:27:30 -08:00
brw_disasm_info.c intel: fix INTEL_DEBUG environment variable on 32-bit systems 2021-10-15 19:55:14 +00:00
brw_disasm_info.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_eu.cpp intel: fix INTEL_DEBUG environment variable on 32-bit systems 2021-10-15 19:55:14 +00:00
brw_eu.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_eu_compact.c intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_eu_defines.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_eu_emit.c intel/eu: Don't double-loop as often in brw_set_uip_jip 2021-12-18 01:46:19 +00:00
brw_eu_util.c intel: Rename genx keyword to gfxx in source files 2021-04-02 18:33:07 +00:00
brw_eu_validate.c intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_fs.cpp intel/fs: Reuse the same FS input slot for VUE header fields. 2022-01-19 01:31:47 +00:00
brw_fs.h intel/compiler: remove gfx6 gather wa from backend. 2021-12-22 21:37:55 +00:00
brw_fs_bank_conflicts.cpp intel: Fix alignment and line wrapping due to gen_device renaming 2021-04-20 20:06:33 +00:00
brw_fs_builder.h intel/compiler: Fix instruction size written calculation 2021-11-22 21:27:30 -08:00
brw_fs_cmod_propagation.cpp intel/fs: Fix a cmod prop bug when cmod is set to inst that doesn't support it 2021-11-01 21:08:12 +00:00
brw_fs_combine_constants.cpp intel/compiler: Fix missing break in switch 2021-07-22 23:38:04 +00:00
brw_fs_copy_propagation.cpp intel/compiler: Add new variant for TXF_CMS_W 2021-11-22 21:27:30 -08:00
brw_fs_cse.cpp intel/fs: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:20 -07:00
brw_fs_dead_code_eliminate.cpp intel/fs: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:20 -07:00
brw_fs_generator.cpp intel/fs: Perform 64-bit CLUSTER_BROADCAST lowering in the lower_regioning pass. 2022-01-25 22:40:44 +00:00
brw_fs_live_variables.cpp intel/fs: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:20 -07:00
brw_fs_live_variables.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_fs_lower_pack.cpp intel/compiler: Pass detailed dependency classes to invalidate_analysis() 2020-03-06 10:20:39 -08:00
brw_fs_lower_regioning.cpp intel/fs: Perform 64-bit CLUSTER_BROADCAST lowering in the lower_regioning pass. 2022-01-25 22:40:44 +00:00
brw_fs_nir.cpp intel/fs: Fix gl_FrontFacing optimization on Gfx12+ 2022-01-20 22:37:18 +00:00
brw_fs_reg_allocate.cpp intel/fs: Implement spilling on XeHP 2021-06-25 00:18:29 +00:00
brw_fs_register_coalesce.cpp intel/compiler: Update block IPs once in register_coalesce 2021-07-14 09:57:04 -07:00
brw_fs_saturate_propagation.cpp intel/compiler/fs: Switch liveness analysis to IR analysis framework 2020-03-06 10:20:57 -08:00
brw_fs_scoreboard.cpp intel/fs: Assert the GPU supports 64bit ops if present at lower_scoreboard time. 2022-01-25 22:40:44 +00:00
brw_fs_sel_peephole.cpp intel/fs: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:20 -07:00
brw_fs_validate.cpp
brw_fs_visitor.cpp intel/fs: Use compare_func for wm_prog_key::alpha_test_func 2022-01-14 15:08:09 +00:00
brw_gfx_ver_enum.h intel: Rename gen enum to gfx_ver 2021-04-20 20:06:34 +00:00
brw_inst.h intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_interpolation_map.c intel: Rename genx keyword to gfxx in source files 2021-04-02 18:33:07 +00:00
brw_ir.h intel/compiler: Add the ability to defer IP updates in backend_instruction::remove 2021-07-14 09:56:46 -07:00
brw_ir_allocator.h
brw_ir_analysis.h intel/compiler: use C++ template instead of preprocessor 2020-11-03 10:42:29 +00:00
brw_ir_fs.h intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_ir_performance.cpp intel/compiler: Use uppercase enum values in brw_ir_performance.cpp 2021-12-16 09:00:57 +00:00
brw_ir_performance.h intel/ir: Import shader performance analysis pass. 2020-04-28 23:01:03 -07:00
brw_ir_vec4.h intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_mesh.cpp mesa/*: add a shader primitive type to get away from GL types. 2022-01-19 21:54:58 +00:00
brw_nir.c mesa/*: use an internal enum for tessellation primitive types. 2022-01-19 21:54:58 +00:00
brw_nir.h mesa/*: use an internal enum for tessellation primitive types. 2022-01-19 21:54:58 +00:00
brw_nir_analyze_boolean_resolves.c
brw_nir_analyze_ubo_ranges.c intel/nir,i965: Move HW generation check for UBO pushing to i965 2021-06-03 05:12:33 +00:00
brw_nir_attribute_workarounds.c intel/compiler: use nir_shader_instructions_pass in brw_nir_apply_attribute_workarounds 2021-08-11 11:23:30 +00:00
brw_nir_clamp_image_1d_2d_array_sizes.c intel/compiler: use nir_shader_instructions_pass in brw_nir_clamp_image_1d_2d_array_sizes 2021-10-05 10:02:54 +00:00
brw_nir_lower_alpha_to_coverage.c intel/nir: Clean up lower_alpha_to_coverage a bit 2020-08-29 16:41:05 +00:00
brw_nir_lower_conversions.c intel/compiler: use nir_shader_instructions_pass in brw_nir_lower_conversions 2021-10-05 10:02:54 +00:00
brw_nir_lower_cs_intrinsics.c intel/compiler: Lower Task/Mesh local_invocation_{id,index} 2021-12-04 00:41:46 +00:00
brw_nir_lower_intersection_shader.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_nir_lower_mem_access_bit_sizes.c intel/nir: preserve access value when duping intrinsic 2021-12-04 20:46:35 +00:00
brw_nir_lower_rt_intrinsics.c intel/compiler: extract brw_nir_load_global_const out of rt code 2021-12-04 00:41:46 +00:00
brw_nir_lower_scoped_barriers.c intel/compiler: use nir_shader_instructions_pass in brw_nir_lower_scoped_barriers 2021-10-05 10:02:54 +00:00
brw_nir_lower_shader_calls.c intel/compiler: drop glsl options from brw_compiler 2021-12-07 08:52:36 +00:00
brw_nir_lower_storage_image.c intel/nir: also allow unknown format for getting the size of a storage image 2021-11-17 21:06:23 +00:00
brw_nir_opt_peephole_ffma.c intel/compiler: use nir_shader_instructions_pass in brw_nir_opt_peephole_ffma 2021-10-05 10:02:54 +00:00
brw_nir_rt.c intel/compiler: drop glsl options from brw_compiler 2021-12-07 08:52:36 +00:00
brw_nir_rt.h intel/rt: switch to common pass for shader calls lowering 2021-06-22 21:09:25 +00:00
brw_nir_rt_builder.h nir: drop the btd_resume_intel intrinsic 2021-06-22 21:09:25 +00:00
brw_nir_tcs_workarounds.c intel/compiler: use nir_metadata_none instead of its value 2021-10-05 10:02:54 +00:00
brw_nir_trig_workarounds.py python: drop python2 support 2021-08-14 21:44:32 +00:00
brw_packed_float.c intel/compiler: Cast to target type before shifting left 2019-10-24 16:19:23 +02:00
brw_predicated_break.cpp intel/compiler: Don't predicate a WHILE if there is a CONT 2021-12-08 14:56:32 -08:00
brw_private.h intel/compiler: Use SIMD selection helpers for variable workgroup size 2021-10-26 17:49:09 +00:00
brw_reg.h intel/fs: Take into account region strides during SIMD lowering decision of SHUFFLE. 2022-01-25 22:40:44 +00:00
brw_reg_type.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_reg_type.h intel/compiler: Move type_is_unsigned_int to brw_reg_type.h 2021-08-30 14:00:14 -07:00
brw_rt.h intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_schedule_instructions.cpp intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_shader.cpp mesa/*: use an internal enum for tessellation primitive types. 2022-01-19 21:54:58 +00:00
brw_shader.h intel/fs: Add a NONE scheduling mode 2021-12-18 01:46:19 +00:00
brw_simd_selection.c intel/compiler: Don't use SIMD larger than needed for workgroup 2021-10-26 17:49:09 +00:00
brw_vec4.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4.h intel/compiler: remove gfx6 gather wa from backend. 2021-12-22 21:37:55 +00:00
brw_vec4_builder.h intel: Rename Genx keyword to Gfxx 2021-04-02 18:33:07 +00:00
brw_vec4_cmod_propagation.cpp intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_copy_propagation.cpp intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_vec4_cse.cpp intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_dead_code_eliminate.cpp intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_generator.cpp intel/fs,vec4: Drop prog_data binding tables 2021-12-10 21:20:47 +00:00
brw_vec4_gs_nir.cpp nir: Add ability to count emitted GS primitives. 2020-10-09 15:26:14 +02:00
brw_vec4_gs_visitor.cpp mesa/*: add a shader primitive type to get away from GL types. 2022-01-19 21:54:58 +00:00
brw_vec4_gs_visitor.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_live_variables.cpp intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_live_variables.h intel/vec4: sel.cond writes the flags on Gfx4 and Gfx5 2021-08-11 13:09:32 -07:00
brw_vec4_nir.cpp intel/compiler: remove gfx6 gather wa from backend. 2021-12-22 21:37:55 +00:00
brw_vec4_reg_allocate.cpp intel/vec4: Use ra_alloc_contig_reg_class() to reduce RA overhead. 2021-06-04 19:08:57 +00:00
brw_vec4_surface_builder.cpp intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
brw_vec4_surface_builder.h
brw_vec4_tcs.cpp mesa/*: use an internal enum for tessellation primitive types. 2022-01-19 21:54:58 +00:00
brw_vec4_tcs.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_tes.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_tes.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_visitor.cpp intel/vec4: Inline emit_texture and move helpers to brw_vec4_nir.cpp 2021-12-16 00:09:45 -08:00
brw_vec4_vs.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vec4_vs_visitor.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
brw_vue_map.c intel: Rename gen_device prefix to intel_device 2021-04-20 20:06:33 +00:00
brw_wm_iz.cpp intel: Rename genx keyword to gfxx in source files 2021-04-02 18:33:07 +00:00
gfx6_gs_visitor.cpp intel/vec4: Don't override emit_urb_write_opcode for SNB GS 2021-08-11 23:57:52 +00:00
gfx6_gs_visitor.h intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
meson.build intel/compiler: Add backend compiler basics for Task/Mesh 2021-12-04 00:41:46 +00:00
test_eu_compact.cpp intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
test_eu_validate.cpp intel: move away from booleans to identify platforms 2021-11-08 16:48:06 +00:00
test_fs_cmod_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_fs_copy_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_fs_saturate_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_fs_scoreboard.cpp intel/compiler/test: Fix build with GCC 7 2021-12-30 19:59:52 +00:00
test_simd_selection.cpp intel/compiler: Initialize SIMDSelectionTest member error. 2021-11-03 04:22:35 +00:00
test_vec4_cmod_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_vec4_copy_propagation.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_vec4_dead_code_eliminate.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_vec4_register_coalesce.cpp intel/fs,vec4: Drop support for shader time 2021-12-10 21:20:47 +00:00
test_vf_float_conversions.cpp