From 08a9e4e734ed74775a014fbe02699c290fbbd5cc Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Sun, 8 Oct 2017 12:42:54 +0200 Subject: [PATCH] i386.c (ix86_expand_set_or_movmem): Disable 512bit loops for targets that preffer 128bit. * i386.c (ix86_expand_set_or_movmem): Disable 512bit loops for targets that preffer 128bit. From-SVN: r253524 --- 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,3 +1,8 @@ +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. 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.30.2