public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/wschmidt/heads/builtins)] Minimize use of opaque types.
@ 2020-03-18 16:23 William Schmidt
  0 siblings, 0 replies; only message in thread
From: William Schmidt @ 2020-03-18 16:23 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:17503a25e8a3cc866f2e78e9e8e1fd106726d110

commit 17503a25e8a3cc866f2e78e9e8e1fd106726d110
Author: Bill Schmidt <wschmidt@linux.ibm.com>
Date:   Wed Mar 18 11:23:18 2020 -0500

    Minimize use of opaque types.
    
    2020-03-18  Bill Schmidt  <wschmidt@linux.ibm.com>
    
            * gcc/config/rs6000/rs6000-builtin-new.def: Replace "vop" with a
            type if all instances have the same mode.

Diff:
---
 gcc/config/rs6000/rs6000-builtin-new.def | 250 +++++++++++++++++--------------
 1 file changed, 140 insertions(+), 110 deletions(-)

diff --git a/gcc/config/rs6000/rs6000-builtin-new.def b/gcc/config/rs6000/rs6000-builtin-new.def
index 3306abf73a8..4cf60e3a072 100644
--- a/gcc/config/rs6000/rs6000-builtin-new.def
+++ b/gcc/config/rs6000/rs6000-builtin-new.def
@@ -1,3 +1,12 @@
+; When a vector argument or return type is limited to one mode (for
+; example, vsll and vull both map to V2DImode), best practice is to
+; use the associated signed type (e.g., vsll) rather than vop.
+;
+; Generating documentation for builtins should check for usage in
+; the overloads file as canon for which signatures are to be documented.
+; When there is no usage in the overloads file, the signature in this
+; builtins file is canon.
+
 [MASK_ALTIVEC]
   const vsc __builtin_altivec_abs_v16qi (vsc);
     ABS_V16QI absv16qi2 {}
@@ -82,31 +91,31 @@
   pure vop __builtin_altivec_lvx (signed long long, void *);
     LVX altivec_lvx_v4si {ldvec}
 
-  pure vop __builtin_altivec_lvx_v16qi (signed long long, void *);
+  pure vsc __builtin_altivec_lvx_v16qi (signed long long, void *);
     LVX_V16QI altivec_lvx_v16qi {ldvec}
 
   pure vf __builtin_altivec_lvx_v4sf (signed long long, void *);
     LVX_V4SF altivec_lvx_v4sf {ldvec}
 
-  pure vop __builtin_altivec_lvx_v4si (signed long long, void *);
+  pure vsi __builtin_altivec_lvx_v4si (signed long long, void *);
     LVX_V4SI altivec_lvx_v4si {ldvec}
 
-  pure vop __builtin_altivec_lvx_v8hi (signed long long, void *);
+  pure vss __builtin_altivec_lvx_v8hi (signed long long, void *);
     LVX_V8HI altivec_lvx_v8hi {ldvec}
 
   pure vsi __builtin_altivec_lvxl (signed long long, signed int *);
     LVXL altivec_lvxl_v4si {ldvec}
 
-  pure vop __builtin_altivec_lvxl_v16qi (signed long long, void *);
+  pure vsc __builtin_altivec_lvxl_v16qi (signed long long, void *);
     LVXL_V16QI altivec_lvxl_v16qi {ldvec}
 
   pure vf __builtin_altivec_lvxl_v4sf (signed long long, void *);
     LVXL_V4SF altivec_lvxl_v4sf {ldvec}
 
-  pure vop __builtin_altivec_lvxl_v4si (signed long long, void *);
+  pure vsi __builtin_altivec_lvxl_v4si (signed long long, void *);
     LVXL_V4SI altivec_lvxl_v4si {ldvec}
 
-  pure vop __builtin_altivec_lvxl_v8hi (signed long long, void *);
+  pure vss __builtin_altivec_lvxl_v8hi (signed long long, void *);
     LVXL_V8HI altivec_lvxl_v8hi {ldvec}
 
   vuc __builtin_altivec_mask_for_load (long long, void *);
@@ -136,10 +145,10 @@
   void __builtin_altivec_stvebx (vuc, signed long long, void *);
     STVEBX altivec_stvebx {stvec}
 
-  void __builtin_altivec_stvehx (vop, signed long long, void *);
+  void __builtin_altivec_stvehx (vss, signed long long, void *);
     STVEHX_VSS altivec_stvehx {stvec}
 
-  void __builtin_altivec_stvewx (vop, signed long long, void *);
+  void __builtin_altivec_stvewx (vsi, signed long long, void *);
     STVEWX altivec_stvewx {stvec}
 
   void __builtin_altivec_stvlx (vop, signed long long, void *);
@@ -156,36 +165,36 @@
 
 ; Skipping the STVX one that maps to STVX_V4SI (see above for LVX)
 
-  void __builtin_altivec_stvx_v16qi (vop, signed long long, void *);
+  void __builtin_altivec_stvx_v16qi (vsc, signed long long, void *);
     STVX_V16QI altivec_stvx_v16qi {stvec}
 
   void __builtin_altivec_stvx_v4sf (vf, signed long long, void *);
     STVX_V4SF altivec_stvx_v4sf {stvec}
 
