On Mon, Aug 14, 2017 at 06:02:51PM -0500, Peter Bergner wrote:
> The undocumented option -mvsx-timode was added because there were reload
> bugs we couldn't fix when we tried allowing TImode values in VSX registers.
> We used the option to allow TImode values in VSX registers when LRA was
> being used, but not when reload was being used.  Now that GCC 8 has removed
> the option of using reload, the TARGET_VSX_TIMODE flag is now logically the
> same as TARGET_VSX.  This patch replaces the TARGET_VSX_TIMODE flag with
> uses of TARGET_VSX and removes the ability of using -mno-vsx-timode.
> The option -mvsx-timode is now just a dummy stub similar to what we did
> with -mlra.

> Index: gcc/config/rs6000/altivec.md
> ===================================================================
> --- gcc/config/rs6000/altivec.md      (revision 251056)
> +++ gcc/config/rs6000/altivec.md      (working copy)
> @@ -218,7 +218,7 @@ (define_mode_attr VS_sxwsp [(V4SI "sxw")
>  (define_mode_iterator VParity [V4SI
>                              V2DI
>                              V1TI
> -                            (TI "TARGET_VSX_TIMODE")])
> +                            (TI "TARGET_VSX")])

You can completely remove the condition here as far as I see.

> --- gcc/config/rs6000/rs6000.md       (revision 251056)
> +++ gcc/config/rs6000/rs6000.md       (working copy)
> @@ -399,7 +399,7 @@ (define_mode_iterator FMOVE128_FPR [(TF
>                                   (TD "TARGET_HARD_FLOAT")])
>  
>  ; Iterators for 128 bit types for direct move
> -(define_mode_iterator FMOVE128_GPR [(TI    "TARGET_VSX_TIMODE")
> +(define_mode_iterator FMOVE128_GPR [(TI    "TARGET_VSX")
>                                   (V16QI "")
>                                   (V8HI  "")
>                                   (V4SI  "")

Same here I think (less sure).

> --- gcc/config/rs6000/vector.md       (revision 251056)
> +++ gcc/config/rs6000/vector.md       (working copy)
> @@ -31,7 +31,7 @@ (define_mode_iterator VEC_IP [V8HI
>                             V4SI
>                             V2DI
>                             V1TI
> -                           (TI "TARGET_VSX_TIMODE")])
> +                           (TI "TARGET_VSX")])

This one, too.

> --- gcc/config/rs6000/vsx.md  (revision 251056)
> +++ gcc/config/rs6000/vsx.md  (working copy)
> @@ -34,11 +34,11 @@ (define_mode_iterator VSX_D [V2DF V2DI])
>  ;; types that goes in a single vector register.
>  (define_mode_iterator VSX_LE_128 [(KF   "FLOAT128_VECTOR_P (KFmode)")
>                                 (TF   "FLOAT128_VECTOR_P (TFmode)")
> -                               (TI   "TARGET_VSX_TIMODE")
> +                               (TI   "TARGET_VSX")
>                                 V1TI])

And this.

>  ;; Iterator for 128-bit integer types that go in a single vector register.
> -(define_mode_iterator VSX_TI [(TI "TARGET_VSX_TIMODE") V1TI])
> +(define_mode_iterator VSX_TI [(TI "TARGET_VSX") V1TI])

More :-)

> @@ -71,7 +71,7 @@ (define_mode_iterator VSX_M [V16QI
>                            V1TI
>                            (KF        "FLOAT128_VECTOR_P (KFmode)")
>                            (TF        "FLOAT128_VECTOR_P (TFmode)")
> -                          (TI        "TARGET_VSX_TIMODE")])
> +                          (TI        "TARGET_VSX")])

And the last.

(In most of those cases we have V1TI without condition already).

Okay for trunk with that simplification.  Thanks!


Segher

Reply via email to