On Mon, Dec 13, 2021 at 11:02 AM Bill Schmidt <wschm...@linux.ibm.com> wrote:
>
> Hi!
>
> PR103625 observes that we ICE when doing vector compares on doublewords.
> The original built-in function support requires Power8 vector support for
> these, but this was missed in the new built-in support.  Moving these
> functions to the [power8-vector] stanza solves the problem.
>
> Tested the fix on a powerpc-e300c3-linux-gnu cross.  Bootstrapped and tested 
> on
> powerpc64le-linux-gnu with no regressions.  Is this okay for trunk?

Okay.

Thanks, David

>
> Thanks!
> Bill
>
>
> 2021-12-13  Bill Schmidt  <wschm...@linux.ibm.com>
>
> gcc/
>         PR target/103625
>         * config/rs6000/rs6000-builtin-new.def (__builtin_altivec_vcmpequd):
>         Move to power8-vector stanza.
>         (__builtin_altivec_vcmpequd_p): Likewise.
>         (__builtin_altivec_vcmpgtsd): Likewise.
>         (__builtin_altivec_vcmpgtsd_p): Likewise.
>         (__builtin_altivec_vcmpgtud): Likewise.
>         (__builtin_altivec_vcmpgtud_p): Likewise.
> ---
>  gcc/config/rs6000/rs6000-builtin-new.def | 36 ++++++++++++------------
>  1 file changed, 18 insertions(+), 18 deletions(-)
>
> diff --git a/gcc/config/rs6000/rs6000-builtin-new.def 
> b/gcc/config/rs6000/rs6000-builtin-new.def
> index a020dbbe2fb..bd950f8db36 100644
> --- a/gcc/config/rs6000/rs6000-builtin-new.def
> +++ b/gcc/config/rs6000/rs6000-builtin-new.def
> @@ -1200,24 +1200,6 @@
>    const vull __builtin_altivec_vandc_v2di_uns (vull, vull);
>      VANDC_V2DI_UNS andcv2di3 {}
>
> -  const vsll __builtin_altivec_vcmpequd (vull, vull);
> -    VCMPEQUD vector_eqv2di {}
> -
> -  const int __builtin_altivec_vcmpequd_p (int, vsll, vsll);
> -    VCMPEQUD_P vector_eq_v2di_p {pred}
> -
> -  const vsll __builtin_altivec_vcmpgtsd (vsll, vsll);
> -    VCMPGTSD vector_gtv2di {}
> -
> -  const int __builtin_altivec_vcmpgtsd_p (int, vsll, vsll);
> -    VCMPGTSD_P vector_gt_v2di_p {pred}
> -
> -  const vsll __builtin_altivec_vcmpgtud (vull, vull);
> -    VCMPGTUD vector_gtuv2di {}
> -
> -  const int __builtin_altivec_vcmpgtud_p (int, vsll, vsll);
> -    VCMPGTUD_P vector_gtu_v2di_p {pred}
> -
>    const vd __builtin_altivec_vnor_v2df (vd, vd);
>      VNOR_V2DF norv2df3 {}
>
> @@ -2221,6 +2203,24 @@
>    const vsc __builtin_altivec_vbpermq2 (vsc, vsc);
>      VBPERMQ2 altivec_vbpermq2 {}
>
> +  const vsll __builtin_altivec_vcmpequd (vull, vull);
> +    VCMPEQUD vector_eqv2di {}
> +
> +  const int __builtin_altivec_vcmpequd_p (int, vsll, vsll);
> +    VCMPEQUD_P vector_eq_v2di_p {pred}
> +
> +  const vsll __builtin_altivec_vcmpgtsd (vsll, vsll);
> +    VCMPGTSD vector_gtv2di {}
> +
> +  const int __builtin_altivec_vcmpgtsd_p (int, vsll, vsll);
> +    VCMPGTSD_P vector_gt_v2di_p {pred}
> +
> +  const vsll __builtin_altivec_vcmpgtud (vull, vull);
> +    VCMPGTUD vector_gtuv2di {}
> +
> +  const int __builtin_altivec_vcmpgtud_p (int, vsll, vsll);
> +    VCMPGTUD_P vector_gtu_v2di_p {pred}
> +
>    const vsll __builtin_altivec_vmaxsd (vsll, vsll);
>      VMAXSD smaxv2di3 {}
>
> --
> 2.27.0
>
>

Reply via email to