-  void __builtin_altivec_stvx_v4si (vop, signed long long, void *);
+  void __builtin_altivec_stvx_v4si (vsi, signed long long, void *);
     STVX_V4SI altivec_stvx_v4si {stvec}
 
-  void __builtin_altivec_stvx_v8hi (vop, signed long long, void *);
+  void __builtin_altivec_stvx_v8hi (vss, signed long long, void *);
     STVX_V8HI altivec_stvx_v8hi {stvec}
 
 ; Skipping the STVXL one that maps to STVXL_V4SI (see above for LVX)
 
-  void __builtin_altivec_stvxl_v16qi (vop, signed long long, void *);
+  void __builtin_altivec_stvxl_v16qi (vsc, signed long long, void *);
     STVXL_V16QI altivec_stvxl_v16qi {stvec}
 
   void __builtin_altivec_stvxl_v4sf (vf, signed long long, void *);
     STVXL_V4SF altivec_stvxl_v4sf {stvec}
 
-  void __builtin_altivec_stvxl_v4si (vop, signed long long, void *);
+  void __builtin_altivec_stvxl_v4si (vsi, signed long long, void *);
     STVXL_V4SI altivec_stvxl_v4si {stvec}
 
-  void __builtin_altivec_stvxl_v8hi (vop, signed long long, void *);
+  void __builtin_altivec_stvxl_v8hi (vss, signed long long, void *);
     STVXL_V8HI altivec_stvxl_v8hi {stvec}
 
   fpmath vf __builtin_altivec_uns_float_sisf (vui);
     UNSFLOAT_V4SI_V4SF floatunsv4siv4sf2 {}
 
-  const vop __builtin_altivec_vaddcuw (vop, vop);
+  const vui __builtin_altivec_vaddcuw (vui, vui);
     VADDCUW altivec_vaddcuw {}
 
   const vf __builtin_altivec_vaddfp (vf, vf);
@@ -200,28 +209,28 @@
   const vsi __builtin_altivec_vaddsws (vsi, vsi);
     VADDSWS altivec_vaddsws {}
 
-  const vop __builtin_altivec_vaddubm (vop, vop);
+  const vuc __builtin_altivec_vaddubm (vuc, vuc);
     VADDUBM addv16qi3 {}
 
   const vuc __builtin_altivec_vaddubs (vuc, vuc);
     VADDUBS altivec_vaddubs {}
 
-  const vop __builtin_altivec_vadduhm (vop, vop);
+  const vus __builtin_altivec_vadduhm (vus, vus);
     VADDUHM addv8hi3 {}
 
   const vus __builtin_altivec_vadduhs (vus, vus);
     VADDUHS altivec_vadduhs {}
 
-  const vop __builtin_altivec_vadduwm (vop, vop);
+  const vui __builtin_altivec_vadduwm (vui, vui);
     VADDUWM addv4si3 {}
 
   const vui __builtin_altivec_vadduws (vui, vui);
     VADDUWS altivec_vadduws {}
 
-  const vop __builtin_altivec_vand_v16qi (vop, vop);
+  const vsc __builtin_altivec_vand_v16qi (vsc, vsc);
     VAND_V16QI andv16qi3 {}
 
-  const vop __builtin_altivec_vand_v16qi_uns (vop, vop);
+  const vuc __builtin_altivec_vand_v16qi_uns (vuc, vuc);
     VAND_V16QI_UNS andv16qi3 {}
 
   const vf __builtin_altivec_vand_v4sf (vf, vf);
@@ -230,19 +239,19 @@
   const vsi __builtin_altivec_vand_v4si (vsi, vsi);
     VAND_V4SI andv4si3 {}
 
-  const vop __builtin_altivec_vand_v4si_uns (vop, vop);
+  const vui __builtin_altivec_vand_v4si_uns (vui, vui);
     VAND_V4SI_UNS andv4si3 {}
 
   const vss __builtin_altivec_vand_v8hi (vss, vss);
     VAND_V8HI andv8hi3 {}
 
-  const vop __builtin_altivec_vand_v8hi_uns (vop, vop);
+  const vus __builtin_altivec_vand_v8hi_uns (vus, vus);
     VAND_V8HI_UNS andv8hi3 {}
 
   const vsc __builtin_altivec_vandc_v16qi (vsc, vsc);
     VANDC_V16QI andcv16qi3 {}
 
-  const vop __builtin_altivec_vandc_v16qi_uns (vop, vop);
+  const vuc __builtin_altivec_vandc_v16qi_uns (vuc, vuc);
     VANDC_V16QI_UNS andcv16qi3 {}
 
   const vf __builtin_altivec_vandc_v4sf (vf, vf);
@@ -251,13 +260,13 @@
   const vsi __builtin_altivec_vandc_v4si (vsi, vsi);
     VANDC_V4SI andcv4si3 {}
 
