[Bug libgomp/59534] [4.9 Regression] FAIL: libgomp.fortran/retval1.f90 execution test due to denormals
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Dec 16 22:21:00 GMT 2013
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
More information about the Gcc-bugs
mailing list