<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/107243>107243</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Aarch64] Vector constant that could use u16-dup is loaded from memory instead
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Validark
</td>
</tr>
</table>
<pre>
```zig
export fn foo() @Vector(16, u8) {
return @bitCast(@as(@Vector(8, u16), @splat(0x0703)));
}
export fn bar() @Vector(8, u16) {
return @bitCast(@as(@Vector(8, u16), @splat(0x0703)));
}
```
Compiled for Apple M3:
```asm
.LCPI0_0:
.byte 3
.byte 7
.byte 3
.byte 7
.byte 3
.byte 7
.byte 3
.byte 7
.byte 3
.byte 7
.byte 3
.byte 7
.byte 3
.byte 7
.byte 3
.byte 7
foo:
adrp x8, .LCPI0_0
ldr q0, [x8, :lo12:.LCPI0_0]
ret
bar:
mov w8, #1795
dup v0.8h, w8
ret
```
Relevant LLVM code:
```llvm
define dso_local noundef <16 x i8> @foo() local_unnamed_addr {
Entry:
ret <16 x i8> <i8 3, i8 7, i8 3, i8 7, i8 3, i8 7, i8 3, i8 7, i8 3, i8 7, i8 3, i8 7, i8 3, i8 7, i8 3, i8 7>
}
define dso_local noundef <8 x i16> @bar() local_unnamed_addr {
Entry:
ret <8 x i16> <i16 1795, i16 1795, i16 1795, i16 1795, i16 1795, i16 1795, i16 1795, i16 1795>
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8VV2P4jYU_TXOy9Ugx3a-HvLAwCBVmpWqPswrMvEF3DpxajsM9NdXTrLAztJ2u2oXRbrhcu7h-H5Zeq8PHWJNsmeSrRM5hKN19Zs0Wkn3W7Kz6lKTnE7PH_pA6JrQJZ576wLsO9hbS1hJWAVE0DdsgnWElWlO2AqGyV88T0HgMAyui8CdDivpQ4wUVPrJXqPLMThyVPGNCOp7IyOanmlB-egfHz5Tk2I9v3yQt5Pugby7P7iTB_BDFH5O5r3glW17bVDB3jpY9r1B-MQJX95jroHSt5Nn8br6-Se6pVcgzJ_F7hIQAPhjdzG7vxH2LaT_BvuPzN8j4P8ljV1-TbJUro-Y89gF1yJ8EW-UG-3vdOyP7HkCE740NmWE32qXrW_TcV_u2Lkf69ra02jfJzLG06LKvoSoYdQGJ7oojxH1Xn7F_6gDf0GDJ9kFeH19-wSNVfhX7WfMae4_hXvdIShvt8Y20kBnh07hHghfpTmcQZeEv8TpuG2JEbgduk62qLZSKXebwJcuuMvdoR2Gj1R8pUvg8Vy6hGK2P-47f3m4b_4uEWUUn-ZzIm776DsScU_FVzrNYax_FPdfv3990M_lT1TNVcUrmWCdFiwTWVGUVXKsqwaR7RWKshCpLKUoWZFTJVSVVU2KNNE1o0zQioqUi0pUC2yQM8oylvOCqyYlgmIrtVnEFltYd0i09wPWKS2Y4ImROzR-vKkY6_Adxl8JY_HicnUMetoNB08ENdoHf6MJOpjxiltK1xxzQbI1TLscGtv5EPs-HGWAxg5GweAxLvenOEvag7FSxdXsbAstttZdQHc-oFTJ4Ex9DKH3sVhsQ9jmoMNx2C0a2xK2GUdlMk-9s79iEwjbjLI9YZv5XKea_RkAAP__skLyLQ">