public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/wschmidt/heads/builtins10)] rs6000: **split and squash me**
@ 2021-03-30 23:07 William Schmidt
  0 siblings, 0 replies; 2+ messages in thread
From: William Schmidt @ 2021-03-30 23:07 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:1f3eee9c45e0d0acdc5de7962a63798bb1bfe1e8

commit 1f3eee9c45e0d0acdc5de7962a63798bb1bfe1e8
Author: Bill Schmidt <wschmidt@linux.ibm.com>
Date:   Tue Mar 30 18:07:00 2021 -0500

    rs6000: **split and squash me**
    
    Fix disparities between old and new builtins.
    
    2021-03-30  Bill Schmidt  <wschmidt@linux.ibm.com>
    
    gcc/
            * config/rs6000/altivec.h: Fix disparities.
            * config/rs6000-builtin-new.def: Likewise.
            * config/rs6000-call.c (rs6000_debug_type): Handle long long
            types.
            * config/rs6000-overload.def: Fix disparities.

Diff:
---
 gcc/config/rs6000/altivec.h              |   6 +
 gcc/config/rs6000/rs6000-builtin-new.def | 479 ++++++++++++++++---------------
 gcc/config/rs6000/rs6000-call.c          |   4 +
 gcc/config/rs6000/rs6000-overload.def    |  97 ++++++-
 4 files changed, 341 insertions(+), 245 deletions(-)

diff --git a/gcc/config/rs6000/altivec.h b/gcc/config/rs6000/altivec.h
index 3d68b787a75..8daf933e53e 100644
--- a/gcc/config/rs6000/altivec.h
+++ b/gcc/config/rs6000/altivec.h
@@ -139,6 +139,12 @@
 #define __builtin_bcdcmple(a,b)   __builtin_vec_bcdsub_le(a,b,0)
 #endif
 