-  const vop __builtin_altivec_vandc_v4si_uns (vop, vop);
+  const vui __builtin_altivec_vandc_v4si_uns (vui, vui);
     VANDC_V4SI_UNS andcv4si3 {}
 
   const vss __builtin_altivec_vandc_v8hi (vss, vss);
     VANDC_V8HI andcv8hi3 {}
 
-  const vop __builtin_altivec_vandc_v8hi_uns (vop, vop);
+  const vus __builtin_altivec_vandc_v8hi_uns (vus, vus);
     VANDC_V8HI_UNS andcv8hi3 {}
 
   const vsc __builtin_altivec_vavgsb (vsc, vsc);
@@ -296,22 +305,22 @@
   const int __builtin_altivec_vcmpeqfp_p (int, vf, vf);
     VCMPEQFP_P vector_eq_v4sf_p {pred}
 
-  const vbc __builtin_altivec_vcmpequb (vop, vop);
+  const vbc __builtin_altivec_vcmpequb (vuc, vuc);
     VCMPEQUB vector_eqv16qi {}
 
-  const int __builtin_altivec_vcmpequb_p (int, vop, vop);
+  const int __builtin_altivec_vcmpequb_p (int, vuc, vuc);
     VCMPEQUB_P vector_eq_v16qi_p {pred}
 
-  const vbs __builtin_altivec_vcmpequh (vop, vop);
+  const vbs __builtin_altivec_vcmpequh (vus, vus);
     VCMPEQUH vector_eqv8hi {}
 
-  const int __builtin_altivec_vcmpequh_p (int, vop, vop);
+  const int __builtin_altivec_vcmpequh_p (int, vus, vus);
     VCMPEQUH_P vector_eq_v8hi_p {pred}
 
-  const vbi __builtin_altivec_vcmpequw (vop, vop);
+  const vbi __builtin_altivec_vcmpequw (vui, vui);
     VCMPEQUW vector_eqv4si {}
 
-  const int __builtin_altivec_vcmpequw_p (int, vop, vop);
+  const int __builtin_altivec_vcmpequw_p (int, vui, vui);
     VCMPEQUW_P vector_eq_v4si_p {pred}
 
   const vbi __builtin_altivec_vcmpgefp (vf, vf);
@@ -428,22 +437,22 @@
   const vss __builtin_altivec_vmladduhm (vss, vss, vss);
     VMLADDUHM fmav8hi4 {}
 
-  const vop __builtin_altivec_vmrghb (vop, vop);
+  const vsc __builtin_altivec_vmrghb (vsc, vsc);
     VMRGHB altivec_vmrghb {}
 
-  const vop __builtin_altivec_vmrghh (vop, vop);
+  const vss __builtin_altivec_vmrghh (vss, vss);
     VMRGHH altivec_vmrghh {}
 
-  const vop __builtin_altivec_vmrghw (vop, vop);
+  const vsi __builtin_altivec_vmrghw (vsi, vsi);
     VMRGHW altivec_vmrghw {}
 
-  const vop __builtin_altivec_vmrglb (vop, vop);
+  const vsc __builtin_altivec_vmrglb (vsc, vsc);
     VMRGLB altivec_vmrglb {}
 
-  const vop __builtin_altivec_vmrglh (vop, vop);
+  const vss __builtin_altivec_vmrglh (vss, vss);
     VMRGLH altivec_vmrglh {}
 
-  const vop __builtin_altivec_vmrglw (vop, vop);
+  const vsi __builtin_altivec_vmrglw (vsi, vsi);
     VMRGLW altivec_vmrglw {}
 
   const vsi __builtin_altivec_vmsummbm (vsc, vuc, vsi);
@@ -491,10 +500,10 @@
   fpmath vf __builtin_altivec_vnmsubfp (vf, vf, vf);
     VNMSUBFP nfmsv4sf4 {}
 
-  const vop __builtin_altivec_vnor_v16qi (vop, vop);
+  const vsc __builtin_altivec_vnor_v16qi (vsc, vsc);
     VNOR_V16QIS norv16qi3 {}
 
-  const vop __builtin_altivec_vnor_v16qi_uns (vop, vop);
+  const vuc __builtin_altivec_vnor_v16qi_uns (vuc, vuc);
     VNOR_V16QI_UNS norv16qi3 {}
 
   const vf __builtin_altivec_vnor_v4sf (vf, vf);
@@ -503,19 +512,19 @@
   const vsi __builtin_altivec_vnor_v4si (vsi, vsi);
     VNOR_V4SI norv4si3 {}
 
-  const vop __builtin_altivec_vnor_v4si_uns (vop, vop);
+  const vui __builtin_altivec_vnor_v4si_uns (vui, vui);
     VNOR_V4SI_UNS norv4si3 {}
 
   const vss __builtin_altivec_vnor_v8hi (vss, vss);
     VNOR_V8HI norv8hi3 {}
 
-  const vop __builtin_altivec_vnor_v8hi_uns (vop, vop);
+  const vus __builtin_altivec_vnor_v8hi_uns (vus, vus);
     VNOR_V8HI_UNS norv8hi3 {}
 
   const vsc __builtin_altivec_vor_v16qi (vsc, vsc);
     VOR_V16QI iorv16qi3 {}
 
