mesa/src/intel/compiler
Samuel Iglesias Gonsálvez aeecc82d05 i965/fs: generalize the legalization d2x pass
Generalize it to lower any unsupported narrower conversion.

v2 (Curro):
- Add supports_type_conversion()
- Reuse existing intruction instead of cloning it.
- Generalize d2x to narrower and equal size conversions.

v3 (Curro):
- Make supports_type_conversion() const and improve it.
- Use foreach_block_and_inst to process added instructions.
- Simplify code.
- Add assert and improve comments.
- Remove redundant mov.
- Remove useless comment.
- Remove saturate == false assert and add support for saturation
  when fixing the conversion.
- Add get_exec_type() function.

v4 (Curro):
- Use get_exec_type() function to get sources' type.

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
2017-04-14 14:56:07 -07:00
..
.gitignore
brw_cfg.cpp
brw_cfg.h intel/compiler: consistently use ifndef guards over pragma once 2017-03-22 16:55:22 +00:00
brw_compiler.c
brw_compiler.h anv/pipeline: make FragCoord include sample positions when sample shading 2017-03-24 08:11:53 +01: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/disasm: also print nibctrl in IVB for execsize=8 2017-04-14 14:56:06 -07:00
brw_eu.c
brw_eu.h
brw_eu_compact.c
brw_eu_defines.h intel: fix compiler build 2017-03-13 13:09:24 +01:00
brw_eu_emit.c
brw_eu_util.c intel/compiler: whitespace cleanups 2017-03-13 11:16:35 +00:00
brw_eu_validate.c i965: Handle IVB DF differences in the validator. 2017-04-14 14:56:07 -07:00
brw_fs.cpp i965/fs: generalize the legalization d2x pass 2017-04-14 14:56:07 -07:00
brw_fs.h intel/compiler: consistently use ifndef guards over pragma once 2017-03-22 16:55:22 +00:00
brw_fs_builder.h
brw_fs_cmod_propagation.cpp
brw_fs_combine_constants.cpp
brw_fs_copy_propagation.cpp
brw_fs_cse.cpp
brw_fs_dead_code_eliminate.cpp
brw_fs_generator.cpp i965: Use <0,2,1> region for scalar DF sources on IVB/BYT. 2017-04-14 14:56:07 -07:00
brw_fs_live_variables.cpp
brw_fs_live_variables.h intel/compiler: consistently use ifndef guards over pragma once 2017-03-22 16:55:22 +00:00
brw_fs_lower_d2x.cpp i965/fs: generalize the legalization d2x pass 2017-04-14 14:56:07 -07:00
brw_fs_lower_pack.cpp
brw_fs_nir.cpp i965/fs: Always provide a default LOD of 0 for TXS and TXL 2017-04-04 18:33:35 -07:00
brw_fs_reg_allocate.cpp i965/fs: Take into account lower frequency of conditional blocks in spilling cost heuristic. 2017-04-11 15:28:54 -07:00
brw_fs_register_coalesce.cpp
brw_fs_saturate_propagation.cpp
brw_fs_sel_peephole.cpp i965/fs: Don't emit SEL instructions for type-converting MOVs. 2017-03-27 10:59:42 -07:00
brw_fs_surface_builder.cpp
brw_fs_surface_builder.h
brw_fs_validate.cpp
brw_fs_visitor.cpp
brw_inst.h
brw_interpolation_map.c
brw_ir_allocator.h
brw_ir_fs.h i965/fs: add helper to retrieve instruction execution type 2017-04-14 14:56:07 -07:00
brw_ir_vec4.h
brw_nir.c i965: Replace OPT_V() with OPT(). 2017-03-23 14:34:44 -07:00
brw_nir.h intel/compiler: consistently use ifndef guards over pragma once 2017-03-22 16:55:22 +00:00
brw_nir_analyze_boolean_resolves.c
brw_nir_attribute_workarounds.c nir: Rework conversion opcodes 2017-03-14 07:36:40 -07:00
brw_nir_intrinsics.c
brw_nir_opt_peephole_ffma.c
brw_nir_tcs_workarounds.c
brw_nir_trig_workarounds.py
brw_packed_float.c
brw_predicated_break.cpp
brw_reg.h i965/fs: add helper to retrieve instruction execution type 2017-04-14 14:56:07 -07:00
brw_schedule_instructions.cpp
brw_shader.cpp i965: expose BRW_OPCODE_[F32TO16/F16TO32] name on gen8+ 2017-03-29 17:34:15 +02:00
brw_shader.h intel/compiler: consistently use ifndef guards over pragma once 2017-03-22 16:55:22 +00:00
brw_vec4.cpp
brw_vec4.h i965/vec4: Get rid of the type parameter from to/from_double 2017-03-14 07:36:40 -07:00
brw_vec4_builder.h
brw_vec4_cmod_propagation.cpp
brw_vec4_copy_propagation.cpp
brw_vec4_cse.cpp
brw_vec4_dead_code_eliminate.cpp
brw_vec4_generator.cpp
brw_vec4_gs_nir.cpp
brw_vec4_gs_visitor.cpp
brw_vec4_gs_visitor.h
brw_vec4_live_variables.cpp
brw_vec4_live_variables.h intel/compiler: consistently use ifndef guards over pragma once 2017-03-22 16:55:22 +00:00
brw_vec4_nir.cpp intel/vec4: Add some fall through comments 2017-04-03 16:58:35 -07:00
brw_vec4_reg_allocate.cpp
brw_vec4_surface_builder.cpp
brw_vec4_surface_builder.h
brw_vec4_tcs.cpp
brw_vec4_tcs.h
brw_vec4_tes.cpp
brw_vec4_tes.h
brw_vec4_visitor.cpp
brw_vec4_vs.h
brw_vec4_vs_visitor.cpp
brw_vue_map.c
brw_wm_iz.cpp intel/compiler: whitespace cleanups 2017-03-13 11:16:35 +00:00
gen6_gs_visitor.cpp
gen6_gs_visitor.h
intel_asm_annotation.c
intel_asm_annotation.h
test_eu_compact.cpp
test_eu_validate.cpp
test_fs_cmod_propagation.cpp
test_fs_copy_propagation.cpp
test_fs_saturate_propagation.cpp
test_vec4_cmod_propagation.cpp
test_vec4_copy_propagation.cpp
test_vec4_register_coalesce.cpp
test_vf_float_conversions.cpp