mesa/src/intel/compiler
Iago Toral Quiroga 5a12bdac09 i965/compiler: handle conversion to smaller type in the lowering pass for that
This rollbacks the revert of this same patch introduced in
commit 7b9c15628a.

And also squahes the following patch to prevent a piglit regression caused
by this change:

intel/compiler: Fix lower_conversions for 8-bit types.
Author: Jose Maria Casanova Crespo <jmcasanova@igalia.com>

For 8-bit types the execution type is word. A byte raw MOV has 16-bit
execution type and 8-bit destination and it shouldn't be considered
a conversion case. So there is no need to change alignment and enter
in lower_conversions for these instructions.

Fixes a regresion in the piglit test "glsl-fs-shader-stencil-export"
that is introduced with this patch from the Vulkan shaderInt16 series:
'i965/compiler: handle conversion to smaller type in the lowering
pass for that'. The problem is caused because there is already a case
in the driver that injects Byte instructions like this:

mov(8)          g127<1>UB       g2<32,8,4>UB

And the aforementioned pass was not accounting for the special
handling of the execution size of Byte instructions. This patch
fixes this.

v2: (Jason Ekstrand)
   - Simplify is_byte_raw_mov, include reference to PRM and not
   consider B <-> UB conversions as raw movs.

v3: (Matt Turner)
   - Indentation style fixes.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106393