-  const vop __builtin_altivec_vor_v16qi_uns (vop, vop);
+  const vuc __builtin_altivec_vor_v16qi_uns (vuc, vuc);
     VOR_V16QI_UNS iorv16qi3 {}
 
   const vf __builtin_altivec_vor_v4sf (vf, vf);
@@ -524,13 +533,13 @@
   const vsi __builtin_altivec_vor_v4si (vsi, vsi);
     VOR_V4SI iorv4si3 {}
 
-  const vop __builtin_altivec_vor_v4si_uns (vop, vop);
+  const vui __builtin_altivec_vor_v4si_uns (vui, vui);
     VOR_V4SI_UNS iorv4si3 {}
 
   const vss __builtin_altivec_vor_v8hi (vss, vss);
     VOR_V8HI iorv8hi3 {}
 
-  const vop __builtin_altivec_vor_v8hi_uns (vop, vop);
+  const vus __builtin_altivec_vor_v8hi_uns (vus, vus);
     VOR_V8HI_UNS iorv8hi3 {}
 
   const vsc __builtin_altivec_vperm_16qi (vsc, vsc, vuc);
@@ -575,13 +584,13 @@
   const vus __builtin_altivec_vpkswus (vsi, vsi);
     VPKSWUS altivec_vpkswus {}
 
-  const vop __builtin_altivec_vpkuhum (vop, vop);
+  const vuc __builtin_altivec_vpkuhum (vus, vus);
     VPKUHUM altivec_vpkuhum {}
 
   const vuc __builtin_altivec_vpkuhus (vus, vus);
     VPKUHUS altivec_vpkuhus {}
 
-  const vop __builtin_altivec_vpkuwum (vop, vop);
+  const vus __builtin_altivec_vpkuwum (vui, vui);
     VPKUWUM altivec_vpkuwum {}
 
   const vus __builtin_altivec_vpkuwus (vui, vui);
@@ -593,16 +602,16 @@
   fpmath vf __builtin_altivec_vrefp (vf);
     VREFP rev4sf2 {}
 
-  const vop __builtin_altivec_vreve_v16qi (vop);
+  const vsc __builtin_altivec_vreve_v16qi (vsc);
     VREVE_V16QI altivec_vrevev16qi2 {}
 
   const vf __builtin_altivec_vreve_v4sf (vf);
     VREVE_V4SF altivec_vrevev4sf2 {}
 
-  const vop __builtin_altivec_vreve_v4si (vop);
+  const vsi __builtin_altivec_vreve_v4si (vsi);
     VREVE_V4SI altivec_vrevev4si2 {}
 
-  const vop __builtin_altivec_vreve_v8hi (vop);
+  const vss __builtin_altivec_vreve_v8hi (vss);
     VREVE_V8HI altivec_vrevev8hi2 {}
 
   fpmath vf __builtin_altivec_vrfim (vf);
@@ -617,13 +626,13 @@
   fpmath vf __builtin_altivec_vrfiz (vf);
     VRFIZ vector_btruncv4sf2 {}
 
-  const vop __builtin_altivec_vrlb (vop, vop);
+  const vsc __builtin_altivec_vrlb (vsc, vsc);
     VRLB vrotlv16qi3 {}
 
-  const vop __builtin_altivec_vrlh (vop, vop);
+  const vss __builtin_altivec_vrlh (vss, vss);
     VRLH vrotlv8hi3 {}
 
-  const vop __builtin_altivec_vrlw (vop, vop);
+  const vsi __builtin_altivec_vrlw (vsi, vsi);
     VRLW vrotlv4si3 {}
 
   fpmath vf __builtin_altivec_vrsqrtefp (vf);
@@ -632,7 +641,7 @@
   fpmath vf __builtin_altivec_vrsqrtfp (vf);
     VRSQRTFP rsqrtv4sf2 {}
 
-  const vop __builtin_altivec_vsel_16qi (vop, vop, vop);
+  const vsc __builtin_altivec_vsel_16qi (vsc, vsc, vuc);
     VSEL_16QI vector_select_v16qi {}
 
   const vuc __builtin_altivec_vsel_16qi_uns (vuc, vuc, vuc);
@@ -644,16 +653,16 @@
   const vuq __builtin_altivec_vsel_1ti_uns (vuq, vuq, vuq);
     VSEL_1TI_UNS vector_select_v1ti_uns {}
 
-  const vf __builtin_altivec_vsel_4sf (vf, vf, vop);
+  const vf __builtin_altivec_vsel_4sf (vf, vf, vui);
     VSEL_4SF vector_select_v4sf {}
 
-  const vop __builtin_altivec_vsel_4si (vop, vop, vop);
+  const vsi __builtin_altivec_vsel_4si (vsi, vsi, vui);
     VSEL_4SI vector_select_v4si {}
 
   const vui __builtin_altivec_vsel_4si_uns (vui, vui, vui);
     VSEL_4SI_UNS vector_select_v4si_uns {}
 
-  const vop __builtin_altivec_vsel_8hi (vop, vop, vop);
+  const vss __builtin_altivec_vsel_8hi (vss, vss, vus);
     VSEL_8HI vector_select_v8hi {}
 
   const vus __builtin_altivec_vsel_8hi_uns (vus, vus, vus);
