<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">