[Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off

kretz at kde dot org gcc-bugzilla@gcc.gnu.org
Tue Mar 27 06:43:00 GMT 2012


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: unassigned@gcc.gnu.org
        ReportedBy: kretz@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.



More information about the Gcc-bugs mailing list