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

Reply via email to