From 41ee4e75ab27ebf63d1512fc56e673fdee74e8aa Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Mon, 31 Dec 2018 11:05:30 +0100 Subject: [PATCH] * x86-tune.def: Enable inter_unit_moves_to_vec for generic. From-SVN: r267484 --- gcc/ChangeLog | 4 ++++ gcc/config/i386/x86-tune.def | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 54585381cbe..5ef85238541 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2018-12-30 Jan Hubicka + + * x86-tune.def: Enable inter_unit_moves_to_vec for generic. + 2018-12-30 Martin Sebor Jeff Law diff --git a/gcc/config/i386/x86-tune.def b/gcc/config/i386/x86-tune.def index b91dca18af9..02d8eda997f 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