<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/107248>107248</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Aarch64] `st3` and `st4` should work on 2-byte and 4-byte vectors
</td>
</tr>
<tr>
<th>Labels</th>
<td>
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Validark
</td>
</tr>
</table>
<pre>
Currently, these two do not compile:
```llvm
; Function Attrs: nounwind uwtable nosanitize_coverage skipprofile
define dso_local void @st4(<2 x i8> %0, <2 x i8> %1, <2 x i8> %2, <2 x i8> %3, ptr align 1 nonnull %4) #0 {
5:
call void @llvm.aarch64.neon.st4.v16i8.p0(<2 x i8> %0, <2 x i8> %1, <2 x i8> %2, <2 x i8> %3, ptr align 1 nonnull %4)
ret void
}
; Function Attrs: nounwind uwtable nosanitize_coverage skipprofile
define dso_local void @st4(<4 x i8> %0, <4 x i8> %1, <4 x i8> %2, <4 x i8> %3, ptr align 1 nonnull %4) #0 {
5:
call void @llvm.aarch64.neon.st4.v16i8.p0(<4 x i8> %0, <4 x i8> %1, <4 x i8> %2, <4 x i8> %3, ptr align 1 nonnull %4)
ret void
}
```
It sounds to me like these are allowed though? https://developer.arm.com/documentation/dui0801/l/A64-SIMD-Vector-Instructions/ST4--vector--multiple-structures---A64-
Related https://github.com/llvm/llvm-project/issues/107099
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEVE2PozgQ_TXmUgIZYwgcOKQ7i9SHvWyv-tpycCV4Y2zkj2R7fv0ISKZ7WpHmMFKPFAXq2bhe1Xsu4b06GsSWlA-k3CUihsG69kVoJYU7JXsr39rH6ByaoN8Ie4QwoEcIFwvSgrEBejtOSiMptoTuCL39V3T9aX0er1DxAF00fVDWwDYE50mxBWOjuSgjIV6C2GsEY70wKqhv-NrbMzpxRPAnNU3OHuY8y1kSD8ogSG9fte2FhrNVEginPnDCalI8MvgfVE2Kv4Cwks7MP4P5PZDdA4sZnIIDodXRQA7GGhO1ntc4YQ0QVlAgm4eVXPmjFwC90O_k5l5kQrh-qHhm0JrMB56d80rV2US_nveNpMOwcLzqtNn9pOSXysbvlc_vlc_vlc__lGxfyftXst2u3kcVnwJ4G430ECyMCFqd8HqXhUMQWtsLSgiDjceBFB0MIUyz0oR1hHUSz6jthC4Tbsx6O86Y7eOIJojZGXMcFa1pTlinCeu2FU-fn_7epS_YB-vSJ-ODi4uLPGHd8788Tc_rUjpGHdSkMV23RIc-TdP5hI8l_INaBJSfmB1VGOL-SmkZNusjnZz9D_tAWKe8jzgnzemGNk0i20I2RSMSbPMNK3lF66pKhrYvm7Ku87KnJROFKMu-afK-YEyKss75IVEto4zThvKc85xWWY498rqohDhsalFuCKc4CqWzxTLWHZMld5vTDeN1osUetb_NWtcuPPfx6GeTKR_8-3dBBb1M5e3qO1LugFTUh4JUFISRa8TnyA82agkX605gDbB0_xZw2cPX17XPPolOt7_VvbmIc8u-BwAA__8pCs_O">