http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52580

             Bug #: 52580
           Summary: [4.8 Regression] 171.swim performance drop on x86 –
                    vectorization doesn’t happen anymore
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: vbyakov...@gmail.com


Regression could be seen on Sandy Bridge. Change set analysis points to commit 

commit 95539e1deabbaa9dbc84b1d81ce6d0c8e7156a0f
Author: rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Mar 2 14:58:55 2012 +0000

    2012-03-02  Richard Guenther  <rguent...@suse.de>

        PR tree-optimization/52406
        * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
        (struct indices): Add unconstrained_base member.
        (struct dr_alias): Remove unused vops member.
        (DR_UNCONSTRAINED_BASE): New define.
        * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
        add indices to allow their disambiguation.  Make DR_BASE_OBJECT
        be an artificial access that covers the whole indexed object,
        or mark it with DR_UNCONSTRAINED_BASE if we cannot do so.  Canonicalize
        plain decl base-objects to their MEM_REF variant.
        (dr_may_alias_p): When the base-object of either data reference
        has unknown size use only points-to information.
        (compute_affine_dependence): Make dumps easier to read and
        more verbose.
        * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
        DR_REF when looking for packed references.
        (vect_supportable_dr_alignment): Likewise.

        * gcc.dg/torture/pr52406.c: New testcase.

    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184789
138bc75d-0d04-0410-961f-82ee72b054a4

There are vectorizer problems. Vectorization doesn’t happened for the hottest
routines calc2() and calc3().

Command line to reproduce
gfortran -g -static -m32 -S -O3 -funroll-loops -msse2 -mfpmath=sse -ffast-math
-march=corei7 swim.f

gcc –v
Using built-in specs.
COLLECT_GCC=/gnumnt/msticlxl16_users/vbyakovl/workspaces/619/install-exp/bin/gcc
COLLECT_LTO_WRAPPER=/gnumnt/msticlxl16_users/vbyakovl/workspaces/619/install-exp/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc/configure
--prefix=/export/users/vbyakovl/workspaces/619/install-exp --disable-bootstrap
--enable-languages=c,c++,fortran CFLAGS=-g3 
Thread model: posix
gcc version 4.8.0 20120312 (experimental) (GCC)

Reply via email to