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;