* [Bug target/52736] [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
@ 2012-03-27 7:43 ` rguenth at gcc dot gnu.org
2012-03-27 8:01 ` kretz at kde dot org
` (12 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-03-27 7:43 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |WAITING
Last reconfirmed| |2012-03-27
Ever Confirmed|0 |1
--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-03-27 07:42:36 UTC ---
I cannot reproduce this on trunk. What is your target? Please provide the
output of the compiler command when you append 'v'.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug target/52736] [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
2012-03-27 7:43 ` [Bug target/52736] " rguenth at gcc dot gnu.org
@ 2012-03-27 8:01 ` kretz at kde dot org
2012-03-27 8:05 ` kretz at kde dot org
` (11 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: kretz at kde dot org @ 2012-03-27 8:01 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
--- Comment #2 from Matthias Kretz <kretz at kde dot org> 2012-03-27 08:00:47 UTC ---
Using built-in specs.
COLLECT_GCC=/opt/gcc-4.7.0/bin/g++
COLLECT_LTO_WRAPPER=/opt/gcc-4.7.0/libexec/gcc/x86_64-linux-gnu/4.7.0/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ./configure --prefix=/opt/gcc-4.7.0 --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --enable-languages=c,c++,fortran
--with-gmp=/opt/gcc-4.7.0 --with-mpfr=/opt/gcc-4.7.0 --with-ppl=/opt/gcc-4.7.0
--with-cloog=/opt/gcc-4.7.0 --with-libelf=/opt/gcc-4.7.0
--with-mpc=/opt/gcc-4.7.0 --enable-lto
Thread model: posix
gcc version 4.7.0 (GCC)
COLLECT_GCC_OPTIONS='-v' '-Wall' '-Wextra' '-msse2' '-O1' '-o' 'gcc-bug'
'-shared-libgcc' '-mtune=generic' '-march=x86-64'
/opt/gcc-4.7.0/libexec/gcc/x86_64-linux-gnu/4.7.0/cc1plus -quiet -v
-imultiarch x86_64-linux-gnu -D_GNU_SOURCE gcc-bug.cpp -quiet -dumpbase
gcc-bug.cpp -msse2 -mtune=generic -march=x86-64 -auxbase gcc-bug -O1 -Wall
-Wextra -version -o /tmp/ccfqD6uO.s
GNU C++ (GCC) version 4.7.0 (x86_64-linux-gnu)
compiled by GNU C version 4.7.0, GMP version 5.0.4, MPFR version 3.1.0,
MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory
"/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/../../../../include/c++/4.7.0
/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/../../../../include/c++/4.7.0/x86_64-linux-gnu
/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/../../../../include/c++/4.7.0/backward
/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/include
/usr/local/include
/opt/gcc-4.7.0/include
/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
End of search list.
GNU C++ (GCC) version 4.7.0 (x86_64-linux-gnu)
compiled by GNU C version 4.7.0, GMP version 5.0.4, MPFR version 3.1.0,
MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 1ed577a2a8985e4282c7df02a5129e15
COLLECT_GCC_OPTIONS='-v' '-Wall' '-Wextra' '-msse2' '-O1' '-o' 'gcc-bug'
'-shared-libgcc' '-mtune=generic' '-march=x86-64'
/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/../../../../x86_64-linux-gnu/bin/as
--64 -o /tmp/ccJeVBlU.o /tmp/ccfqD6uO.s
COMPILER_PATH=/opt/gcc-4.7.0/libexec/gcc/x86_64-linux-gnu/4.7.0/:/opt/gcc-4.7.0/libexec/gcc/x86_64-linux-gnu/4.7.0/:/opt/gcc-4.7.0/libexec/gcc/x86_64-linux-gnu/:/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/:/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/:/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/../../../../x86_64-linux-gnu/bin/
LIBRARY_PATH=/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/:/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/../../../../lib64/:/lib/x86_64-linux-gnu/:/lib/../lib64/:/usr/lib/x86_64-linux-gnu/:/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/../../../../x86_64-linux-gnu/lib/:/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-Wall' '-Wextra' '-msse2' '-O1' '-o' 'gcc-bug'
'-shared-libgcc' '-mtune=generic' '-march=x86-64'
/opt/gcc-4.7.0/libexec/gcc/x86_64-linux-gnu/4.7.0/collect2 --eh-frame-hdr -m
elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o gcc-bug
/usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o
/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/crtbegin.o
-L/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0
-L/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/../../../../lib64
-L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu
-L/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/../../../../x86_64-linux-gnu/lib
-L/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/../../.. /tmp/ccJeVBlU.o
-lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc
/opt/gcc-4.7.0/lib/gcc/x86_64-linux-gnu/4.7.0/crtend.o
/usr/lib/x86_64-linux-gnu/crtn.o
I will also add the output of -S. Line 16 is the broken one. Instead of "movsd
%xmm0, 8(%rsp)" it should be "movsd %xmm0, %(rsp)".
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug target/52736] [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
2012-03-27 7:43 ` [Bug target/52736] " rguenth at gcc dot gnu.org
2012-03-27 8:01 ` kretz at kde dot org
@ 2012-03-27 8:05 ` kretz at kde dot org
2012-03-27 14:09 ` jakub at gcc dot gnu.org
` (10 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: kretz at kde dot org @ 2012-03-27 8:05 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
--- Comment #3 from Matthias Kretz <kretz at kde dot org> 2012-03-27 08:01:23 UTC ---
Created attachment 27010
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27010
-S output
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug target/52736] [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
` (2 preceding siblings ...)
2012-03-27 8:05 ` kretz at kde dot org
@ 2012-03-27 14:09 ` jakub at gcc dot gnu.org
2012-03-27 14:52 ` [Bug target/52736] [4.5/4.6/4.7/4.8 Regression] " jakub at gcc dot gnu.org
` (9 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-03-27 14:09 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-27 13:54:34 UTC ---
Looking at it.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug target/52736] [4.5/4.6/4.7/4.8 Regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
` (3 preceding siblings ...)
2012-03-27 14:09 ` jakub at gcc dot gnu.org
@ 2012-03-27 14:52 ` jakub at gcc dot gnu.org
2012-03-27 15:06 ` jakub at gcc dot gnu.org
` (8 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-03-27 14:52 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |ASSIGNED
AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org
|gnu.org |
Target Milestone|--- |4.5.4
Summary|[4.7 regression] |[4.5/4.6/4.7/4.8
|miscompilation: store to |Regression] miscompilation:
|aliased __m128d is 8 Bytes |store to aliased __m128d is
|off |8 Bytes off
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-27 14:51:17 UTC ---
The bug seems to have been introduced in gcc 4.0.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug target/52736] [4.5/4.6/4.7/4.8 Regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
` (4 preceding siblings ...)
2012-03-27 14:52 ` [Bug target/52736] [4.5/4.6/4.7/4.8 Regression] " jakub at gcc dot gnu.org
@ 2012-03-27 15:06 ` jakub at gcc dot gnu.org
2012-03-27 17:03 ` kretz at kde dot org
` (7 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-03-27 15:06 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-27 14:52:13 UTC ---
Created attachment 27015
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27015
gcc48-pr52736.patch
Untested fix.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug target/52736] [4.5/4.6/4.7/4.8 Regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
` (5 preceding siblings ...)
2012-03-27 15:06 ` jakub at gcc dot gnu.org
@ 2012-03-27 17:03 ` kretz at kde dot org
2012-03-27 17:05 ` kretz at kde dot org
` (6 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: kretz at kde dot org @ 2012-03-27 17:03 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
--- Comment #7 from Matthias Kretz <kretz at kde dot org> 2012-03-27 16:58:42 UTC ---
With the patch my unit test passes again with 4.7.0. In my code I don't see any
regressions from the patch.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug target/52736] [4.5/4.6/4.7/4.8 Regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
` (6 preceding siblings ...)
2012-03-27 17:03 ` kretz at kde dot org
@ 2012-03-27 17:05 ` kretz at kde dot org
2012-03-27 22:44 ` kretz at kde dot org
` (5 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: kretz at kde dot org @ 2012-03-27 17:05 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
--- Comment #8 from Matthias Kretz <kretz at kde dot org> 2012-03-27 17:02:59 UTC ---
I might have been too fast. On the Intel Sandy-Bridge, where I debugged the
problem first things have improved. On an AMD Magny-Cours I get lots of
failures. I need to investigate whether I broke something unrelated to this
patch.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug target/52736] [4.5/4.6/4.7/4.8 Regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
` (7 preceding siblings ...)
2012-03-27 17:05 ` kretz at kde dot org
@ 2012-03-27 22:44 ` kretz at kde dot org
2012-03-28 8:04 ` jakub at gcc dot gnu.org
` (4 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: kretz at kde dot org @ 2012-03-27 22:44 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
--- Comment #9 from Matthias Kretz <kretz at kde dot org> 2012-03-27 21:20:49 UTC ---
All good. The error is mine. I don't see any regressions from the use of the
patch.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug target/52736] [4.5/4.6/4.7/4.8 Regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
` (8 preceding siblings ...)
2012-03-27 22:44 ` kretz at kde dot org
@ 2012-03-28 8:04 ` jakub at gcc dot gnu.org
2012-03-28 8:11 ` jakub at gcc dot gnu.org
` (3 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-03-28 8:04 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-28 08:01:17 UTC ---
Author: jakub
Date: Wed Mar 28 08:01:00 2012
New Revision: 185904
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=185904
Log:
PR target/52736
* config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
instead of 8 in adjust_address.
* gcc.target/i386/pr52736.c: New test.
Added:
trunk/gcc/testsuite/gcc.target/i386/pr52736.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/i386/sse.md
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug target/52736] [4.5/4.6/4.7/4.8 Regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
` (9 preceding siblings ...)
2012-03-28 8:04 ` jakub at gcc dot gnu.org
@ 2012-03-28 8:11 ` jakub at gcc dot gnu.org
2012-03-28 8:16 ` jakub at gcc dot gnu.org
` (2 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-03-28 8:11 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-28 08:03:41 UTC ---
Author: jakub
Date: Wed Mar 28 08:03:11 2012
New Revision: 185905
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=185905
Log:
PR target/52736
* config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
instead of 8 in adjust_address.
* gcc.target/i386/pr52736.c: New test.
Added:
branches/gcc-4_7-branch/gcc/testsuite/gcc.target/i386/pr52736.c
Modified:
branches/gcc-4_7-branch/gcc/ChangeLog
branches/gcc-4_7-branch/gcc/config/i386/sse.md
branches/gcc-4_7-branch/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug target/52736] [4.5/4.6/4.7/4.8 Regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
` (10 preceding siblings ...)
2012-03-28 8:11 ` jakub at gcc dot gnu.org
@ 2012-03-28 8:16 ` jakub at gcc dot gnu.org
2012-03-28 8:22 ` jakub at gcc dot gnu.org
2012-03-28 9:05 ` kretz at kde dot org
13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-03-28 8:16 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-28 08:10:25 UTC ---
Author: jakub
Date: Wed Mar 28 08:09:55 2012
New Revision: 185906
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=185906
Log:
PR target/52736
* config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
instead of 8 in adjust_address.
* gcc.target/i386/pr52736.c: New test.
Added:
branches/gcc-4_6-branch/gcc/testsuite/gcc.target/i386/pr52736.c
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/config/i386/sse.md
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug target/52736] [4.5/4.6/4.7/4.8 Regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
` (11 preceding siblings ...)
2012-03-28 8:16 ` jakub at gcc dot gnu.org
@ 2012-03-28 8:22 ` jakub at gcc dot gnu.org
2012-03-28 9:05 ` kretz at kde dot org
13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-03-28 8:22 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-28 08:15:36 UTC ---
Fixed for 4.6+ (note, even in 4.6 the bug is just latent).
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Bug target/52736] [4.5/4.6/4.7/4.8 Regression] miscompilation: store to aliased __m128d is 8 Bytes off
2012-03-27 6:43 [Bug target/52736] New: [4.7 regression] miscompilation: store to aliased __m128d is 8 Bytes off kretz at kde dot org
` (12 preceding siblings ...)
2012-03-28 8:22 ` jakub at gcc dot gnu.org
@ 2012-03-28 9:05 ` kretz at kde dot org
13 siblings, 0 replies; 15+ messages in thread
From: kretz at kde dot org @ 2012-03-28 9:05 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52736
--- Comment #14 from Matthias Kretz <kretz at kde dot org> 2012-03-28 09:03:05 UTC ---
Thanks! Great response time!
And yes, I started to notice the bug on 4.6.x now, too. In different unit
tests, though. I'll see if I can come up with a workaround for the "broken"
compilers.
^ permalink raw reply [flat|nested] 15+ messages in thread