[Bug tree-optimization/126693] Fold abs (x) * abs (y) -> abs (x * y)

"dipesh.sharma at amd dot com via Gcc-bugs" <[email protected]>
Newsgroups gmane.comp.gcc.bugs
Message-ID <[email protected]/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126693

--- Comment #5 from Dipesh Sharma <dipesh.sharma at amd dot com> ---
Created attachment 65275
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=65275&action=edit
Proposed patch for the optimization.

Opt not valid for the following cases:

- fp with -frounding-math.
- Integers with wrapping arithmetic and signed integer overflow.
- values to be folded must have single use otherwise we may end up adding an
extra ABS_EXPR.
e.g.
int gx, gy, mul;
void f (int x, int y)
{
  int ax = __builtin_abs (x);
  int ay = __builtin_abs (y);
  mul = ax * ay;
  gx = ax; // use of ax
  gy = ay; // use of ay
}


Let me know your thoughts on it or if I missed anything.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.