@@ -662,25 +671,34 @@
   const vop __builtin_altivec_vsl (vop, vuc);
     VSL altivec_vsl {}
 
-  const vop __builtin_altivec_vslb (vop, vop);
+  const vsc __builtin_altivec_vslb (vsc, vuc);
     VSLB vashlv16qi3 {}
 
-  const vop __builtin_altivec_vsldoi_16qi (vop, vop, const int<4>);
+  const vsc __builtin_altivec_vsldoi_16qi (vsc, vsc, const int<4>);
     VSLDOI_16QI altivec_vsldoi_v16qi {}
 
-  const vop __builtin_altivec_vslh (vop, vop);
+  const vf __builtin_altivec_vsldoi_4sf (vf, vf, const int<4>);
+    VSLDOI_4SF altivec_vsldoi_v4sf {}
+
+  const vsi __builtin_altivec_vsldoi_4si (vsi, vsi, const int<4>);
+    VSLDOI_4SI altivec_vsldoi_v4si {}
+
+  const vss __builtin_altivec_vsldoi_8hi (vss, vss, const int<4>);
+    VSLDOI_8HI altivec_vsldoi_v8hi {}
+
+  const vss __builtin_altivec_vslh (vss, vus);
     VSLH vashlv8hi3 {}
 
   const vop __builtin_altivec_vslo (vop, vop);
     VSLO altivec_vslo {}
 
-  const vop __builtin_altivec_vslw (vop, vui);
+  const vsi __builtin_altivec_vslw (vsi, vui);
     VSLW vashlv4si3 {}
 
-  const vop __builtin_altivec_vspltb (vop, const int<4>);
+  const vsc __builtin_altivec_vspltb (vsc, const int<4>);
     VSPLTB altivec_vspltb {}
 
-  const vop __builtin_altivec_vsplth (vop, const int<3>);
+  const vss __builtin_altivec_vsplth (vss, const int<3>);
     VSPLTH altivec_vsplth {}
 
   const vsc __builtin_altivec_vspltisb (const int<-16,15>);
@@ -692,34 +710,34 @@
   const vsi __builtin_altivec_vspltisw (const int<-16,15>);
     VSPLTISW altivec_vspltisw {}
 
-  const vop __builtin_altivec_vspltw (vop, const int<2>);
+  const vsi __builtin_altivec_vspltw (vsi, const int<2>);
     VSPLTW altivec_vspltw {}
 
   const vop __builtin_altivec_vsr (vop, vuc);
     VSR altivec_vsr {}
 
-  const vop __builtin_altivec_vsrab (vop, vuc);
+  const vsc __builtin_altivec_vsrab (vsc, vuc);
     VSRAB vashrv16qi3 {}
 
-  const vop __builtin_altivec_vsrah (vop, vus);
+  const vss __builtin_altivec_vsrah (vss, vus);
     VSRAH vashrv8hi3 {}
 
-  const vop __builtin_altivec_vsraw (vop, vui);
+  const vsi __builtin_altivec_vsraw (vsi, vui);
     VSRAW vashrv4si3 {}
 
-  const vop __builtin_altivec_vsrb (vop, vuc);
+  const vsc __builtin_altivec_vsrb (vsc, vuc);
     VSRB vlshrv16qi3 {}
 
-  const vop __builtin_altivec_vsrh (vop, vus);
+  const vss __builtin_altivec_vsrh (vss, vus);
     VSRH vlshrv8hi3 {}
 
-  const vop __builtin_altivec_vsro (vop, vop);
+  const vop __builtin_altivec_vsro (vop, vuc);
     VSRO altivec_vsro {}
 
-  const vop __builtin_altivec_vsrw (vop, vui);
+  const vsi __builtin_altivec_vsrw (vsi, vui);
     VSRW vlshrv4si3 {}
 
-  const vop __builtin_altivec_vsubcuw (vop, vop);
+  const vsi __builtin_altivec_vsubcuw (vsi, vsi);
     VSUBCUW altivec_vsubcuw {}
 
   const vf __builtin_altivec_vsubfp (vf, vf);
@@ -734,19 +752,19 @@
   const vsi __builtin_altivec_vsubsws (vsi, vsi);
     VSUBSWS altivec_vsubsws {}
 
-  const vop __builtin_altivec_vsububm (vop, vop);
+  const vuc __builtin_altivec_vsububm (vuc, vuc);
     VSUBUBM subv16qi3 {}
 
   const vuc __builtin_altivec_vsububs (vuc, vuc);
     VSUBUBS altivec_vsububs {}
 
-  const vop __builtin_altivec_vsubuhm (vop, vop);
+  const vus __builtin_altivec_vsubuhm (vus, vus);
     VSUBUHM subv8hi3 {}
 
   const vus __builtin_altivec_vsubuhs (vus, vus);
     VSUBUHS altivec_vsubuhs {}
 
