<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62041>62041</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
optimization for "(2 % a > 2 % b) ? 2 / a : 2 / b "
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
k-arrows
</td>
</tr>
</table>
<pre>
Test case:
```console
$ cat tmp.c
int foo(int a, int b)
{
return (2 % a > 2 % b) ? 2 / a : 2 / b ;
}
```
For this test case, clang generates code to perform division three times.
However, gcc generates code to perform division two times.
(x86_64) https://godbolt.org/z/6877MoGq1
(arm) https://godbolt.org/z/Khc6oafEb
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUUk-Pm04M_TTDxQoaDOHPgUOyWX4_qeqt92oYHJh2wOnMkLT76ash2a26p62E4NnWe7YfVt6bcSFqxf4o9qdErWFi137fKef45pOeh1_tF_IBtPIk8oOQJyEPopT3R_Pi2dIjiwVoFSDMl1TfU2YJcGYWWEekBD5BBL3A5sGpjncAAOAorG4BgTWCwD0oEPkz3HGkgMi7Ley20uGBexD58VXu9G7CR7i9O3YQJuMhvG2ET6CtWkYYaSGnAnnQPBAEhgu5M7sZBnM13vACYXJEEMxMPr0L_s83upKLKqPWH9K48V8Kr87VP-vya1nEJacQLj5ajZ3AbuShZxtSdqPA7kVgV9ZV9Zn_-5G9cZWbP0L8NOmS1fm5T4Y2H5q8UQm1WVlnWZYVZZNMbYO5RCqVzGvsG1UVw6Caasg0qqymfZ6YFiXmssikrLDAJpVFVcv9oHsqyoryRhSSZmVsau11jr0T4_1KbYmyyBKrerJ-OzbEhW6wFQVivD3XRs6uX0cvCmmND_6PSjDBUsuXYGbzokK08swOIvXfrwUxWZ1t3_llwrT2qeZZYBf7Pj67i-NvpIPAbpvWx18Qt_kdAAD__4FP8as">