* [PATCH] rs6000: Builtins for doubleword compare should be in [power8-vector] (PR103625)
@ 2021-12-13 16:02 Bill Schmidt
2021-12-13 16:29 ` David Edelsohn
0 siblings, 1 reply; 2+ messages in thread
From: Bill Schmidt @ 2021-12-13 16:02 UTC (permalink / raw)
To: GCC Patches; +Cc: Segher Boessenkool, David Edelsohn
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?
Thanks!
Bill
2021-12-13 Bill Schmidt <wschmidt@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
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] rs6000: Builtins for doubleword compare should be in [power8-vector] (PR103625)
2021-12-13 16:02 [PATCH] rs6000: Builtins for doubleword compare should be in [power8-vector] (PR103625) Bill Schmidt
@ 2021-12-13 16:29 ` David Edelsohn
0 siblings, 0 replies; 2+ messages in thread
From: David Edelsohn @ 2021-12-13 16:29 UTC (permalink / raw)
To: Bill Schmidt; +Cc: GCC Patches, Segher Boessenkool
On Mon, Dec 13, 2021 at 11:02 AM Bill Schmidt <wschmidt@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 <wschmidt@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
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-12-13 16:30 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-13 16:02 [PATCH] rs6000: Builtins for doubleword compare should be in [power8-vector] (PR103625) Bill Schmidt
2021-12-13 16:29 ` David Edelsohn
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).