aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Sawdey <acsawdey@linux.ibm.com>2018-06-26 16:46:51 +0000
committerAaron Sawdey <acsawdey@gcc.gnu.org>2018-06-26 11:46:51 -0500
commit31369f5a35b99cc01b9f895cd0d063c58fe19dfa (patch)
tree5bbd6e356f2cc661171bf8ba8223168b31e59ec4
parent12169ac7962bf7b2dbbb5179561e0d21cb0f3381 (diff)
downloadgcc-31369f5a35b99cc01b9f895cd0d063c58fe19dfa.zip
gcc-31369f5a35b99cc01b9f895cd0d063c58fe19dfa.tar.gz
gcc-31369f5a35b99cc01b9f895cd0d063c58fe19dfa.tar.bz2
rs6000-string.c (expand_block_clear): Don't use unaligned vsx for 16B memset.
2018-06-26 Aaron Sawdey <acsawdey@linux.ibm.com> * config/rs6000/rs6000-string.c (expand_block_clear): Don't use unaligned vsx for 16B memset. From-SVN: r262158
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000-string.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ebe29e6..e365a56 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-06-26 Aaron Sawdey <acsawdey@linux.ibm.com>
+
+ * config/rs6000/rs6000-string.c (expand_block_clear): Don't use
+ unaligned vsx for 16B memset.
+
2018-06-26 Segher Boessenkool <segher@kernel.crashing.org>
PR target/86285
diff --git a/gcc/config/rs6000/rs6000-string.c b/gcc/config/rs6000/rs6000-string.c
index 7e49568..f9dd54e 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;