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

    <tr>
        <th>Summary</th>
        <td>
            Combine operations for integer array acting as larger type
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    if I mess something up with this issue I retire from writing compiler issues
```C
#include <stdint.h>

void unopt(uint32_t a[restrict 2], const uint32_t b[restrict 2]) {
    a[0] += b[0];
    a[1] += b[1] + (a[0] < b[0]);
}

void opt(uint32_t a[restrict 2], const uint32_t b[restrict 2]) {
          uint64_t *restrict a64 = (uint64_t *)a;
    const uint64_t *restrict b64 = (uint64_t *)b;

    *a64 += *b64;
}
```

```ASM
unopt: # @unopt
        mov     eax, dword ptr [rsi]
        add     dword ptr [rdi], eax
        mov     eax, dword ptr [rsi + 4]
        adc     dword ptr [rdi + 4], eax
 ret
opt:                                    # @opt
        mov     rax, qword ptr [rsi]
        add     qword ptr [rdi], rax
 ret
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VMtu4zoM_Rp6QzSwKD_ihRd53ABd3NV8QCHbTKyBbbmS3Ez_fuBHk0mTAp3FGEEEyoeHPEcylXP61DHnEG8h3gdq8LWx-cmYrrTMPdugMNV7ro_4jC07h8607GvdnXDo8ax9jb7WDrVzA-MzWvbaMh6tafFstR-BpWl73bCdQQ7CPYQbSML5t1tikrorm6FiBLlzvtKdX9Ug_1teT_9vRlc4dKb3QOtBd17Si0cF8day81aXHgniPdAOS9M5jxdMcY_JENLtzIuIE0sI8R6BtiD3U8YYg_wEEp9AHzECra8kcndloOxCAun-TtA_kTM_Y0ISvXgE2lzwKolwbH4p-vEeKFM3Yq817yiKLymKq9QLEdBmqjl7BrQpkuiBIx834s_0y-bmx__zznz8coNAEiEK5_hGd2veppXVr9G76mxshb23OLrm9GjXDV5V1bTeAiu9eD_S_A3_dBmiB1XKh1Wu8JtalhdVi9xvPIsjX_ph535fv-vH62M_7H2Pl2MKqlxWmcxUwLlIwzRZC4pFUOeqksmREg5TmYljXKaFYgpjyuJUhiRkoHMKKQpJCJHFkRCrJC5YCI7DNRWsUoYo5FbpZtU0b-3K2FMwzZN8LSLKgkYV3LhpjhF1fJ6HDdD4cQQ2H3OeiuHkIAob7by7snjtG853pi10x2h6tspr0zk8Gou683xii8pa9Y6qnAaactgoO277956DwTZ57X3vQG6ADkCHk_b1UKxK0wIdxkLL8tRb85NLD3RYZiEdpvZ_BwAA__-Q_4tl">