]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
tree-optimization/105368 - avoid overflow in powi_cost
authorRichard Biener <rguenther@suse.de>
Mon, 25 Apr 2022 08:55:21 +0000 (10:55 +0200)
committerRichard Biener <rguenther@suse.de>
Fri, 27 May 2022 13:14:21 +0000 (15:14 +0200)
The following avoids undefined signed overflow when computing
the absolute of the exponent in powi_cost.

2022-04-25  Richard Biener  <rguenther@suse.de>

PR tree-optimization/105368
* tree-ssa-math-opts.c (powi_cost): Use absu_hwi.

(cherry picked from commit f0e170f72f8bfaa2a64e1d09ebdfd48f917420f1)

gcc/tree-ssa-math-opts.c

index 4c89fddcfc579c08c7e00632268f5740dbb0ceea..fbaa3deffe3973075a72c055cda702ec0da7e3be 100644 (file)
@@ -1328,7 +1328,7 @@ powi_cost (HOST_WIDE_INT n)
     return 0;
 
   /* Ignore the reciprocal when calculating the cost.  */
-  val = (n < 0) ? -n : n;
+  val = absu_hwi (n);
 
   /* Initialize the exponent cache.  */
   memset (cache, 0, POWI_TABLE_SIZE * sizeof (bool));