Tested-by: Mark Janes <mark.a.janes@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
2018-05-05 12:41:02 +02:00
..
.gitignore
brw_cfg.cpp intel/cfg: Represent divergent control flow paths caused by non-uniform loop execution. 2017-12-07 18:27:05 -08:00
brw_cfg.h intel/compiler: consistently use ifndef guards over pragma once 2017-03-22 16:55:22 +00:00
brw_clip.h i965: Move clip program compilation to the compiler 2017-05-26 07:58:01 -07:00
brw_clip_line.c i965: Move clip program compilation to the compiler 2017-05-26 07:58:01 -07:00
brw_clip_point.c i965: Move clip program compilation to the compiler 2017-05-26 07:58:01 -07:00
brw_clip_tri.c i965: Don't emit MOVs with undefined registers for Gen4 point clipping. 2018-02-28 15:03:51 -08:00
brw_clip_unfilled.c i965: Move clip program compilation to the compiler 2017-05-26 07:58:01 -07:00
brw_clip_util.c i965: Move clip program compilation to the compiler 2017-05-26 07:58:01 -07:00
brw_compile_clip.c i965: Rewrite disassembly annotation code 2017-11-17 12:14:38 -08:00
brw_compile_sf.c i965: Move SF compilation to the compiler 2017-05-26 07:58:01 -07:00
brw_compiler.c intel: activate the gl_BaseVertex lowering 2018-05-02 11:24:46 +02:00
brw_compiler.h intel: activate the gl_BaseVertex lowering 2018-05-02 11:24:46 +02:00
brw_dead_control_flow.cpp
brw_dead_control_flow.h intel/compiler: consistently use ifndef guards over pragma once 2017-03-22 16:55:22 +00:00
brw_disasm.c i965/fs: Add infrastructure for generating CSEL instructions. 2018-03-08 15:26:26 -08:00
brw_disasm_info.c i965: Move mistakenly placed line 2018-02-05 09:50:56 -08:00
brw_disasm_info.h i965: Stop including brw_cfg.h in brw_disasm_info.h 2017-11-17 21:51:16 -08:00
brw_eu.c intel/compiler: Mark line, pln, and lrp as removed on Gen11+ 2018-02-28 11:15:47 -08:00
brw_eu.h mesa: include mtypes.h less 2018-04-12 19:31:30 -04:00
brw_eu_compact.c intel/compiler: Add instruction compaction support on Gen11 2018-02-28 11:15:47 -08:00
brw_eu_defines.h intel/fs: Add support for subgroup quad operations 2018-03-07 12:13:47 -08:00
brw_eu_emit.c intel/compiler/icl: Clear "null render target" bit in extended message descriptor 2018-03-22 09:56:09 -07:00
brw_eu_util.c intel/compiler: whitespace cleanups 2017-03-13 11:16:35 +00:00
brw_eu_validate.c intel/compiler: Add Gen11+ native float type 2018-02-28 11:15:47 -08:00
brw_fs.cpp intel/compiler: Silence unused parameter warning in compile_cs_to_nir 2018-04-24 14:31:21 -04:00
brw_fs.h i965/fs: Merge CMP and SEL into CSEL on Gen8+ 2018-03-08 15:26:26 -08:00
brw_fs_bank_conflicts.cpp intel/fs/bank_conflicts: Use posix_memalign() instead of overaligned new to obtain vector storage. 2017-12-21 15:19:59 -08:00
brw_fs_builder.h i965/fs: Add infrastructure for generating CSEL instructions. 2018-03-08 15:26:26 -08:00
brw_fs_cmod_propagation.cpp i965/fs: Propagate conditional modifiers from compares to adds 2018-03-26 08:50:43 -07:00
brw_fs_combine_constants.cpp
brw_fs_copy_propagation.cpp intel/fs: Optimize and simplify the copy propagation dataflow logic. 2018-01-17 11:56:08 -08:00
brw_fs_cse.cpp
brw_fs_dead_code_eliminate.cpp
brw_fs_generator.cpp intel/compiler: Silence unused parameter warnings in generate_foo methods 2018-04-24 14:31:21 -04:00
brw_fs_live_variables.cpp intel/fs: Restrict live intervals to the subset possibly reachable from any definition. 2017-12-07 18:27:04 -08:00
brw_fs_live_variables.h intel/fs: Restrict live intervals to the subset possibly reachable from any definition. 2017-12-07 18:27:04 -08:00
brw_fs_lower_conversions.cpp i965/compiler: handle conversion to smaller type in the lowering pass for that 2018-05-05 12:41:02 +02:00
brw_fs_lower_pack.cpp
brw_fs_nir.cpp i965/compiler: handle conversion to smaller type in the lowering pass for that 2018-05-05 12:41:02 +02:00
brw_fs_reg_allocate.cpp intel/fs: Take into account amount of data read in spilling cost heuristic. 2017-04-24 11:01:40 -07:00
brw_fs_register_coalesce.cpp
brw_fs_saturate_propagation.cpp i965/fs: Handle negating immediates on MADs when propagating saturates 2017-11-21 10:13:07 -08:00
brw_fs_sel_peephole.cpp i965/fs: Do not move MOVs writing the flag outside of control flow 2017-07-20 16:56:49 -07:00
brw_fs_surface_builder.cpp i965/fs: Add byte scattered read message and fs support 2017-12-06 08:57:18 +01:00
brw_fs_surface_builder.h i965/fs: Add byte scattered read message and fs support 2017-12-06 08:57:18 +01:00
brw_fs_validate.cpp
brw_fs_visitor.cpp intel/fs: Initialize fs_visitor::grf_used on construction. 2017-12-21 15:20:17 -08:00
brw_inst.h intel/compiler/icl: Clear "null render target" bit in extended message descriptor 2018-03-22 09:56:09 -07:00
brw_interpolation_map.c
brw_ir_allocator.h
brw_ir_fs.h i965: Add negative_equals methods 2018-03-26 08:50:43 -07:00
brw_ir_vec4.h intel/compiler: Add scheduler deps for instructions that implicitly read g0 2018-04-24 14:31:21 -04:00
brw_nir.c compiler/lower_64bit_packing: rename the pass to be more generic 2018-05-03 11:40:26 +02:00
brw_nir.h i965: remove unused brw_nir_lower_cs_shared() 2018-02-07 08:38:01 +11:00
brw_nir_analyze_boolean_resolves.c
brw_nir_analyze_ubo_ranges.c intel/compiler: fix 64bit value prints on 32bit 2018-02-10 17:59:02 +02:00
brw_nir_attribute_workarounds.c i965: Drop support for the legacy SNORM -> Float equation. 2018-01-02 16:51:42 -08:00
brw_nir_lower_cs_intrinsics.c i965/fs: Implement basic SPIR-V subgroup intrinsics 2018-03-07 12:13:47 -08:00
brw_nir_opt_peephole_ffma.c
brw_nir_tcs_workarounds.c nir: Get rid of nir_shader::stage 2017-10-20 12:49:17 -07:00
brw_nir_trig_workarounds.py intel: use a flag instead of setting PYTHONPATH 2017-09-27 09:07:28 -07:00
brw_packed_float.c
brw_predicated_break.cpp
brw_reg.h intel/compiler: fix brw_imm_w for negative 16-bit integers 2018-05-03 11:40:25 +02:00
brw_reg_type.c intel/compiler: Check for unsupported register sizes. 2018-03-16 09:27:16 -07:00
brw_reg_type.h intel/compiler: Add Gen11+ native float type 2018-02-28 11:15:47 -08:00
brw_schedule_instructions.cpp intel/compiler: Add scheduler deps for instructions that implicitly read g0 2018-04-24 14:31:21 -04:00
brw_shader.cpp intel/compiler: support negate and abs of half float immediates 2018-05-03 11:40:25 +02:00
brw_shader.h i965: Add negative_equals methods 2018-03-26 08:50:43 -07:00
brw_vec4.cpp intel: activate the gl_BaseVertex lowering 2018-05-02 11:24:46 +02:00
brw_vec4.h i965/vec4: Fix null destination register in 3-source instructions 2018-03-26 08:50:44 -07:00
brw_vec4_builder.h intel/compiler: Lower flrp32 on Gen11+ 2018-02-28 11:15:47 -08:00
brw_vec4_cmod_propagation.cpp i965/vec4: Propagate conditional modifiers from compares to adds 2018-03-26 08:50:43 -07:00
brw_vec4_copy_propagation.cpp i965: Support copy propagating of untyped atomic surface indexes. 2017-09-26 15:35:14 -07:00
brw_vec4_cse.cpp i965/vec4: Allow CSE on subset VF constant loads 2018-03-08 15:26:26 -08:00
brw_vec4_dead_code_eliminate.cpp i965/vec4/dce: improve track of partial flag register writes 2017-04-14 14:56:09 -07:00
brw_vec4_generator.cpp intel/compiler: Silence unused parameter warnings in generate_foo methods 2018-04-24 14:31:21 -04:00
brw_vec4_gs_nir.cpp i965/vec4: Delete the system value infastructure 2017-05-09 15:08:07 -07:00
brw_vec4_gs_visitor.cpp intel: Drop program size pointer from vec4/fs assembly getters. 2018-03-02 14:20:22 -08:00
brw_vec4_gs_visitor.h i965/vec4: Delete the system value infastructure 2017-05-09 15:08:07 -07:00
brw_vec4_live_variables.cpp
brw_vec4_live_variables.h i965/vec4: consider subregister offset in live variables 2017-04-14 14:56:08 -07:00
brw_vec4_nir.cpp i965: Combine {VS,FS}_OPCODE_GET_BUFFER_SIZE opcodes. 2017-12-30 20:30:34 -08:00
brw_vec4_reg_allocate.cpp i965/vec4: Return float from spill_cost_for_type() 2017-08-21 14:45:44 -07:00
brw_vec4_surface_builder.cpp i965/vec4: Fix swizzles on atomic sources. 2017-09-26 15:35:11 -07:00
brw_vec4_surface_builder.h
brw_vec4_tcs.cpp intel: Drop program size pointer from vec4/fs assembly getters. 2018-03-02 14:20:22 -08:00
brw_vec4_tcs.h i965/vec4: Delete the system value infastructure 2017-05-09 15:08:07 -07:00
brw_vec4_tes.cpp i965/vec4: Delete the system value infastructure 2017-05-09 15:08:07 -07:00
brw_vec4_tes.h i965/vec4: Delete the system value infastructure 2017-05-09 15:08:07 -07:00
brw_vec4_visitor.cpp compiler: int8/uint8 support 2018-03-14 10:08:42 -04:00
brw_vec4_vs.h i965: Drop support for the legacy SNORM -> Float equation. 2018-01-02 16:51:42 -08:00
brw_vec4_vs_visitor.cpp i965: Drop support for the legacy SNORM -> Float equation. 2018-01-02 16:51:42 -08:00
brw_vue_map.c
brw_wm_iz.cpp nir: Embed the shader_info in the nir_shader again 2017-05-09 15:07:47 -07:00
gen6_gs_visitor.cpp i965: Move SOL PSIZ hacks from draw time to link time. 2017-06-01 00:08:29 -07:00
gen6_gs_visitor.h
meson.build intel/compiler: Use gen_get_device_info() in test_eu_validate 2018-03-16 13:20:21 -07:00
test_eu_compact.cpp intel/ir: Fix invalid type aliasing with undefined behavior in test_eu_compact. 2018-02-27 11:42:39 -08:00
test_eu_validate.cpp intel/compiler: Readd ICL to test_eu_validate.cpp 2018-03-22 09:56:09 -07:00
test_fs_cmod_propagation.cpp i965/fs: Propagate conditional modifiers from compares to adds 2018-03-26 08:50:43 -07:00
test_fs_copy_propagation.cpp
test_fs_saturate_propagation.cpp i965/fs: Check ADD/MAD with immediates in satprop unit test 2017-11-21 10:13:07 -08:00
test_vec4_cmod_propagation.cpp
test_vec4_copy_propagation.cpp
test_vec4_register_coalesce.cpp
test_vf_float_conversions.cpp