http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59534
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Version|unknown |4.9.0 --- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> --- The same problem can be observed on x86_64-linux-gnu, but this target doesn't trigger an exception on denormals by default. The breakpoint should be set in retval1.f90:95, that corresponds to master.3.f5_._omp_fn.0. The exact location of the failing insn is: 0x0000000000400a40 <+240>: xor %edx,%edx 0x0000000000400a42 <+242>: mov $0x1,%r12d => 0x0000000000400a48 <+248>: ucomiss 0x7f9(%rip),%xmm0 # 0x401248 0x0000000000400a4f <+255>: setp %dl 0x0000000000400a52 <+258>: cmove %edx,%r12d 0x0000000000400a56 <+262>: and %eax,%r12d 0x0000000000400a59 <+265>: jmpq 0x40097e <master.3.f5_._omp_fn.0+46> [New Thread 0x7ffff7866700 (LWP 29056)] Breakpoint 4, 0x0000000000400a48 in master.3.f5_._omp_fn.0 () at /home/uros/gcc-svn/trunk/libgomp/testsuite/libgomp.fortran/retval1.f90:95 95 l = l .or. (is_f5 .and. f5 .ne. 6.5) (gdb) p/f $xmm0 $13 = ( (6.5, 0, 0, 0), (5.3723379766381528e-315, 0), (0, 0, -48, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), (0, 16592, 0, 0, 0, 0, 0, 0), (6.5, 0, 0, 0), (5.3723379766381528e-315, 0), 0 ) (gdb) c Continuing. [Switching to Thread 0x7ffff7866700 (LWP 29056)] Following session can be obtained: (gdb) r Breakpoint 4, 0x0000000000400a48 in master.3.f5_._omp_fn.0 () at /home/uros/gcc-svn/trunk/libgomp/testsuite/libgomp.fortran/retval1.f90:95 95 l = l .or. (is_f5 .and. f5 .ne. 6.5) (gdb) p/f $xmm0 $14 = ( (6.5, 0, 0, 0), (5.3723379766381528e-315, 0), (0, 0, -48, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), (0, 16592, 0, 0, 0, 0, 0, 0), (6.5, 0, 0, 0), (5.3723379766381528e-315, 0), 0 ) (gdb) c Continuing. Breakpoint 4, 0x0000000000400a48 in master.3.f5_._omp_fn.0 () at /home/uros/gcc-svn/trunk/libgomp/testsuite/libgomp.fortran/retval1.f90:95 95 l = l .or. (is_f5 .and. f5 .ne. 6.5) (gdb) p/f $xmm0 $15 = ( (1.12103877e-44, 0, 0, 0), (3.9525251667299724e-323, 0), (8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), (8, 0, 0, 0, 0, 0, 0, 0), (1.12103877e-44, 0, 0, 0), (3.9525251667299724e-323, 0), 0 ) Checking mxcsr and stepping a single insn shows that DE flag is set after: (gdb) i r mxcsr mxcsr 0x1f80 [ IM DM ZM OM UM PM ] (gdb) si 0x0000000000400a4f 95 l = l .or. (is_f5 .and. f5 .ne. 6.5) (gdb) i r mxcsr mxcsr 0x1f82 [ DE IM DM ZM OM UM PM ] The position of the PC: 0x0000000000400a48 <+248>: ucomiss 0x7f9(%rip),%xmm0 # 0x401248 => 0x0000000000400a4f <+255>: setp %dl