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

    <tr>
        <th>Summary</th>
        <td>
            "error: inline assembly requires more registers than available", asm on arm
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    ```
void kernel(float *A, float *B, float *C, long D, long E, long F, long G) {
    asm(
            ""
        :
        : "m"(A), "m"(B), "m"(C), "m"(D), "m"(E), "m"(F), "m"(G)
 : "x0", "x1", "x2", "x3", "x4", "x5", "x6", "x7", "x8", "x9", "x10", "x11", "x12", "x13", "x14", "x15", "x16", "x17", "x18", "x19", "x20", "x21", "x22", "x23", "x24"
 );
}
```
fails with 
```
$ clang -c -o example.o -O3 example.cpp
example.cpp:3:6: error: inline assembly requires more registers than available
    3 |             ""
      |             ^
1 error generated.
```
 `g++` can compile it. It works with clang as soon as either one Input or one clobber argument is removed.

This is on A64FX with clang 19.1.4 .

cf. https://gcc.godbolt.org/z/9sn4sMxxr (fails for all versions of armv8-a clang that I tried)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJykVE2TqzYQ_DXiMmVKGj5sDhzwekntIZVLDrkKPGDlCcmRZK9ffn1KNuWnXR_jUpnulqBbmgHpvZoNUcuqPasOmbyEk3Xt5EhNTl6u1gw6QlLZYI8_W1bzdfDuatURfpAzpBnuJm1lAIZdx_ANnmz_hb1Fpq2Z4fBE70_UP9FvDBtg2z3jHQCA9AvDHeMd403kDDGOx-RdKLqvLC5Z7st2HcMmPviXsn9R3l6Uw4vy_qL0L0rMHYOsCW78Lt9X3ESCMcFFgssEVwmuE7xN8C7BTer1xTh1Fqm1SL1Fai5Sd5Hai9RfpAFEmgDTBPhl72kCTBNguVY1nmIRi8-2h_ifNN0klfbwqcIJvs0wLGHU0sywGWFjgW5yOWvKLWz-KJ5sPJ8Z71JWdAUrujqWjJyzLgJltDIE0ntaBv0THP1zUY48LNYROJqVD-Q8hJM0IK9SaTloWluwALZ9g_T3rV9fpqt3xjvxsIeZDDkZ6Jh_2yCwms8M93HUHEZpYLTLWWkCFXL4CPBp3Y_1cB4nIT14a028kgoncmANwYc5XwLYBxm1HQZyIN18WcgEUB4cLfa6BuDdnyflo2oNdHXZ_5UaiCYXeQnrynHK4RTC2cf3EXuG_TyO-WyPg9Uht25m2P_LsG-8Kf3vt5uD-OG4V3SyDqTWcCXnlTUe7ATSLdfdRq5W4SQDfEBwio4Mm-zYFsemaGRGrdgWRbOrtlhlp7Yp-Vg0u-22KKemqkkexdhMHKkaBBbbMVMtciwFCuR1ibzK5SAlb3bDrqxQ1lPFSk6LVDrX-rrE2Jny_kKtEE1dF5mWA2l__2IiGvqE-2wscHXIXBtv2gyX2bOSa-WD__WYoIKmliH-30Z7vDPSL7Eo0i3Zxen228mrcLoM-WgXhn1MsF42Z2f_pjEw7O-5PcN-3di1xf8CAAD__8U3qZo">