* x86-tune.def: Enable inter_unit_moves_to_vec for generic.
authorJan Hubicka <hubicka@ucw.cz>
Mon, 31 Dec 2018 10:05:30 +0000 (11:05 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Mon, 31 Dec 2018 10:05:30 +0000 (10:05 +0000)
From-SVN: r267484

gcc/ChangeLog
gcc/config/i386/x86-tune.def

index 54585381cbe4e0611a31baa4f52182774a897120..5ef85238541ad9186d97b5ae779de1250e078b91 100644 (file)
@@ -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>
 
index b91dca18af9e5ea68a85184894de1be823f99e0b..02d8eda997fa20afc1429fc09b91385b06995742 100644 (file)
@@ -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