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

    <tr>
        <th>Summary</th>
        <td>
            LLVM trunk emits ~40% larger code at -Oz compared to -O2
        </td>
    </tr>

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

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

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

<pre>
    Reduced from a large example:

```
long patatino() {
    long x = 0;
    for (int i = 0; i < 5; ++i) {
        while (x < 37) {
            if (x % 4 == 0) {
                x += 4;
            }
        }
    }
 return x;
}
```

-Oz

```
patatino():
        xorl %eax, %eax
        xorl    %ecx, %ecx
.LBB0_1:
        cmpl    $5, %ecx
        jne     .LBB0_4
        jmp     .LBB0_2
.LBB0_5:
 testb   $3, %al
        jne     .LBB0_4
        addq    $4, %rax
.LBB0_4:
        cmpq    $36, %rax
        jle     .LBB0_5
 incl    %ecx
        jmp     .LBB0_1
.LBB0_2:
 retq
```

-O2

```
patatino():
        movl    $40, %eax
        retq
```

Godbolt link: https://godbolt.org/z/fzxWM693x
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVE1vqzoQ_TVmM0pkxjjAgkXTKG_TqtJbvLd8MsYkbg1OjWl5WdzffmVCPvtxde8IgeGcmXNmsCy6Tm9apQrCl4SvItH7rXVFJaWOSlv9X_ytql6qCmpnGxBghNsoUINodkYRdkfoitDjfUGna3w1tt3ATnjhdWsJZgRzIOnyAAIAjIQBCFsBJewCqK0DgpluPegTPC7vgYclwSXBpf5QMcT7VhsV0oeRz9JPWSF0PdGQQxJ0DlJf0UMMozRbQXJl-BgkXV1_vPpwfnHK966F4VTkBN3M8HCfPe2_mfP1iE__5GTZOhNaVGIgeH9cfaQEg8iVPLHkxJo_LJf0v_hDYdnspqyE3-YcOc-tGp-HGskN2OwuQLxU42c1rzpfHmTYJCPMb6iIqnqdbCZTvhNXrSWftXbMYYvbpJOquVTlE6hbeTnLbxqOLz3g2YNT_vXbzYB_vhka-3b8Zwn9ajv8wsBftiqt8WB0-0LYHWy933VBCdcE15sDOrduQ3C9J7iu98O_j4ucDVFVsCpnuYhUEaeYJTTPszTaFjVTabnI0prRMhd1RisWx1laUZ5KXso60gVSTGJKszjljKZzREYFR55LjJGngiRUNUKbuTFvTdCOdNf1qojjmKdxZESpTDeecYiteocRJYjhyHNFSJqV_aYjCTW68925jNfeqOLh4Z9H8K5vX0A12nfwI0yPH05DB9JWCoSH2dMepG12wqkKvIXZE0a9M8XNhLTf9uVc2obgOghNj9nO2WclPcH1aK8juJ78vxX4MwAA__-8Um0K">