<html>
    <head>
      <base href="https://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - spec2006/403.gcc miscompare fail on IA64 HSW architecture after commit r262250"
   href="https://llvm.org/bugs/show_bug.cgi?id=26885">26885</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>spec2006/403.gcc miscompare fail on IA64 HSW architecture after commit r262250
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Loop Optimizer
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>sergey.k.okunev@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>anemet@apple.com, david.l.kreitzer@intel.com, dberlin@dberlin.org, hfinkel@anl.gov, llvm-bugs@lists.llvm.org, mssimpso@codeaurora.org, sergos.gnu@gmail.com, zia.ansari@intel.com
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Bisect analysis showed LLVM revision 262250 is responsible for the fail. The
comments to commit are the following.

commit 7ff3ae62d2960e521793451bfaf5f5ecc85f2545
Author: Adam Nemet <<a href="mailto:anemet@apple.com">anemet@apple.com</a>>
Date:   Mon Feb 29 20:35:11 2016 +0000

    Enable LoopLoadElimination by default

    Summary:
    I re-benchmarked this and results are similar to original results in
    D13259:

    On ARM64:
      SingleSource/Benchmarks/Polybench/linear-algebra/solvers/dynprog -59.27%
      SingleSource/Benchmarks/Polybench/stencils/adi                   -19.78%

    On x86:
      SingleSource/Benchmarks/Polybench/linear-algebra/solvers/dynprog  -27.14%

    And of course the original ~20% gain on SPECint_2006/456.hmmer with Loop
    Distribution.

    In terms of compile time, there is ~5% increase on both
    SingleSource/Benchmarks/Misc/oourafft and
    SingleSource/Benchmarks/Linkpack/linkpack-pc.  These are both very tiny
    loop-intensive programs where SCEV computations dominates compile time.

    The reason that time spent in SCEV increases has to do with the design
    of the old pass manager.  If a transform pass does not preserve an
    analysis we *invalidate* the analysis even if there was *no*
    modification made by the transform pass.

    This means that currently we don't take advantage of LLE and LV sharing
    the same analysis (LAA) and unfortunately we recompute LAA *and* SCEV
    for LLE.

    (There should be a way to work around this limitation in the case of
    SCEV and LAA since both compute things on demand and internally cache
    their result.  Thus we could pretend that transform passes preserve
    these analyses and manually invalidate them upon actual modification.
    On the other hand the new pass manager is supposed to solve so I am not
    sure if this is worthwhile.)
    Reviewers: hfinkel, dberlin

    Subscribers: dberlin, reames, mssimpso, aemerson, joker.eph, llvm-commits

    Differential Revision: <a href="http://reviews.llvm.org/D16300">http://reviews.llvm.org/D16300</a>

    git-svn-id: <a href="https://llvm.org/svn/llvm-project/llvm/trunk@262250">https://llvm.org/svn/llvm-project/llvm/trunk@262250</a>
91177308-0d34-0410-b5e6-96231b3b80d8

LLVM-clang options: -m64 -static -O2 

spec2006  harness gives the following miscompare message (file – 166.s.mis).
*** Miscompare of 166.s

29689:          movss   spec_regs_F(,%rbx,4), %xmm1
                movss   spec_regs_F(,%rbx,4), %xmm0
                                         ^ 
29691:          movsd   .LC108(%rip), %xmm0 
                cvtss2sd        %xmm0, %xmm2
         ^       
29692:          cvtss2sd        %xmm1, %xmm2 
                movsd   .LC108(%rip), %xmm0
         ^       
29701:          movss   regs_F(,%r14,4), %xmm1
                movss   regs_F(,%r14,4), %xmm0
                                    ^
29727:          movss   spec_regs_F(,%r13,4), %xmm1
                movss   spec_regs_F(,%r13,4), %xmm0
                                         ^
29729:          movsd   .LC108(%rip), %xmm0
                cvtss2sd        %xmm0, %xmm3 
         ^
29730:          cvtss2sd        %xmm1, %xmm3 
                movsd   .LC108(%rip), %xmm0 
         ^ 
29737:          movss   regs_F(,%r11,4), %xmm1 
                movss   regs_F(,%r11,4), %xmm0 
                                    ^ 
67041:          movss   spec_regs_F(,%rbx,4), %xmm1 
                movss   spec_regs_F(,%rbx,4), %xmm0 
                                         ^ 
67043:          movsd   .LC92(%rip), %xmm0 
                cvtss2sd        %xmm0, %xmm2 
         ^</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>