-  const vop __builtin_altivec_vsubuwm (vop, vop);
+  const vui __builtin_altivec_vsubuwm (vui, vui);
     VSUBUWM subv4si3 {}
 
   const vui __builtin_altivec_vsubuws (vui, vui);
@@ -773,25 +791,25 @@
   const vui __builtin_altivec_vupkhpx (vp);
     VUPKHPX altivec_vupkhpx {}
 
-  const vop __builtin_altivec_vupkhsb (vop);
+  const vss __builtin_altivec_vupkhsb (vsc);
     VUPKHSB altivec_vupkhsb {}
 
-  const vop __builtin_altivec_vupkhsh (vop);
+  const vsi __builtin_altivec_vupkhsh (vss);
     VUPKHSH altivec_vupkhsh {}
 
   const vui __builtin_altivec_vupklpx (vp);
     VUPKLPX altivec_vupklpx {}
 
-  const vop __builtin_altivec_vupklsb (vop);
+  const vss __builtin_altivec_vupklsb (vsc);
     VUPKLSB altivec_vupklsb {}
 
-  const vop __builtin_altivec_vupklsh (vop);
+  const vsi __builtin_altivec_vupklsh (vss);
     VUPKLSH altivec_vupklsh {}
 
   const vsc __builtin_altivec_vxor_v16qi (vsc, vsc);
     VXOR_V16QI xorv16qi3 {}
 
-  const vop __builtin_altivec_vxor_v16qi_uns (vop, vop);
+  const vuc __builtin_altivec_vxor_v16qi_uns (vuc, vuc);
     VXOR_V16QI_UNS xorv16qi3 {}
 
   const vf __builtin_altivec_vxor_v4sf (vf, vf);
@@ -800,13 +818,13 @@
   const vsi __builtin_altivec_vxor_v4si (vsi, vsi);
     VXOR_V4SI xorv4si3 {}
 
-  const vop __builtin_altivec_vxor_v4si_uns (vop, vop);
+  const vui __builtin_altivec_vxor_v4si_uns (vui, vui);
     VXOR_V4SI_UNS xorv4si3 {}
 
   const vss __builtin_altivec_vxor_v8hi (vss, vss);
     VXOR_V8HI xorv8hi3 {}
 
-  const vop __builtin_altivec_vxor_v8hi_uns (vop, vop);
+  const vus __builtin_altivec_vxor_v8hi_uns (vus, vus);
     VXOR_V8HI_UNS xorv8hi3 {}
 
   const signed char __builtin_vec_ext_v16qi (vsc, signed int);
@@ -847,19 +865,19 @@
 
 
 [MASK_VSX]
-  pure vop __builtin_altivec_lvx_v1ti (signed long long, void *);
+  pure vsq __builtin_altivec_lvx_v1ti (signed long long, void *);
     LVX_V1TI altivec_lvx_v1ti {ldvec}
 
   pure vd __builtin_altivec_lvx_v2df (signed long long, void *);
     LVX_V2DF altivec_lvx_v2df {ldvec}
 
-  pure vop __builtin_altivec_lvx_v2di (signed long long, void *);
+  pure vsll __builtin_altivec_lvx_v2di (signed long long, void *);
     LVX_V2DI altivec_lvx_v2di {ldvec}
 
   pure vd __builtin_altivec_lvxl_v2df (signed long long, void *);
     LVXL_V2DF altivec_lvxl_v2df {ldvec}
 
-  pure vop __builtin_altivec_lvxl_v2di (signed long long, void *);
+  pure vsll __builtin_altivec_lvxl_v2di (signed long long, void *);
     LVXL_V2DI altivec_lvxl_v2di {ldvec}
 
   const vd __builtin_altivec_nabs_v2df (vd);
@@ -886,7 +904,7 @@
   const vsll __builtin_altivec_vand_v2di (vsll, vsll);
     VAND_V2DI andv2di3 {}
 
-  const vop __builtin_altivec_vand_v2di_uns (vop, vop);
+  const vull __builtin_altivec_vand_v2di_uns (vull, vull);
     VAND_V2DI_UNS andv2di3 {}
 
   const vd __builtin_altivec_vandc_v2df (vd, vd);
@@ -895,7 +913,7 @@
   const vsll __builtin_altivec_vandc_v2di (vsll, vsll);
     VANDC_V2DI andcv2di3 {}
 
-  const vop __builtin_altivec_vandc_v2di_uns (vop, vop);
+  const vull __builtin_altivec_vandc_v2di_uns (vull, vull);
     VANDC_V2DI_UNS andcv2di3 {}
 
   const vd __builtin_altivec_vnor_v2df (vd, vd);
@@ -904,7 +922,7 @@
   const vsll __builtin_altivec_vnor_v2di (vsll, vsll);
     VNOR_V2DI norv2di3 {}
 
-  const vop __builtin_altivec_vnor_v2di_uns (vop, vop);
+  const vull __builtin_altivec_vnor_v2di_uns (vull, vull);
     VNOR_V2DI_UNS norv2di3 {}
 
   const vd __builtin_altivec_vor_v2df (vd, vd);
@@ -913,7 +931,7 @@
   const vsll __builtin_altivec_vor_v2di (vsll, vsll);
     VOR_V2DI iorv2di3 {}
 
