public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization
@ 2015-03-18  3:52 anton at samba dot org
  2015-03-18  7:26 ` [Bug target/65456] " trippels at gcc dot gnu.org
                   ` (25 more replies)
  0 siblings, 26 replies; 27+ messages in thread
From: anton at samba dot org @ 2015-03-18  3:52 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65456

            Bug ID: 65456
           Summary: powerpc64le autovectorized copy loop missed
                    optimization
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: anton at samba dot org

Created attachment 35049
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35049&action=edit
Testcase pulled from valgrind

The attached copy loop (out of valgrind) produces some pretty bad code:

     df8:       e4 06 9e 78     rldicr  r30,r4,0,59
     dfc:       e4 26 df 78     rldicr  r31,r6,4,59
     e00:       10 00 84 38     addi    r4,r4,16
     e04:       01 00 c6 38     addi    r6,r6,1
     e08:       99 f6 20 7c     lxvd2x  vs33,0,r30
     e0c:       57 0a 21 f0     xxswapd vs33,vs33
     e10:       2b 03 a1 11     vperm   v13,v1,v0,v12
     e14:       97 0c 01 f0     xxlor   vs32,vs33,vs33
     e18:       56 6a 0d f0     xxswapd vs0,vs45
     e1c:       98 4f 1f 7c     stxvd2x vs0,r31,r9
     e20:       d8 ff 00 42     bdnz    df8 <memmove+0x6e8>

Since we are using VSX storage ops, we should just align the source and do
unaligned stores. That will remove the permute, and then the gcc pass to remove
redundant swaps should kick in and remove them too.


^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2015-05-06 12:07 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
2015-03-18  7:26 ` [Bug target/65456] " trippels at gcc dot gnu.org
2015-03-18  7:34 ` [Bug target/65456] [5 Regression] " trippels at gcc dot gnu.org
2015-03-18  7:50 ` [Bug target/65456] " trippels at gcc dot gnu.org
2015-03-18 11:29 ` rguenth at gcc dot gnu.org
2015-03-18 23:23 ` dje at gcc dot gnu.org
2015-03-19 19:25 ` msebor at gcc dot gnu.org
2015-03-19 22:52 ` anton at samba dot org
2015-03-20 14:47 ` wschmidt at gcc dot gnu.org
2015-03-22 16:59 ` wschmidt at gcc dot gnu.org
2015-03-23  4:21 ` dje at gcc dot gnu.org
2015-03-23 13:50 ` wschmidt at gcc dot gnu.org
2015-03-28  2:19 ` wschmidt at gcc dot gnu.org
2015-03-28 11:40 ` amodra at gmail dot com
2015-03-29 18:24 ` wschmidt at gcc dot gnu.org
2015-03-29 19:30 ` wschmidt at gcc dot gnu.org
2015-04-23  0:22 ` wschmidt at gcc dot gnu.org
2015-04-23 21:04 ` wschmidt at gcc dot gnu.org
2015-04-24 13:45 ` wschmidt at gcc dot gnu.org
2015-04-24 20:17 ` wschmidt at gcc dot gnu.org
2015-04-24 20:46 ` wschmidt at gcc dot gnu.org
2015-05-04 14:50 ` ro at gcc dot gnu.org
2015-05-04 14:51 ` ro at gcc dot gnu.org
2015-05-04 20:56 ` wschmidt at gcc dot gnu.org
2015-05-05 13:37 ` ro at CeBiTec dot Uni-Bielefeld.DE
2015-05-06 11:34 ` ro at CeBiTec dot Uni-Bielefeld.DE
2015-05-06 12:07 ` wschmidt at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).