<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/107526>107526</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
`lsr v, v, #56`+`ldr d0, [x9, x8, lsl #3]` optimized to `lsr v, v, #53`+`and v, v, #0x7f8`+`ldr d0, [x9, x8]`
</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>
[Godbolt link](https://zig.godbolt.org/z/sbefWdEcf)
```zig
export fn foo(bitstring: u64, dest: [*]u8, src: [*][8]u8) void {
dest[0..8].* = src[bitstring >> 56];
}
```
Compiled for the Apple M3:
```asm
foo:
lsr x8, x0, #53
and x8, x8, #0x7f8
ldr x8, [x2, x8]
str x8, [x1]
ret
```
I think it should be:
```asm
foo:
lsr x8, x0, #56
ldr x8, [x2, x8, lsl #3]
str x8, [x1]
ret
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVE9voz4Q_TTDZVRkxrFDDhySpvnpd9jr7hmwAW8djLDJZvvpVwb6J23VUxGyxcybN7wnj0vvTdtrXYA4gDgm5RQ6NxY_S2tUOT4mlVN_Y-4_pypnA1rTP4I4AuVdCIMHvgc6AZ2eTJu2CyZ1YxsjQCdf6eaXeqgboB2wI7D9ukq2vE-mXSL6OrgxYNNj4xxQXpngw2j6FvgeJ7kBukelfYif8VdpD-I45THsx_omCuKQr8kdXpxRCNvD0gURFxZxYGkaUSnQHoEfZxZxeGmLwB-AP6CQkZGv9bA9vhPwVtW9Ow_GaoWNGzF0GvfDYDX-4NGlz9SX_rxEouZnDK6P9eO8X2eRVxZXIC74Lazs1TMkXyHsum3yd2TqLRmIw5XWEnG8RfrwHpl9wIw6fGHD_xg60z-iCeg7N1mFlf5WB-RHbR910T1abyOef5PGRBVc7fiuTHSRbUlIxrMNT7pC5LqWea0ymetGZ5VQWUNMi4rqnMmmSUxBjDZsxySTGRFPm1woWUmWUal3DVOwYfpcGptaeznH-UmM95MuMrYVJBNbVtr6eUSJev0H5ywQxYkdi1h0V02thw2zxgf_ShNMsLoAyaKXl6j28uqiZECHmFMjKvZsxe5zAyVDNwRzNk9aYXD4KSd_4YzH8ia3HMqvW85tkmm0xe3l0prQTVVauzPQKWpbt7thdL91HYBOsyMe6LRadinoXwAAAP__jFRGJg">