<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </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 - [PowerPC, bisected] miscompilation in rust crate "futures""
   href="https://bugs.llvm.org/show_bug.cgi?id=37039">37039</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[PowerPC, bisected] miscompilation in rust crate "futures"
          </td>
        </tr>

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

        <tr>
          <th>Version</th>
          <td>6.0
          </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>Backend: PowerPC
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>jistone@redhat.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org, nemanja.i.ibm@gmail.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=20170" name="attach_20170" title="proposed fix: convert RLDICLo using a 64-bit InVal too">attachment 20170</a> <a href="attachment.cgi?id=20170&action=edit" title="proposed fix: convert RLDICLo using a 64-bit InVal too">[details]</a></span>
proposed fix: convert RLDICLo using a 64-bit InVal too

ref: <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1563393">https://bugzilla.redhat.com/show_bug.cgi?id=1563393</a>

We found one test case in the "futures" crate that started failing on ppc64
when we upgraded to Rust 1.25 with LLVM 6.0 (Fedora's LLVM, not Rust's fork). 
The same test case still passes with Rust 1.25 and LLVM 5.0.

I bisected this to <a href="https://reviews.llvm.org/D41369">https://reviews.llvm.org/D41369</a>.  You can find IR and
binaries before and after that commit on the rhbz, but I didn't figure out an
easy way to reproduce this directly.  I went through the whole motion of
building LLVM, building rustc with that LLVM, then running the "futures" tests.

The attached patch seems to solve it, using a 64-bit value for PPC::RLDICLo in
PPCInstrInfo::convertToImmediateForm.  I don't know enough about LLVM or PPC to
distill a proper test though, so I hope someone who knows the platform better
can figure that out.</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>