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