<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">