<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61139>61139</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Removing `while` to get nearest larger multiple
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
837951602
</td>
</tr>
</table>
<pre>
gcc.godbolt.org/z/ooWz1zh79
```
unsigned e(unsigned x) {
while (x%4) ++x;
return x;
}
get:
mov eax, edi
neg eax
and eax, 3
add eax, edi
ret
expected:
add eax, 3
and eax, -4
ret
```
The %5 case even keeps the `while` there.
Since I write this to round up, maybe it's common enough to consider
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8ks9unDAQxp9muIyygjF_DxyyjZB6bSv1bPAE3Bp7ZZvNJk9fmWyzSasWEDDzffNjNIwMQc-WuYfqCNVDJre4ON-3oumqos4pG5167udpOsxOjc7Eg_Mz0PACNDj3_aV4WZoO8gfI76HOr9cebnYnK2Sg9i24AHUIzfHVg4j4tGjDCNRegKpyl-kIdLyAeOfyHDdv8ZaE5uH1ZeYI4v7qXN05uZHlBegTstI3RDosz2_6B0Fa9b5QXFWp1H95nuNrgi8nniKrWyu_wUr9BbVvqbvyH7w_hvltSSOqKpxkYOQzW_zJfAoYk1Dn-xChzlPs-XBl7Pev2k6Mn_HJ68gYFx0wOvRuswq3U2pilc8jo45ATcDJrauzyNZt85Kck7NBK_aZ6oXqRCcz7ou6adq8EXmdLX1VP1Zl2VI7VVSMJEQjFTdqFFK24yibTPeUk8jTWYgqrw-PZSsqoVRXjGoauwrKnFepzcGY85oWLNMhbNzXRSG6zMiRTdgXlMjyE-4iEKV99X2quRu3OUCZGx1iuFGijob7L7y6s7bzxzk5nDmiZek5RDTSz-xx3UzUJ8PZ5k2_xHgK6X_SADTMOi7beJjcCjSkL1wfdyfvfvAUgYa9rwA07H3_CgAA__8EYPgd">