<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/55285>55285</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Can't pass vectors into RISC-V inline assembly
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
mkuperst
</td>
</tr>
</table>
<pre>
Consider:
```
#include <riscv_vector.h>
void foo(float* p) {
vfloat32m1_t x = vle32_v_f32m1(p, 8);
asm volatile("vmv.v.v %0, %0" :: "r"(x));
}
```
This fails with:
```
error: couldn't allocate input reg for constraint 'r'
asm volatile("vmv.v.v %0, %0" :: "r"(x));
```
Seems like scalable vectors don't play well with inline asm?
Live example at https://gcc.godbolt.org/z/WbcWv69T3
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1UsFunDAQ_RpzGQWBXcLugcNmt5Eq9dREzXFl7AHcGIxsw2769R3YpFlFUW8Fe8x4Zp7fPFM7_VLt3RCMRs_EjmUHlr3Z2-x1XFwuzKDspBGY2HsT1HycUUXn046Jr9eVszMaGucY3zTWycj4DkbGt8DKu0sG0DOvMcH7_BjhTKAHmC0KfpyPzbJL1VS0hw1VMnFVKEMPs7MyGouUxDif-zmlFxgvsqXksnJYOhI7crmnSbnnBesKjpWHT5t97EyARhob4GRi929l0Hu3iAfKTVYPjJcRpLVOyYhghnGK4LElQTxlDCF6aYZIpEoiVf6ftj5c3WofEPsA1jwjBCWtrC3C5QIDaHehPVr5Aie0dm2byFsz4MKMiftrrO9mRsCz7EcCkRG6GMew0OL3NFql0tbp2tmYOt_Szm-aT7V6mm-3j-IaKNGV0FuxlUk00WK1l69EZAh_2ZFcDn58e9jf_HynFLCv7UsyeVt9OJ2YT3WqXE-OtfPbcjN694sQyTUhTBjooyj4pki6Kt8USpe1EljnJSqUqslUIetcN7nUoklILrShYsUdKT7gCVaIRf3ikJiKZ5xnRVbkRb7J81RLslIKgi3zBnP2JcOe_qZ04bFIkvhqpVRPbaCgNSGG9yA1Z9oBcT2O8OUUO-er_nka0YeYrGdXK_c_57wZDA">