From 31369f5a35b99cc01b9f895cd0d063c58fe19dfa Mon Sep 17 00:00:00 2001 From: Aaron Sawdey Date: Tue, 26 Jun 2018 16:46:51 +0000 Subject: [PATCH] rs6000-string.c (expand_block_clear): Don't use unaligned vsx for 16B memset. 2018-06-26 Aaron Sawdey * config/rs6000/rs6000-string.c (expand_block_clear): Don't use unaligned vsx for 16B memset. From-SVN: r262158 --- gcc/ChangeLog | 5 +++++ gcc/config/rs6000/rs6000-string.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ebe29e61fa8..e365a56be68 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-06-26 Aaron Sawdey + + * config/rs6000/rs6000-string.c (expand_block_clear): Don't use + unaligned vsx for 16B memset. + 2018-06-26 Segher Boessenkool PR target/86285 diff --git a/gcc/config/rs6000/rs6000-string.c b/gcc/config/rs6000/rs6000-string.c index 7e49568a1ed..f9dd54eb639 100644 --- a/gcc/config/rs6000/rs6000-string.c +++ b/gcc/config/rs6000/rs6000-string.c @@ -90,7 +90,9 @@ expand_block_clear (rtx operands[]) machine_mode mode = BLKmode; rtx dest; - if (bytes >= 16 && TARGET_ALTIVEC && (align >= 128 || TARGET_EFFICIENT_UNALIGNED_VSX)) + if (TARGET_ALTIVEC + && ((bytes >= 16 && align >= 128) + || (bytes >= 32 && TARGET_EFFICIENT_UNALIGNED_VSX))) { clear_bytes = 16; mode = V4SImode;