On Thu, Nov 03, 2016 at 04:05:59PM -0400, Michael Meissner wrote:
> --- gcc/config/rs6000/rs6000.md       (revision 241715)
> +++ gcc/config/rs6000/rs6000.md       (working copy)
> @@ -376,7 +376,7 @@
>    (TF "TARGET_HARD_FLOAT
>     && (TARGET_FPRS || TARGET_E500_DOUBLE)
>     && TARGET_LONG_DOUBLE_128")
> -  (IF "TARGET_LONG_DOUBLE_128")
> +  (IF "TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128")
>    (KF "TARGET_FLOAT128_TYPE")
>    (DD "TARGET_DFP")
>    (TD "TARGET_DFP")])

You might want to use FLOAT128_IBM_P here too, like you do below:

> @@ -398,7 +398,7 @@
>  (define_mode_iterator FMOVE64 [DF DD])
>  (define_mode_iterator FMOVE64X [DI DF DD])
>  (define_mode_iterator FMOVE128 [(TF "TARGET_LONG_DOUBLE_128")
> -                             (IF "TARGET_LONG_DOUBLE_128")
> +                             (IF "FLOAT128_IBM_P (IFmode)")
>                               (TD "TARGET_HARD_FLOAT && TARGET_FPRS")])
>  
>  (define_mode_iterator FMOVE128_FPR [(TF "FLOAT128_2REG_P (TFmode)")

Okay for trunk with or without that.

Thanks!


Segher

Reply via email to