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

    <tr>
        <th>Summary</th>
        <td>
            `abs(b * abs(a))` --> `abs(a * 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>
    https://godbolt.org/z/K4K1KGMGa
```cpp
#include <cmath>

int foo(int a, int b) { return abs(b * abs(a)); }

int bar(int a, int b) { return abs(a * b); }
```

I think it's actually rare to use nested absolute values, but GCC is better here anyway.

Alive2 proof:
https://alive2.llvm.org/ce/z/RiZgGm
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyMks1u2zAMx5-GvhAJJCq264MPaVoHQ7HLjrtJNh1rVaxAHy2ypx_sZV3XYcAAwiZI-kfSf-oY7WlmbqG8h_Kh0DlNPrTPGx2Cf42F8cO1nVK6RFB7oA6oO_nBeJe2PpyAuu9A3dPuST4dPx81iAcQe6jET-svl1uElJ17lwdGUIf-rNME6vGWW592Tjh6D3S3eBrogItjgBqE-h4Dpxxm1CYC3RkE2t98DdQspu4R6oePSKPD_yH1ijR_kX6t8h78CdNk52e0CaiOqPuUtXNXDDowJo85Ms4cEw8L3LucGF-0yxyXGUxOeDwc0EY0nBIHnDgw6vn6qq_b9332zr4w4SV4Py5_fw3-qYVeS7bOvZxvevR8E-WL_Xo6nouhVUOjGl1wK2shalnVZVNMbTmKUTVjI8U4kiE9yEqXopQD1aMs70xhWxKkpCQlStnIZltStWNZql3FlekNwU7wWVv31r2wMWZua0VSFk4bdnE9K6KZX3FNAtFyZaFdvtmYfIqwE87GFH9Tkk2OW6jEv8WuBG42oB7xreqdfpUocnAfj9amKZtt789A3dLq9tpcgv_GfQLq1gEjULcu8CMAAP__2Mfneg">