+#ifdef _ARCH_PWR10
+#define __builtin_vec_se_lxvrx __builtin_vec_xl_sext
+#define __builtin_vec_tr_stxvrx __builtin_vec_xst_trunc
+#define __builtin_vec_ze_lxvrx __builtin_vec_xl_zext
+#define __builtin_vsx_xxpermx __builtin_vec_xxpermx
+#endif
 
 /* Predicates.
    For C++, we use templates in order to allow non-parenthesized arguments.
diff --git a/gcc/config/rs6000/rs6000-builtin-new.def b/gcc/config/rs6000/rs6000-builtin-new.def
index f574c97bb93..cbe9813883f 100644
--- a/gcc/config/rs6000/rs6000-builtin-new.def
+++ b/gcc/config/rs6000/rs6000-builtin-new.def
@@ -252,10 +252,10 @@
 
 ; Power6 builtins.
 [power6]
-  const unsigned long long __builtin_p6_cmpb (unsigned long long, unsigned long long);
+  const signed long __builtin_p6_cmpb (signed long, signed long);
     CMPB cmpbdi3 {}
 
-  const unsigned int __builtin_p6_cmpb_32 (unsigned int, unsigned int);
+  const signed int __builtin_p6_cmpb_32 (signed int, signed int);
     CMPB_32 cmpbsi3 {}
 
 
@@ -321,10 +321,10 @@
   pure vsi __builtin_altivec_lvewx (signed long, const void *);
     LVEWX altivec_lvewx {ldvec}
 
-  pure vuc __builtin_altivec_lvsl (signed long, const void *);
+  pure vsc __builtin_altivec_lvsl (signed long, const void *);
     LVSL altivec_lvsl {ldvec}
 
-  pure vuc __builtin_altivec_lvsr (signed long, const void *);
+  pure vsc __builtin_altivec_lvsr (signed long, const void *);
     LVSR altivec_lvsr {ldvec}
 
   pure vsi __builtin_altivec_lvx (signed long, const void *);
@@ -432,7 +432,7 @@
   fpmath vf __builtin_altivec_uns_float_sisf (vui);
     UNSFLOAT_V4SI_V4SF floatunsv4siv4sf2 {}
 
-  const vui __builtin_altivec_vaddcuw (vui, vui);
+  const vsi __builtin_altivec_vaddcuw (vsi, vsi);
     VADDCUW altivec_vaddcuw {}
 
   const vf __builtin_altivec_vaddfp (vf, vf);
@@ -447,22 +447,22 @@
   const vsi __builtin_altivec_vaddsws (vsi, vsi);
     VADDSWS altivec_vaddsws {}
 
-  const vuc __builtin_altivec_vaddubm (vuc, vuc);
+  const vsc __builtin_altivec_vaddubm (vsc, vsc);
     VADDUBM addv16qi3 {}
 
-  const vuc __builtin_altivec_vaddubs (vuc, vuc);
+  const vsc __builtin_altivec_vaddubs (vsc, vsc);
     VADDUBS altivec_vaddubs {}
 
-  const vus __builtin_altivec_vadduhm (vus, vus);
+  const vss __builtin_altivec_vadduhm (vss, vss);
     VADDUHM addv8hi3 {}
 
-  const vus __builtin_altivec_vadduhs (vus, vus);
+  const vss __builtin_altivec_vadduhs (vss, vss);
     VADDUHS altivec_vadduhs {}
 
   const vsi __builtin_altivec_vadduwm (vsi, vsi);
     VADDUWM addv4si3 {}
 
-  const vui __builtin_altivec_vadduws (vui, vui);
+  const vsi __builtin_altivec_vadduws (vsi, vsi);
     VADDUWS altivec_vadduws {}
 
   const vsc __builtin_altivec_vand_v16qi (vsc, vsc);
@@ -516,19 +516,19 @@
   const vsi __builtin_altivec_vavgsw (vsi, vsi);
     VAVGSW avgv4si3_ceil {}
 
-  const vuc __builtin_altivec_vavgub (vuc, vuc);
+  const vsc __builtin_altivec_vavgub (vsc, vsc);
     VAVGUB uavgv16qi3_ceil {}
 
-  const vus __builtin_altivec_vavguh (vus, vus);
+  const vss __builtin_altivec_vavguh (vss, vss);
     VAVGUH uavgv8hi3_ceil {}
 
-  const vui __builtin_altivec_vavguw (vui, vui);
+  const vsi __builtin_altivec_vavguw (vsi, vsi);
     VAVGUW uavgv4si3_ceil {}
 
   const vf __builtin_altivec_vcfsx (vsi, const int<5>);
     VCFSX altivec_vcfsx {}
 
-  const vf __builtin_altivec_vcfux (vui, const int<5>);
+  const vf __builtin_altivec_vcfux (vsi, const int<5>);
     VCFUX altivec_vcfux {}
 
   const vsi __builtin_altivec_vcmpbfp (vf, vf);
@@ -612,7 +612,7 @@
   const vsi __builtin_altivec_vctsxs (vf, const int<5>);
     VCTSXS altivec_vctsxs {}
 
-  const vui __builtin_altivec_vctuxs (vf, const int<5>);
+  const vsi __builtin_altivec_vctuxs (vf, const int<5>);
     VCTUXS altivec_vctuxs {}
 
   fpmath vf __builtin_altivec_vexptefp (vf);
@@ -693,22 +693,22 @@
   const vsi __builtin_altivec_vmrglw (vsi, vsi);
     VMRGLW altivec_vmrglw {}
 
-  const vsi __builtin_altivec_vmsummbm (vsc, vuc, vsi);
+  const vsi __builtin_altivec_vmsummbm (vsc, vsc, vsi);
     VMSUMMBM altivec_vmsummbm {}
 
   const vsi __builtin_altivec_vmsumshm (vss, vss, vsi);
     VMSUMSHM altivec_vmsumshm {}
 
-  vsi __builtin_altivec_vmsumshs (vss, vss, vsi);
+  const vsi __builtin_altivec_vmsumshs (vss, vss, vsi);
     VMSUMSHS altivec_vmsumshs {}
 
-  const vui __builtin_altivec_vmsumubm (vuc, vuc, vui);
+  const vsi __builtin_altivec_vmsumubm (vsc, vsc, vsi);
     VMSUMUBM altivec_vmsumubm {}
 
-  const vui __builtin_altivec_vmsumuhm (vus, vus, vui);
+  const vsi __builtin_altivec_vmsumuhm (vss, vss, vsi);
     VMSUMUHM altivec_vmsumuhm {}
 
-  vui __builtin_altivec_vmsumuhs (vus, vus, vui);
+  const vsi __builtin_altivec_vmsumuhs (vss, vss, vsi);
     VMSUMUHS altivec_vmsumuhs {}
 
   const vss __builtin_altivec_vmulesb (vsc, vsc);
@@ -786,10 +786,10 @@
   const vuc __builtin_altivec_vperm_16qi_uns (vuc, vuc, vuc);
     VPERM_16QI_UNS altivec_vperm_v16qi_uns {}
 
-  const vsq __builtin_altivec_vperm_1ti (vsq, vsq, vuc);
+  const vsq __builtin_altivec_vperm_1ti (vsq, vsq, vsc);
     VPERM_1TI altivec_vperm_v1ti {}
 
-  const vuq __builtin_altivec_vperm_1ti_uns (vuq, vuq, vuc);
+  const vsq __builtin_altivec_vperm_1ti_uns (vsq, vsq, vsc);
     VPERM_1TI_UNS altivec_vperm_v1ti_uns {}
 
   const vf __builtin_altivec_vperm_4sf (vf, vf, vuc);
@@ -807,31 +807,31 @@
   const vus __builtin_altivec_vperm_8hi_uns (vus, vus, vuc);
     VPERM_8HI_UNS altivec_vperm_v8hi_uns {}
 
-  const vp __builtin_altivec_vpkpx (vui, vui);
+  const vss __builtin_altivec_vpkpx (vsi, vsi);
     VPKPX altivec_vpkpx {}
 
   const vsc __builtin_altivec_vpkshss (vss, vss);
     VPKSHSS altivec_vpkshss {}
 
-  const vuc __builtin_altivec_vpkshus (vss, vss);
+  const vsc __builtin_altivec_vpkshus (vss, vss);
     VPKSHUS altivec_vpkshus {}
 
   const vss __builtin_altivec_vpkswss (vsi, vsi);
     VPKSWSS altivec_vpkswss {}
 
-  const vus __builtin_altivec_vpkswus (vsi, vsi);
+  const vss __builtin_altivec_vpkswus (vsi, vsi);
     VPKSWUS altivec_vpkswus {}
 
   const vsc __builtin_altivec_vpkuhum (vss, vss);
     VPKUHUM altivec_vpkuhum {}
 
-  const vuc __builtin_altivec_vpkuhus (vus, vus);
+  const vsc __builtin_altivec_vpkuhus (vss, vss);
     VPKUHUS altivec_vpkuhus {}
 
   const vss __builtin_altivec_vpkuwum (vsi, vsi);
     VPKUWUM altivec_vpkuwum {}
 
-  const vus __builtin_altivec_vpkuwus (vui, vui);
+  const vss __builtin_altivec_vpkuwus (vsi, vsi);
     VPKUWUS altivec_vpkuwus {}
 
   const vf __builtin_altivec_vrecipdivfp (vf, vf);
@@ -879,28 +879,28 @@
   fpmath vf __builtin_altivec_vrsqrtfp (vf);
     VRSQRTFP rsqrtv4sf2 {}
 
-  const vsc __builtin_altivec_vsel_16qi (vsc, vsc, vuc);
+  const vsc __builtin_altivec_vsel_16qi (vsc, vsc, vsc);
     VSEL_16QI vector_select_v16qi {}
 
   const vuc __builtin_altivec_vsel_16qi_uns (vuc, vuc, vuc);
     VSEL_16QI_UNS vector_select_v16qi_uns {}
 
-  const vsq __builtin_altivec_vsel_1ti (vsq, vsq, vuq);
+  const vsq __builtin_altivec_vsel_1ti (vsq, vsq, vsq);
     VSEL_1TI vector_select_v1ti {}
 
-  const vuq __builtin_altivec_vsel_1ti_uns (vuq, vuq, vuq);
+  const vsq __builtin_altivec_vsel_1ti_uns (vsq, vsq, vsq);
     VSEL_1TI_UNS vector_select_v1ti_uns {}
 
   const vf __builtin_altivec_vsel_4sf (vf, vf, vf);
     VSEL_4SF vector_select_v4sf {}
 
-  const vsi __builtin_altivec_vsel_4si (vsi, vsi, vui);
+  const vsi __builtin_altivec_vsel_4si (vsi, vsi, vsi);
     VSEL_4SI vector_select_v4si {}
 
   const vui __builtin_altivec_vsel_4si_uns (vui, vui, vui);
     VSEL_4SI_UNS vector_select_v4si_uns {}
 
-  const vss __builtin_altivec_vsel_8hi (vss, vss, vus);
+  const vss __builtin_altivec_vsel_8hi (vss, vss, vss);
     VSEL_8HI vector_select_v8hi {}
 
   const vus __builtin_altivec_vsel_8hi_uns (vus, vus, vus);
@@ -909,7 +909,7 @@
   const vsi __builtin_altivec_vsl (vsi, vsi);
     VSL altivec_vsl {}
 
-  const vsc __builtin_altivec_vslb (vsc, vuc);
+  const vsc __builtin_altivec_vslb (vsc, vsc);
     VSLB vashlv16qi3 {}
 
   const vsc __builtin_altivec_vsldoi_16qi (vsc, vsc, const int<4>);
@@ -924,13 +924,13 @@
   const vss __builtin_altivec_vsldoi_8hi (vss, vss, const int<4>);
     VSLDOI_8HI altivec_vsldoi_v8hi {}
 
-  const vss __builtin_altivec_vslh (vss, vus);
+  const vss __builtin_altivec_vslh (vss, vss);
     VSLH vashlv8hi3 {}
 
   const vsi __builtin_altivec_vslo (vsi, vsi);
     VSLO altivec_vslo {}
 
-  const vsi __builtin_altivec_vslw (vsi, vui);
+  const vsi __builtin_altivec_vslw (vsi, vsi);
     VSLW vashlv4si3 {}
 
   const vsc __builtin_altivec_vspltb (vsc, const int<4>);
@@ -954,13 +954,13 @@
   const vsi __builtin_altivec_vsr (vsi, vsi);
     VSR altivec_vsr {}
 
-  const vsc __builtin_altivec_vsrab (vsc, vuc);
+  const vsc __builtin_altivec_vsrab (vsc, vsc);
     VSRAB vashrv16qi3 {}
 
-  const vss __builtin_altivec_vsrah (vss, vus);
+  const vss __builtin_altivec_vsrah (vss, vss);
     VSRAH vashrv8hi3 {}
 
-  const vsi __builtin_altivec_vsraw (vsi, vui);
+  const vsi __builtin_altivec_vsraw (vsi, vsi);
     VSRAW vashrv4si3 {}
 
   const vsc __builtin_altivec_vsrb (vsc, vuc);
@@ -990,22 +990,22 @@
   const vsi __builtin_altivec_vsubsws (vsi, vsi);
     VSUBSWS altivec_vsubsws {}
 
-  const vuc __builtin_altivec_vsububm (vuc, vuc);
+  const vsc __builtin_altivec_vsububm (vsc, vsc);
     VSUBUBM subv16qi3 {}
 
-  const vuc __builtin_altivec_vsububs (vuc, vuc);
+  const vsc __builtin_altivec_vsububs (vsc, vsc);
     VSUBUBS altivec_vsububs {}
 
-  const vus __builtin_altivec_vsubuhm (vus, vus);
+  const vss __builtin_altivec_vsubuhm (vss, vss);
     VSUBUHM subv8hi3 {}
 
-  const vus __builtin_altivec_vsubuhs (vus, vus);
+  const vss __builtin_altivec_vsubuhs (vss, vss);
     VSUBUHS altivec_vsubuhs {}
 
-  const vui __builtin_altivec_vsubuwm (vui, vui);
+  const vsi __builtin_altivec_vsubuwm (vsi, vsi);
     VSUBUWM subv4si3 {}
 
-  const vui __builtin_altivec_vsubuws (vui, vui);
+  const vsi __builtin_altivec_vsubuws (vsi, vsi);
     VSUBUWS altivec_vsubuws {}
 
   const vsi __builtin_altivec_vsum2sws (vsi, vsi);
@@ -1017,7 +1017,7 @@
   const vsi __builtin_altivec_vsum4shs (vss, vsi);
     VSUM4SHS altivec_vsum4shs {}
 
-  const vui __builtin_altivec_vsum4ubs (vuc, vui);
+  const vsi __builtin_altivec_vsum4ubs (vsc, vsi);
     VSUM4UBS altivec_vsum4ubs {}
 
   const vsi __builtin_altivec_vsumsws (vsi, vsi);
@@ -1026,7 +1026,7 @@
   const vsi __builtin_altivec_vsumsws_be (vsi, vsi);
     VSUMSWS_BE altivec_vsumsws_direct {}
 
-  const vui __builtin_altivec_vupkhpx (vp);
+  const vsi __builtin_altivec_vupkhpx (vss);
     VUPKHPX altivec_vupkhpx {}
 
   const vss __builtin_altivec_vupkhsb (vsc);
@@ -1035,7 +1035,7 @@
   const vsi __builtin_altivec_vupkhsh (vss);
     VUPKHSH altivec_vupkhsh {}
 
-  const vui __builtin_altivec_vupklpx (vp);
+  const vsi __builtin_altivec_vupklpx (vss);
     VUPKLPX altivec_vupklpx {}
 
   const vss __builtin_altivec_vupklsb (vsc);
@@ -1131,22 +1131,23 @@
 
 ; VSX builtins.
 [vsx]
-  pure vsq __builtin_altivec_lvx_v1ti (signed long long, const void *);
+  pure vsq __builtin_altivec_lvx_v1ti (signed long, const void *);
     LVX_V1TI altivec_lvx_v1ti {ldvec}
 
-  pure vd __builtin_altivec_lvx_v2df (signed long long, const void *);
+  pure vd __builtin_altivec_lvx_v2df (signed long, const void *);
     LVX_V2DF altivec_lvx_v2df {ldvec}
 
-  pure vsll __builtin_altivec_lvx_v2di (signed long long, const void *);
+  pure vsll __builtin_altivec_lvx_v2di (signed long, const void *);
     LVX_V2DI altivec_lvx_v2di {ldvec}
 
-  pure vuq __builtin_altivec_lvxl_v1ti (signed long long, const void *);
-    LVXL_V1TI altivec_lvxl_v1ti {ldvec}
+;; Not present previously; why did I add this?
+;  pure vuq __builtin_altivec_lvxl_v1ti (signed long, const void *);
+;    LVXL_V1TI altivec_lvxl_v1ti {ldvec}
 
-  pure vd __builtin_altivec_lvxl_v2df (signed long long, const void *);
+  pure vd __builtin_altivec_lvxl_v2df (signed long, const void *);
     LVXL_V2DF altivec_lvxl_v2df {ldvec}
 
-  pure vsll __builtin_altivec_lvxl_v2di (signed long long, const void *);
+  pure vsll __builtin_altivec_lvxl_v2di (signed long, const void *);
     LVXL_V2DI altivec_lvxl_v2di {ldvec}
 
   const vd __builtin_altivec_nabs_v2df (vd);
@@ -1185,7 +1186,7 @@
   const vull __builtin_altivec_vandc_v2di_uns (vull, vull);
     VANDC_V2DI_UNS andcv2di3 {}
 
-  const vbll __builtin_altivec_vcmpequd (vull, vull);
+  const vsll __builtin_altivec_vcmpequd (vull, vull);
     VCMPEQUD vector_eqv2di {}
 
   const int __builtin_altivec_vcmpequd_p (int, vsll, vsll);
@@ -1200,7 +1201,7 @@
   const vsll __builtin_altivec_vcmpgtud (vull, vull);
     VCMPGTUD vector_gtuv2di {}
 
-  const int __builtin_altivec_vcmpgtud_p (int, vull, vull);
+  const int __builtin_altivec_vcmpgtud_p (int, vsll, vsll);
     VCMPGTUD_P vector_gtu_v2di_p {pred}
 
   const vd __builtin_altivec_vnor_v2df (vd, vd);
@@ -1239,7 +1240,7 @@
   const vd __builtin_altivec_vsel_2df (vd, vd, vd);
     VSEL_2DF vector_select_v2df {}
 
-  const vsll __builtin_altivec_vsel_2di (vsll, vsll, vull);
+  const vsll __builtin_altivec_vsel_2di (vsll, vsll, vsll);
     VSEL_2DI_B vector_select_v2di {}
 
   const vull __builtin_altivec_vsel_2di_uns (vull, vull, vull);
@@ -1266,7 +1267,7 @@
   const double __builtin_vec_ext_v2df (vd, signed int);
     VEC_EXT_V2DF nothing {extract}
 
-  const signed long long __builtin_vec_ext_v2di (vsll, signed int);
+  const signed long __builtin_vec_ext_v2di (vsll, signed int);
     VEC_EXT_V2DI nothing {extract}
 
   const vsq __builtin_vec_init_v1ti (signed __int128);
@@ -1287,52 +1288,52 @@
   const vsll __builtin_vec_set_v2di (vsll, signed long long, const int<1>);
     VEC_SET_V2DI nothing {set}
 
-  const vbc __builtin_vsx_cmpge_16qi (vsc, vsc);
+  const vsc __builtin_vsx_cmpge_16qi (vsc, vsc);
     CMPGE_16QI vector_nltv16qi {}
 
-  const vbll __builtin_vsx_cmpge_2di (vsll, vsll);
+  const vsll __builtin_vsx_cmpge_2di (vsll, vsll);
     CMPGE_2DI vector_nltv2di {}
 
-  const vbi __builtin_vsx_cmpge_4si (vsi, vsi);
+  const vsi __builtin_vsx_cmpge_4si (vsi, vsi);
     CMPGE_4SI vector_nltv4si {}
 
-  const vbs __builtin_vsx_cmpge_8hi (vss, vss);
+  const vss __builtin_vsx_cmpge_8hi (vss, vss);
     CMPGE_8HI vector_nltv8hi {}
 
-  const vbc __builtin_vsx_cmpge_u16qi (vuc, vuc);
+  const vsc __builtin_vsx_cmpge_u16qi (vuc, vuc);
     CMPGE_U16QI vector_nltuv16qi {}
 
-  const vbll __builtin_vsx_cmpge_u2di (vull, vull);
+  const vsll __builtin_vsx_cmpge_u2di (vull, vull);
     CMPGE_U2DI vector_nltuv2di {}
 
-  const vbi __builtin_vsx_cmpge_u4si (vui, vui);
+  const vsi __builtin_vsx_cmpge_u4si (vui, vui);
     CMPGE_U4SI vector_nltuv4si {}
 
-  const vbs __builtin_vsx_cmpge_u8hi (vus, vus);
+  const vss __builtin_vsx_cmpge_u8hi (vus, vus);
     CMPGE_U8HI vector_nltuv8hi {}
 
-  const vbc __builtin_vsx_cmple_16qi (vsc, vsc);
+  const vsc __builtin_vsx_cmple_16qi (vsc, vsc);
     CMPLE_16QI vector_ngtv16qi {}
 
-  const vbll __builtin_vsx_cmple_2di (vsll, vsll);
+  const vsll __builtin_vsx_cmple_2di (vsll, vsll);
     CMPLE_2DI vector_ngtv2di {}
 
-  const vbi __builtin_vsx_cmple_4si (vsi, vsi);
+  const vsi __builtin_vsx_cmple_4si (vsi, vsi);
     CMPLE_4SI vector_ngtv4si {}
 
-  const vbs __builtin_vsx_cmple_8hi (vss, vss);
+  const vss __builtin_vsx_cmple_8hi (vss, vss);
     CMPLE_8HI vector_ngtv8hi {}
 
-  const vbc __builtin_vsx_cmple_u16qi (vuc, vuc);
+  const vsc __builtin_vsx_cmple_u16qi (vsc, vsc);
     CMPLE_U16QI vector_ngtuv16qi {}
 
-  const vbll __builtin_vsx_cmple_u2di (vull, vull);
+  const vsll __builtin_vsx_cmple_u2di (vsll, vsll);
     CMPLE_U2DI vector_ngtuv2di {}
 
-  const vbi __builtin_vsx_cmple_u4si (vui, vui);
+  const vsi __builtin_vsx_cmple_u4si (vsi, vsi);
     CMPLE_U4SI vector_ngtuv4si {}
 
-  const vbs __builtin_vsx_cmple_u8hi (vus, vus);
+  const vss __builtin_vsx_cmple_u8hi (vss, vss);
     CMPLE_U8HI vector_ngtuv8hi {}
 
   const vd __builtin_vsx_concat_2df (double, double);
@@ -1341,8 +1342,9 @@
   const vsll __builtin_vsx_concat_2di (signed long long, signed long long);
     CONCAT_2DI vsx_concat_v2di {}
 
-  const vull __builtin_vsx_concat_2di_uns (unsigned long long, unsigned long long);
-    CONCAT_2DI_UNS vsx_concat_v2di {}
+;; Not present previously; why did I add this?
+;  const vull __builtin_vsx_concat_2di_uns (unsigned long long, unsigned long long);
+;    CONCAT_2DI_UNS vsx_concat_v2di {}
 
   const vd __builtin_vsx_cpsgndp (vd, vd);
     CPSGNDP vector_copysignv2df3 {}
@@ -1454,8 +1456,9 @@
   const vsq __builtin_vsx_set_1ti (vsq, signed __int128, const int<0,0>);
     SET_1TI vsx_set_v1ti {set}
 
-  const vuq __builtin_vsx_set_1ti_uns (vuq, unsigned __int128, const int<0,0>);
-    SET_1TI_UNS vsx_set_v1ti {set}
+;; Not present previously; why did I add this?
+;  const vuq __builtin_vsx_set_1ti_uns (vuq, unsigned __int128, const int<0,0>);
+;    SET_1TI_UNS vsx_set_v1ti {set}
 
   const vd __builtin_vsx_set_2df (vd, double, const int<0,1>);
     SET_2DF vsx_set_v2df {set}
@@ -1463,8 +1466,9 @@
   const vsll __builtin_vsx_set_2di (vsll, signed long long, const int<0,1>);
     SET_2DI vsx_set_v2di {set}
 
-  const vull __builtin_vsx_set_2di_uns (vull, unsigned long long, const int<0,1>);
-    SET_2DI_UNS vsx_set_v2di {set}
+;; Not present previously; why did I add this?
+;  const vull __builtin_vsx_set_2di_uns (vull, unsigned long long, const int<0,1>);
+;    SET_2DI_UNS vsx_set_v2di {set}
 
   const vd __builtin_vsx_splat_2df (double);
     SPLAT_2DF vsx_splat_v2df {}
@@ -1472,8 +1476,9 @@
   const vsll __builtin_vsx_splat_2di (signed long long);
     SPLAT_2DI vsx_splat_v2di {}
 
-  const vull __builtin_vsx_splat_2di_uns (unsigned long long);
-    SPLAT_2DI_UNS vsx_splat_v2di {}
+;; Not present previously; why did I add this?
+;  const vull __builtin_vsx_splat_2di_uns (unsigned long long);
+;    SPLAT_2DI_UNS vsx_splat_v2di {}
 
   void __builtin_vsx_st_elemrev_v1ti (vsq, signed long, void *);
     ST_ELEMREV_V1TI vsx_st_elemrev_v1ti {stvec,endian}
@@ -1520,22 +1525,22 @@
   const vull __builtin_vsx_udiv_2di (vull, vull);
     UDIV_V2DI vsx_udiv_v2di {}
 
-  const vd __builtin_vsx_uns_doublee_v4si (vui);
+  const vd __builtin_vsx_uns_doublee_v4si (vsi);
     UNS_DOUBLEE_V4SI unsdoubleev4si2 {}
 
-  const vd __builtin_vsx_uns_doubleh_v4si (vui);
+  const vd __builtin_vsx_uns_doubleh_v4si (vsi);
     UNS_DOUBLEH_V4SI unsdoublehv4si2 {}
 
-  const vd __builtin_vsx_uns_doublel_v4si (vui);
+  const vd __builtin_vsx_uns_doublel_v4si (vsi);
     UNS_DOUBLEL_V4SI unsdoublelv4si2 {}
 
-  const vd __builtin_vsx_uns_doubleo_v4si (vui);
+  const vd __builtin_vsx_uns_doubleo_v4si (vsi);
     UNS_DOUBLEO_V4SI unsdoubleov4si2 {}
 
-  const vf __builtin_vsx_uns_floate_v2di (vull);
+  const vf __builtin_vsx_uns_floate_v2di (vsll);
     UNS_FLOATE_V2DI unsfloatev2di {}
 
-  const vf __builtin_vsx_uns_floato_v2di (vull);
+  const vf __builtin_vsx_uns_floato_v2di (vsll);
     UNS_FLOATO_V2DI unsfloatov2di {}
 
 ; I have no idea why we have __builtin_vsx_* duplicates of these when
@@ -1547,10 +1552,10 @@
   const vuc __builtin_vsx_vperm_16qi_uns (vuc, vuc, vuc);
     VPERM_16QI_UNS_X altivec_vperm_v16qi_uns {}
 
-  const vsq __builtin_vsx_vperm_1ti (vsq, vsq, vuc);
+  const vsq __builtin_vsx_vperm_1ti (vsq, vsq, vsc);
     VPERM_1TI_X altivec_vperm_v1ti {}
 
-  const vuq __builtin_vsx_vperm_1ti_uns (vuq, vuq, vuc);
+  const vsq __builtin_vsx_vperm_1ti_uns (vsq, vsq, vsc);
     VPERM_1TI_UNS_X altivec_vperm_v1ti_uns {}
 
   const vd __builtin_vsx_vperm_2df (vd, vd, vuc);
@@ -1589,16 +1594,16 @@
   const vsi __builtin_vsx_vsignedo_v2df (vd);
     VEC_VSIGNEDO_V2DF vsignedo_v2df {}
 
-  const vull __builtin_vsx_vunsigned_v2df (vd);
+  const vsll __builtin_vsx_vunsigned_v2df (vd);
     VEC_VUNSIGNED_V2DF vsx_xvcvdpsxds {}
 
-  const vui __builtin_vsx_vunsigned_v4sf (vf);
+  const vsi __builtin_vsx_vunsigned_v4sf (vf);
     VEC_VUNSIGNED_V4SF vsx_xvcvspsxws {}
 
-  const vull __builtin_vsx_vunsignede_v2df (vd);
+  const vsi __builtin_vsx_vunsignede_v2df (vd);
     VEC_VUNSIGNEDE_V2DF vunsignede_v2df {}
 
-  const vull __builtin_vsx_vunsignedo_v2df (vd);
+  const vsi __builtin_vsx_vunsignedo_v2df (vd);
     VEC_VUNSIGNEDO_V2DF vunsignedo_v2df {}
 
   const vf __builtin_vsx_xscvdpsp (double);
@@ -1628,16 +1633,16 @@
   const double __builtin_vsx_xsrdpiz (double);
     XSRDPIZ btruncdf2 {}
 
-  const unsigned int __builtin_vsx_xstdivdp_fe (double, double);
+  const signed int __builtin_vsx_xstdivdp_fe (double, double);
     XSTDIVDP_FE vsx_tdivdf3_fe {}
 
-  const unsigned int __builtin_vsx_xstdivdp_fg (double, double);
+  const signed int __builtin_vsx_xstdivdp_fg (double, double);
     XSTDIVDP_FG vsx_tdivdf3_fg {}
 
-  const unsigned int __builtin_vsx_xstsqrtdp_fe (double);
+  const signed int __builtin_vsx_xstsqrtdp_fe (double);
     XSTSQRTDP_FE vsx_tsqrtdf2_fe {}
 
-  const unsigned int __builtin_vsx_xstsqrtdp_fg (double);
+  const signed int __builtin_vsx_xstsqrtdp_fg (double);
     XSTSQRTDP_FG vsx_tsqrtdf2_fg {}
 
   const vd __builtin_vsx_xvabsdp (vd);
@@ -1700,7 +1705,7 @@
   const vsi __builtin_vsx_xvcvdpsxws (vd);
     XVCVDPSXWS vsx_xvcvdpsxws {}
 
-  const vull __builtin_vsx_xvcvdpuxds (vd);
+  const vsll __builtin_vsx_xvcvdpuxds (vd);
     XVCVDPUXDS vsx_fixuns_truncv2dfv2di2 {}
 
   const vsll __builtin_vsx_xvcvdpuxds_scale (vd, const int);
@@ -1710,7 +1715,7 @@
   const vull __builtin_vsx_xvcvdpuxds_uns (vd);
     XVCVDPUXDS_UNS vsx_fixuns_truncv2dfv2di2 {}
 
-  const vui __builtin_vsx_xvcvdpuxws (vd);
+  const vsi __builtin_vsx_xvcvdpuxws (vd);
     XVCVDPUXWS vsx_xvcvdpuxws {}
 
   const vd __builtin_vsx_xvcvspdp (vf);
@@ -1722,10 +1727,10 @@
   const vsi __builtin_vsx_xvcvspsxws (vf);
     XVCVSPSXWS vsx_fix_truncv4sfv4si2 {}
 
-  const vull __builtin_vsx_xvcvspuxds (vf);
+  const vsll __builtin_vsx_xvcvspuxds (vf);
     XVCVSPUXDS vsx_xvcvspuxds {}
 
-  const vui __builtin_vsx_xvcvspuxws (vf);
+  const vsi __builtin_vsx_xvcvspuxws (vf);
     XVCVSPUXWS vsx_fixuns_truncv4sfv4si2 {}
 
   const vd __builtin_vsx_xvcvsxddp (vsll);
@@ -1743,10 +1748,10 @@
   const vf __builtin_vsx_xvcvsxwsp (vsi);
     XVCVSXWSP vsx_floatv4siv4sf2 {}
 
-  const vd __builtin_vsx_xvcvuxddp (vull);
+  const vd __builtin_vsx_xvcvuxddp (vsll);
     XVCVUXDDP vsx_floatunsv2div2df2 {}
 
-  const vd __builtin_vsx_xvcvuxddp_scale (vull, const int<5>);
+  const vd __builtin_vsx_xvcvuxddp_scale (vsll, const int<5>);
     XVCVUXDDP_SCALE vsx_xvcvuxddp_scale {}
 
 ; Redundant with __builtin_vsx_xvcvuxddp
@@ -1759,7 +1764,7 @@
   const vd __builtin_vsx_xvcvuxwdp (vsi);
     XVCVUXWDP vsx_xvcvuxwdp {}
 
-  const vf __builtin_vsx_xvcvuxwsp (vui);
+  const vf __builtin_vsx_xvcvuxwsp (vsi);
     XVCVUXWSP vsx_floatunsv4siv4sf2 {}
 
   fpmath vd __builtin_vsx_xvdivdp (vd, vd);
@@ -1888,28 +1893,28 @@
   fpmath vf __builtin_vsx_xvsubsp (vf, vf);
     XVSUBSP subv4sf3 {}
 
-  const unsigned int __builtin_vsx_xvtdivdp_fe (vd, vd);
+  const signed int __builtin_vsx_xvtdivdp_fe (vd, vd);
     XVTDIVDP_FE vsx_tdivv2df3_fe {}
 
-  const unsigned int __builtin_vsx_xvtdivdp_fg (vd, vd);
+  const signed int __builtin_vsx_xvtdivdp_fg (vd, vd);
     XVTDIVDP_FG vsx_tdivv2df3_fg {}
 
-  const unsigned int __builtin_vsx_xvtdivsp_fe (vf, vf);
+  const signed int __builtin_vsx_xvtdivsp_fe (vf, vf);
     XVTDIVSP_FE vsx_tdivv4sf3_fe {}
 
-  const unsigned int __builtin_vsx_xvtdivsp_fg (vf, vf);
+  const signed int __builtin_vsx_xvtdivsp_fg (vf, vf);
     XVTDIVSP_FG vsx_tdivv4sf3_fg {}
 
-  const unsigned int __builtin_vsx_xvtsqrtdp_fe (vd);
+  const signed int __builtin_vsx_xvtsqrtdp_fe (vd);
     XVTSQRTDP_FE vsx_tsqrtv2df2_fe {}
 
-  const unsigned int __builtin_vsx_xvtsqrtdp_fg (vd);
+  const signed int __builtin_vsx_xvtsqrtdp_fg (vd);
     XVTSQRTDP_FG vsx_tsqrtv2df2_fg {}
 
-  const unsigned int __builtin_vsx_xvtsqrtsp_fe (vf);
+  const signed int __builtin_vsx_xvtsqrtsp_fe (vf);
     XVTSQRTSP_FE vsx_tsqrtv4sf2_fe {}
 
-  const unsigned int __builtin_vsx_xvtsqrtsp_fg (vf);
+  const signed int __builtin_vsx_xvtsqrtsp_fg (vf);
     XVTSQRTSP_FG vsx_tsqrtv4sf2_fg {}
 
   const vf __builtin_vsx_xxmrghw (vf, vf);
@@ -1954,7 +1959,7 @@
   const vsq __builtin_vsx_xxsel_1ti (vsq, vsq, vsq);
     XXSEL_1TI vector_select_v1ti {}
 
-  const vuq __builtin_vsx_xxsel_1ti_uns (vuq, vuq, vuq);
+  const vsq __builtin_vsx_xxsel_1ti_uns (vsq, vsq, vsq);
     XXSEL_1TI_UNS vector_select_v1ti_uns {}
 
   const vd __builtin_vsx_xxsel_2df (vd, vd, vd);
@@ -2035,7 +2040,7 @@
   void __builtin_ppc_speculation_barrier ();
     SPECBARR speculation_barrier {}
 
-  const unsigned long long __builtin_unpack_vector_int128 (vsq, const int<1>);
+  const unsigned long __builtin_unpack_vector_int128 (vsq, const int<1>);
     UNPACK_V1TI unpackv1ti {}
 
 
@@ -2053,6 +2058,12 @@
   const vsll __builtin_altivec_abs_v2di (vsll);
     ABS_V2DI absv2di2 {}
 
+  const vsc __builtin_altivec_bcddiv10_v16qi (vsc);
+    BCDDIV10_V16QI bcddiv10_v16qi {}
+
+  const vsc __builtin_altivec_bcdmul10_v16qi (vsc);
+    BCDMUL10_V16QI bcdmul10_v16qi {}
+
   const vsc __builtin_altivec_eqv_v16qi (vsc, vsc);
     EQV_V16QI eqvv16qi3 {}
 
@@ -2200,7 +2211,7 @@
   const vsq __builtin_altivec_vaddecuq (vsq, vsq, vsq);
     VADDECUQ altivec_vaddecuq {}
 
-  const vuq __builtin_altivec_vaddeuqm (vuq, vuq, vuq);
+  const vsq __builtin_altivec_vaddeuqm (vsq, vsq, vsq);
     VADDEUQM altivec_vaddeuqm {}
 
   const vsll __builtin_altivec_vaddudm (vsll, vsll);
@@ -2209,10 +2220,10 @@
   const vsq __builtin_altivec_vadduqm (vsq, vsq);
     VADDUQM altivec_vadduqm {}
 
-  const vull __builtin_altivec_vbpermq (vuc, vuc);
+  const vsll __builtin_altivec_vbpermq (vsc, vsc);
     VBPERMQ altivec_vbpermq {}
 
-  const vuc __builtin_altivec_vbpermq2 (vuc, vuc);
+  const vsc __builtin_altivec_vbpermq2 (vsc, vsc);
     VBPERMQ2 altivec_vbpermq2 {}
 
   const vsll __builtin_altivec_vmaxsd (vsll, vsll);
@@ -2257,25 +2268,25 @@
   const vsi __builtin_altivec_vpksdss (vsll, vsll);
     VPKSDSS altivec_vpksdss {}
 
-  const vui __builtin_altivec_vpksdus (vsll, vsll);
+  const vsi __builtin_altivec_vpksdus (vsll, vsll);
     VPKSDUS altivec_vpksdus {}
 
   const vsi __builtin_altivec_vpkudum (vsll, vsll);
     VPKUDUM altivec_vpkudum {}
 
-  const vui __builtin_altivec_vpkudus (vull, vull);
+  const vsi __builtin_altivec_vpkudus (vsll, vsll);
     VPKUDUS altivec_vpkudus {}
 
-  const vus __builtin_altivec_vpmsumb (vuc, vuc);
+  const vsc __builtin_altivec_vpmsumb (vsc, vsc);
     VPMSUMB_A crypto_vpmsumb {}
 
-  const vuq __builtin_altivec_vpmsumd (vull, vull);
+  const vsll __builtin_altivec_vpmsumd (vsll, vsll);
     VPMSUMD_A crypto_vpmsumd {}
 
-  const vui __builtin_altivec_vpmsumh (vus, vus);
+  const vss __builtin_altivec_vpmsumh (vss, vss);
     VPMSUMH_A crypto_vpmsumh {}
 
-  const vull __builtin_altivec_vpmsumw (vui, vui);
+  const vsi __builtin_altivec_vpmsumw (vsi, vsi);
     VPMSUMW_A crypto_vpmsumw {}
 
   const vsc __builtin_altivec_vpopcntb (vsc);
@@ -2287,16 +2298,16 @@
   const vss __builtin_altivec_vpopcnth (vss);
     VPOPCNTH popcountv8hi2 {}
 
-  const vuc __builtin_altivec_vpopcntub (vuc);
+  const vsc __builtin_altivec_vpopcntub (vsc);
     VPOPCNTUB popcountv16qi2 {}
 
-  const vull __builtin_altivec_vpopcntud (vull);
+  const vsll __builtin_altivec_vpopcntud (vsll);
     VPOPCNTUD popcountv2di2 {}
 
-  const vus __builtin_altivec_vpopcntuh (vus);
+  const vss __builtin_altivec_vpopcntuh (vss);
     VPOPCNTUH popcountv8hi2 {}
 
-  const vui __builtin_altivec_vpopcntuw (vui);
+  const vsi __builtin_altivec_vpopcntuw (vsi);
     VPOPCNTUW popcountv4si2 {}
 
   const vsi __builtin_altivec_vpopcntw (vsi);
@@ -2314,19 +2325,19 @@
   const vsll __builtin_altivec_vsrd (vsll, vull);
     VSRD vlshrv2di3 {}
 
-  const vuq __builtin_altivec_vsubcuq (vuq, vuq);
+  const vsq __builtin_altivec_vsubcuq (vsq, vsq);
     VSUBCUQ altivec_vsubcuq {}
 
   const vsq __builtin_altivec_vsubecuq (vsq, vsq, vsq);
     VSUBECUQ altivec_vsubecuq {}
 
-  const vuq __builtin_altivec_vsubeuqm (vuq, vuq, vuq);
+  const vsq __builtin_altivec_vsubeuqm (vsq, vsq, vsq);
     VSUBEUQM altivec_vsubeuqm {}
 
   const vsll __builtin_altivec_vsubudm (vsll, vsll);
     VSUBUDM subv2di3 {}
 
-  const vuq __builtin_altivec_vsubuqm (vuq, vuq);
+  const vsq __builtin_altivec_vsubuqm (vsq, vsq);
     VSUBUQM altivec_vsubuqm {}
 
   const vsll __builtin_altivec_vupkhsw (vsi);
@@ -2338,85 +2349,79 @@
   const vsq __builtin_bcdadd_v1ti (vsq, vsq, const int<1>);
     BCDADD_V1TI bcdadd_v1ti {}
 
-  const vuc __builtin_bcdadd_v16qi (vuc, vuc, const int<1>);
+  const vsc __builtin_bcdadd_v16qi (vsc, vsc, const int<1>);
     BCDADD_V16QI bcdadd_v16qi {}
 
   const signed int __builtin_bcdadd_eq_v1ti (vsq, vsq, const int<1>);
     BCDADD_EQ_V1TI bcdadd_eq_v1ti {}
 
-  const signed int __builtin_bcdadd_eq_v16qi (vuc, vuc, const int<1>);
+  const signed int __builtin_bcdadd_eq_v16qi (vsc, vsc, const int<1>);
     BCDADD_EQ_V16QI bcdadd_eq_v16qi {}
 
   const signed int __builtin_bcdadd_gt_v1ti (vsq, vsq, const int<1>);
     BCDADD_GT_V1TI bcdadd_gt_v1ti {}
 
-  const signed int __builtin_bcdadd_gt_v16qi (vuc, vuc, const int<1>);
+  const signed int __builtin_bcdadd_gt_v16qi (vsc, vsc, const int<1>);
     BCDADD_GT_V16QI bcdadd_gt_v16qi {}
 
   const signed int __builtin_bcdadd_lt_v1ti (vsq, vsq, const int<1>);
     BCDADD_LT_V1TI bcdadd_lt_v1ti {}
 
-  const signed int __builtin_bcdadd_lt_v16qi (vuc, vuc, const int<1>);
+  const signed int __builtin_bcdadd_lt_v16qi (vsc, vsc, const int<1>);
     BCDADD_LT_V16QI bcdadd_lt_v16qi {}
 
   const signed int __builtin_bcdadd_ov_v1ti (vsq, vsq, const int<1>);
     BCDADD_OV_V1TI bcdadd_unordered_v1ti {}
 
-  const signed int __builtin_bcdadd_ov_v16qi (vuc, vuc, const int<1>);
+  const signed int __builtin_bcdadd_ov_v16qi (vsc, vsc, const int<1>);
     BCDADD_OV_V16QI bcdadd_unordered_v16qi {}
 
-  const vuc __builtin_bcddiv10_v16qi (vuc);
-    BCDDIV10_V16QI bcddiv10_v16qi {}
-
   const signed int __builtin_bcdinvalid_v1ti (vsq);
     BCDINVALID_V1TI bcdinvalid_v1ti {}
 
-  const signed int __builtin_bcdinvalid_v16qi (vuc);
+  const signed int __builtin_bcdinvalid_v16qi (vsc);
     BCDINVALID_V16QI bcdinvalid_v16qi {}
 
-  const vuc __builtin_bcdmul10_v16qi (vuc);
-    BCDMUL10_V16QI bcdmul10_v16qi {}
-
   const vsq __builtin_bcdsub_v1ti (vsq, vsq, const int<1>);
     BCDSUB_V1TI bcdsub_v1ti {}
 
-  const vuc __builtin_bcdsub_v16qi (vuc, vuc, const int<1>);
+  const vsc __builtin_bcdsub_v16qi (vsc, vsc, const int<1>);
     BCDSUB_V16QI bcdsub_v16qi {}
 
   const signed int __builtin_bcdsub_eq_v1ti (vsq, vsq, const int<1>);
     BCDSUB_EQ_V1TI bcdsub_eq_v1ti {}
 
-  const signed int __builtin_bcdsub_eq_v16qi (vuc, vuc, const int<1>);
+  const signed int __builtin_bcdsub_eq_v16qi (vsc, vsc, const int<1>);
     BCDSUB_EQ_V16QI bcdsub_eq_v16qi {}
 
   const signed int __builtin_bcdsub_ge_v1ti (vsq, vsq, const int<1>);
     BCDSUB_GE_V1TI bcdsub_ge_v1ti {}
 
-  const signed int __builtin_bcdsub_ge_v16qi (vuc, vuc, const int<1>);
+  const signed int __builtin_bcdsub_ge_v16qi (vsc, vsc, const int<1>);
     BCDSUB_GE_V16QI bcdsub_ge_v16qi {}
 
   const signed int __builtin_bcdsub_gt_v1ti (vsq, vsq, const int<1>);
     BCDSUB_GT_V1TI bcdsub_gt_v1ti {}
 
-  const signed int __builtin_bcdsub_gt_v16qi (vuc, vuc, const int<1>);
+  const signed int __builtin_bcdsub_gt_v16qi (vsc, vsc, const int<1>);
     BCDSUB_GT_V16QI bcdsub_gt_v16qi {}
 
   const signed int __builtin_bcdsub_le_v1ti (vsq, vsq, const int<1>);
     BCDSUB_LE_V1TI bcdsub_le_v1ti {}
 
-  const signed int __builtin_bcdsub_le_v16qi (vuc, vuc, const int<1>);
+  const signed int __builtin_bcdsub_le_v16qi (vsc, vsc, const int<1>);
     BCDSUB_LE_V16QI bcdsub_le_v16qi {}
 
   const signed int __builtin_bcdsub_lt_v1ti (vsq, vsq, const int<1>);
     BCDSUB_LT_V1TI bcdsub_lt_v1ti {}
 
-  const signed int __builtin_bcdsub_lt_v16qi (vuc, vuc, const int<1>);
+  const signed int __builtin_bcdsub_lt_v16qi (vsc, vsc, const int<1>);
     BCDSUB_LT_V16QI bcdsub_lt_v16qi {}
 
   const signed int __builtin_bcdsub_ov_v1ti (vsq, vsq, const int<1>);
     BCDSUB_OV_V1TI bcdsub_unordered_v1ti {}
 
-  const signed int __builtin_bcdsub_ov_v16qi (vuc, vuc, const int<1>);
+  const signed int __builtin_bcdsub_ov_v16qi (vsc, vsc, const int<1>);
     BCDSUB_OV_V16QI bcdsub_unordered_v16qi {}
 
   const vuc __builtin_crypto_vpermxor_v16qi (vuc, vuc, vuc);
@@ -2470,13 +2475,13 @@
   const vss __builtin_vsx_revb_v8hi (vss);
     REVB_V8HI revb_v8hi {}
 
-  const vf __builtin_vsx_uns_float2_v2di (vull, vull);
+  const vf __builtin_vsx_uns_float2_v2di (vsll, vsll);
     UNS_FLOAT2_V2DI uns_float2_v2di {}
 
   const vsi __builtin_vsx_vsigned2_v2df (vd, vd);
     VEC_VSIGNED2_V2DF vsigned2_v2df {}
 
-  const vui __builtin_vsx_vunsigned2_v2df (vd, vd);
+  const vsi __builtin_vsx_vunsigned2_v2df (vd, vd);
     VEC_VUNSIGNED2_V2DF vunsigned2_v2df {}
 
   const vf __builtin_vsx_xscvdpspn (double);
@@ -2488,58 +2493,58 @@
 
 ; Power9 vector builtins.
 [power9-vector]
-  const vus __builtin_altivec_convert_4f32_8f16 (vf, vf);
+  const vss __builtin_altivec_convert_4f32_8f16 (vf, vf);
     CONVERT_4F32_8F16 convert_4f32_8f16 {}
 
-  const vus __builtin_altivec_convert_4f32_8i16 (vf, vf);
+  const vss __builtin_altivec_convert_4f32_8i16 (vf, vf);
     CONVERT_4F32_8I16 convert_4f32_8i16 {}
 
-  const unsigned int __builtin_altivec_first_match_index_v16qi (vsc, vsc);
+  const signed int __builtin_altivec_first_match_index_v16qi (vsc, vsc);
     VFIRSTMATCHINDEX_V16QI first_match_index_v16qi {}
 
-  const unsigned int __builtin_altivec_first_match_index_v8hi (vss, vss);
+  const signed int __builtin_altivec_first_match_index_v8hi (vss, vss);
     VFIRSTMATCHINDEX_V8HI first_match_index_v8hi {}
 
-  const unsigned int __builtin_altivec_first_match_index_v4si (vsi, vsi);
+  const signed int __builtin_altivec_first_match_index_v4si (vsi, vsi);
     VFIRSTMATCHINDEX_V4SI first_match_index_v4si {}
 
-  const unsigned int __builtin_altivec_first_match_or_eos_index_v16qi (vsc, vsc);
+  const signed int __builtin_altivec_first_match_or_eos_index_v16qi (vsc, vsc);
     VFIRSTMATCHOREOSINDEX_V16QI first_match_or_eos_index_v16qi {}
 
-  const unsigned int __builtin_altivec_first_match_or_eos_index_v8hi (vss, vss);
+  const signed int __builtin_altivec_first_match_or_eos_index_v8hi (vss, vss);
     VFIRSTMATCHOREOSINDEX_V8HI first_match_or_eos_index_v8hi {}
 
-  const unsigned int __builtin_altivec_first_match_or_eos_index_v4si (vsi, vsi);
+  const signed int __builtin_altivec_first_match_or_eos_index_v4si (vsi, vsi);
     VFIRSTMATCHOREOSINDEX_V4SI first_match_or_eos_index_v4si {}
 
-  const unsigned int __builtin_altivec_first_mismatch_index_v16qi (vsc, vsc);
+  const signed int __builtin_altivec_first_mismatch_index_v16qi (vsc, vsc);
     VFIRSTMISMATCHINDEX_V16QI first_mismatch_index_v16qi {}
 
-  const unsigned int __builtin_altivec_first_mismatch_index_v8hi (vss, vss);
+  const signed int __builtin_altivec_first_mismatch_index_v8hi (vss, vss);
     VFIRSTMISMATCHINDEX_V8HI first_mismatch_index_v8hi {}
 
-  const unsigned int __builtin_altivec_first_mismatch_index_v4si (vsi, vsi);
+  const signed int __builtin_altivec_first_mismatch_index_v4si (vsi, vsi);
     VFIRSTMISMATCHINDEX_V4SI first_mismatch_index_v4si {}
 
-  const unsigned int __builtin_altivec_first_mismatch_or_eos_index_v16qi (vsc, vsc);
+  const signed int __builtin_altivec_first_mismatch_or_eos_index_v16qi (vsc, vsc);
     VFIRSTMISMATCHOREOSINDEX_V16QI first_mismatch_or_eos_index_v16qi {}
 
-  const unsigned int __builtin_altivec_first_mismatch_or_eos_index_v8hi (vss, vss);
+  const signed int __builtin_altivec_first_mismatch_or_eos_index_v8hi (vss, vss);
     VFIRSTMISMATCHOREOSINDEX_V8HI first_mismatch_or_eos_index_v8hi {}
 
-  const unsigned int __builtin_altivec_first_mismatch_or_eos_index_v4si (vsi, vsi);
+  const signed int __builtin_altivec_first_mismatch_or_eos_index_v4si (vsi, vsi);
     VFIRSTMISMATCHOREOSINDEX_V4SI first_mismatch_or_eos_index_v4si {}
 
-  const vuc __builtin_altivec_vadub (vuc, vuc);
+  const vsc __builtin_altivec_vadub (vsc, vsc);
     VADUB vaduv16qi3 {}
 
-  const vus __builtin_altivec_vaduh (vus, vus);
+  const vss __builtin_altivec_vaduh (vss, vss);
     VADUH vaduv8hi3 {}
 
-  const vui __builtin_altivec_vaduw (vui, vui);
+  const vsi __builtin_altivec_vaduw (vsi, vsi);
     VADUW vaduv4si3 {}
 
-  const vull __builtin_altivec_vbpermd (vull, vuc);
+  const vsll __builtin_altivec_vbpermd (vsll, vsc);
     VBPERMD altivec_vbpermd {}
 
   const signed int __builtin_altivec_vclzlsbb_v16qi (vsc);
@@ -2635,22 +2640,22 @@
   const signed int __builtin_altivec_vcmpnezw_p (signed int, vsi, vsi);
     VCMPNEZW_P vector_nez_v4si_p {pred}
 
-  const unsigned char __builtin_altivec_vextublx (unsigned int, vuc);
+  const signed int __builtin_altivec_vextublx (signed int, vsc);
     VEXTUBLX vextublx {}
 
-  const unsigned char __builtin_altivec_vextubrx (unsigned int, vuc);
+  const signed int __builtin_altivec_vextubrx (signed int, vsc);
     VEXTUBRX vextubrx {}
 
-  const unsigned short __builtin_altivec_vextuhlx (unsigned int, vus);
+  const signed int __builtin_altivec_vextuhlx (signed int, vss);
     VEXTUHLX vextuhlx {}
 
-  const unsigned short __builtin_altivec_vextuhrx (unsigned int, vus);
+  const signed int __builtin_altivec_vextuhrx (signed int, vss);
     VEXTUHRX vextuhrx {}
 
-  const unsigned int __builtin_altivec_vextuwlx (unsigned int, vui);
+  const signed int __builtin_altivec_vextuwlx (signed int, vsi);
     VEXTUWLX vextuwlx {}
 
-  const unsigned int __builtin_altivec_vextuwrx (unsigned int, vui);
+  const signed int __builtin_altivec_vextuwrx (signed int, vsi);
     VEXTUWRX vextuwrx {}
 
   const vsq __builtin_altivec_vmsumudm (vsll, vsll, vsq);
@@ -2665,46 +2670,46 @@
   const vsi __builtin_altivec_vprtybw (vsi);
     VPRTYBW parityv4si2 {}
 
-  const vull __builtin_altivec_vrldmi (vull, vull, vull);
+  const vsll __builtin_altivec_vrldmi (vsll, vsll, vsll);
     VRLDMI altivec_vrldmi {}
 
-  const vull __builtin_altivec_vrldnm (vull, vull);
+  const vsll __builtin_altivec_vrldnm (vsll, vsll);
     VRLDNM altivec_vrldnm {}
 
-  const vui __builtin_altivec_vrlwmi (vui, vui, vui);
+  const vsi __builtin_altivec_vrlwmi (vsi, vsi, vsi);
     VRLWMI altivec_vrlwmi {}
 
-  const vui __builtin_altivec_vrlwnm (vui, vui);
+  const vsi __builtin_altivec_vrlwnm (vsi, vsi);
     VRLWNM altivec_vrlwnm {}
 
-  const vuc __builtin_altivec_vslv (vuc, vuc);
+  const vsc __builtin_altivec_vslv (vsc, vsc);
     VSLV vslv {}
 
-  const vuc __builtin_altivec_vsrv (vuc, vuc);
+  const vsc __builtin_altivec_vsrv (vsc, vsc);
     VSRV vsrv {}
 
-  const signed int __builtin_scalar_byte_in_range (unsigned int, unsigned int);
+  const signed int __builtin_scalar_byte_in_range (signed int, signed int);
     CMPRB cmprb {}
 
-  const signed int __builtin_scalar_byte_in_either_range (unsigned int, unsigned int);
+  const signed int __builtin_scalar_byte_in_either_range (signed int, signed int);
     CMPRB2 cmprb2 {}
 
-  const vull __builtin_vsx_extract4b (vuc, const int[0,12]);
+  const vsll __builtin_vsx_extract4b (vsc, const int[0,12]);
     EXTRACT4B extract4b {}
 
-  const vull __builtin_vsx_extract_exp_dp (vd);
+  const vd __builtin_vsx_extract_exp_dp (vd);
     VEEDP xvxexpdp {}
 
-  const vui __builtin_vsx_extract_exp_sp (vf);
+  const vf __builtin_vsx_extract_exp_sp (vf);
     VEESP xvxexpsp {}
 
-  const vull __builtin_vsx_extract_sig_dp (vd);
+  const vd __builtin_vsx_extract_sig_dp (vd);
     VESDP xvxsigdp {}
 
-  const vui __builtin_vsx_extract_sig_sp (vf);
+  const vf __builtin_vsx_extract_sig_sp (vf);
     VESSP xvxsigsp {}
 
-  const vuc __builtin_vsx_insert4b (vsi, vuc, const int[0,12]);
+  const vsc __builtin_vsx_insert4b (vsi, vsc, const int[0,12]);
     INSERT4B insert4b {}
 
   const vd __builtin_vsx_insert_exp_dp (vd, vd);
@@ -2725,28 +2730,28 @@
   const signed int __builtin_vsx_scalar_cmp_exp_dp_unordered (double, double);
     VSCEDPUO xscmpexpdp_unordered {}
 
-  const unsigned int __builtin_vsx_scalar_test_data_class_dp (double, const int<7>);
+  const signed int __builtin_vsx_scalar_test_data_class_dp (double, const int<7>);
     VSTDCDP xststdcdp {}
 
-  const unsigned int __builtin_vsx_scalar_test_data_class_sp (float, const int<7>);
+  const signed int __builtin_vsx_scalar_test_data_class_sp (float, const int<7>);
     VSTDCSP xststdcsp {}
 
-  const unsigned int __builtin_vsx_scalar_test_neg_dp (double);
+  const signed int __builtin_vsx_scalar_test_neg_dp (double);
     VSTDCNDP xststdcnegdp {}
 
-  const unsigned int __builtin_vsx_scalar_test_neg_sp (float);
+  const signed int __builtin_vsx_scalar_test_neg_sp (float);
     VSTDCNSP xststdcnegsp {}
 
-  const vbll __builtin_vsx_test_data_class_dp (vd, const int<7>);
+  const vsll __builtin_vsx_test_data_class_dp (vd, const int<7>);
     VTDCDP xvtstdcdp {}
 
-  const vbi __builtin_vsx_test_data_class_sp (vf, const int<7>);
+  const vsi __builtin_vsx_test_data_class_sp (vf, const int<7>);
     VTDCSP xvtstdcsp {}
 
-  const vf __builtin_vsx_vextract_fp_from_shorth (vus);
+  const vf __builtin_vsx_vextract_fp_from_shorth (vss);
     VEXTRACT_FP_FROM_SHORTH vextract_fp_from_shorth {}
 
-  const vf __builtin_vsx_vextract_fp_from_shortl (vus);
+  const vf __builtin_vsx_vextract_fp_from_shortl (vss);
     VEXTRACT_FP_FROM_SHORTL vextract_fp_from_shortl {}
 
   const vd __builtin_vsx_xxbrd_v2df (vd);
@@ -2818,22 +2823,22 @@
 ; 32 bits, and the return value is DImode, so it seems that
 ; TARGET_64BIT (actually TARGET_POWERPC64) is justified.  TBD. ####
 [power9-64]
-  void __builtin_altivec_xst_len_r (vsc, void *, long long);
+  void __builtin_altivec_xst_len_r (vsc, void *, long);
     XST_LEN_R xst_len_r {}
 
-  void __builtin_altivec_stxvl (vuc, void *, long long);
+  void __builtin_altivec_stxvl (vsc, void *, long);
     STXVL stxvl {}
 
-  const signed int __builtin_scalar_byte_in_set (unsigned int, unsigned long long);
+  const signed int __builtin_scalar_byte_in_set (signed int, signed long long);
     CMPEQB cmpeqb {}
 
-  pure vuc __builtin_vsx_lxvl (const void *, unsigned long long);
+  pure vsc __builtin_vsx_lxvl (const void *, signed long);
     LXVL lxvl {}
 
-  const unsigned int __builtin_vsx_scalar_extract_exp (double);
+  const signed long __builtin_vsx_scalar_extract_exp (double);
     VSEEDP xsxexpdp {}
 
-  const unsigned long long __builtin_vsx_scalar_extract_sig (double);
+  const signed long __builtin_vsx_scalar_extract_sig (double);
     VSESDP xsxsigdp {}
 
   const double __builtin_vsx_scalar_insert_exp (unsigned long long, unsigned long long);
@@ -2842,7 +2847,7 @@
   const double __builtin_vsx_scalar_insert_exp_dp (double, unsigned long long);
     VSIEDPF xsiexpdpf {}
 
-  pure vuc __builtin_vsx_xl_len_r (void *, unsigned long long);
+  pure vsc __builtin_vsx_xl_len_r (void *, signed long);
     XL_LEN_R xl_len_r {}
 
 
@@ -2881,10 +2886,10 @@
   fpmath double __builtin_truncf128_round_to_odd (_Float128);
     TRUNCF128_ODD trunckfdf2_odd {}
 
-  const unsigned long long __builtin_vsx_scalar_extract_expq (_Float128);
+  const signed long long __builtin_vsx_scalar_extract_expq (_Float128);
     VSEEQP xsxexpqp_kf {}
 
-  const unsigned __int128 __builtin_vsx_scalar_extract_sigq (_Float128);
+  const signed __int128 __builtin_vsx_scalar_extract_sigq (_Float128);
     VSESQP xsxsigqp_kf {}
 
   const _Float128 __builtin_vsx_scalar_insert_exp_q (unsigned __int128, unsigned long long);
@@ -2893,10 +2898,10 @@
   const _Float128 __builtin_vsx_scalar_insert_exp_qp (_Float128, unsigned long long);
     VSIEQPF xsiexpqpf_kf {}
 
-  const unsigned int __builtin_vsx_scalar_test_data_class_qp (_Float128, const int<7>);
+  const signed int __builtin_vsx_scalar_test_data_class_qp (_Float128, const int<7>);
     VSTDCQP xststdcqp_kf {}
 
-  const unsigned int __builtin_vsx_scalar_test_neg_qp (_Float128);
+  const signed int __builtin_vsx_scalar_test_neg_qp (_Float128);
     VSTDCNQP xststdcnegqp_kf {}
 
 
@@ -2915,7 +2920,7 @@
   const _Decimal128 __builtin_denbcdq (const int<1>, _Decimal128);
     DENBCDQ dfp_denbcd_td {}
 
-  const _Decimal128 __builtin_denb2dfp_v16qi (vuc);
+  const _Decimal128 __builtin_denb2dfp_v16qi (vsc);
     DENB2DFP_V16QI dfp_denbcd_v16qi {}
 
   const _Decimal64 __builtin_diex (signed long long, _Decimal64);
@@ -2948,7 +2953,7 @@
   void __builtin_set_fpscr_drn (const int[0,7]);
     SET_FPSCR_DRN rs6000_set_fpscr_drn {}
 
-  const unsigned long long __builtin_unpack_dec128 (_Decimal128, const int<1>);
+  const unsigned long __builtin_unpack_dec128 (_Decimal128, const int<1>);
     UNPACK_TD unpacktd {}
 
 
@@ -3116,10 +3121,10 @@
   const vull __builtin_altivec_vcfuged (vull, vull);
     VCFUGED vcfuged {}
 
-  const vsc __builtin_altivec_vclrlb (vsc, unsigned int);
+  const vsc __builtin_altivec_vclrlb (vsc, signed int);
     VCLRLB vclrlb {}
 
-  const vsc __builtin_altivec_vclrrb (vsc, unsigned int);
+  const vsc __builtin_altivec_vclrrb (vsc, signed int);
     VCLRRB vclrrb {}
 
   const vull __builtin_altivec_vclzdm (vull, vull);
@@ -3167,43 +3172,43 @@
   const vui __builtin_altivec_vexpandmw (vui);
     VEXPANDMW vec_expand_v4si {}
 
-  const vull __builtin_altivec_vextddvhx (vull, vull, unsigned char);
+  const vull __builtin_altivec_vextddvhx (vull, vull, unsigned int);
     VEXTRACTDR vextractrv2di {}
 
-  const vull __builtin_altivec_vextddvlx (vull, vull, unsigned char);
+  const vull __builtin_altivec_vextddvlx (vull, vull, unsigned int);
     VEXTRACTDL vextractlv2di {}
 
-  const vull __builtin_altivec_vextdubvhx (vuc, vuc, unsigned char);
+  const vull __builtin_altivec_vextdubvhx (vuc, vuc, unsigned int);
     VEXTRACTBR vextractrv16qi {}
 
-  const vull __builtin_altivec_vextdubvlx (vuc, vuc, unsigned char);
+  const vull __builtin_altivec_vextdubvlx (vuc, vuc, unsigned int);
     VEXTRACTBL vextractlv16qi {}
 
-  const vull __builtin_altivec_vextduhvhx (vus, vus, unsigned char);
+  const vull __builtin_altivec_vextduhvhx (vus, vus, unsigned int);
     VEXTRACTHR vextractrv8hi {}
 
-  const vull __builtin_altivec_vextduhvlx (vus, vus, unsigned char);
+  const vull __builtin_altivec_vextduhvlx (vus, vus, unsigned int);
     VEXTRACTHL vextractlv8hi {}
 
-  const vull __builtin_altivec_vextduwvhx (vui, vui, unsigned char);
+  const vull __builtin_altivec_vextduwvhx (vui, vui, unsigned int);
     VEXTRACTWR vextractrv4si {}
 
-  const vull __builtin_altivec_vextduwvlx (vui, vui, unsigned char);
+  const vull __builtin_altivec_vextduwvlx (vui, vui, unsigned int);
     VEXTRACTWL vextractlv4si {}
 
-  const signed int __builtin_altivec_vextractmb (vuc);
+  const signed int __builtin_altivec_vextractmb (vsc);
     VEXTRACTMB vec_extract_v16qi {}
 
-  const signed int __builtin_altivec_vextractmd (vull);
+  const signed int __builtin_altivec_vextractmd (vsll);
     VEXTRACTMD vec_extract_v2di {}
 
-  const signed int __builtin_altivec_vextractmh (vus);
+  const signed int __builtin_altivec_vextractmh (vss);
     VEXTRACTMH vec_extract_v8hi {}
 
-  const signed int __builtin_altivec_vextractmq (vuq);
+  const signed int __builtin_altivec_vextractmq (vsq);
     VEXTRACTMQ vec_extract_v1ti {}
 
-  const signed int __builtin_altivec_vextractmw (vui);
+  const signed int __builtin_altivec_vextractmw (vsi);
     VEXTRACTMW vec_extract_v4si {}
 
   const unsigned long long __builtin_altivec_vgnb (vull, const int <2,7>);
@@ -3212,43 +3217,43 @@
   const vuc __builtin_altivec_vinsgubvlx (unsigned int, vuc, unsigned int);
     VINSERTGPRBL vinsertgl_v16qi {}
 
-  const vuc __builtin_altivec_vinsgubvrx (unsigned int, vuc, unsigned int);
+  const vsc __builtin_altivec_vinsgubvrx (signed int, vsc, signed int);
     VINSERTGPRBR vinsertgr_v16qi {}
 
   const vull __builtin_altivec_vinsgudvlx (unsigned int, vull, unsigned int);
     VINSERTGPRDL vinsertgl_v2di {}
 
-  const vull __builtin_altivec_vinsgudvrx (unsigned int, vull, unsigned int);
+  const vsll __builtin_altivec_vinsgudvrx (signed int, vsll, signed int);
     VINSERTGPRDR vinsertgr_v2di {}
 
   const vus __builtin_altivec_vinsguhvlx (unsigned int, vus, unsigned int);
     VINSERTGPRHL vinsertgl_v8hi {}
 
-  const vus __builtin_altivec_vinsguhvrx (unsigned int, vus, unsigned int);
+  const vss __builtin_altivec_vinsguhvrx (signed int, vss, signed int);
     VINSERTGPRHR vinsertgr_v8hi {}
 
   const vui __builtin_altivec_vinsguwvlx (unsigned int, vui, unsigned int);
     VINSERTGPRWL vinsertgl_v4si {}
 
-  const vui __builtin_altivec_vinsguwvrx (unsigned int, vui, unsigned int);
+  const vsi __builtin_altivec_vinsguwvrx (signed int, vsi, signed int);
     VINSERTGPRWR vinsertgr_v4si {}
 
   const vuc __builtin_altivec_vinsvubvlx (vuc, vuc, unsigned int);
     VINSERTVPRBL vinsertvl_v16qi {}
 
-  const vuc __builtin_altivec_vinsvubvrx (vuc, vuc, unsigned int);
+  const vsc __builtin_altivec_vinsvubvrx (vsc, vsc, signed int);
     VINSERTVPRBR vinsertvr_v16qi {}
 
   const vus __builtin_altivec_vinsvuhvlx (vus, vus, unsigned int);
     VINSERTVPRHL vinsertvl_v8hi {}
 
-  const vus __builtin_altivec_vinsvuhvrx (vus, vus, unsigned int);
+  const vss __builtin_altivec_vinsvuhvrx (vss, vss, signed int);
     VINSERTVPRHR vinsertvr_v8hi {}
 
   const vui __builtin_altivec_vinsvuwvlx (vui, vui, unsigned int);
     VINSERTVPRWL vinsertvl_v4si {}
 
-  const vui __builtin_altivec_vinsvuwvrx (vui, vui, unsigned int);
+  const vsi __builtin_altivec_vinsvuwvrx (vsi, vsi, signed int);
     VINSERTVPRWR vinsertvr_v4si {}
 
   const vsll __builtin_altivec_vmodsd (vsll, vsll);
@@ -3293,7 +3298,7 @@
   const vd __builtin_altivec_vreplace_un_v2df (vd, double, const int<4>);
     VREPLACE_UN_V2DF vreplace_un_v2df {}
 
-  const vsll __builtin_altivec_vreplace_un_v2di (vsll, unsigned long long, const int<4>);
+  const vsll __builtin_altivec_vreplace_un_v2di (vsll, signed long long, const int<4>);
     VREPLACE_UN_V2DI vreplace_un_v2di {}
 
   const vf __builtin_altivec_vreplace_un_v4sf (vf, float, const int<4>);
@@ -3311,7 +3316,7 @@
   const vd __builtin_altivec_vreplace_v2df (vd, double, const int<1>);
     VREPLACE_ELT_V2DF vreplace_elt_v2df {}
 
-  const vsll __builtin_altivec_vreplace_v2di (vsll, unsigned long long, const int<1>);
+  const vsll __builtin_altivec_vreplace_v2di (vsll, signed long long, const int<1>);
     VREPLACE_ELT_V2DI vreplace_elt_v2di {}
 
   const vf __builtin_altivec_vreplace_v4sf (vf, float, const int<2>);
@@ -3368,10 +3373,10 @@
   const signed int __builtin_altivec_vstrihr_p (vss);
     VSTRIHR_P vstrir_p_v8hi {}
 
-  const signed int __builtin_vsx_xvtlsbb_all_ones (vuc);
+  const signed int __builtin_vsx_xvtlsbb_all_ones (vsc);
     XVTLSBB_ONES xvtlsbbo {}
 
-  const signed int __builtin_vsx_xvtlsbb_all_zeros (vuc);
+  const signed int __builtin_vsx_xvtlsbb_all_zeros (vsc);
     XVTLSBB_ZEROS xvtlsbbz {}
 
   const vf __builtin_vsx_vxxsplti32dx_v4sf (vf, const int<1>, float);
diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c
index 82f49f8b320..c9834105d91 100644
--- a/gcc/config/rs6000/rs6000-call.c
+++ b/gcc/config/rs6000/rs6000-call.c
@@ -8789,6 +8789,10 @@ const char *rs6000_debug_type (tree type)
     return "long";
   else if (type == long_unsigned_type_node)
     return "ulong";
+  else if (type == long_long_integer_type_node)
+    return "longlong";
+  else if (type == long_long_unsigned_type_node)
+    return "ulonglong";
   else if (type == bool_V16QI_type_node)
     return "vbc";
   else if (type == bool_V2DI_type_node)
diff --git a/gcc/config/rs6000/rs6000-overload.def b/gcc/config/rs6000/rs6000-overload.def
index 0ac1d4edd64..d01fab4c1ff 100644
--- a/gcc/config/rs6000/rs6000-overload.def
+++ b/gcc/config/rs6000/rs6000-overload.def
@@ -1878,14 +1878,15 @@
     LVXL_V2DI  LVXL_V2DI_ULL
   vbll __builtin_vec_ldl (signed long, const vbll *);
     LVXL_V2DI  LVXL_V2DI_VBLL
-  vsq __builtin_vec_ldl (signed long, const vsq *);
-    LVXL_V1TI  LVXL_V1TI_VSQ
-  vuq __builtin_vec_ldl (signed long, const vuq *);
-    LVXL_V1TI  LVXL_V1TI_VUQ
-  vsq __builtin_vec_ldl (signed long, const __int128 *);
-    LVXL_V1TI  LVXL_V1TI_TI
-  vuq __builtin_vec_ldl (signed long, const unsigned __int128 *);
-    LVXL_V1TI  LVXL_V1TI_UTI
+;; Not present previously; why did I add these?
+;  vsq __builtin_vec_ldl (signed long, const vsq *);
+;    LVXL_V1TI  LVXL_V1TI_VSQ
+;  vuq __builtin_vec_ldl (signed long, const vuq *);
+;    LVXL_V1TI  LVXL_V1TI_VUQ
+;  vsq __builtin_vec_ldl (signed long, const __int128 *);
+;    LVXL_V1TI  LVXL_V1TI_TI
+;  vuq __builtin_vec_ldl (signed long, const unsigned __int128 *);
+;    LVXL_V1TI  LVXL_V1TI_UTI
   vf __builtin_vec_ldl (signed long, const vf *);
     LVXL_V4SF  LVXL_V4SF_VF
   vf __builtin_vec_ldl (signed long, const float *);
@@ -5251,6 +5252,34 @@
   vui __builtin_vec_vctzw (vui);
     VCTZW  VCTZW_DEPR2
 
+[VEC_VEEDP, vec_extract_exp_dp, __builtin_vec_extract_exp_dp, _ARCH_PWR9]
+  vull __builtin_vec_extract_exp_dp (vd);
+    VEEDP  VEEDP_DEPR1
+
+[VEC_VEESP, vec_extract_exp_sp, __builtin_vec_extract_exp_sp, _ARCH_PWR9]
+  vui __builtin_vec_extract_exp_sp (vf);
+    VEESP  VEESP_DEPR1
+
+[VEC_VESDP, vec_extract_sig_dp, __builtin_vec_extract_sig_dp, _ARCH_PWR9]
+  vull __builtin_vec_extract_sig_dp (vd);
+    VESDP  VESDP_DEPR1
+
+[VEC_VESSP, vec_extract_sig_sp, __builtin_vec_extract_sig_sp, _ARCH_PWR9]
+  vui __builtin_vec_extract_sig_sp (vf);
+    VESSP  VESSP_DEPR1
+
+[VEC_VIEDP, vec_insert_exp_dp, __builtin_vec_insert_exp_dp, _ARCH_PWR9]
+  vd __builtin_vec_insert_exp_dp (vd, vull);
+    VIEDP  VIEDP_DEPR1
+  vd __builtin_vec_insert_exp_dp (vull, vull);
+    VIEDP  VIEDP_DEPR2
+
+[VEC_VIESP, vec_insert_exp_sp, __builtin_vec_insert_exp_sp, _ARCH_PWR9]
+  vf __builtin_vec_insert_exp_sp (vf, vui);
+    VIESP  VIESP_DEPR1
+  vf __builtin_vec_insert_exp_sp (vui, vui);
+    VIESP  VIESP_DEPR2
+
 [VEC_VMAXFP, vec_vmaxfp, __builtin_vec_vmaxfp]
   vf __builtin_vec_vmaxfp (vf, vf);
     VMAXFP  VMAXFP_DEPR1
@@ -5483,6 +5512,10 @@
   vui __builtin_vec_vmsumubm (vuc, vuc, vui);
     VMSUMUBM  VMSUMUBM_DEPR1
 
+[VEC_VMSUMUDM, vec_vmsumudm, __builtin_vec_vmsumudm]
+  vuq __builtin_vec_vmsumudm (vull, vull, vuq);
+    VMSUMUDM  VMSUMUDM_DEPR1
+
 [VEC_VMSUMUHM, vec_vmsumuhm, __builtin_vec_vmsumuhm]
   vui __builtin_vec_vmsumuhm (vus, vus, vui);
     VMSUMUHM  VMSUMUHM_DEPR1
@@ -5787,6 +5820,30 @@
   vui __builtin_vec_vsrw (vui, vui);
     VSRW  VSRW_DEPR2
 
+[VEC_VSTDCDP, scalar_test_data_class_dp, __builtin_vec_scalar_test_data_class_dp, _ARCH_PWR9]
+  unsigned int __builtin_vec_scalar_test_data_class_dp (double, const int);
+    VSTDCDP  VSTDCDP_DEPR1
+
+[VEC_VSTDCNDP, scalar_test_neg_dp, __builtin_vec_scalar_test_neg_dp, _ARCH_PWR9]
+  unsigned int __builtin_vec_scalar_test_neg_dp (double);
+    VSTDCNDP  VSTDCNDP_DEPR1
+
+[VEC_VSTDCNQP, scalar_test_neg_qp, __builtin_vec_scalar_test_neg_qp, _ARCH_PWR9]
+  unsigned int __builtin_vec_scalar_test_neg_qp (_Float128);
+    VSTDCNQP  VSTDCNQP_DEPR1
+
+[VEC_VSTDCNSP, scalar_test_neg_sp, __builtin_vec_scalar_test_neg_sp, _ARCH_PWR9]
+  unsigned int __builtin_vec_scalar_test_neg_sp (float);
+    VSTDCNSP  VSTDCNSP_DEPR1
+
+[VEC_VSTDCQP, scalar_test_data_class_qp, __builtin_vec_scalar_test_data_class_qp, _ARCH_PWR9]
+  unsigned int __builtin_vec_scalar_test_data_class_qp (_Float128, const int);
+    VSTDCQP  VSTDCQP_DEPR1
+
+[VEC_VSTDCSP, scalar_test_data_class_sp, __builtin_vec_scalar_test_data_class_sp, _ARCH_PWR9]
+  unsigned int __builtin_vec_scalar_test_data_class_sp (float, const int);
+    VSTDCSP  VSTDCSP_DEPR1
+
 [VEC_VSUBCUQ, vec_vsubcuqP, __builtin_vec_vsubcuq]
   vsq __builtin_vec_vsubcuq (vsq, vsq);
     VSUBCUQ  VSUBCUQ_DEPR1
@@ -5961,6 +6018,30 @@
   vui __builtin_vec_vsum4ubs (vuc, vui);
     VSUM4UBS  VSUM4UBS_DEPR1
 
+[VEC_VTDCDP, vec_test_data_class_dp, __builtin_vec_test_data_class_dp, _ARCH_PWR9]
+  vbll __builtin_vec_test_data_class_dp (vd, const int);
+    VTDCDP  VTDCDP_DEPR1
+
+[VEC_VTDCSP, vec_test_data_class_sp, __builtin_vec_test_data_class_sp, _ARCH_PWR9]
+  vbi __builtin_vec_test_data_class_sp (vf, const int);
+    VTDCSP  VTDCSP_DEPR1
+
+[VEC_UNS_DOUBLEE, vec_uns_doublee, __builtin_vec_uns_doublee]
+  vd __builtin_vec_uns_doublee (vui);
+    UNS_DOUBLEE_V4SI  UNS_DOUBLEE_DEPR1
+
+[VEC_UNS_DOUBLEH, vec_uns_doubleh, __builtin_vec_uns_doubleh]
+  vd __builtin_vec_uns_doubleh (vui);
+    UNS_DOUBLEH_V4SI  UNS_DOUBLEH_DEPR1
+
+[VEC_UNS_DOUBLEL, vec_uns_doublel, __builtin_vec_uns_doublel]
+  vd __builtin_vec_uns_doublel (vui);
+    UNS_DOUBLEL_V4SI  UNS_DOUBLEL_DEPR1
+
+[VEC_UNS_DOUBLEO, vec_uns_doubleo, __builtin_vec_uns_doubleo]
+  vd __builtin_vec_uns_doubleo (vui);
+    UNS_DOUBLEO_V4SI  UNS_DOUBLEO_DEPR1
+
 [VEC_VUPKHPX, vec_vupkhpx, __builtin_vec_vupkhpx]
   vui __builtin_vec_vupkhpx (vus);
     VUPKHPX  VUPKHPX_DEPR1


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [gcc(refs/users/wschmidt/heads/builtins10)] rs6000: **split and squash me**
@ 2021-03-31 19:18 William Schmidt
  0 siblings, 0 replies; 2+ messages in thread
From: William Schmidt @ 2021-03-31 19:18 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:4ef477aada0cb8ab87deb1f77324a7cbd3e83cdb

commit 4ef477aada0cb8ab87deb1f77324a7cbd3e83cdb
Author: Bill Schmidt <wschmidt@linux.ibm.com>
Date:   Wed Mar 31 14:15:14 2021 -0500

    rs6000: **split and squash me**
    
    Fix disparities between old and new builtins.
    
    2021-03-31  Bill Schmidt  <wschmidt@linux.ibm.com>
    
    gcc/
            * config/rs6000/altivec.h: Fix disparities.
            * config/rs6000-builtin-new.def: Likewise.
            * config/rs6000-call.c (rs6000_debug_type): Handle long long
            types.
            * config/rs6000-gen-builtins.c (write_init_ovld_table): Gate
            float128 builtin registration based on availability.
            * config/rs6000-overload.def: Fix disparities.

Diff:
---
 gcc/config/rs6000/altivec.h              |  6 ++
 gcc/config/rs6000/rs6000-builtin-new.def | 37 ++++++------
 gcc/config/rs6000/rs6000-call.c          |  4 ++
 gcc/config/rs6000/rs6000-gen-builtins.c  | 17 ++++++
 gcc/config/rs6000/rs6000-overload.def    | 97 +++++++++++++++++++++++++++++---
 5 files changed, 137 insertions(+), 24 deletions(-)

diff --git a/gcc/config/rs6000/altivec.h b/gcc/config/rs6000/altivec.h
index 3d68b787a75..8daf933e53e 100644
--- a/gcc/config/rs6000/altivec.h
+++ b/gcc/config/rs6000/altivec.h
@@ -139,6 +139,12 @@
 #define __builtin_bcdcmple(a,b)   __builtin_vec_bcdsub_le(a,b,0)
 #endif
 
+#ifdef _ARCH_PWR10
+#define __builtin_vec_se_lxvrx __builtin_vec_xl_sext
+#define __builtin_vec_tr_stxvrx __builtin_vec_xst_trunc
+#define __builtin_vec_ze_lxvrx __builtin_vec_xl_zext
+#define __builtin_vsx_xxpermx __builtin_vec_xxpermx
+#endif
 
 /* Predicates.
    For C++, we use templates in order to allow non-parenthesized arguments.
diff --git a/gcc/config/rs6000/rs6000-builtin-new.def b/gcc/config/rs6000/rs6000-builtin-new.def
index f574c97bb93..36250c0e764 100644
--- a/gcc/config/rs6000/rs6000-builtin-new.def
+++ b/gcc/config/rs6000/rs6000-builtin-new.def
@@ -1140,8 +1140,9 @@
   pure vsll __builtin_altivec_lvx_v2di (signed long long, const void *);
     LVX_V2DI altivec_lvx_v2di {ldvec}
 
-  pure vuq __builtin_altivec_lvxl_v1ti (signed long long, const void *);
-    LVXL_V1TI altivec_lvxl_v1ti {ldvec}
+;; Not present previously; why did I add this?
+;  pure vuq __builtin_altivec_lvxl_v1ti (signed long long, const void *);
+;    LVXL_V1TI altivec_lvxl_v1ti {ldvec}
 
   pure vd __builtin_altivec_lvxl_v2df (signed long long, const void *);
     LVXL_V2DF altivec_lvxl_v2df {ldvec}
@@ -1341,8 +1342,9 @@
   const vsll __builtin_vsx_concat_2di (signed long long, signed long long);
     CONCAT_2DI vsx_concat_v2di {}
 
-  const vull __builtin_vsx_concat_2di_uns (unsigned long long, unsigned long long);
-    CONCAT_2DI_UNS vsx_concat_v2di {}
+;; Not present previously; why did I add this?
+;  const vull __builtin_vsx_concat_2di_uns (unsigned long long, unsigned long long);
+;    CONCAT_2DI_UNS vsx_concat_v2di {}
 
   const vd __builtin_vsx_cpsgndp (vd, vd);
     CPSGNDP vector_copysignv2df3 {}
@@ -1454,8 +1456,9 @@
   const vsq __builtin_vsx_set_1ti (vsq, signed __int128, const int<0,0>);
     SET_1TI vsx_set_v1ti {set}
 
-  const vuq __builtin_vsx_set_1ti_uns (vuq, unsigned __int128, const int<0,0>);
-    SET_1TI_UNS vsx_set_v1ti {set}
+;; Not present previously; why did I add this?
+;  const vuq __builtin_vsx_set_1ti_uns (vuq, unsigned __int128, const int<0,0>);
+;    SET_1TI_UNS vsx_set_v1ti {set}
 
   const vd __builtin_vsx_set_2df (vd, double, const int<0,1>);
     SET_2DF vsx_set_v2df {set}
@@ -1463,8 +1466,9 @@
   const vsll __builtin_vsx_set_2di (vsll, signed long long, const int<0,1>);
     SET_2DI vsx_set_v2di {set}
 
-  const vull __builtin_vsx_set_2di_uns (vull, unsigned long long, const int<0,1>);
-    SET_2DI_UNS vsx_set_v2di {set}
+;; Not present previously; why did I add this?
+;  const vull __builtin_vsx_set_2di_uns (vull, unsigned long long, const int<0,1>);
+;    SET_2DI_UNS vsx_set_v2di {set}
 
   const vd __builtin_vsx_splat_2df (double);
     SPLAT_2DF vsx_splat_v2df {}
@@ -1472,8 +1476,9 @@
   const vsll __builtin_vsx_splat_2di (signed long long);
     SPLAT_2DI vsx_splat_v2di {}
 
-  const vull __builtin_vsx_splat_2di_uns (unsigned long long);
-    SPLAT_2DI_UNS vsx_splat_v2di {}
+;; Not present previously; why did I add this?
+;  const vull __builtin_vsx_splat_2di_uns (unsigned long long);
+;    SPLAT_2DI_UNS vsx_splat_v2di {}
 
   void __builtin_vsx_st_elemrev_v1ti (vsq, signed long, void *);
     ST_ELEMREV_V1TI vsx_st_elemrev_v1ti {stvec,endian}
@@ -2053,6 +2058,12 @@
   const vsll __builtin_altivec_abs_v2di (vsll);
     ABS_V2DI absv2di2 {}
 
+  const vsc __builtin_altivec_bcddiv10_v16qi (vsc);
+    BCDDIV10_V16QI bcddiv10_v16qi {}
+
+  const vsc __builtin_altivec_bcdmul10_v16qi (vsc);
+    BCDMUL10_V16QI bcdmul10_v16qi {}
+
   const vsc __builtin_altivec_eqv_v16qi (vsc, vsc);
     EQV_V16QI eqvv16qi3 {}
 
@@ -2365,18 +2376,12 @@
   const signed int __builtin_bcdadd_ov_v16qi (vuc, vuc, const int<1>);
     BCDADD_OV_V16QI bcdadd_unordered_v16qi {}
 
-  const vuc __builtin_bcddiv10_v16qi (vuc);
-    BCDDIV10_V16QI bcddiv10_v16qi {}
-
   const signed int __builtin_bcdinvalid_v1ti (vsq);
     BCDINVALID_V1TI bcdinvalid_v1ti {}
 
   const signed int __builtin_bcdinvalid_v16qi (vuc);
     BCDINVALID_V16QI bcdinvalid_v16qi {}
 
-  const vuc __builtin_bcdmul10_v16qi (vuc);
-    BCDMUL10_V16QI bcdmul10_v16qi {}
-
   const vsq __builtin_bcdsub_v1ti (vsq, vsq, const int<1>);
     BCDSUB_V1TI bcdsub_v1ti {}
 
diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c
index 82f49f8b320..c9834105d91 100644
--- a/gcc/config/rs6000/rs6000-call.c
+++ b/gcc/config/rs6000/rs6000-call.c
@@ -8789,6 +8789,10 @@ const char *rs6000_debug_type (tree type)
     return "long";
   else if (type == long_unsigned_type_node)
     return "ulong";
+  else if (type == long_long_integer_type_node)
+    return "longlong";
+  else if (type == long_long_unsigned_type_node)
+    return "ulonglong";
   else if (type == bool_V16QI_type_node)
     return "vbc";
   else if (type == bool_V2DI_type_node)
diff --git a/gcc/config/rs6000/rs6000-gen-builtins.c b/gcc/config/rs6000/rs6000-gen-builtins.c
index 1495929e1e4..b227a6d9f51 100644
--- a/gcc/config/rs6000/rs6000-gen-builtins.c
+++ b/gcc/config/rs6000/rs6000-gen-builtins.c
@@ -2689,12 +2689,25 @@ write_init_ovld_table ()
 	  ovld_stanza *stanza = &ovld_stanzas[ovlds[i].stanza];
 	  fprintf (init_file, "\n");
 
+	  /* Check whether we have a "tf" token in this string, representing
+	     a float128_type_node.  It's possible that float128_type_node is
+	     undefined (occurs for -maltivec -mno-vsx, for example), so we
+	     must guard against that.  */
+	  int tf_found = strstr (ovlds[i].fndecl, "tf") != NULL;
+
 	  /* The fndecl for an overload is arbitrarily the first one
 	     for the overload.  We sort out the real types when
 	     processing the overload in the gcc front end.  */
 	  fprintf (init_file,
 		   "  if (new_builtins_are_live)\n");
 	  fprintf (init_file, "    {\n");
