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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  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 ` trippels at gcc dot gnu.org
  2015-03-18  7:34 ` [Bug target/65456] [5 Regression] " trippels at gcc dot gnu.org
                   ` (24 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: trippels at gcc dot gnu.org @ 2015-03-18  7:26 UTC (permalink / raw)
  To: gcc-bugs

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

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |trippels at gcc dot gnu.org

--- Comment #1 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Could you please post the exact compiler invocation?


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

* [Bug target/65456] [5 Regression] powerpc64le autovectorized copy loop missed optimization
  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 ` trippels at gcc dot gnu.org
  2015-03-18  7:50 ` [Bug target/65456] " trippels at gcc dot gnu.org
                   ` (23 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: trippels at gcc dot gnu.org @ 2015-03-18  7:34 UTC (permalink / raw)
  To: gcc-bugs

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

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2015-03-18
   Target Milestone|---                         |5.0
            Summary|powerpc64le autovectorized  |[5 Regression] powerpc64le
                   |copy loop missed            |autovectorized copy loop
                   |optimization                |missed optimization
     Ever confirmed|0                           |1

--- Comment #2 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Ah, I see it with -O3, -O2 is fine.


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  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 ` trippels at gcc dot gnu.org
  2015-03-18 11:29 ` rguenth at gcc dot gnu.org
                   ` (22 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: trippels at gcc dot gnu.org @ 2015-03-18  7:50 UTC (permalink / raw)
  To: gcc-bugs

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

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|5.0                         |---
            Summary|[5 Regression] powerpc64le  |powerpc64le autovectorized
                   |autovectorized copy loop    |copy loop missed
                   |missed optimization         |optimization

--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
Not a regression, 4.9 with -mcpu=power8 produces the same code.


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (2 preceding siblings ...)
  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
                   ` (21 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: rguenth at gcc dot gnu.org @ 2015-03-18 11:29 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Note the vectorizer has a slight preference to align stores.


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (3 preceding siblings ...)
  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
                   ` (20 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: dje at gcc dot gnu.org @ 2015-03-18 23:23 UTC (permalink / raw)
  To: gcc-bugs

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

David Edelsohn <dje at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |amodra at gcc dot gnu.org,
                   |                            |dje at gcc dot gnu.org,
                   |                            |wschmidt at gcc dot gnu.org
   Target Milestone|---                         |6.0

--- Comment #5 from David Edelsohn <dje at gcc dot gnu.org> ---
I assume that this is the known problem fixed with Bill's unaligned vector
patch.
https://gcc.gnu.org/ml/gcc-patches/2015-03/msg00103.html


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (4 preceding siblings ...)
  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
                   ` (19 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: msebor at gcc dot gnu.org @ 2015-03-19 19:25 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Martin Sebor <msebor at gcc dot gnu.org> ---
Created attachment 35066
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35066&action=edit
Assembly emitted by gcc 5.0.0 20150319 after aplying the patch referenced in
comment #5.


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (5 preceding siblings ...)
  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
                   ` (18 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: anton at samba dot org @ 2015-03-19 22:52 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from Anton Blanchard <anton at samba dot org> ---
Thanks Martin.

Bill: the swaps pass isn't catching our vectorised copy, I guess because of the
adds in the loop:

        lxvd2x 0,9,4
        addi 28,1,-48
        add 6,9,10
        xxpermdi 12,0,0,2
        xxpermdi 12,12,12,2
        stxvd2x 12,0,28


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (6 preceding siblings ...)
  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
                   ` (17 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2015-03-20 14:47 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
Pish, those adds shouldn't be the least bit relevant.  I'll have a look.


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (7 preceding siblings ...)
  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
                   ` (16 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2015-03-22 16:59 UTC (permalink / raw)
  To: gcc-bugs

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

Bill Schmidt <wschmidt at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |wschmidt at gcc dot gnu.org

--- Comment #9 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
So, this can be viewed either as a phase-ordering problem or an expand problem;
probably the latter is more correct.

The swap optimization runs early in the RTL phases, shortly after expand.  At
the time that it sees this computation, the RTL represents something more like
this:

        lxvd2x 0,9,4
        xxpermdi 12,0,0,2
        [r18=high half of vs12]
        [r19=low half of vs12]
        std 18,0,28
        std 19,8,28

(This is well before RA so I am making up register numbers for illustration
purposes.)  The swap optimization doesn't know what to do when a vector is
split into pieces, so it punts here.

Later, in the split2 phase that runs after RA, the last four lines above are
recognized as a pattern that can be replaced by an stxvd2x in BE mode, or by an
xxswapd/stxvd2x in LE mode.  This is how we end up with the code you see in the
final output.

The question is, why is the expander generating the two doubleword stores? 
Probably because it thinks that we are ok generating unaligned doubleword
stores, but not ok generating unaligned quadword stores.  In other words, there
is probably something in there that needs to be taught that unaligned vector
stores on P8 are better to use than moving pieces into GPRs and storing them
separately.

I will take on the investigation of this, but there are a few more urgent
things that need attention first.  I expect this to be a fairly easy fix that
we'll be able to backport.


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (8 preceding siblings ...)
  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
                   ` (15 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: dje at gcc dot gnu.org @ 2015-03-23  4:21 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #10 from David Edelsohn <dje at gcc dot gnu.org> ---
I believe that the choice to scalarize is based on the vector cost model.


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (9 preceding siblings ...)
  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
                   ` (14 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2015-03-23 13:50 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #11 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
(In reply to David Edelsohn from comment #10)
> I believe that the choice to scalarize is based on the vector cost model.

Hm, that would be interesting.  The applied patch changes the cost model to
favor the unaligned store on VSX.  Might be a place where it should be using
the cost model but perhaps isn't?  I'll look into it later this week.


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (10 preceding siblings ...)
  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
                   ` (13 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2015-03-28  2:19 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #13 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
Changing the condition as follows produces a nice tight lxvd2x/stxvd2x loop in
all three places:

#define SLOW_UNALIGNED_ACCESS(MODE, ALIGN)                              \
  (STRICT_ALIGNMENT                                                     \
   || (((MODE) == SFmode || (MODE) == DFmode || (MODE) == TFmode        \
        || (MODE) == SDmode || (MODE) == DDmode || (MODE) == TDmode)    \
       && (ALIGN) < 32)                                                 \
   || (!TARGET_P8_VECTOR                                                \
       && (VECTOR_MODE_P ((MODE)) && (((int)(ALIGN)) < VECTOR_ALIGN (MODE)))))


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (11 preceding siblings ...)
  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
                   ` (12 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: amodra at gmail dot com @ 2015-03-28 11:40 UTC (permalink / raw)
  To: gcc-bugs

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

Alan Modra <amodra at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |amodra at gmail dot com

--- Comment #14 from Alan Modra <amodra at gmail dot com> ---
This part
   || (((MODE) == SFmode || (MODE) == DFmode || (MODE) == TFmode        \
        || (MODE) == SDmode || (MODE) == DDmode || (MODE) == TDmode)    \
       && (ALIGN) < 32)                                                 \
is wrong for power8 too.  See "POWER8 Processor User’s Manual for the
Single-Chip Module", section 2.1.4 Storage Access Alignment Support Overview. 
According to that, alignment interrupt does not occur on misaligned floating
point loads and stores, except for the quadword insns.  Which seems to
contradict "Power ISA Version 2.07", section 6.5.8 Alignment Interrupt.  I
guess the ISA doc needs another update.
>From gcc-bugs-return-482125-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Sat Mar 28 04:17:49 2015
Return-Path: <gcc-bugs-return-482125-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 44393 invoked by alias); 28 Mar 2015 04:17:48 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 44353 invoked by uid 55); 28 Mar 2015 04:17:45 -0000
From: "timshen at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug libstdc++/65420] Enumerators in std::regex_constants should be constexpr variables instead
Date: Sat, 28 Mar 2015 11:48:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: libstdc++
X-Bugzilla-Version: 5.0
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: timshen at gcc dot gnu.org
X-Bugzilla-Status: UNCONFIRMED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields:
Message-ID: <bug-65420-4-Tk3xcJjcih@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-65420-4@http.gcc.gnu.org/bugzilla/>
References: <bug-65420-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2015-03/txt/msg03269.txt.bz2
Content-length: 581

https://gcc.gnu.org/bugzilla/show_bug.cgi?ide420

--- Comment #1 from Tim Shen <timshen at gcc dot gnu.org> ---
Author: timshen
Date: Sat Mar 28 04:17:12 2015
New Revision: 221750

URL: https://gcc.gnu.org/viewcvs?rev"1750&root=gcc&view=rev
Log:
    PR libstdc++/65420
    * include/bits/regex_constants.h: Use constexpr variables for flags.
    * testsuite/28_regex/constants/constexpr.cc: New testcase.


Added:
    trunk/libstdc++-v3/testsuite/28_regex/constants/constexpr.cc
Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/bits/regex_constants.h


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (12 preceding siblings ...)
  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
                   ` (11 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2015-03-29 18:24 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #15 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
That last bit also needs an update to the table in ISA 2.07 II.2, p. 754.

I'm planning to include the change for the vector alignment piece in my P8
unaligned vectors patch, since it seems relevant there.  I think we should
probably fix this other bit separately, as that will likely need some more
extensive testing.


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (13 preceding siblings ...)
  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
                   ` (10 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2015-03-29 19:30 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #16 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
Proposed patch added to the general P8 unaligned vector patch:

https://gcc.gnu.org/ml/gcc-patches/2015-03/msg01502.html


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (14 preceding siblings ...)
  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
                   ` (9 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2015-04-23  0:22 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #17 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
Author: wschmidt
Date: Thu Apr 23 00:21:39 2015
New Revision: 222349

URL: https://gcc.gnu.org/viewcvs?rev=222349&root=gcc&view=rev
Log:
[gcc]

2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    PR target/65456
    * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
    VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
    TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
    option.
    (rs6000_builtin_mask_for_load): Return 0 for targets with
    efficient unaligned VSX accesses so that the vectorizer will use
    direct unaligned loads.
    (rs6000_builtin_support_vector_misalignment): Always return true
    for targets with efficient unaligned VSX accesses.
    (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
    stores on targets with efficient unaligned VSX accesses is almost
    always the same as the cost of an aligned load or store, so model
    it that way.
    * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
    unaligned vectors if we have efficient unaligned VSX accesses.
    * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
    undocumented option.

[gcc/testsuite]

2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    PR target/65456
    * gcc.dg/vect/bb-slp-24.c: Exclude test for POWER8.
    * gcc.dg/vect/bb-slp-25.c: Likewise.
    * gcc.dg/vect/bb-slp-29.c: Likewise.
    * gcc.dg/vect/bb-slp-32.c: Replace vect_no_align with
    vect_no_align && { ! vect_hw_misalign }.
    * gcc.dg/vect/bb-slp-9.c: Likewise.
    * gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c: Exclude test for
    vect_hw_misalign.
    * gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c: Likewise.
    * gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c: Adjust tests to
    account for POWER8, where peeling for alignment is not needed.
    * gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c: Replace
    vect_no_align with vect_no_align && { ! vect_hw_misalign }.
    * gcc.dg.vect.if-cvt-stores-vect-ifcvt-18.c: Likewise.
    * gcc.dg/vect/no-scevccp-outer-6-global.c: Likewise.
    * gcc.dg/vect/no-scevccp-outer-6.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-43.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-57.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-61.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-depend-1.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-depend-2.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-depend-3.c: Likewise.
    * gcc.dg/vect/pr16105.c: Likewise.
    * gcc.dg/vect/pr20122.c: Likewise.
    * gcc.dg/vect/pr33804.c: Likewise.
    * gcc.dg/vect/pr33953.c: Likewise.
    * gcc.dg/vect/pr56787.c: Likewise.
    * gcc.dg/vect/pr58508.c: Likewise.
    * gcc.dg/vect/slp-25.c: Likewise.
    * gcc.dg/vect/vect-105-bit-array.c: Likewise.
    * gcc.dg/vect/vect-105.c: Likewise.
    * gcc.dg/vect/vect-27.c: Likewise.
    * gcc.dg/vect/vect-29.c: Likewise.
    * gcc.dg/vect/vect-33.c: Exclude unaligned access test for
    POWER8.
    * gcc.dg/vect/vect-42.c: Replace vect_no_align with vect_no_align
    && { ! vect_hw_misalign }.
    * gcc.dg/vect/vect-44.c: Likewise.
    * gcc.dg/vect/vect-48.c: Likewise.
    * gcc.dg/vect/vect-50.c: Likewise.
    * gcc.dg/vect/vect-52.c: Likewise.
    * gcc.dg/vect/vect-56.c: Likewise.
    * gcc.dg/vect/vect-60.c: Likewise.
    * gcc.dg/vect/vect-72.c: Likewise.
    * gcc.dg/vect/vect-75-big-array.c: Likewise.
    * gcc.dg/vect/vect-75.c: Likewise.
    * gcc.dg/vect/vect-77-alignchecks.c: Likewise.
    * gcc.dg/vect/vect-77-global.c: Likewise.
    * gcc.dg/vect/vect-78-alignchecks.c: Likewise.
    * gcc.dg/vect/vect-78-global.c: Likewise.
    * gcc.dg/vect/vect-93.c: Likewise.
    * gcc.dg/vect/vect-95.c: Likewise.
    * gcc.dg/vect/vect-96.c: Likewise.
    * gcc.dg/vect/vect-cond-1.c: Likewise.
    * gcc.dg/vect/vect-cond-3.c: Likewise.
    * gcc.dg/vect/vect-cond-4.c: Likewise.
    * gcc.dg/vect/vect-cselim-1.c: Likewise.
    * gcc.dg/vect/vect-multitypes-1.c: Likewise.
    * gcc.dg/vect/vect-multitypes-3.c: Likewise.
    * gcc.dg/vect/vect-multitypes-4.c: Likewise.
    * gcc.dg/vect/vect-multitypes-6.c: Likewise.
    * gcc.dg/vect/vect-nest-cycle-1.c: Likewise.
    * gcc.dg/vect/vect-nest-cycle-2.c: Likewise.
    * gcc.dg/vect/vect-outer-3a-big-array.c: Likewise.
    * gcc.dg/vect/vect-outer-3a.c: Likewise.
    * gcc.dg/vect/vect-outer-5.c: Likewise.
    * gcc.dg/vect/vect-outer-fir-big-array.c: Likewise.
    * gcc.dg/vect/vect-outer-fir-lb-big-array.c: Likewise.
    * gcc.dg/vect/vect-outer-fir-lb.c: Likewise.
    * gcc.dg/vect/vect-outer-fir.c: Likewise.
    * gcc.dg/vect/vect-peel-3.c: Likewise.
    * gcc.dg/vect/vect-peel-4.c: Likewise.
    * gcc.dg/vect/vect-pre-interact.c: Likewise.
    * gcc.target/powerpc/pr65456.c: New test.
    * gcc.target/powerpc/vsx-vectorize-2.c: Exclude test for POWER8.
    * gcc.target/powerpc/vsx-vectorize-4.c: Likewise.
    * gcc.target/powerpc/vsx-vectorize-6.c: Likewise.
    * gcc.target/powerpc/vsx-vectorize-7.c: Likewise.
    * gfortran.dg/vect/vect-2.f90: Replace vect_no_align with
    vect_no_align && { ! vect_hw_misalign }.
    * gfortran.dg/vect/vect-3.f90: Likewise.
    * gfortran.dg/vect/vect-4.f90: Likewise.
    * gfortran.dg/vect/vect-5.f90: Likewise.
    * lib/target-supports.exp (check_effective_target_vect_no_align):
    Return 1 for POWER8.
    (check_effective_target_vect_hw_misalign): Return 1 for POWER8.


Added:
    trunk/gcc/testsuite/gcc.target/powerpc/pr65456.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/rs6000.c
    trunk/gcc/config/rs6000/rs6000.h
    trunk/gcc/config/rs6000/rs6000.opt
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/vect/bb-slp-24.c
    trunk/gcc/testsuite/gcc.dg/vect/bb-slp-25.c
    trunk/gcc/testsuite/gcc.dg/vect/bb-slp-29.c
    trunk/gcc/testsuite/gcc.dg/vect/bb-slp-32.c
    trunk/gcc/testsuite/gcc.dg/vect/bb-slp-9.c
    trunk/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c
    trunk/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
    trunk/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c
    trunk/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c
    trunk/gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
    trunk/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c
    trunk/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c
    trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
    trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c
    trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c
    trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-1.c
    trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c
    trunk/gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-3.c
    trunk/gcc/testsuite/gcc.dg/vect/pr16105.c
    trunk/gcc/testsuite/gcc.dg/vect/pr20122.c
    trunk/gcc/testsuite/gcc.dg/vect/pr33804.c
    trunk/gcc/testsuite/gcc.dg/vect/pr33953.c
    trunk/gcc/testsuite/gcc.dg/vect/pr56787.c
    trunk/gcc/testsuite/gcc.dg/vect/pr58508.c
    trunk/gcc/testsuite/gcc.dg/vect/slp-25.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-105-big-array.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-105.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-27.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-29.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-33.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-42.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-44.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-48.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-50.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-52.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-56.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-60.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-72.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-75-big-array.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-75.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-77-alignchecks.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-77-global.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-78-alignchecks.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-78-global.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-93.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-95.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-96.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-cond-1.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-cond-3.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-cond-4.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-cselim-1.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-nest-cycle-1.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-nest-cycle-2.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-outer-3a.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-outer-5.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-outer-fir-big-array.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb-big-array.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-outer-fir.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-peel-3.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-peel-4.c
    trunk/gcc/testsuite/gcc.dg/vect/vect-pre-interact.c
    trunk/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-2.c
    trunk/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-4.c
    trunk/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-6.c
    trunk/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-7.c
    trunk/gcc/testsuite/gfortran.dg/vect/vect-2.f90
    trunk/gcc/testsuite/gfortran.dg/vect/vect-3.f90
    trunk/gcc/testsuite/gfortran.dg/vect/vect-4.f90
    trunk/gcc/testsuite/gfortran.dg/vect/vect-5.f90
    trunk/gcc/testsuite/lib/target-supports.exp


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (15 preceding siblings ...)
  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
                   ` (8 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2015-04-23 21:04 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #18 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
Author: wschmidt
Date: Thu Apr 23 21:03:40 2015
New Revision: 222386

URL: https://gcc.gnu.org/viewcvs?rev=222386&root=gcc&view=rev
Log:
[gcc]

2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    Backport from mainline r222349
    2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    PR target/65456
    * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
    VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
    TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
    option.
    (rs6000_builtin_mask_for_load): Return 0 for targets with
    efficient unaligned VSX accesses so that the vectorizer will use
    direct unaligned loads.
    (rs6000_builtin_support_vector_misalignment): Always return true
    for targets with efficient unaligned VSX accesses.
    (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
    stores on targets with efficient unaligned VSX accesses is almost
    always the same as the cost of an aligned load or store, so model
    it that way.
    * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
    unaligned vectors if we have efficient unaligned VSX accesses.
    * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
    undocumented option.

[gcc/testsuite]

2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    Backport from mainline r222349
    2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    PR target/65456
    * gcc.dg/vect/bb-slp-24.c: Exclude test for POWER8.
    * gcc.dg/vect/bb-slp-25.c: Likewise.
    * gcc.dg/vect/bb-slp-29.c: Likewise.
    * gcc.dg/vect/bb-slp-32.c: Replace vect_no_align with
    vect_no_align && { ! vect_hw_misalign }.
    * gcc.dg/vect/bb-slp-9.c: Likewise.
    * gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c: Exclude test for
    vect_hw_misalign.
    * gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c: Likewise.
    * gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c: Adjust tests to
    account for POWER8, where peeling for alignment is not needed.
    * gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c: Replace
    vect_no_align with vect_no_align && { ! vect_hw_misalign }.
    * gcc.dg.vect.if-cvt-stores-vect-ifcvt-18.c: Likewise.
    * gcc.dg/vect/no-scevccp-outer-6-global.c: Likewise.
    * gcc.dg/vect/no-scevccp-outer-6.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-43.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-57.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-61.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-depend-1.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-depend-2.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-depend-3.c: Likewise.
    * gcc.dg/vect/pr16105.c: Likewise.
    * gcc.dg/vect/pr20122.c: Likewise.
    * gcc.dg/vect/pr33804.c: Likewise.
    * gcc.dg/vect/pr33953.c: Likewise.
    * gcc.dg/vect/pr56787.c: Likewise.
    * gcc.dg/vect/pr58508.c: Likewise.
    * gcc.dg/vect/slp-25.c: Likewise.
    * gcc.dg/vect/vect-105-bit-array.c: Likewise.
    * gcc.dg/vect/vect-105.c: Likewise.
    * gcc.dg/vect/vect-27.c: Likewise.
    * gcc.dg/vect/vect-29.c: Likewise.
    * gcc.dg/vect/vect-33.c: Exclude unaligned access test for
    POWER8.
    * gcc.dg/vect/vect-42.c: Replace vect_no_align with vect_no_align
    && { ! vect_hw_misalign }.
    * gcc.dg/vect/vect-44.c: Likewise.
    * gcc.dg/vect/vect-48.c: Likewise.
    * gcc.dg/vect/vect-50.c: Likewise.
    * gcc.dg/vect/vect-52.c: Likewise.
    * gcc.dg/vect/vect-56.c: Likewise.
    * gcc.dg/vect/vect-60.c: Likewise.
    * gcc.dg/vect/vect-72.c: Likewise.
    * gcc.dg/vect/vect-75-big-array.c: Likewise.
    * gcc.dg/vect/vect-75.c: Likewise.
    * gcc.dg/vect/vect-77-alignchecks.c: Likewise.
    * gcc.dg/vect/vect-77-global.c: Likewise.
    * gcc.dg/vect/vect-78-alignchecks.c: Likewise.
    * gcc.dg/vect/vect-78-global.c: Likewise.
    * gcc.dg/vect/vect-93.c: Likewise.
    * gcc.dg/vect/vect-95.c: Likewise.
    * gcc.dg/vect/vect-96.c: Likewise.
    * gcc.dg/vect/vect-cond-1.c: Likewise.
    * gcc.dg/vect/vect-cond-3.c: Likewise.
    * gcc.dg/vect/vect-cond-4.c: Likewise.
    * gcc.dg/vect/vect-cselim-1.c: Likewise.
    * gcc.dg/vect/vect-multitypes-1.c: Likewise.
    * gcc.dg/vect/vect-multitypes-3.c: Likewise.
    * gcc.dg/vect/vect-multitypes-4.c: Likewise.
    * gcc.dg/vect/vect-multitypes-6.c: Likewise.
    * gcc.dg/vect/vect-nest-cycle-1.c: Likewise.
    * gcc.dg/vect/vect-nest-cycle-2.c: Likewise.
    * gcc.dg/vect/vect-outer-3a-big-array.c: Likewise.
    * gcc.dg/vect/vect-outer-3a.c: Likewise.
    * gcc.dg/vect/vect-outer-5.c: Likewise.
    * gcc.dg/vect/vect-outer-fir-big-array.c: Likewise.
    * gcc.dg/vect/vect-outer-fir-lb-big-array.c: Likewise.
    * gcc.dg/vect/vect-outer-fir-lb.c: Likewise.
    * gcc.dg/vect/vect-outer-fir.c: Likewise.
    * gcc.dg/vect/vect-peel-3.c: Likewise.
    * gcc.dg/vect/vect-peel-4.c: Likewise.
    * gcc.dg/vect/vect-pre-interact.c: Likewise.
    * gcc.target/powerpc/pr65456.c: New test.
    * gcc.target/powerpc/vsx-vectorize-2.c: Exclude test for POWER8.
    * gcc.target/powerpc/vsx-vectorize-4.c: Likewise.
    * gcc.target/powerpc/vsx-vectorize-6.c: Likewise.
    * gcc.target/powerpc/vsx-vectorize-7.c: Likewise.
    * gfortran.dg/vect/vect-2.f90: Replace vect_no_align with
    vect_no_align && { ! vect_hw_misalign }.
    * gfortran.dg/vect/vect-3.f90: Likewise.
    * gfortran.dg/vect/vect-4.f90: Likewise.
    * gfortran.dg/vect/vect-5.f90: Likewise.
    * lib/target-supports.exp (check_effective_target_vect_no_align):
    Return 1 for POWER8.
    (check_effective_target_vect_hw_misalign): Return 1 for POWER8.

    Backport from mainline r222372
    2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    * gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c: Replace
    vect_no_align with vect_no_align && { ! vect_hw_misalign }.


Modified:
    branches/gcc-5-branch/gcc/ChangeLog
    branches/gcc-5-branch/gcc/config/rs6000/rs6000.c
    branches/gcc-5-branch/gcc/config/rs6000/rs6000.h
    branches/gcc-5-branch/gcc/config/rs6000/rs6000.opt
    branches/gcc-5-branch/gcc/testsuite/ChangeLog
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/bb-slp-24.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/bb-slp-25.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/bb-slp-29.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/bb-slp-32.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/bb-slp-9.c
   
branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c
   
branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c
   
branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
   
branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c
   
branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c
   
branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-1.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-3.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/pr16105.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/pr20122.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/pr33804.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/pr33953.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/pr56787.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/pr58508.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/slp-25.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-105-big-array.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-105.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-27.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-29.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-33.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-42.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-44.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-48.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-50.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-52.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-56.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-60.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-72.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-75-big-array.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-75.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-77-alignchecks.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-77-global.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-78-alignchecks.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-78-global.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-93.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-95.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-96.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-cond-1.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-cond-3.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-cond-4.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-cselim-1.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-nest-cycle-1.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-nest-cycle-2.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-outer-3a.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-outer-5.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-outer-fir-big-array.c
   
branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb-big-array.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-outer-fir.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-peel-3.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-peel-4.c
    branches/gcc-5-branch/gcc/testsuite/gcc.dg/vect/vect-pre-interact.c
    branches/gcc-5-branch/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-2.c
    branches/gcc-5-branch/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-4.c
    branches/gcc-5-branch/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-6.c
    branches/gcc-5-branch/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-7.c
    branches/gcc-5-branch/gcc/testsuite/gfortran.dg/vect/vect-2.f90
    branches/gcc-5-branch/gcc/testsuite/gfortran.dg/vect/vect-3.f90
    branches/gcc-5-branch/gcc/testsuite/gfortran.dg/vect/vect-4.f90
    branches/gcc-5-branch/gcc/testsuite/gfortran.dg/vect/vect-5.f90
    branches/gcc-5-branch/gcc/testsuite/lib/target-supports.exp


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (16 preceding siblings ...)
  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
                   ` (7 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2015-04-24 13:45 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #19 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
Author: wschmidt
Date: Fri Apr 24 13:45:08 2015
New Revision: 222412

URL: https://gcc.gnu.org/viewcvs?rev=222412&root=gcc&view=rev
Log:
[gcc]

2015-04-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    Backport from mainline r222349
    2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    PR target/65456
    * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
    VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
    TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
    option.
    (rs6000_builtin_mask_for_load): Return 0 for targets with
    efficient unaligned VSX accesses so that the vectorizer will use
    direct unaligned loads.
    (rs6000_builtin_support_vector_misalignment): Always return true
    for targets with efficient unaligned VSX accesses.
    (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
    stores on targets with efficient unaligned VSX accesses is almost
    always the same as the cost of an aligned load or store, so model
    it that way.
    * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
    unaligned vectors if we have efficient unaligned VSX accesses.
    * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
    undocumented option.

[gcc/testsuite]

2015-04-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    Backport from mainline r222349
    2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    PR target/65456
    * gcc.dg/vect/bb-slp-24.c: Exclude test for POWER8.
    * gcc.dg/vect/bb-slp-25.c: Likewise.
    * gcc.dg/vect/bb-slp-29.c: Likewise.
    * gcc.dg/vect/bb-slp-32.c: Replace vect_no_align with
    vect_no_align && { ! vect_hw_misalign }.
    * gcc.dg/vect/bb-slp-9.c: Likewise.
    * gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c: Exclude test for
    vect_hw_misalign.
    * gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c: Likewise.
    * gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c: Adjust tests to
    account for POWER8, where peeling for alignment is not needed.
    * gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c: Replace
    vect_no_align with vect_no_align && { ! vect_hw_misalign }.
    * gcc.dg.vect.if-cvt-stores-vect-ifcvt-18.c: Likewise.
    * gcc.dg/vect/no-scevccp-outer-6-global.c: Likewise.
    * gcc.dg/vect/no-scevccp-outer-6.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-43.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-57.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-61.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-depend-1.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-depend-2.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-depend-3.c: Likewise.
    * gcc.dg/vect/pr16105.c: Likewise.
    * gcc.dg/vect/pr20122.c: Likewise.
    * gcc.dg/vect/pr33804.c: Likewise.
    * gcc.dg/vect/pr33953.c: Likewise.
    * gcc.dg/vect/pr56787.c: Likewise.
    * gcc.dg/vect/pr58508.c: Likewise.
    * gcc.dg/vect/slp-25.c: Likewise.
    * gcc.dg/vect/vect-105-bit-array.c: Likewise.
    * gcc.dg/vect/vect-105.c: Likewise.
    * gcc.dg/vect/vect-27.c: Likewise.
    * gcc.dg/vect/vect-29.c: Likewise.
    * gcc.dg/vect/vect-33.c: Exclude unaligned access test for
    POWER8.
    * gcc.dg/vect/vect-42.c: Replace vect_no_align with vect_no_align
    && { ! vect_hw_misalign }.
    * gcc.dg/vect/vect-44.c: Likewise.
    * gcc.dg/vect/vect-48.c: Likewise.
    * gcc.dg/vect/vect-50.c: Likewise.
    * gcc.dg/vect/vect-52.c: Likewise.
    * gcc.dg/vect/vect-56.c: Likewise.
    * gcc.dg/vect/vect-60.c: Likewise.
    * gcc.dg/vect/vect-72.c: Likewise.
    * gcc.dg/vect/vect-75-big-array.c: Likewise.
    * gcc.dg/vect/vect-75.c: Likewise.
    * gcc.dg/vect/vect-77-alignchecks.c: Likewise.
    * gcc.dg/vect/vect-77-global.c: Likewise.
    * gcc.dg/vect/vect-78-alignchecks.c: Likewise.
    * gcc.dg/vect/vect-78-global.c: Likewise.
    * gcc.dg/vect/vect-93.c: Likewise.
    * gcc.dg/vect/vect-95.c: Likewise.
    * gcc.dg/vect/vect-96.c: Likewise.
    * gcc.dg/vect/vect-cond-1.c: Likewise.
    * gcc.dg/vect/vect-cond-3.c: Likewise.
    * gcc.dg/vect/vect-cond-4.c: Likewise.
    * gcc.dg/vect/vect-cselim-1.c: Likewise.
    * gcc.dg/vect/vect-multitypes-1.c: Likewise.
    * gcc.dg/vect/vect-multitypes-3.c: Likewise.
    * gcc.dg/vect/vect-multitypes-4.c: Likewise.
    * gcc.dg/vect/vect-multitypes-6.c: Likewise.
    * gcc.dg/vect/vect-nest-cycle-1.c: Likewise.
    * gcc.dg/vect/vect-nest-cycle-2.c: Likewise.
    * gcc.dg/vect/vect-outer-3a-big-array.c: Likewise.
    * gcc.dg/vect/vect-outer-3a.c: Likewise.
    * gcc.dg/vect/vect-outer-5.c: Likewise.
    * gcc.dg/vect/vect-outer-fir-big-array.c: Likewise.
    * gcc.dg/vect/vect-outer-fir-lb-big-array.c: Likewise.
    * gcc.dg/vect/vect-outer-fir-lb.c: Likewise.
    * gcc.dg/vect/vect-outer-fir.c: Likewise.
    * gcc.dg/vect/vect-peel-3.c: Likewise.
    * gcc.dg/vect/vect-peel-4.c: Likewise.
    * gcc.dg/vect/vect-pre-interact.c: Likewise.
    * gcc.target/powerpc/pr65456.c: New test.
    * gcc.target/powerpc/vsx-vectorize-2.c: Exclude test for POWER8.
    * gcc.target/powerpc/vsx-vectorize-4.c: Likewise.
    * gcc.target/powerpc/vsx-vectorize-6.c: Likewise.
    * gcc.target/powerpc/vsx-vectorize-7.c: Likewise.
    * gfortran.dg/vect/vect-2.f90: Replace vect_no_align with
    vect_no_align && { ! vect_hw_misalign }.
    * gfortran.dg/vect/vect-3.f90: Likewise.
    * gfortran.dg/vect/vect-4.f90: Likewise.
    * gfortran.dg/vect/vect-5.f90: Likewise.
    * lib/target-supports.exp (check_effective_target_vect_no_align):
    Return 1 for POWER8.
    (check_effective_target_vect_hw_misalign): Return 1 for POWER8.

    Backport from mainline r222372
    2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    * gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c: Replace
    vect_no_align with vect_no_align && { ! vect_hw_misalign }.


Added:
    branches/gcc-4_9-branch/gcc/testsuite/gcc.target/powerpc/pr65456.c
Modified:
    branches/gcc-4_9-branch/gcc/ChangeLog
    branches/gcc-4_9-branch/gcc/config/rs6000/rs6000.c
    branches/gcc-4_9-branch/gcc/config/rs6000/rs6000.h
    branches/gcc-4_9-branch/gcc/config/rs6000/rs6000.opt
    branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/bb-slp-24.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/bb-slp-25.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/bb-slp-29.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/bb-slp-32.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/bb-slp-9.c
   
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c
   
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c
   
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
   
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c
   
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c
   
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
   
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-1.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-3.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/pr16105.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/pr20122.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/pr33804.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/pr33953.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/pr56787.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/pr58508.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/slp-25.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-105-big-array.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-105.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-27.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-29.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-33.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-42.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-44.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-48.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-50.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-52.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-56.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-60.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-72.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-75-big-array.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-75.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-77-alignchecks.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-77-global.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-78-alignchecks.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-78-global.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-93.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-95.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-96.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-cond-1.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-cond-3.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-cond-4.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-cselim-1.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-nest-cycle-1.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-nest-cycle-2.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-outer-3a.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-outer-5.c
   
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-outer-fir-big-array.c
   
branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb-big-array.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-outer-fir.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-peel-3.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-peel-4.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/vect/vect-pre-interact.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-2.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-4.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-6.c
    branches/gcc-4_9-branch/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-7.c
    branches/gcc-4_9-branch/gcc/testsuite/gfortran.dg/vect/vect-2.f90
    branches/gcc-4_9-branch/gcc/testsuite/gfortran.dg/vect/vect-3.f90
    branches/gcc-4_9-branch/gcc/testsuite/gfortran.dg/vect/vect-4.f90
    branches/gcc-4_9-branch/gcc/testsuite/gfortran.dg/vect/vect-5.f90
    branches/gcc-4_9-branch/gcc/testsuite/lib/target-supports.exp


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (17 preceding siblings ...)
  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
                   ` (6 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2015-04-24 20:17 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #20 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
Author: wschmidt
Date: Fri Apr 24 20:17:10 2015
New Revision: 222423

URL: https://gcc.gnu.org/viewcvs?rev=222423&root=gcc&view=rev
Log:
[gcc]

2015-04-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    Backport from mainline r222349
    2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    PR target/65456
    * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
    VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
    TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
    option.
    (rs6000_builtin_mask_for_load): Return 0 for targets with
    efficient unaligned VSX accesses so that the vectorizer will use
    direct unaligned loads.
    (rs6000_builtin_support_vector_misalignment): Always return true
    for targets with efficient unaligned VSX accesses.
    (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
    stores on targets with efficient unaligned VSX accesses is almost
    always the same as the cost of an aligned load or store, so model
    it that way.
    * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
    unaligned vectors if we have efficient unaligned VSX accesses.
    * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
    undocumented option.

[gcc/testsuite]

2015-04-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    Backport from mainline r222349
    2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    PR target/65456
    * gcc.dg/vect/bb-slp-24.c: Exclude test for POWER8.
    * gcc.dg/vect/bb-slp-25.c: Likewise.
    * gcc.dg/vect/bb-slp-29.c: Likewise.
    * gcc.dg/vect/bb-slp-9.c: Replace vect_no_align with
    vect_no_align && { ! vect_hw_misalign }.
    * gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c: Exclude test for
    vect_hw_misalign.
    * gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c: Likewise.
    * gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c: Adjust tests to
    account for POWER8, where peeling for alignment is not needed.
    * gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c: Replace
    vect_no_align with vect_no_align && { ! vect_hw_misalign }.
    * gcc.dg.vect.if-cvt-stores-vect-ifcvt-18.c: Likewise.
    * gcc.dg/vect/no-scevccp-outer-6-global.c: Likewise.
    * gcc.dg/vect/no-scevccp-outer-6.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-43.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-57.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-61.c: Likewise.
    * gcc.dg/vect/no-vfa-vect-depend-1.c: Likewise.
    * gcc.dg/vect/pr16105.c: Likewise.
    * gcc.dg/vect/pr20122.c: Likewise.
    * gcc.dg/vect/pr33804.c: Likewise.
    * gcc.dg/vect/pr33953.c: Likewise.
    * gcc.dg/vect/slp-25.c: Likewise.
    * gcc.dg/vect/vect-105-bit-array.c: Likewise.
    * gcc.dg/vect/vect-105.c: Likewise.
    * gcc.dg/vect/vect-27.c: Likewise.
    * gcc.dg/vect/vect-29.c: Likewise.
    * gcc.dg/vect/vect-33.c: Exclude unaligned access test for
    POWER8.
    * gcc.dg/vect/vect-42.c: Replace vect_no_align with vect_no_align
    && { ! vect_hw_misalign }.
    * gcc.dg/vect/vect-44.c: Likewise.
    * gcc.dg/vect/vect-48.c: Likewise.
    * gcc.dg/vect/vect-50.c: Likewise.
    * gcc.dg/vect/vect-52.c: Likewise.
    * gcc.dg/vect/vect-56.c: Likewise.
    * gcc.dg/vect/vect-60.c: Likewise.
    * gcc.dg/vect/vect-72.c: Likewise.
    * gcc.dg/vect/vect-75-big-array.c: Likewise.
    * gcc.dg/vect/vect-75.c: Likewise.
    * gcc.dg/vect/vect-77-alignchecks.c: Likewise.
    * gcc.dg/vect/vect-77-global.c: Likewise.
    * gcc.dg/vect/vect-78-alignchecks.c: Likewise.
    * gcc.dg/vect/vect-78-global.c: Likewise.
    * gcc.dg/vect/vect-93.c: Likewise.
    * gcc.dg/vect/vect-95.c: Likewise.
    * gcc.dg/vect/vect-96.c: Likewise.
    * gcc.dg/vect/vect-cond-1.c: Likewise.
    * gcc.dg/vect/vect-cond-3.c: Likewise.
    * gcc.dg/vect/vect-cond-4.c: Likewise.
    * gcc.dg/vect/vect-cselim-1.c: Likewise.
    * gcc.dg/vect/vect-multitypes-1.c: Likewise.
    * gcc.dg/vect/vect-multitypes-3.c: Likewise.
    * gcc.dg/vect/vect-multitypes-4.c: Likewise.
    * gcc.dg/vect/vect-multitypes-6.c: Likewise.
    * gcc.dg/vect/vect-nest-cycle-1.c: Likewise.
    * gcc.dg/vect/vect-nest-cycle-2.c: Likewise.
    * gcc.dg/vect/vect-outer-3a-big-array.c: Likewise.
    * gcc.dg/vect/vect-outer-3a.c: Likewise.
    * gcc.dg/vect/vect-outer-5.c: Likewise.
    * gcc.dg/vect/vect-outer-fir-big-array.c: Likewise.
    * gcc.dg/vect/vect-outer-fir-lb-big-array.c: Likewise.
    * gcc.dg/vect/vect-outer-fir-lb.c: Likewise.
    * gcc.dg/vect/vect-outer-fir.c: Likewise.
    * gcc.dg/vect/vect-peel-3.c: Likewise.
    * gcc.dg/vect/vect-peel-4.c: Likewise.
    * gcc.dg/vect/vect-pre-interact.c: Likewise.
    * gcc.target/powerpc/pr65456.c: New test.
    * gcc.target/powerpc/vsx-vectorize-2.c: Exclude test for POWER8.
    * gcc.target/powerpc/vsx-vectorize-4.c: Likewise.
    * gcc.target/powerpc/vsx-vectorize-6.c: Likewise.
    * gcc.target/powerpc/vsx-vectorize-7.c: Likewise.
    * gfortran.dg/vect/vect-2.f90: Replace vect_no_align with
    vect_no_align && { ! vect_hw_misalign }.
    * gfortran.dg/vect/vect-3.f90: Likewise.
    * gfortran.dg/vect/vect-4.f90: Likewise.
    * gfortran.dg/vect/vect-5.f90: Likewise.
    * lib/target-supports.exp (check_effective_target_vect_no_align):
    Return 1 for POWER8.
    (check_effective_target_vect_hw_misalign): Return 1 for POWER8.

    Backport from mainline r222372
    2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

    * gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c: Replace
    vect_no_align with vect_no_align && { ! vect_hw_misalign }.


Added:
    branches/gcc-4_8-branch/gcc/testsuite/gcc.target/powerpc/pr65456.c
Modified:
    branches/gcc-4_8-branch/gcc/ChangeLog
    branches/gcc-4_8-branch/gcc/config/rs6000/rs6000.c
    branches/gcc-4_8-branch/gcc/config/rs6000/rs6000.h
    branches/gcc-4_8-branch/gcc/config/rs6000/rs6000.opt
    branches/gcc-4_8-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/bb-slp-24.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/bb-slp-25.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/bb-slp-29.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/bb-slp-9.c
   
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c
   
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c
   
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c
   
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c
   
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-outer-fir.c
   
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c
   
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6-global.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-6.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-43.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-57.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-61.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-1.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/pr16105.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/pr20122.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/pr33804.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/pr33953.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/slp-25.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-105-big-array.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-105.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-27.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-29.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-33.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-42.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-44.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-48.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-50.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-52.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-56.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-60.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-72.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-75-big-array.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-75.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-77-alignchecks.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-77-global.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-78-alignchecks.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-78-global.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-93.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-95.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-96.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-cond-1.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-cond-3.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-cond-4.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-cselim-1.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-multitypes-3.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-multitypes-6.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-nest-cycle-1.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-nest-cycle-2.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-outer-3a-big-array.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-outer-3a.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-outer-5.c
   
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-outer-fir-big-array.c
   
branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb-big-array.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-outer-fir-lb.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-outer-fir.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-peel-3.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-peel-4.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.dg/vect/vect-pre-interact.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-2.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-4.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-6.c
    branches/gcc-4_8-branch/gcc/testsuite/gcc.target/powerpc/vsx-vectorize-7.c
    branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/vect/pr32380.f
    branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/vect/vect-2.f90
    branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/vect/vect-3.f90
    branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/vect/vect-4.f90
    branches/gcc-4_8-branch/gcc/testsuite/gfortran.dg/vect/vect-5.f90
    branches/gcc-4_8-branch/gcc/testsuite/lib/target-supports.exp


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (18 preceding siblings ...)
  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
                   ` (5 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2015-04-24 20:46 UTC (permalink / raw)
  To: gcc-bugs

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

Bill Schmidt <wschmidt at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #21 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
Work is complete.  Anton, thanks for the report!


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (19 preceding siblings ...)
  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
                   ` (4 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: ro at gcc dot gnu.org @ 2015-05-04 14:50 UTC (permalink / raw)
  To: gcc-bugs

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

Rainer Orth <ro at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |ro at gcc dot gnu.org
         Resolution|FIXED                       |---

--- Comment #22 from Rainer Orth <ro at gcc dot gnu.org> ---
I suspect the change to gcc.dg/vect/bb-slp-32.c caused the test to XPASS on
Solaris/SPARC.  Attaching the dump.

  Rainer


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (20 preceding siblings ...)
  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
                   ` (3 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: ro at gcc dot gnu.org @ 2015-05-04 14:51 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #23 from Rainer Orth <ro at gcc dot gnu.org> ---
Created attachment 35456
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=35456&action=edit
bb-slp-32.c.141t.slp2 dump


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (21 preceding siblings ...)
  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
                   ` (2 subsequent siblings)
  25 siblings, 0 replies; 27+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2015-05-04 20:56 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #24 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
No, I don't think so.  The same change was made in GCC 4.9, and it didn't cause
it to XPASS there (looking at gcc-testresults).  Also, my change restricted the
number of cases for which a test is expected to fail, rather than adding cases,
so if it XPASSes now, it should have XPASSed prior to the change.

Have you bisected to see which revision corresponds to the regression?


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (22 preceding siblings ...)
  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
  25 siblings, 0 replies; 27+ messages in thread
From: ro at CeBiTec dot Uni-Bielefeld.DE @ 2015-05-05 13:37 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #25 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> --- Comment #24 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
> No, I don't think so.  The same change was made in GCC 4.9, and it didn't cause
> it to XPASS there (looking at gcc-testresults).  Also, my change restricted the
> number of cases for which a test is expected to fail, rather than adding cases,
> so if it XPASSes now, it should have XPASSed prior to the change.
>
> Have you bisected to see which revision corresponds to the regression?

Not yet: those sparc boxes are slow, and it will take ages.  I'll check
if I can reproduce in a cross compiler.

        Rainer


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (23 preceding siblings ...)
  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
  25 siblings, 0 replies; 27+ messages in thread
From: ro at CeBiTec dot Uni-Bielefeld.DE @ 2015-05-06 11:34 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #26 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> --- Comment #25 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot
> Uni-Bielefeld.DE> ---
[...]
> Not yet: those sparc boxes are slow, and it will take ages.  I'll check
> if I can reproduce in a cross compiler.

I can, and a reghunt determined that the last patch for PR
tree-optimization/62283 caused the XPASS.

        Rainer


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

* [Bug target/65456] powerpc64le autovectorized copy loop missed optimization
  2015-03-18  3:52 [Bug target/65456] New: powerpc64le autovectorized copy loop missed optimization anton at samba dot org
                   ` (24 preceding siblings ...)
  2015-05-06 11:34 ` ro at CeBiTec dot Uni-Bielefeld.DE
@ 2015-05-06 12:07 ` wschmidt at gcc dot gnu.org
  25 siblings, 0 replies; 27+ messages in thread
From: wschmidt at gcc dot gnu.org @ 2015-05-06 12:07 UTC (permalink / raw)
  To: gcc-bugs

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

Bill Schmidt <wschmidt at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #27 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
Re-closing.


^ 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).