Minor documentation correction in aarch64-simd.md

Message ID 2ee6aa6b-52aa-411b-1611-f68da3836044@oracle.com
State New
Headers show
Series
  • Minor documentation correction in aarch64-simd.md
Related show

Commit Message

Indu Bhagat April 25, 2018, 8:17 p.m.
In function minmax_replacement in tree-ssa-phiopt.c, MIN_EXPR/MAX_EXPR 
are substituted for when the following condition is false - (HONOR_NANS 
(type) || HONOR_SIGNED_ZEROS (type)). So for FP mode, this is false when 
_both_ of the following conditions are fulfilled : 1. flag_signed_zeros 
is zero and 2. flag_finite_math_only is set. So, the documentation in 
aarch64-simd.md is partially misleading. Here is a patch to correct 
that. Thanks

-----------------------

gcc/ChangeLog:

         * config/aarch64/aarch64-simd.md: correct flags text for 
MIN_EXPR replacement

Comments

James Greenhalgh May 22, 2018, 7:27 p.m. | #1
On Wed, Apr 25, 2018 at 03:17:28PM -0500, Indu Bhagat wrote:
> In function minmax_replacement in tree-ssa-phiopt.c, MIN_EXPR/MAX_EXPR 

> are substituted for when the following condition is false - (HONOR_NANS 

> (type) || HONOR_SIGNED_ZEROS (type)). So for FP mode, this is false when 

> _both_ of the following conditions are fulfilled : 1. flag_signed_zeros 

> is zero and 2. flag_finite_math_only is set. So, the documentation in 

> aarch64-simd.md is partially misleading. Here is a patch to correct 

> that. Thanks


This is OK for trunk.

Thanks,
James

> gcc/ChangeLog:

> 

>          * config/aarch64/aarch64-simd.md: correct flags text for 

> MIN_EXPR replacement


> diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md

> index 1154fc3..7fd20fd 100644

> --- a/gcc/config/aarch64/aarch64-simd.md

> +++ b/gcc/config/aarch64/aarch64-simd.md

> @@ -2211,8 +2211,9 @@

>  ;; Max/Min are introduced by idiom recognition by GCC's mid-end.  An

>  ;; expression like:

>  ;;      a = (b < c) ? b : c;

> -;; is idiom-matched as MIN_EXPR<b,c> only if -ffinite-math-only is enabled

> -;; either explicitly or indirectly via -ffast-math.

> +;; is idiom-matched as MIN_EXPR<b,c> only if -ffinite-math-only and

> +;; -fno-signed-zeros are enabled either explicitly or indirectly via

> +;; -ffast-math.

>  ;;

>  ;; MIN_EXPR and MAX_EXPR eventually map to 'smin' and 'smax' in RTL.

>  ;; The 'smax' and 'smin' RTL standard pattern names do not specify which

Patch

diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md
index 1154fc3..7fd20fd 100644
--- a/gcc/config/aarch64/aarch64-simd.md
+++ b/gcc/config/aarch64/aarch64-simd.md
@@ -2211,8 +2211,9 @@ 
 ;; Max/Min are introduced by idiom recognition by GCC's mid-end.  An
 ;; expression like:
 ;;      a = (b < c) ? b : c;
-;; is idiom-matched as MIN_EXPR<b,c> only if -ffinite-math-only is enabled
-;; either explicitly or indirectly via -ffast-math.
+;; is idiom-matched as MIN_EXPR<b,c> only if -ffinite-math-only and
+;; -fno-signed-zeros are enabled either explicitly or indirectly via
+;; -ffast-math.
 ;;
 ;; MIN_EXPR and MAX_EXPR eventually map to 'smin' and 'smax' in RTL.
 ;; The 'smax' and 'smin' RTL standard pattern names do not specify which