-  const vop __builtin_altivec_vor_v2di_uns (vop, vop);
+  const vull __builtin_altivec_vor_v2di_uns (vull, vull);
     VOR_V2DI_UNS iorv2di3 {}
 
   const vd __builtin_altivec_vperm_2df (vd, vd, vuc);
@@ -928,7 +946,7 @@
   const vd __builtin_altivec_vreve_v2df (vd);
     VREVE_V2DF altivec_vrevev2df2 {}
 
-  const vop __builtin_altivec_vreve_v2di (vop);
+  const vsll __builtin_altivec_vreve_v2di (vsll);
     VREVE_V2DI altivec_vrevev2di2 {}
 
   const vd __builtin_altivec_vsel_2df (vd, vd, vop);
@@ -943,7 +961,7 @@
   const vd __builtin_altivec_vsldoi_2df (vd, vd, const int<4>);
     VSLDOI_2DF altivec_vsldoi_v2df {}
 
-  const vop __builtin_altivec_vsldoi_2di (vop, vop, const int<4>);
+  const vsll __builtin_altivec_vsldoi_2di (vsll, vsll, const int<4>);
     VSLDOI_2DI altivec_vsldoi_v2di {}
 
   const vd __builtin_altivec_vxor_v2df (vd, vd);
@@ -952,7 +970,7 @@
   const vsll __builtin_altivec_vxor_v2di (vsll, vsll);
     VXOR_V2DI xorv2di3 {}
 
-  const vop __builtin_altivec_vxor_v2di_uns (vop, vop);
+  const vull __builtin_altivec_vxor_v2di_uns (vull, vull);
     VXOR_V2DI_UNS xorv2di3 {}
 
   const vbc __builtin_vsx_cmpge_16qi (vsc, vsc);
@@ -1062,37 +1080,40 @@
 ; for any of them.  At some point, we may want to add a set of built-ins for
 ; whichever vector types make sense for these.
 
-  pure vop __builtin_vsx_lxvd2x_v1ti (signed long long, void *);
+  pure vsq __builtin_vsx_lxvd2x_v1ti (signed long long, void *);
     LXVD2X_V1TI vsx_load_v1ti {ldvec}
 
   pure vd __builtin_vsx_lxvd2x_v2df (signed long long, void *);
     LXVD2X_V2DF vsx_load_v2df {ldvec}
 
-  pure vop __builtin_vsx_lxvd2x_v2di (signed long long, void *);
+  pure vsll __builtin_vsx_lxvd2x_v2di (signed long long, void *);
     LXVD2X_V2DI vsx_load_v2di {ldvec}
 
+  pure vsc __builtin_vsx_lxvw4x_16qi (signed long long, void *);
+    LXVW4X_V16QI vsx_load_v16qi {ldvec}
+
   pure vf __builtin_vsx_lxvw4x_v4sf (signed long long, void *);
     LXVW4X_V4SF vsx_load_v4sf {ldvec}
 
-  pure vop __builtin_vsx_lxvw4x_v4si (signed long long, void *);
+  pure vsi __builtin_vsx_lxvw4x_v4si (signed long long, void *);
     LXVW4X_V4SI vsx_load_v4si {ldvec}
 
-  pure vop __builtin_vsx_lxvw4x_v8hi (signed long long, void *);
+  pure vss __builtin_vsx_lxvw4x_v8hi (signed long long, void *);
     LXVW4X_V8HI vsx_load_v8hi {ldvec}
 
   const vd __builtin_vsx_mergeh_2df (vd, vd);
     VEC_MERGEH_V2DF vsx_mergeh_v2df {}
 
-  const vop __builtin_vsx_mergeh_2di (vop, vop);
+  const vsll __builtin_vsx_mergeh_2di (vsll, vsll);
     VEC_MERGEH_V2DI vsx_mergeh_v2di {}
 
   const vd __builtin_vsx_mergel_2df (vd, vd);
     VEC_MERGEL_V2DF vsx_mergel_v2df {}
 
-  const vop __builtin_vsx_mergel_2di (vop, vop);
+  const vsll __builtin_vsx_mergel_2di (vsll, vsll);
     VEC_MERGEL_V2DI vsx_mergel_v2di {}
 
-  const vop __builtin_vsx_mul_2di (vop, vop);
+  const vsll __builtin_vsx_mul_2di (vsll, vsll);
     MUL_V2DI vsx_mul_v2di {}
 
   const vsq __builtin_vsx_set_1ti (vsq, signed __int128, const int<0,0>);
@@ -1119,6 +1140,15 @@
   const vull __builtin_vsx_splat_2di_uns (unsigned long long);
     SPLAT_2DI_UNS vsx_splat_v2di {}
 
+  void __builtin_vsx_stxvd2x_v1ti (vsq, signed long long, void *);
+    STXVD2X_V1TI vsx_store_v1ti {stvec}
+
+  void __builtin_vsx_stxvd2x_v2df (vd, signed long long, void *);
+    STXVD2X_V2DF vsx_store_v2df {stvec}
+
+  void __builtin_vsx_stxvd2x_v2di (vsll, signed long long, void *);
+    STXVD2X_V2DI vsx_store_v2di {stvec}
+
   const vull __builtin_vsx_udiv_2di (vull, vull);
     UDIV_V2DI vsx_udiv_v2di {}
 
