<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/90242>90242</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            incorrect coalescing of stores by AArch64 global isel backend
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:AArch64,
            llvm:codegen,
            miscompilation,
            llvm:globalisel
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          regehr
      </td>
    </tr>
</table>

<pre>
    this function is getting lowered incorrectly by global isel for AArch64:
```llvm
@G = external global [10 x i32]

define void @f(i64 %0) {
  %2 = getelementptr [10 x i32], ptr @G, i64 0, i64 %0
 store i32 0, ptr %2, align 4
  store i32 0, ptr getelementptr inbounds ([10 x i32], ptr @G, i64 0, i64 1), align 4
  ret void
}
```
it should be storing 0 to index 1 and also index `%0` but global isel is incorrectly coalescing these into a single store:
```
_f: ; @f
        adrp    x8, _G@GOTPAGE
        lsl     x9, x0, #2
        ldr     x8, [x8, _G@GOTPAGEOFF]
        str     xzr, [x8, x9]
        ret
```

cc @hatsunespica

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVMFyozgQ_Rpx6YpLSALDgQNer33MHvaeEqIBzciSSxIZZ75-SmA7cZLLVLmwaL1-ar1-jQxBjxaxIcWOFPtMznFyvvE44uSzzvVvTZx0gGG2KmpnQQcYMUZtRzDuF3rsQVvlvEcVzRt0bzAa10kDOqCBwXloW6-mUhDeErontCUlXX_GvJ6uIUGPQPge8BLRW2luJKTY5RQuoDkjxf4KXp49DtoivDrdAxF0IKzSpQDCCkpYDWS7W3GQQmwhHzGiwRPaeI7-MzX7B5aooMe0Tlz0tlhIV7YQnceUs-4uKaxgaS2NHi2I27HfIB8L0LZzs-0DEFb9RTE5YfU3x3mMixhXjbb7T2KvrzpCmNxseuhwqTD1kUJ0oG2PF8hB2h6kCbdAyky3Lyl0c3zorQ4PnVdOGgwqEcYJA4K20YGEoO1o1sPwqwfW15eB8BYI362tvLa5lr0_E1pfqnTfl2OS4_n__9rjv3eECSYBFkEui0SEcfa-3ft7Pil2X4meD4cPvqpDXPC__UPCpf6I8Ri_vcP6VCpdYZIxzBbDWSu5xrO-4X3Na5lhk29zkRdCiG02NR3ndKB5V3OWy6rst9W2qLHjFVNFmVci0w2jTFDByryiVBQbVVVlUVQcOSurcqiJoHiS2mzSPG2cHzMdwoxNTZlgmZEdmrCMN2OdVD_R9oS3t6FkybqEsWUWeatcjyPae_ikg3KnszYyDf9n9OqGZIa0U-wz36Sdp24eAxHU6BDDe1VRR4PN3TIfDeOG1R8hfT-upT147Vp4NnvTTDGeQ3ISOxB2GHWc5m6j3Imww1LX-vd09u4HqkjYYZEjEHZYFPkTAAD__zMsb9g">