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

    <tr>
        <th>Summary</th>
        <td>
            [SystemZ] Register clobber in L128 expansion
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:SystemZ,
            miscompilation
      </td>
    </tr>

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

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

<pre>
    Running https://gist.github.com/nikic/974087a15f48f4495f25361bae3015d2 through `llc -mtriple=s390x--` gives something like this:
```
  lg  %r4, 14920(%r4,%r15)            # 16-byte Folded Reload
  lg  %r5, 14928(%r4,%r15)            # 16-byte Folded Reload
```
Note that `%r4` is used in the load offset calculation, but also one of the result registers.

Originally, this is a L128:

```
  renamable $r2q = L128 $r15d, 14920, killed $r2d :: (load (s128) from %stack.13, align 8)
```

That gets expanded into two LG, resulting in the register clobber:
```
  $r2d = LG $r15d, 14920, $r2d :: (load (s128) from %stack.13, align 8)
  $r3d = LG $r15d, 14928, killed $r2d :: (load (s128) from %stack.13, align 8)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0VEGP6yYQ_jX4MkpkBuPYBx-2L8q7rFpp21NvYMY2DTYp4NeXf1_hJH2raPfU1rJA2Mz3zXwMn4rRjgtRx-RPTB4LtabJh26xZ9sX2ptr97Yui11GmFK6RCZeGJ4YnkYb0360aVr1vvczw9MWwvDUHqqyOSguh6oZqqqVA0pRc61IlFwahDQFv44TsLp0rofdnIK9OGLiGEVbft_tWF3CaL9RhOhnSlNmd_ZMkCa7ZVAeWfnC6vL-bksANwIwlKFi-AV41WLJsHl8yDOXDFt49zAUwOudviaCk3eGDLyR88o8Q8oHZPMvIZ-S_tmnXJVKWYwbbl2CjbBGMmAXSBNBjgY_DJES9Mr1q1PJ-iWnpNcEykUPfiHww7Y9UFxdgkD5iCjE_Z15G38JdrSLcu6aw7OemU3BK8fmh7If6xtoUbPSjoBhFfBPYOK4BW5rLs073b_A2TpH5rbVQMYWL8Cw2aph2MTMiC0Mwc9Z45hUf95zkWOVs-MC-feHqdzG37JsI6UI9P2iFrMJljykvzy8fs0wNyVy99yVfGgCvfNaU_i8l_5J-wivXz-s7z8p7EYkPiNq_jchC9MJ04pWFdTxA5dcCjzwYuq41NVAleY1Sl01fdNQXQneS6lVMxhd2A5LrEpZNuUBD5LvjZbK1EqhaLCttGZVSbOybu_ct3nvw1jYGFfqWl6JQ-GUJhc3t0HUqj_TYph4-fUaE82_M8TtYuFsY-_ni320OmZvCl2G3Ol1jKwqnY0p_iBJNrnNxR5Q8ghvT-ed-2Br2K1jovVLsQbXPTvbO1PL8Pdpdwn-D-oTw9NWUMxel2v6OwAA__-ugH7u">