diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 54585381cbe4e0611a31baa4f52182774a897120..5ef85238541ad9186d97b5ae779de1250e078b91 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 b91dca18af9e5ea68a85184894de1be823f99e0b..02d8eda997fa20afc1429fc09b91385b06995742 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