<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 --- - Miscompile of spec2006/perlbench"
   href="https://llvm.org/bugs/show_bug.cgi?id=31449">31449</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Miscompile of spec2006/perlbench
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>new-bugs
          </td>
        </tr>

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

        <tr>
          <th>Hardware</th>
          <td>Other
          </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>new bugs
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>mssimpso@codeaurora.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Top-of-trunk is currently miscompiling spec2006/perlbench on AArch64 for "-O1"
and above. For example, with "clang -target=aarch64-linux-none-gnu -O2 ...".
I've bisected the miscompile to:


commit 7b626dfd628404afb5fb410e8cb9eedf8e1722b4
Author: Ehsan Amiri <<a href="mailto:amehsan@ca.ibm.com">amehsan@ca.ibm.com</a>>
Date:   Thu Dec 15 12:25:13 2016 +0000

[InstCombine] New opportunities for FoldAndOfICmp and FoldXorOfICmp

A number of new patterns for simplifying and/xor of icmp:

(icmp ne %x, 0) ^ (icmp ne %y, 0) => icmp ne %x, %y if the following is true:
1- (%x = and %a, %mask) and (%y = and %b, %mask)
2- %mask is a power of 2.

(icmp eq %x, 0) & (icmp ne %y, 0) => icmp ult %x, %y if the following is true:
1- (%x = and %a, %mask1) and (%y = and %b, %mask2)
2- Let %t be the smallest power of 2 where %mask1 & %t != 0. Then for any 
   %s that is a power of 2 and %s & %mask2 != 0, we must have %s <= %t. 
For example if %mask1 = 24 and %mask2 = 16, setting %s = 16 and %t = 8 
violates condition (2) above. So this optimization cannot be applied.

git-svn-id: <a href="https://llvm.org/svn/llvm-project/llvm/trunk@289813">https://llvm.org/svn/llvm-project/llvm/trunk@289813</a>
91177308-0d34-0410-b5e6-96231b3b80d8</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>