From 9fcaba9d544322805cc2612f2ce9ecd6d10144e3 Mon Sep 17 00:00:00 2001 From: hubicka Date: Sun, 8 Oct 2017 10:42:54 +0000 Subject: [PATCH] * i386.c (ix86_expand_set_or_movmem): Disable 512bit loops for targets that preffer 128bit. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@253524 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/config/i386/i386.c | 3 +++ 2 files changed, 8 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e7453131f69..3890fad861e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2017-10-08 Jan Hubicka + * i386.c (ix86_expand_set_or_movmem): Disable 512bit loops for targets + that preffer 128bit. + +2017-10-08 Jan Hubicka + * i386.c (has_dispatch): Disable for Ryzen. 2017-10-08 Olivier Hainque diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 8613aa8fa66..1ee8351c21f 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -28947,6 +28947,9 @@ ix86_expand_set_or_movmem (rtx dst, rtx src, rtx count_exp, rtx val_exp, && optab_handler (mov_optab, wider_mode) != CODE_FOR_nothing) move_mode = wider_mode; + if (TARGET_AVX128_OPTIMAL && GET_MODE_BITSIZE (move_mode) > 128) + move_mode = TImode; + /* Find the corresponding vector mode with the same size as MOVE_MODE. MOVE_MODE is an integer mode at the moment (SI, DI, TI, etc.). */ if (GET_MODE_SIZE (move_mode) > GET_MODE_SIZE (word_mode)) -- 2.11.4.GIT