summaryrefslogtreecommitdiffstats
path: root/src/intel/compiler/brw_fs.cpp
diff options
context:
space:
mode:
authorSamuel Iglesias Gonsálvez <[email protected]>2017-01-20 08:47:05 +0100
committerFrancisco Jerez <[email protected]>2017-04-14 14:56:07 -0700
commitaeecc82d057adf43189d08214b21ca5166ad9682 (patch)
treee1eb456a4d5371a10d853d12c1da9468cc968d97 /src/intel/compiler/brw_fs.cpp
parent94ffeb7fa2257af3eb416a1e720e08911835665b (diff)
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 <[email protected]> Reviewed-by: Francisco Jerez <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_fs.cpp')
-rw-r--r--src/intel/compiler/brw_fs.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index 086b1a04855..8eb8789905c 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -5694,11 +5694,6 @@ fs_visitor::optimize()
OPT(dead_code_eliminate);
}
- if (OPT(lower_d2x)) {
- OPT(opt_copy_propagation);
- OPT(dead_code_eliminate);
- }
-
OPT(lower_simd_width);
/* After SIMD lowering just in case we had to unroll the EOT send. */
@@ -5745,6 +5740,12 @@ fs_visitor::optimize()
OPT(dead_code_eliminate);
}
+ if (OPT(lower_d2x)) {
+ OPT(opt_copy_propagation);
+ OPT(dead_code_eliminate);
+ OPT(lower_simd_width);
+ }
+
lower_uniform_pull_constant_loads();
validate();