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 > >