+
+	  if (tf_found)
+	    {
+	      fprintf (init_file, "      if (float128_type_node)\n");
+	      fprintf (init_file, "        {\n");
+	    }
+
 	  fprintf (init_file,
 		   "      rs6000_builtin_decls_x[(int)RS6000_OVLD_%s] = t\n",
 		   stanza->stanza_id);
@@ -2710,6 +2723,10 @@ write_init_ovld_table ()
 		   stanza->stanza_id);
 	  fprintf (init_file,
 		   "                                NULL, NULL_TREE);\n");
+
+	  if (tf_found)
+	    fprintf (init_file, "        }\n");
+
 	  fprintf (init_file, "    }\n\n");
 
 	  fprintf (init_file,
diff --git a/gcc/config/rs6000/rs6000-overload.def b/gcc/config/rs6000/rs6000-overload.def
index 0ac1d4edd64..d01fab4c1ff 100644
--- a/gcc/config/rs6000/rs6000-overload.def
+++ b/gcc/config/rs6000/rs6000-overload.def
@@ -1878,14 +1878,15 @@
     LVXL_V2DI  LVXL_V2DI_ULL
   vbll __builtin_vec_ldl (signed long, const vbll *);
     LVXL_V2DI  LVXL_V2DI_VBLL
-  vsq __builtin_vec_ldl (signed long, const vsq *);
-    LVXL_V1TI  LVXL_V1TI_VSQ
-  vuq __builtin_vec_ldl (signed long, const vuq *);
-    LVXL_V1TI  LVXL_V1TI_VUQ
-  vsq __builtin_vec_ldl (signed long, const __int128 *);
-    LVXL_V1TI  LVXL_V1TI_TI
-  vuq __builtin_vec_ldl (signed long, const unsigned __int128 *);
-    LVXL_V1TI  LVXL_V1TI_UTI
+;; Not present previously; why did I add these?
+;  vsq __builtin_vec_ldl (signed long, const vsq *);
+;    LVXL_V1TI  LVXL_V1TI_VSQ
+;  vuq __builtin_vec_ldl (signed long, const vuq *);
+;    LVXL_V1TI  LVXL_V1TI_VUQ
+;  vsq __builtin_vec_ldl (signed long, const __int128 *);
+;    LVXL_V1TI  LVXL_V1TI_TI
+;  vuq __builtin_vec_ldl (signed long, const unsigned __int128 *);
+;    LVXL_V1TI  LVXL_V1TI_UTI
   vf __builtin_vec_ldl (signed long, const vf *);
     LVXL_V4SF  LVXL_V4SF_VF
   vf __builtin_vec_ldl (signed long, const float *);
@@ -5251,6 +5252,34 @@
   vui __builtin_vec_vctzw (vui);
     VCTZW  VCTZW_DEPR2
 
+[VEC_VEEDP, vec_extract_exp_dp, __builtin_vec_extract_exp_dp, _ARCH_PWR9]
+  vull __builtin_vec_extract_exp_dp (vd);
+    VEEDP  VEEDP_DEPR1
+
+[VEC_VEESP, vec_extract_exp_sp, __builtin_vec_extract_exp_sp, _ARCH_PWR9]
+  vui __builtin_vec_extract_exp_sp (vf);
+    VEESP  VEESP_DEPR1
+
+[VEC_VESDP, vec_extract_sig_dp, __builtin_vec_extract_sig_dp, _ARCH_PWR9]
+  vull __builtin_vec_extract_sig_dp (vd);
+    VESDP  VESDP_DEPR1
+
+[VEC_VESSP, vec_extract_sig_sp, __builtin_vec_extract_sig_sp, _ARCH_PWR9]
+  vui __builtin_vec_extract_sig_sp (vf);
+    VESSP  VESSP_DEPR1
+
+[VEC_VIEDP, vec_insert_exp_dp, __builtin_vec_insert_exp_dp, _ARCH_PWR9]
+  vd __builtin_vec_insert_exp_dp (vd, vull);
+    VIEDP  VIEDP_DEPR1
+  vd __builtin_vec_insert_exp_dp (vull, vull);
+    VIEDP  VIEDP_DEPR2
+
+[VEC_VIESP, vec_insert_exp_sp, __builtin_vec_insert_exp_sp, _ARCH_PWR9]
+  vf __builtin_vec_insert_exp_sp (vf, vui);
+    VIESP  VIESP_DEPR1
+  vf __builtin_vec_insert_exp_sp (vui, vui);
+    VIESP  VIESP_DEPR2
+
 [VEC_VMAXFP, vec_vmaxfp, __builtin_vec_vmaxfp]
   vf __builtin_vec_vmaxfp (vf, vf);
     VMAXFP  VMAXFP_DEPR1
@@ -5483,6 +5512,10 @@
   vui __builtin_vec_vmsumubm (vuc, vuc, vui);
     VMSUMUBM  VMSUMUBM_DEPR1
 
+[VEC_VMSUMUDM, vec_vmsumudm, __builtin_vec_vmsumudm]
+  vuq __builtin_vec_vmsumudm (vull, vull, vuq);
+    VMSUMUDM  VMSUMUDM_DEPR1
+
 [VEC_VMSUMUHM, vec_vmsumuhm, __builtin_vec_vmsumuhm]
   vui __builtin_vec_vmsumuhm (vus, vus, vui);
     VMSUMUHM  VMSUMUHM_DEPR1
@@ -5787,6 +5820,30 @@
   vui __builtin_vec_vsrw (vui, vui);
     VSRW  VSRW_DEPR2
 
+[VEC_VSTDCDP, scalar_test_data_class_dp, __builtin_vec_scalar_test_data_class_dp, _ARCH_PWR9]
+  unsigned int __builtin_vec_scalar_test_data_class_dp (double, const int);
+    VSTDCDP  VSTDCDP_DEPR1
+
+[VEC_VSTDCNDP, scalar_test_neg_dp, __builtin_vec_scalar_test_neg_dp, _ARCH_PWR9]
+  unsigned int __builtin_vec_scalar_test_neg_dp (double);
+    VSTDCNDP  VSTDCNDP_DEPR1
+
+[VEC_VSTDCNQP, scalar_test_neg_qp, __builtin_vec_scalar_test_neg_qp, _ARCH_PWR9]
+  unsigned int __builtin_vec_scalar_test_neg_qp (_Float128);
+    VSTDCNQP  VSTDCNQP_DEPR1
+
+[VEC_VSTDCNSP, scalar_test_neg_sp, __builtin_vec_scalar_test_neg_sp, _ARCH_PWR9]
+  unsigned int __builtin_vec_scalar_test_neg_sp (float);
+    VSTDCNSP  VSTDCNSP_DEPR1
+
+[VEC_VSTDCQP, scalar_test_data_class_qp, __builtin_vec_scalar_test_data_class_qp, _ARCH_PWR9]
+  unsigned int __builtin_vec_scalar_test_data_class_qp (_Float128, const int);
+    VSTDCQP  VSTDCQP_DEPR1
+
+[VEC_VSTDCSP, scalar_test_data_class_sp, __builtin_vec_scalar_test_data_class_sp, _ARCH_PWR9]
+  unsigned int __builtin_vec_scalar_test_data_class_sp (float, const int);
+    VSTDCSP  VSTDCSP_DEPR1
+
 [VEC_VSUBCUQ, vec_vsubcuqP, __builtin_vec_vsubcuq]
   vsq __builtin_vec_vsubcuq (vsq, vsq);
     VSUBCUQ  VSUBCUQ_DEPR1
@@ -5961,6 +6018,30 @@
   vui __builtin_vec_vsum4ubs (vuc, vui);
     VSUM4UBS  VSUM4UBS_DEPR1
 
+[VEC_VTDCDP, vec_test_data_class_dp, __builtin_vec_test_data_class_dp, _ARCH_PWR9]
+  vbll __builtin_vec_test_data_class_dp (vd, const int);
+    VTDCDP  VTDCDP_DEPR1
+
+[VEC_VTDCSP, vec_test_data_class_sp, __builtin_vec_test_data_class_sp, _ARCH_PWR9]
+  vbi __builtin_vec_test_data_class_sp (vf, const int);
+    VTDCSP  VTDCSP_DEPR1
+
+[VEC_UNS_DOUBLEE, vec_uns_doublee, __builtin_vec_uns_doublee]
+  vd __builtin_vec_uns_doublee (vui);
+    UNS_DOUBLEE_V4SI  UNS_DOUBLEE_DEPR1
+
+[VEC_UNS_DOUBLEH, vec_uns_doubleh, __builtin_vec_uns_doubleh]
+  vd __builtin_vec_uns_doubleh (vui);
+    UNS_DOUBLEH_V4SI  UNS_DOUBLEH_DEPR1
+
+[VEC_UNS_DOUBLEL, vec_uns_doublel, __builtin_vec_uns_doublel]
+  vd __builtin_vec_uns_doublel (vui);
+    UNS_DOUBLEL_V4SI  UNS_DOUBLEL_DEPR1
+
+[VEC_UNS_DOUBLEO, vec_uns_doubleo, __builtin_vec_uns_doubleo]
+  vd __builtin_vec_uns_doubleo (vui);
+    UNS_DOUBLEO_V4SI  UNS_DOUBLEO_DEPR1
+
 [VEC_VUPKHPX, vec_vupkhpx, __builtin_vec_vupkhpx]
   vui __builtin_vec_vupkhpx (vus);
     VUPKHPX  VUPKHPX_DEPR1


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-03-31 19:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-30 23:07 [gcc(refs/users/wschmidt/heads/builtins10)] rs6000: **split and squash me** William Schmidt
2021-03-31 19:18 William Schmidt

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