@@ -1490,34 +1520,34 @@
   const vf __builtin_vsx_xxmrghw (vf, vf);
     XXMRGHW_4SF vsx_xxmrghw_v4sf {}
 
-  const vop __builtin_vsx_xxmrghw_4si (vop, vop);
+  const vsi __builtin_vsx_xxmrghw_4si (vsi, vsi);
     XXMRGHW_4SI vsx_xxmrghw_v4si {}
 
   const vf __builtin_vsx_xxmrglw (vf, vf);
     XXMRGLW_4SF vsx_xxmrglw_v4sf {}
 
-  const vop __builtin_vsx_xxmrglw_4si (vop, vop);
+  const vss __builtin_vsx_xxmrglw_4si (vsi, vsi);
     XXMRGLW_4SI vsx_xxmrglw_v4si {}
 
-  const vop __builtin_vsx_xxpermdi_16qi (vop, vop, const int<1>);
+  const vsc __builtin_vsx_xxpermdi_16qi (vsc, vsc, const int<1>);
     XXPERMDI_16QI vsx_xxpermdi_v16qi {}
 
-  const vop __builtin_vsx_xxpermdi_1ti (vop, vop, const int<1>);
+  const vsq __builtin_vsx_xxpermdi_1ti (vsq, vsq, const int<1>);
     XXPERMDI_1TI vsx_xxpermdi_v1ti {}
 
   const vd __builtin_vsx_xxpermdi_2df (vd, vd, const int<1>);
     XXPERMDI_2DF vsx_xxpermdi_v2df {}
 
-  const vop __builtin_vsx_xxpermdi_2di (vop, vop, const int<1>);
+  const vsll __builtin_vsx_xxpermdi_2di (vsll, vsll, const int<1>);
     XXPERMDI_2DI vsx_xxpermdi_v2di {}
 
   const vf __builtin_vsx_xxpermdi_4sf (vf, vf, const int<1>);
     XXPERMDI_4SF vsx_xxpermdi_v4sf {}
 
-  const vop __builtin_vsx_xxpermdi_4si (vop, vop, const int<1>);
+  const vsi __builtin_vsx_xxpermdi_4si (vsi, vsi, const int<1>);
     XXPERMDI_4SI vsx_xxpermdi_v4si {}
 
-  const vop __builtin_vsx_xxpermdi_8hi (vop, vop, const int<1>);
+  const vss __builtin_vsx_xxpermdi_8hi (vss, vss, const int<1>);
     XXPERMDI_8HI vsx_xxpermdi_v8hi {}
 
   const vsc __builtin_vsx_xxsel_16qi (vsc, vsc, vsc);
@@ -1556,28 +1586,28 @@
   const vus __builtin_vsx_xxsel_8hi_uns (vus, vus, vus);
     XXSEL_8HI_UNS vector_select_v8hi_uns {}
 
-  const vop __builtin_vsx_xxsldwi_16qi (vop, vop, const int<5>);
+  const vsc __builtin_vsx_xxsldwi_16qi (vsc, vsc, const int<5>);
     XXSLDWI_16QI vsx_xxsldwi_v16qi {}
 
   const vd __builtin_vsx_xxsldwi_2df (vd, vd, const int<5>);
     XXSLDWI_2DF vsx_xxsldwi_v2df {}
 
-  const vop __builtin_vsx_xxsldwi_2di (vop, vop, const int<5>);
+  const vsll __builtin_vsx_xxsldwi_2di (vsll, vsll, const int<5>);
     XXSLDWI_2DI vsx_xxsldwi_v2di {}
 
   const vf __builtin_vsx_xxsldwi_4sf (vf, vf, const int<5>);
     XXSLDWI_4SF vsx_xxsldwi_v4sf {}
 
-  const vop __builtin_vsx_xxsldwi_4si (vop, vop, const int<5>);
+  const vsi __builtin_vsx_xxsldwi_4si (vsi, vsi, const int<5>);
     XXSLDWI_4SI vsx_xxsldwi_v4si {}
 
-  const vop __builtin_vsx_xxsldwi_8hi (vop, vop, const int<5>);
+  const vss __builtin_vsx_xxsldwi_8hi (vss, vss, const int<5>);
     XXSLDWI_8HI vsx_xxsldwi_v8hi {}
 
   const vd __builtin_vsx_xxspltd_2df (vd, const int<1>);
     XXSPLTD_V2DF vsx_xxspltd_v2df {}
 
-  const vop __builtin_vsx_xxspltd_2di (vop, const int<1>);
+  const vsll __builtin_vsx_xxspltd_2di (vsll, const int<1>);
     XXSPLTD_V2DI vsx_xxspltd_v2di {}


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-03-18 16:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-18 16:23 [gcc(refs/users/wschmidt/heads/builtins)] Minimize use of opaque types 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).