This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/32183] New: Gcc 4.3 revision 125030 miscompiles 482.sphinx3 in SPEC CPU 2006
- From: "hjl at lucon dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 1 Jun 2007 21:35:11 -0000
- Subject: [Bug tree-optimization/32183] New: Gcc 4.3 revision 125030 miscompiles 482.sphinx3 in SPEC CPU 2006
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
With -O2 -ffast-math on Linux/x86-64, I got
Running (#1) 482.sphinx3 ref base o2 default
Error with '/export/spec/src/2006/spec/bin/specinvoke -E -d
/export/spec/src/2006/spec/benchspec/CPU2006/482.sphinx3/run/run_base_ref_o2.0000
-c 1 -e compare.err -o compare.stdout -f compare.cmd': check file
'/export/spec/src/2006/spec/benchspec/CPU2006/482.sphinx3/run/run_base_ref_o2.0000/.err'
*** Miscompare of considered.out, see
/export/spec/src/2006/spec/benchspec/CPU2006/482.sphinx3/run/run_base_ref_o2.0000/considered.out.mis
Invalid run; unable to continue. If you wish to ignore errors please use '-I'
or ignore_errors
You can get sphinx3 from
http://cmusphinx.sourceforge.net/html/download.php#sphinx3
The miscompiled file is cmn_prior.c. The difference in assembly output
between revision 125029 and revision 125030 is
--- revision 125029 cmn_prior.s 2007-06-01 12:15:49.000000000 -0700
+++ revision 125030 cmn_prior.s 2007-06-01 12:16:17.000000000 -0700
@@ -78,21 +78,22 @@ cmn_prior:
testl %ebp, %ebp
movsd .LC6(%rip), %xmm0
divsd %xmm1, %xmm0
- cvtsd2ss %xmm0, %xmm1
+ cvtsd2ss %xmm0, %xmm2
jle .L10
xorl %eax, %eax
.L11:
- movaps %xmm1, %xmm0
+ movaps %xmm2, %xmm0
mulss (%rcx,%rax,4), %xmm0
movss %xmm0, (%rsi,%rax,4)
addq $1, %rax
cmpl %eax, %ebp
jg .L11
- mulss .LC7(%rip), %xmm1
xorl %eax, %eax
+ movss .LC7(%rip), %xmm1
.L12:
movss (%rcx,%rax,4), %xmm0
mulss %xmm1, %xmm0
+ mulss %xmm2, %xmm0
movss %xmm0, (%rcx,%rax,4)
addq $1, %rax
cmpl %eax, %ebp
@@ -107,11 +108,11 @@ cmn_prior:
testl %ebp, %ebp
cvtsi2sd %edx, %xmm1
divsd %xmm1, %xmm0
- cvtsd2ss %xmm0, %xmm1
+ cvtsd2ss %xmm0, %xmm2
jle .L13
xorl %eax, %eax
.L14:
- movaps %xmm1, %xmm0
+ movaps %xmm2, %xmm0
mulss (%rcx,%rax,4), %xmm0
movss %xmm0, (%rsi,%rax,4)
addq $1, %rax
@@ -122,11 +123,12 @@ cmn_prior:
jle .L17
testl %ebp, %ebp
jle .L15
- mulss .LC7(%rip), %xmm1
xorl %eax, %eax
+ movss .LC7(%rip), %xmm1
.L16:
movss (%rcx,%rax,4), %xmm0
mulss %xmm1, %xmm0
+ mulss %xmm2, %xmm0
movss %xmm0, (%rcx,%rax,4)
addq $1, %rax
cmpl %eax, %ebp
--
Summary: Gcc 4.3 revision 125030 miscompiles 482.sphinx3 in SPEC
CPU 2006
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl at lucon dot org
GCC target triplet: x86_64-unknown-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32183