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