<html>
    <head>
      <base href="http://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 --- - ARM has conflicting aliases for VMOV.F64"
   href="http://llvm.org/bugs/show_bug.cgi?id=17691">17691</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>ARM has conflicting aliases for VMOV.F64
          </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>Backend: ARM
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>t.p.northover@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>The ARM NEON instructions define an InstAlias from "vmov.64 dD, dN" to "vmov
dD, dN" (the canonical NEON vmov). Unfortunately we also define a TokenAlias
from ".f64" to ".64".

Together these mean that "vmov.f64 d0, d0" will be accepted as a NEON
instruction:

$ echo "vmov.f64 d0, d0" | llvm-mc -triple thumbv7 -mattr=+neon,+fp-only-sp
-show-inst
        vorr    d11, d10, d10           @ <MCInst #1477 VORRd
                                        @  <MCOperand Reg:25>
                                        @  <MCOperand Reg:24>
                                        @  <MCOperand Reg:24>
                                        @  <MCOperand Imm:14>
                                        @  <MCOperand Reg:0>>

The ARM ARM states that .f64 must not be used for the NEON encoding.

The order of these aliases as emitted by TableGen could switch at any time,
leaving "vmov.f64" being assembled as VORR generally (I believe this may
currently be the case on Windows).</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>