From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 83041 invoked by alias); 17 Mar 2015 09:37:04 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 82992 invoked by uid 48); 17 Mar 2015 09:37:00 -0000 From: "ubizjak at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/65450] New: [5.0 Regression]: Unaligned access with -O3 -mtune=k8 Date: Tue, 17 Mar 2015 09:37:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: fortran X-Bugzilla-Version: 5.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: ubizjak at gmail dot com 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: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter Message-ID: 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/msg01666.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65450 Bug ID: 65450 Summary: [5.0 Regression]: Unaligned access with -O3 -mtune=k8 Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: ubizjak at gmail dot com The compiler generates unaligned access for Polyhedron channel.f90 test when compiled with -O2 -mtune=k8: /home/uros/gcc-build/gcc/gfortran -B/home/uros/gcc-build/gcc -B/home/uros/gcc-build/x86_64-unknown-linux-gnu/libgfortran/ -B/home/uros/gcc-build/x86_64-unknown-linux-gnu/libquadmath/.libs -L/home/uros/gcc-build/x86_64-unknown-linux-gnu/libgfortran/.libs -L-L/home/uros/gcc-build/x86_64-unknown-linux-gnu/libquadmath/.libs -O2 -ffast-math -mtune=k8 channel.f90 LD_LIBRARY_PATH=/home/uros/gcc-build/gcc:/home/uros/gcc-build/x86_64-unknown-linux-gnu/libgfortran/.libs:/home/uros/gcc-build/x86_64-unknown-linux-gnu/libquadmath/.libs ./a.out ... Program received signal SIGSEGV: Segmentation fault - invalid memory reference. Backtrace for this error: #0 0x2AC9058B3C27 #1 0x2AC9058B2E20 #2 0x31CDC3002F #3 0x402AFB in ddx at channel.f90:247 Segmentation fault (gdb) r ... Program received signal SIGSEGV, Segmentation fault. 0x0000000000402afb in ddx (array=..., __result=...) at channel.f90:247 247 ddx(2:I-1,1:J) = array(3:I,1:J)-array(1:I-2,1:J) ! interior points (gdb) bt #0 0x0000000000402afb in ddx (array=..., __result=...) at channel.f90:247 #1 sw () at channel.f90:148 #2 0x0000000000404cfd in main (argc=, argv=) at channel.f90:234 #3 0x00000031cdc1d9f4 in __libc_start_main () from /lib64/libc.so.6 #4 0x0000000000400909 in _start () (gdb) disass ... 0x0000000000402acc <+7644>: movaps %xmm4,-0x20(%rdx) 0x0000000000402ad0 <+7648>: movlpd -0x10(%rax),%xmm0 0x0000000000402ad5 <+7653>: movhpd -0x8(%rax),%xmm0 0x0000000000402ada <+7658>: movapd %xmm0,%xmm4 0x0000000000402ade <+7662>: subpd %xmm3,%xmm4 0x0000000000402ae2 <+7666>: movaps %xmm4,-0x10(%rdx) 0x0000000000402ae6 <+7670>: cmp $0xf4,%rdi 0x0000000000402aed <+7677>: jne 0x402a71 0x0000000000402aef <+7679>: lea 0x20(%rcx),%rdi 0x0000000000402af3 <+7683>: add $0x20,%rax 0x0000000000402af7 <+7687>: add $0x20,%rdx => 0x0000000000402afb <+7691>: movapd -0x20(%rax),%xmm3 0x0000000000402b00 <+7696>: mov $0xf6,%r11d 0x0000000000402b06 <+7702>: xor %ecx,%ecx 0x0000000000402b08 <+7704>: movapd %xmm3,%xmm4 0x0000000000402b0c <+7708>: subpd %xmm0,%xmm4 ... (gdb) p/x $rax $3 = 0x8c5a38 The failure can also be seen on SUSE gcc tester [1]. [1] http://gcc.opensuse.org/c++bench/polyhedron/polyhedron-performance-latest