diff options
author | Aaron Sawdey <acsawdey@linux.ibm.com> | 2018-11-29 03:56:14 +0000 |
---|---|---|
committer | Aaron Sawdey <acsawdey@gcc.gnu.org> | 2018-11-28 21:56:14 -0600 |
commit | 645eee7431fef4cc37c5307a6c6f81fcc6c553d4 (patch) | |
tree | 673904390a79b188f271706b80f1a2bbafa46f55 | |
parent | ffe2c05539d5ec6bfc4154fcdc71c41adf900a29 (diff) | |
download | gcc-645eee7431fef4cc37c5307a6c6f81fcc6c553d4.zip gcc-645eee7431fef4cc37c5307a6c6f81fcc6c553d4.tar.gz gcc-645eee7431fef4cc37c5307a6c6f81fcc6c553d4.tar.bz2 |
rs6000-string.c (expand_block_clear): Change how we determine if unaligned vsx is ok.
2018-11-28 Aaron Sawdey <acsawdey@linux.ibm.com>
* config/rs6000/rs6000-string.c (expand_block_clear): Change how
we determine if unaligned vsx is ok.
From-SVN: r266599
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000-string.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6607cd7..98f4f3f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-11-28 Aaron Sawdey <acsawdey@linux.ibm.com> + + * config/rs6000/rs6000-string.c (expand_block_clear): Change how + we determine if unaligned vsx is ok. + 2018-11-28 Jan Hubicka <jh@suse.cz> * predict.c (determine_unlikely_bbs): Forward declare; also determine diff --git a/gcc/config/rs6000/rs6000-string.c b/gcc/config/rs6000/rs6000-string.c index 620be2b..bc5bec2 100644 --- a/gcc/config/rs6000/rs6000-string.c +++ b/gcc/config/rs6000/rs6000-string.c @@ -85,14 +85,15 @@ expand_block_clear (rtx operands[]) if (! optimize_size && bytes > 8 * clear_step) return 0; + bool unaligned_vsx_ok = (bytes >= 32 && TARGET_EFFICIENT_UNALIGNED_VSX); + for (offset = 0; bytes > 0; offset += clear_bytes, bytes -= clear_bytes) { machine_mode mode = BLKmode; rtx dest; if (TARGET_ALTIVEC - && ((bytes >= 16 && align >= 128) - || (bytes >= 32 && TARGET_EFFICIENT_UNALIGNED_VSX))) + && (bytes >= 16 && (align >= 128 || unaligned_vsx_ok))) { clear_bytes = 16; mode = V4SImode; |