<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/149380>149380</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [AArch64] ORRv: Bad machine code: Using an undefined physical register
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AArch64
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          sjoerdmeijer
      </td>
    </tr>
</table>

<pre>
    For a build with expensive checks enabled, this input:

```
#include <algorithm>
unsigned short a;
void g(int b, unsigned long long c[][5], unsigned long long d[]) {
  for (short e = 0; e < (short)b; e += 3)
    for (short f = 0; f < 15; f += 2)
      a = std::min(a, (unsigned short)(signed char)std::max(d[e], c[f][f]));
}
```

compiled with `clang++  -Ofast -mcpu=grace`, runs into this error:

```
*** Bad machine code: Using an undefined physical register ***
- function:    _Z1giPA5_yPy
- basic block: %bb.13 vector.body (0xaaaab3961410)
- instruction: $q10 = ORRv16i8 $q3, killed $q3
- operand 2:   killed $q3
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVMGOpDYQ_ZriUuqWKUMDBw70TPq6q5VyyWVljAHPGLtjm87M30cGdkYZJZdIpbbbrleu956xCEFPVqkWyiuUz5lY4-x8G16c8sOi9IvyWe-G9_bmPArsV20G_EvHGdXbXdmgHwrlrORrQGVFb9QA9IRx1gG1va8ReAdsiws7gnVAXFtp1kEh8CdhJud1nBfgvwHrVrt1NGCYnY8ogF-BdQ-nB5yAam0j9umMjzzj7LT_yJ0ElNcyDf-eNBxJ1CBUqTTi6DwC1fuBqadnZMCv2_TpYweo6Y9VuqYcDtRs-C8Vxs8K41YhL4_5jqNPHKLYkkMcklK8W7QFqkXqHaj-pxYJRvWxImfhgZpPoHgDqhM5dXBPaoy7HONOOMWmJlTPXy1hnXTLXRt12AsXJo2wU-qZroinb6MIEU-LvK_AnycvpEpQekK_2uR2dLvvynvn_8P3I_AqBlyEnLVVKN2ggHf4e9B2QmFxtYMadSJ5n9-DlsKgV5MOUSWRf1Vh3QnH1cqonU1wRPz5Rz7p71358_37-7bfi6Al9sbJ15QCVPb9Oef4UDI6f04XO8nM3oQQoufNJS9ytrtzQm1D9OtHfaDiz5xtbn378eORX3S9rfEkwas2Sbn9fwK7u_LCDkh7a1_2P0TJhpYPDW9Eptq8Kqmq6vLCsrktc2p40zdDz1jFmGgqPgrFZH0Rqrr0KtMtMSpZlVd5grBzNVS8KKjJi7FgDRNQMLUIbc7GPJaz81OmQ1hVmxcNr1lmRK9M2D57ol7IV2XTTeo6L-dLAUTpNfBtAp_6dQpQMKNDDJ_loo5mezd-YcpdmcT4__qbrd60c4z3kC4Q3YBuk47z2p-lW4Bu6fBjON29e1EyAt02YgHodnB7tPR3AAAA__-I-2yz">