aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/i386/x86-tune.def8
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 54585381..5ef8523 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2018-12-30 Jan Hubicka <hubicka@ucw.cz>
+
+ * x86-tune.def: Enable inter_unit_moves_to_vec for generic.
+
2018-12-30 Martin Sebor <msebor@redhat.com>
Jeff Law <law@redhat.com>
diff --git a/gcc/config/i386/x86-tune.def b/gcc/config/i386/x86-tune.def
index b91dca1..02d8eda 100644
--- a/gcc/config/i386/x86-tune.def
+++ b/gcc/config/i386/x86-tune.def
@@ -379,9 +379,13 @@ DEF_TUNE (X86_TUNE_SSE_LOAD0_BY_PXOR, "sse_load0_by_pxor",
/* X86_TUNE_INTER_UNIT_MOVES_TO_VEC: Enable moves in from integer
to SSE registers. If disabled, the moves will be done by storing
- the value to memory and reloading. */
+ the value to memory and reloading.
+ Enable this flag for generic - the only relevant architecture preferring
+ no inter-unit moves is Buldozer. While this makes small regression on SPECfp
+ scores (sub 0.3%), disabling inter-unit moves penalizes noticeably hand
+ written vectorized code which use i.e. _mm_set_epi16. */
DEF_TUNE (X86_TUNE_INTER_UNIT_MOVES_TO_VEC, "inter_unit_moves_to_vec",
- ~(m_ATHLON_K8 | m_AMDFAM10 | m_BDVER | m_BTVER | m_GENERIC))
+ ~(m_ATHLON_K8 | m_AMDFAM10 | m_BDVER | m_BTVER))
/* X86_TUNE_INTER_UNIT_MOVES_TO_VEC: Enable moves in from SSE
to integer registers. If disabled, the moves will be done by storing