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