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

             Bug #: 52736
           Summary: [4.7 regression] miscompilation: store to aliased
                    __m128d is 8 Bytes off
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: kr...@kde.org


Created attachment 27007
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27007
testcase

The attached testcase fails when compiled with:
g++ -msse2 -O1 main.cpp

The first aliased store on line 35 stores to the second element in the vector
instead of the fist. The store on line 37 stores to the exact same location in
memory (which is the correct location for line 37).

Slight modification of the example can lead to the compiler optimizing the code
to use half vector loads, in which case it uses the correct one.

Reply via email to