xref: /netbsd-src/external/gpl3/gcc/dist/gcc/config/rs6000/rs6000-overload.def (revision b1e838363e3c6fc78a55519254d99869742dd33c)
1; Overloaded built-in functions for PowerPC.
2; Copyright (C) 2020-2022 Free Software Foundation, Inc.
3; Contributed by Bill Schmidt, IBM <wschmidt@linux.ibm.com>
4;
5; This file is part of GCC.
6;
7; GCC is free software; you can redistribute it and/or modify it under
8; the terms of the GNU General Public License as published by the Free
9; Software Foundation; either version 3, or (at your option) any later
10; version.
11;
12; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15; for more details.
16;
17; You should have received a copy of the GNU General Public License
18; along with GCC; see the file COPYING3.  If not see
19; <http://www.gnu.org/licenses/>.
20
21
22; Overloaded built-in functions in this file are organized into "stanzas",
23; where all built-ins in a given stanza have the same overloaded function
24; name:
25;
26;   [<overload-id>, <abi-name>, <builtin-name>[[, <ifdef>]] ]
27;
28; Here the single square brackets are part of the syntax; <overload-id>
29; is a unique internal identifier for the overload that will be used as
30; part of an enumeration of all overloaded functions; <abi-name> is the
31; name that will appear as a #define in rs6000-vecdefines.h;
32; <builtin-name> is the name that is overloaded in the back end; and
33; <ifdef> is an optional token used to guard the #define with an #ifdef
34; in rs6000-vecdefines.h.  If no #define is desired, the <abi-name> should
35; be replaced with the token SKIP.
36;
37; The <ifdef> token should be used sparingly, because a #define can't be
38; overridden by __attribute__((target)).  It is appropriate for cases
39; where a target override isn't a possibility, like __PPU__.
40;
41; Each function entry has two lines.  The first line is a prototype line.
42; See rs6000-builtin-new.def for a description of the prototype line.
43; A prototype line in this file differs in that it doesn't have an
44; optional [kind] token:
45;
46;   <return-type> <internal-name> (<argument-list>);
47;
48; The second line contains the <bif-id> that this particular instance of
49; the overloaded function maps to.  It must match a token that appears in
50; rs6000-builtin-new.def.  Optionally, a second token may appear.  If only
51; one token is on the line, it is also used to build the unique identifier
52; for the overloaded function.  If a second token is present, the second
53; token is used instead for this purpose.  This is necessary in cases
54; where a built-in function accepts more than one type signature.  It is
55; common to have a built-in function that, for example, specifies a
56; "vector signed char" argument, but accepts "vector unsigned char" and
57; "vector bool char" as well because only the mode matters.  Note that
58; the overload resolution mechanism has always handled these cases by
59; performing fold_convert on vector arguments to hide type mismatches,
60; and it will continue to do so.
61;
62; As a concrete example, __builtin_altivec_mtvscr uses an opaque argument
63; type for the source operand.  Its built-in function id is MTVSCR.  The
64; overloaded function __builtin_vec_mtvscr takes a variety of specific
65; types, but not all vector types.  Each of these maps to the same
66; __builtin_altivec_mtvscr built-in function, but the overload ID must
67; be unique, so we must specify the second token as shown here.
68;
69;[VEC_MTVSCR, vec_mtvscr, __builtin_vec_mtvscr]
70;  void __builtin_vec_mtvscr (vbc);
71;    MTVSCR  MTVSCR_VBC
72;  void __builtin_vec_mtvscr (vsc);
73;    MTVSCR  MTVSCR_VSC
74;  ...
75;
76; Blank lines may be used as desired in this file between the lines as
77; defined above; that is, you can introduce as many extra newlines as you
78; like after a required newline, but nowhere else.  Lines beginning with
79; a semicolon are also treated as blank lines.
80
81
82[BCDADD, __builtin_bcdadd, __builtin_vec_bcdadd]
83  vsq __builtin_vec_bcdadd (vsq, vsq, const int);
84    BCDADD_V1TI
85  vuc __builtin_vec_bcdadd (vuc, vuc, const int);
86    BCDADD_V16QI
87
88[BCDADD_EQ, __builtin_bcdadd_eq, __builtin_vec_bcdadd_eq]
89  signed int __builtin_vec_bcdadd_eq (vsq, vsq, const int);
90    BCDADD_EQ_V1TI
91  signed int __builtin_vec_bcdadd_eq (vuc, vuc, const int);
92    BCDADD_EQ_V16QI
93
94[BCDADD_GT, __builtin_bcdadd_gt, __builtin_vec_bcdadd_gt]
95  signed int __builtin_vec_bcdadd_gt (vsq, vsq, const int);
96    BCDADD_GT_V1TI
97  signed int __builtin_vec_bcdadd_gt (vuc, vuc, const int);
98    BCDADD_GT_V16QI
99
100[BCDADD_LT, __builtin_bcdadd_lt, __builtin_vec_bcdadd_lt]
101  signed int __builtin_vec_bcdadd_lt (vsq, vsq, const int);
102    BCDADD_LT_V1TI
103  signed int __builtin_vec_bcdadd_lt (vuc, vuc, const int);
104    BCDADD_LT_V16QI
105
106[BCDADD_OV, __builtin_bcdadd_ov, __builtin_vec_bcdadd_ov]
107  signed int __builtin_vec_bcdadd_ov (vsq, vsq, const int);
108    BCDADD_OV_V1TI
109  signed int __builtin_vec_bcdadd_ov (vuc, vuc, const int);
110    BCDADD_OV_V16QI
111
112[BCDDIV10, __builtin_bcddiv10, __builtin_vec_bcddiv10]
113  vuc __builtin_vec_bcddiv10 (vuc);
114    BCDDIV10_V16QI
115
116[BCDINVALID, __builtin_bcdinvalid, __builtin_vec_bcdinvalid]
117  signed int __builtin_vec_bcdinvalid (vsq);
118    BCDINVALID_V1TI
119  signed int __builtin_vec_bcdinvalid (vuc);
120    BCDINVALID_V16QI
121
122[BCDMUL10, __builtin_bcdmul10, __builtin_vec_bcdmul10]
123  vuc __builtin_vec_bcdmul10 (vuc);
124    BCDMUL10_V16QI
125
126[BCDSUB, __builtin_bcdsub, __builtin_vec_bcdsub]
127  vsq __builtin_vec_bcdsub (vsq, vsq, const int);
128    BCDSUB_V1TI
129  vuc __builtin_vec_bcdsub (vuc, vuc, const int);
130    BCDSUB_V16QI
131
132[BCDSUB_EQ, __builtin_bcdsub_eq, __builtin_vec_bcdsub_eq]
133  signed int __builtin_vec_bcdsub_eq (vsq, vsq, const int);
134    BCDSUB_EQ_V1TI
135  signed int __builtin_vec_bcdsub_eq (vuc, vuc, const int);
136    BCDSUB_EQ_V16QI
137
138[BCDSUB_GE, __builtin_bcdsub_ge, __builtin_vec_bcdsub_ge]
139  signed int __builtin_vec_bcdsub_ge (vsq, vsq, const int);
140    BCDSUB_GE_V1TI
141  signed int __builtin_vec_bcdsub_ge (vuc, vuc, const int);
142    BCDSUB_GE_V16QI
143
144[BCDSUB_GT, __builtin_bcdsub_gt, __builtin_vec_bcdsub_gt]
145  signed int __builtin_vec_bcdsub_gt (vsq, vsq, const int);
146    BCDSUB_GT_V1TI
147  signed int __builtin_vec_bcdsub_gt (vuc, vuc, const int);
148    BCDSUB_GT_V16QI
149
150[BCDSUB_LE, __builtin_bcdsub_le, __builtin_vec_bcdsub_le]
151  signed int __builtin_vec_bcdsub_le (vsq, vsq, const int);
152    BCDSUB_LE_V1TI
153  signed int __builtin_vec_bcdsub_le (vuc, vuc, const int);
154    BCDSUB_LE_V16QI
155
156[BCDSUB_LT, __builtin_bcdsub_lt, __builtin_vec_bcdsub_lt]
157  signed int __builtin_vec_bcdsub_lt (vsq, vsq, const int);
158    BCDSUB_LT_V1TI
159  signed int __builtin_vec_bcdsub_lt (vuc, vuc, const int);
160    BCDSUB_LT_V16QI
161
162[BCDSUB_OV, __builtin_bcdsub_ov, __builtin_vec_bcdsub_ov]
163  signed int __builtin_vec_bcdsub_ov (vsq, vsq, const int);
164    BCDSUB_OV_V1TI
165  signed int __builtin_vec_bcdsub_ov (vuc, vuc, const int);
166    BCDSUB_OV_V16QI
167
168[BCD2DFP, __builtin_bcd2dfp, __builtin_vec_denb2dfp]
169  _Decimal128 __builtin_vec_denb2dfp (vuc);
170    DENB2DFP_V16QI
171
172[CRYPTO_PERMXOR, SKIP, __builtin_crypto_vpermxor]
173  vuc __builtin_crypto_vpermxor (vuc, vuc, vuc);
174    VPERMXOR_V16QI
175  vus __builtin_crypto_vpermxor (vus, vus, vus);
176    VPERMXOR_V8HI
177  vui __builtin_crypto_vpermxor (vui, vui, vui);
178    VPERMXOR_V4SI
179  vull __builtin_crypto_vpermxor (vull, vull, vull);
180    VPERMXOR_V2DI
181
182[CRYPTO_PMSUM, SKIP, __builtin_crypto_vpmsum]
183  vuc __builtin_crypto_vpmsum (vuc, vuc);
184    VPMSUMB  VPMSUMB_C
185  vus __builtin_crypto_vpmsum (vus, vus);
186    VPMSUMH  VPMSUMH_C
187  vui __builtin_crypto_vpmsum (vui, vui);
188    VPMSUMW  VPMSUMW_C
189  vull __builtin_crypto_vpmsum (vull, vull);
190    VPMSUMD  VPMSUMD_C
191
192[SCAL_CMPB, SKIP, __builtin_cmpb]
193  unsigned int __builtin_cmpb (unsigned int, unsigned int);
194    CMPB_32
195  unsigned long long __builtin_cmpb (unsigned long long, unsigned long long);
196    CMPB
197
198[VEC_ABS, vec_abs, __builtin_vec_abs]
199  vsc __builtin_vec_abs (vsc);
200    ABS_V16QI
201  vss __builtin_vec_abs (vss);
202    ABS_V8HI
203  vsi __builtin_vec_abs (vsi);
204    ABS_V4SI
205  vsll __builtin_vec_abs (vsll);
206    ABS_V2DI
207  vf __builtin_vec_abs (vf);
208    ABS_V4SF
209  vd __builtin_vec_abs (vd);
210    XVABSDP
211
212[VEC_ABSD, vec_absd, __builtin_vec_vadu]
213  vuc __builtin_vec_vadu (vuc, vuc);
214    VADUB
215  vus __builtin_vec_vadu (vus, vus);
216    VADUH
217  vui __builtin_vec_vadu (vui, vui);
218    VADUW
219
220[VEC_ABSS, vec_abss, __builtin_vec_abss]
221  vsc __builtin_vec_abss (vsc);
222    ABSS_V16QI
223  vss __builtin_vec_abss (vss);
224    ABSS_V8HI
225  vsi __builtin_vec_abss (vsi);
226    ABSS_V4SI
227
228[VEC_ADD, vec_add, __builtin_vec_add]
229  vsc __builtin_vec_add (vsc, vsc);
230    VADDUBM  VADDUBM_VSC
231  vuc __builtin_vec_add (vuc, vuc);
232    VADDUBM  VADDUBM_VUC
233  vss __builtin_vec_add (vss, vss);
234    VADDUHM  VADDUHM_VSS
235  vus __builtin_vec_add (vus, vus);
236    VADDUHM  VADDUHM_VUS
237  vsi __builtin_vec_add (vsi, vsi);
238    VADDUWM  VADDUWM_VSI
239  vui __builtin_vec_add (vui, vui);
240    VADDUWM  VADDUWM_VUI
241  vsll __builtin_vec_add (vsll, vsll);
242    VADDUDM  VADDUDM_VSLL
243  vull __builtin_vec_add (vull, vull);
244    VADDUDM  VADDUDM_VULL
245  vsq __builtin_vec_add (vsq, vsq);
246    VADDUQM  VADDUQM_VSQ
247  vuq __builtin_vec_add (vuq, vuq);
248    VADDUQM  VADDUQM_VUQ
249  vf __builtin_vec_add (vf, vf);
250    VADDFP
251  vd __builtin_vec_add (vd, vd);
252    XVADDDP
253; The following variants are deprecated.
254  vsc __builtin_vec_add (vbc, vsc);
255    VADDUBM  VADDUBM_VBC_VSC
256  vsc __builtin_vec_add (vsc, vbc);
257    VADDUBM  VADDUBM_VSC_VBC
258  vuc __builtin_vec_add (vbc, vuc);
259    VADDUBM  VADDUBM_VBC_VUC
260  vuc __builtin_vec_add (vuc, vbc);
261    VADDUBM  VADDUBM_VUC_VBC
262  vss __builtin_vec_add (vbs, vss);
263    VADDUHM  VADDUHM_VBS_VSS
264  vss __builtin_vec_add (vss, vbs);
265    VADDUHM  VADDUHM_VSS_VBS
266  vus __builtin_vec_add (vbs, vus);
267    VADDUHM  VADDUHM_VBS_VUS
268  vus __builtin_vec_add (vus, vbs);
269    VADDUHM  VADDUHM_VUS_VBS
270  vsi __builtin_vec_add (vbi, vsi);
271    VADDUWM  VADDUWM_VBI_VSI
272  vsi __builtin_vec_add (vsi, vbi);
273    VADDUWM  VADDUWM_VSI_VBI
274  vui __builtin_vec_add (vbi, vui);
275    VADDUWM  VADDUWM_VBI_VUI
276  vui __builtin_vec_add (vui, vbi);
277    VADDUWM  VADDUWM_VUI_VBI
278  vsll __builtin_vec_add (vbll, vsll);
279    VADDUDM  VADDUDM_VBLL_VSLL
280  vsll __builtin_vec_add (vsll, vbll);
281    VADDUDM  VADDUDM_VSLL_VBLL
282  vull __builtin_vec_add (vbll, vull);
283    VADDUDM  VADDUDM_VBLL_VULL
284  vull __builtin_vec_add (vull, vbll);
285    VADDUDM  VADDUDM_VULL_VBLL
286
287[VEC_ADDC, vec_addc, __builtin_vec_addc]
288  vsi __builtin_vec_addc (vsi, vsi);
289    VADDCUW  VADDCUW_VSI
290  vui __builtin_vec_addc (vui, vui);
291    VADDCUW  VADDCUW_VUI
292  vsq __builtin_vec_addc (vsq, vsq);
293    VADDCUQ  VADDCUQ_VSQ
294  vuq __builtin_vec_addc (vuq, vuq);
295    VADDCUQ  VADDCUQ_VUQ
296
297; TODO: Note that the entry for VEC_ADDE currently gets ignored in
298; altivec_resolve_overloaded_builtin.  Revisit whether we can remove
299; that.  We still need to register the legal builtin forms here.
300[VEC_ADDE, vec_adde, __builtin_vec_adde]
301  vsq __builtin_vec_adde (vsq, vsq, vsq);
302    VADDEUQM  VADDEUQM_VSQ
303  vuq __builtin_vec_adde (vuq, vuq, vuq);
304    VADDEUQM  VADDEUQM_VUQ
305
306; TODO: Note that the entry for VEC_ADDEC currently gets ignored in
307; altivec_resolve_overloaded_builtin.  Revisit whether we can remove
308; that.  We still need to register the legal builtin forms here.
309[VEC_ADDEC, vec_addec, __builtin_vec_addec]
310  vsq __builtin_vec_addec (vsq, vsq, vsq);
311    VADDECUQ  VADDECUQ_VSQ
312  vuq __builtin_vec_addec (vuq, vuq, vuq);
313    VADDECUQ  VADDECUQ_VUQ
314
315[VEC_ADDS, vec_adds, __builtin_vec_adds]
316  vuc __builtin_vec_adds (vuc, vuc);
317    VADDUBS
318  vsc __builtin_vec_adds (vsc, vsc);
319    VADDSBS
320  vus __builtin_vec_adds (vus, vus);
321    VADDUHS
322  vss __builtin_vec_adds (vss, vss);
323    VADDSHS
324  vui __builtin_vec_adds (vui, vui);
325    VADDUWS
326  vsi __builtin_vec_adds (vsi, vsi);
327    VADDSWS
328; The following variants are deprecated.
329  vuc __builtin_vec_adds (vbc, vuc);
330    VADDUBS  VADDUBS_BU
331  vuc __builtin_vec_adds (vuc, vbc);
332    VADDUBS  VADDUBS_UB
333  vsc __builtin_vec_adds (vbc, vsc);
334    VADDSBS  VADDSBS_BS
335  vsc __builtin_vec_adds (vsc, vbc);
336    VADDSBS  VADDSBS_SB
337  vus __builtin_vec_adds (vbs, vus);
338    VADDUHS  VADDUHS_BU
339  vus __builtin_vec_adds (vus, vbs);
340    VADDUHS  VADDUHS_UB
341  vss __builtin_vec_adds (vbs, vss);
342    VADDSHS  VADDSHS_BS
343  vss __builtin_vec_adds (vss, vbs);
344    VADDSHS  VADDSHS_SB
345  vui __builtin_vec_adds (vbi, vui);
346    VADDUWS  VADDUWS_BU
347  vui __builtin_vec_adds (vui, vbi);
348    VADDUWS  VADDUWS_UB
349  vsi __builtin_vec_adds (vbi, vsi);
350    VADDSWS  VADDSWS_BS
351  vsi __builtin_vec_adds (vsi, vbi);
352    VADDSWS  VADDSWS_SB
353
354[VEC_AND, vec_and, __builtin_vec_and]
355  vsc __builtin_vec_and (vsc, vsc);
356    VAND_V16QI
357  vuc __builtin_vec_and (vuc, vuc);
358    VAND_V16QI_UNS  VAND_VUC
359  vbc __builtin_vec_and (vbc, vbc);
360    VAND_V16QI_UNS  VAND_VBC
361  vss __builtin_vec_and (vss, vss);
362    VAND_V8HI
363  vus __builtin_vec_and (vus, vus);
364    VAND_V8HI_UNS  VAND_VUS
365  vbs __builtin_vec_and (vbs, vbs);
366    VAND_V8HI_UNS  VAND_VBS
367  vsi __builtin_vec_and (vsi, vsi);
368    VAND_V4SI
369  vui __builtin_vec_and (vui, vui);
370    VAND_V4SI_UNS  VAND_VUI
371  vbi __builtin_vec_and (vbi, vbi);
372    VAND_V4SI_UNS  VAND_VBI
373  vsll __builtin_vec_and (vsll, vsll);
374    VAND_V2DI
375  vull __builtin_vec_and (vull, vull);
376    VAND_V2DI_UNS  VAND_VULL
377  vbll __builtin_vec_and (vbll, vbll);
378    VAND_V2DI_UNS  VAND_VBLL
379  vf __builtin_vec_and (vf, vf);
380    VAND_V4SF
381  vd __builtin_vec_and (vd, vd);
382    VAND_V2DF
383; The following variants are deprecated.
384  vsc __builtin_vec_and (vsc, vbc);
385    VAND_V16QI  VAND_VSC_VBC
386  vsc __builtin_vec_and (vbc, vsc);
387    VAND_V16QI  VAND_VBC_VSC
388  vuc __builtin_vec_and (vuc, vbc);
389    VAND_V16QI_UNS  VAND_VUC_VBC
390  vuc __builtin_vec_and (vbc, vuc);
391    VAND_V16QI_UNS  VAND_VBC_VUC
392  vss __builtin_vec_and (vss, vbs);
393    VAND_V8HI  VAND_VSS_VBS
394  vss __builtin_vec_and (vbs, vss);
395    VAND_V8HI  VAND_VBS_VSS
396  vus __builtin_vec_and (vus, vbs);
397    VAND_V8HI_UNS  VAND_VUS_VBS
398  vus __builtin_vec_and (vbs, vus);
399    VAND_V8HI_UNS  VAND_VBS_VUS
400  vsi __builtin_vec_and (vsi, vbi);
401    VAND_V4SI  VAND_VSI_VBI
402  vsi __builtin_vec_and (vbi, vsi);
403    VAND_V4SI  VAND_VBI_VSI
404  vui __builtin_vec_and (vui, vbi);
405    VAND_V4SI_UNS  VAND_VUI_VBI
406  vui __builtin_vec_and (vbi, vui);
407    VAND_V4SI_UNS  VAND_VBI_VUI
408  vsll __builtin_vec_and (vsll, vbll);
409    VAND_V2DI  VAND_VSLL_VBLL
410  vsll __builtin_vec_and (vbll, vsll);
411    VAND_V2DI  VAND_VBLL_VSLL
412  vull __builtin_vec_and (vull, vbll);
413    VAND_V2DI_UNS  VAND_VULL_VBLL
414  vull __builtin_vec_and (vbll, vull);
415    VAND_V2DI_UNS  VAND_VBLL_VULL
416  vf __builtin_vec_and (vf, vbi);
417    VAND_V4SF  VAND_VF_VBI
418  vf __builtin_vec_and (vbi, vf);
419    VAND_V4SF  VAND_VBI_VF
420  vd __builtin_vec_and (vd, vbll);
421    VAND_V2DF  VAND_VD_VBLL
422  vd __builtin_vec_and (vbll, vd);
423    VAND_V2DF  VAND_VBLL_VD
424
425[VEC_ANDC, vec_andc, __builtin_vec_andc]
426  vbc __builtin_vec_andc (vbc, vbc);
427    VANDC_V16QI_UNS VANDC_VBC
428  vsc __builtin_vec_andc (vsc, vsc);
429    VANDC_V16QI
430  vuc __builtin_vec_andc (vuc, vuc);
431    VANDC_V16QI_UNS VANDC_VUC
432  vbs __builtin_vec_andc (vbs, vbs);
433    VANDC_V8HI_UNS VANDC_VBS
434  vss __builtin_vec_andc (vss, vss);
435    VANDC_V8HI
436  vus __builtin_vec_andc (vus, vus);
437    VANDC_V8HI_UNS VANDC_VUS
438  vbi __builtin_vec_andc (vbi, vbi);
439    VANDC_V4SI_UNS VANDC_VBI
440  vsi __builtin_vec_andc (vsi, vsi);
441    VANDC_V4SI
442  vui __builtin_vec_andc (vui, vui);
443    VANDC_V4SI_UNS VANDC_VUI
444  vbll __builtin_vec_andc (vbll, vbll);
445    VANDC_V2DI_UNS VANDC_VBLL
446  vsll __builtin_vec_andc (vsll, vsll);
447    VANDC_V2DI
448  vull __builtin_vec_andc (vull, vull);
449    VANDC_V2DI_UNS VANDC_VULL
450  vf __builtin_vec_andc (vf, vf);
451    VANDC_V4SF
452  vd __builtin_vec_andc (vd, vd);
453    VANDC_V2DF
454; The following variants are deprecated.
455  vsc __builtin_vec_andc (vsc, vbc);
456    VANDC_V16QI  VANDC_VSC_VBC
457  vsc __builtin_vec_andc (vbc, vsc);
458    VANDC_V16QI  VANDC_VBC_VSC
459  vuc __builtin_vec_andc (vuc, vbc);
460    VANDC_V16QI_UNS VANDC_VUC_VBC
461  vuc __builtin_vec_andc (vbc, vuc);
462    VANDC_V16QI_UNS VANDC_VBC_VUC
463  vss __builtin_vec_andc (vss, vbs);
464    VANDC_V8HI  VANDC_VSS_VBS
465  vss __builtin_vec_andc (vbs, vss);
466    VANDC_V8HI  VANDC_VBS_VSS
467  vus __builtin_vec_andc (vus, vbs);
468    VANDC_V8HI_UNS VANDC_VUS_VBS
469  vus __builtin_vec_andc (vbs, vus);
470    VANDC_V8HI_UNS VANDC_VBS_VUS
471  vsi __builtin_vec_andc (vsi, vbi);
472    VANDC_V4SI  VANDC_VSI_VBI
473  vsi __builtin_vec_andc (vbi, vsi);
474    VANDC_V4SI  VANDC_VBI_VSI
475  vui __builtin_vec_andc (vui, vbi);
476    VANDC_V4SI_UNS VANDC_VUI_VBI
477  vui __builtin_vec_andc (vbi, vui);
478    VANDC_V4SI_UNS VANDC_VBI_VUI
479  vsll __builtin_vec_andc (vsll, vbll);
480    VANDC_V2DI  VANDC_VSLL_VBLL
481  vsll __builtin_vec_andc (vbll, vsll);
482    VANDC_V2DI  VANDC_VBLL_VSLL
483  vull __builtin_vec_andc (vull, vbll);
484    VANDC_V2DI_UNS VANDC_VULL_VBLL
485  vull __builtin_vec_andc (vbll, vull);
486    VANDC_V2DI_UNS VANDC_VBLL_VULL
487  vf __builtin_vec_andc (vf, vbi);
488    VANDC_V4SF  VANDC_VF_VBI
489  vf __builtin_vec_andc (vbi, vf);
490    VANDC_V4SF  VANDC_VBI_VF
491  vd __builtin_vec_andc (vd, vbll);
492    VANDC_V2DF  VANDC_VD_VBLL
493  vd __builtin_vec_andc (vbll, vd);
494    VANDC_V2DF  VANDC_VBLL_VD
495
496[VEC_AVG, vec_avg, __builtin_vec_avg]
497  vsc __builtin_vec_avg (vsc, vsc);
498    VAVGSB
499  vuc __builtin_vec_avg (vuc, vuc);
500    VAVGUB
501  vss __builtin_vec_avg (vss, vss);
502    VAVGSH
503  vus __builtin_vec_avg (vus, vus);
504    VAVGUH
505  vsi __builtin_vec_avg (vsi, vsi);
506    VAVGSW
507  vui __builtin_vec_avg (vui, vui);
508    VAVGUW
509
510[VEC_BLENDV, vec_blendv, __builtin_vec_xxblend]
511  vsc __builtin_vec_xxblend (vsc, vsc, vuc);
512    VXXBLEND_V16QI  VXXBLEND_VSC
513  vuc __builtin_vec_xxblend (vuc, vuc, vuc);
514    VXXBLEND_V16QI  VXXBLEND_VUC
515  vss __builtin_vec_xxblend (vss, vss, vus);
516    VXXBLEND_V8HI  VXXBLEND_VSS
517  vus __builtin_vec_xxblend (vus, vus, vus);
518    VXXBLEND_V8HI  VXXBLEND_VUS
519  vsi __builtin_vec_xxblend (vsi, vsi, vui);
520    VXXBLEND_V4SI  VXXBLEND_VSI
521  vui __builtin_vec_xxblend (vui, vui, vui);
522    VXXBLEND_V4SI  VXXBLEND_VUI
523  vsll __builtin_vec_xxblend (vsll, vsll, vull);
524    VXXBLEND_V2DI  VXXBLEND_VSLL
525  vull __builtin_vec_xxblend (vull, vull, vull);
526    VXXBLEND_V2DI  VXXBLEND_VULL
527  vf __builtin_vec_xxblend (vf, vf, vui);
528    VXXBLEND_V4SF
529  vd __builtin_vec_xxblend (vd, vd, vull);
530    VXXBLEND_V2DF
531
532[VEC_BPERM, vec_bperm, __builtin_vec_vbperm_api]
533  vull __builtin_vec_vbperm_api (vull, vuc);
534    VBPERMD  VBPERMD_VULL
535  vull __builtin_vec_vbperm_api (vuq, vuc);
536    VBPERMQ  VBPERMQ_VUQ
537  vuc __builtin_vec_vbperm_api (vuc, vuc);
538    VBPERMQ2  VBPERMQ2_U
539  vsc __builtin_vec_vbperm_api (vsc, vsc);
540    VBPERMQ2  VBPERMQ2_S
541
542[VEC_CEIL, vec_ceil, __builtin_vec_ceil]
543  vf __builtin_vec_ceil (vf);
544    VRFIP
545  vd __builtin_vec_ceil (vd);
546    XVRDPIP
547
548[VEC_CFUGE, vec_cfuge, __builtin_vec_cfuge]
549  vull __builtin_vec_cfuge (vull, vull);
550    VCFUGED
551
552[VEC_CIPHER_BE, vec_cipher_be, __builtin_vec_vcipher_be]
553  vuc __builtin_vec_vcipher_be (vuc, vuc);
554    VCIPHER_BE
555
556[VEC_CIPHERLAST_BE, vec_cipherlast_be, __builtin_vec_vcipherlast_be]
557  vuc __builtin_vec_vcipherlast_be (vuc, vuc);
558    VCIPHERLAST_BE
559
560[VEC_CLRL, vec_clrl, __builtin_vec_clrl]
561  vsc __builtin_vec_clrl (vsc, unsigned int);
562    VCLRLB  VCLRLB_S
563  vuc __builtin_vec_clrl (vuc, unsigned int);
564    VCLRLB  VCLRLB_U
565
566[VEC_CLRR, vec_clrr, __builtin_vec_clrr]
567  vsc __builtin_vec_clrr (vsc, unsigned int);
568    VCLRRB  VCLRRB_S
569  vuc __builtin_vec_clrr (vuc, unsigned int);
570    VCLRRB  VCLRRB_U
571
572; We skip generating a #define because of the C-versus-C++ complexity
573; in altivec.h.  Look there for the template-y details.
574[VEC_CMPAE_P, SKIP, __builtin_vec_vcmpae_p]
575  signed int __builtin_vec_vcmpae_p (vsc, vsc);
576    VCMPAEB_P  VCMPAEB_VSC_P
577  signed int __builtin_vec_vcmpae_p (vuc, vuc);
578    VCMPAEB_P  VCMPAEB_VUC_P
579  signed int __builtin_vec_vcmpae_p (vbc, vbc);
580    VCMPAEB_P  VCMPAEB_VBC_P
581  signed int __builtin_vec_vcmpae_p (vss, vss);
582    VCMPAEH_P  VCMPAEH_VSS_P
583  signed int __builtin_vec_vcmpae_p (vus, vus);
584    VCMPAEH_P  VCMPAEH_VUS_P
585  signed int __builtin_vec_vcmpae_p (vbs, vbs);
586    VCMPAEH_P  VCMPAEH_VBS_P
587  signed int __builtin_vec_vcmpae_p (vp, vp);
588    VCMPAEH_P  VCMPAEH_VP_P
589  signed int __builtin_vec_vcmpae_p (vsi, vsi);
590    VCMPAEW_P  VCMPAEW_VSI_P
591  signed int __builtin_vec_vcmpae_p (vui, vui);
592    VCMPAEW_P  VCMPAEW_VUI_P
593  signed int __builtin_vec_vcmpae_p (vbi, vbi);
594    VCMPAEW_P  VCMPAEW_VBI_P
595  signed int __builtin_vec_vcmpae_p (vsll, vsll);
596    VCMPAED_P  VCMPAED_VSLL_P
597  signed int __builtin_vec_vcmpae_p (vull, vull);
598    VCMPAED_P  VCMPAED_VULL_P
599  signed int __builtin_vec_vcmpae_p (vbll, vbll);
600    VCMPAED_P  VCMPAED_VBLL_P
601  signed int __builtin_vec_vcmpae_p (vsq, vsq);
602    VCMPAET_P  VCMPAET_VSQ_P
603  signed int __builtin_vec_vcmpae_p (vuq, vuq);
604    VCMPAET_P  VCMPAET_VUQ_P
605  signed int __builtin_vec_vcmpae_p (vf, vf);
606    VCMPAEFP_P
607  signed int __builtin_vec_vcmpae_p (vd, vd);
608    VCMPAEDP_P
609; The following variants are deprecated.
610  signed int __builtin_vec_vcmpae_p (signed int, vbc, vuc);
611    VCMPAEB_P  VCMPAEB_P_BU
612  signed int __builtin_vec_vcmpae_p (signed int, vuc, vbc);
613    VCMPAEB_P  VCMPAEB_P_UB
614  signed int __builtin_vec_vcmpae_p (signed int, vbc, vsc);
615    VCMPAEB_P  VCMPAEB_P_BS
616  signed int __builtin_vec_vcmpae_p (signed int, vsc, vbc);
617    VCMPAEB_P  VCMPAEB_P_SB
618  signed int __builtin_vec_vcmpae_p (signed int, vbs, vus);
619    VCMPAEH_P  VCMPAEH_P_BU
620  signed int __builtin_vec_vcmpae_p (signed int, vus, vbs);
621    VCMPAEH_P  VCMPAEH_P_UB
622  signed int __builtin_vec_vcmpae_p (signed int, vbs, vss);
623    VCMPAEH_P  VCMPAEH_P_BS
624  signed int __builtin_vec_vcmpae_p (signed int, vss, vbs);
625    VCMPAEH_P  VCMPAEH_P_SB
626  signed int __builtin_vec_vcmpae_p (signed int, vbi, vui);
627    VCMPAEW_P  VCMPAEW_P_BU
628  signed int __builtin_vec_vcmpae_p (signed int, vui, vbi);
629    VCMPAEW_P  VCMPAEW_P_UB
630  signed int __builtin_vec_vcmpae_p (signed int, vbi, vsi);
631    VCMPAEW_P  VCMPAEW_P_BS
632  signed int __builtin_vec_vcmpae_p (signed int, vsi, vbi);
633    VCMPAEW_P  VCMPAEW_P_SB
634  signed int __builtin_vec_vcmpae_p (signed int, vbll, vull);
635    VCMPAED_P  VCMPAED_P_BU
636  signed int __builtin_vec_vcmpae_p (signed int, vull, vbll);
637    VCMPAED_P  VCMPAED_P_UB
638  signed int __builtin_vec_vcmpae_p (signed int, vbll, vsll);
639    VCMPAED_P  VCMPAED_P_BS
640  signed int __builtin_vec_vcmpae_p (signed int, vbll, vsll);
641    VCMPAED_P  VCMPAED_P_SB
642
643[VEC_CMPB, vec_cmpb, __builtin_vec_cmpb]
644  vsi __builtin_vec_cmpb (vf, vf);
645    VCMPBFP
646
647[VEC_CMPEQ, vec_cmpeq, __builtin_vec_cmpeq]
648  vbc __builtin_vec_cmpeq (vsc, vsc);
649    VCMPEQUB  VCMPEQUB_VSC
650  vbc __builtin_vec_cmpeq (vuc, vuc);
651    VCMPEQUB  VCMPEQUB_VUC
652  vbc __builtin_vec_cmpeq (vbc, vbc);
653    VCMPEQUB  VCMPEQUB_VBC
654  vbs __builtin_vec_cmpeq (vss, vss);
655    VCMPEQUH  VCMPEQUH_VSS
656  vbs __builtin_vec_cmpeq (vus, vus);
657    VCMPEQUH  VCMPEQUH_VUS
658  vbs __builtin_vec_cmpeq (vbs, vbs);
659    VCMPEQUH  VCMPEQUH_VBS
660  vbi __builtin_vec_cmpeq (vsi, vsi);
661    VCMPEQUW  VCMPEQUW_VSI
662  vbi __builtin_vec_cmpeq (vui, vui);
663    VCMPEQUW  VCMPEQUW_VUI
664  vbi __builtin_vec_cmpeq (vbi, vbi);
665    VCMPEQUW  VCMPEQUW_VBI
666  vbll __builtin_vec_cmpeq (vsll, vsll);
667    VCMPEQUD  VCMPEQUD_VSLL
668  vbll __builtin_vec_cmpeq (vull, vull);
669    VCMPEQUD  VCMPEQUD_VULL
670  vbll __builtin_vec_cmpeq (vbll, vbll);
671    VCMPEQUD  VCMPEQUD_VBLL
672  vbq __builtin_vec_cmpeq (vsq, vsq);
673    VCMPEQUT  VCMPEQUT_VSQ
674  vbq __builtin_vec_cmpeq (vuq, vuq);
675    VCMPEQUT  VCMPEQUT_VUQ
676  vbi __builtin_vec_cmpeq (vf, vf);
677    VCMPEQFP
678  vbll __builtin_vec_cmpeq (vd, vd);
679    XVCMPEQDP
680
681; We skip generating a #define because of the C-versus-C++ complexity
682; in altivec.h.  Look there for the template-y details.
683[VEC_CMPEQ_P, SKIP, __builtin_vec_vcmpeq_p]
684  signed int __builtin_vec_vcmpeq_p (signed int, vuc, vuc);
685    VCMPEQUB_P  VCMPEQUB_PU
686  signed int __builtin_vec_vcmpeq_p (signed int, vsc, vsc);
687    VCMPEQUB_P  VCMPEQUB_PS
688  signed int __builtin_vec_vcmpeq_p (signed int, vbc, vbc);
689    VCMPEQUB_P  VCMPEQUB_PB
690  signed int __builtin_vec_vcmpeq_p (signed int, vus, vus);
691    VCMPEQUH_P  VCMPEQUH_PU
692  signed int __builtin_vec_vcmpeq_p (signed int, vss, vss);
693    VCMPEQUH_P  VCMPEQUH_PS
694  signed int __builtin_vec_vcmpeq_p (signed int, vbs, vbs);
695    VCMPEQUH_P  VCMPEQUH_PB
696  signed int __builtin_vec_vcmpeq_p (signed int, vp, vp);
697    VCMPEQUH_P  VCMPEQUH_PP
698  signed int __builtin_vec_vcmpeq_p (signed int, vui, vui);
699    VCMPEQUW_P  VCMPEQUW_PU
700  signed int __builtin_vec_vcmpeq_p (signed int, vsi, vsi);
701    VCMPEQUW_P  VCMPEQUW_PS
702  signed int __builtin_vec_vcmpeq_p (signed int, vbi, vbi);
703    VCMPEQUW_P  VCMPEQUW_PB
704  signed int __builtin_vec_vcmpeq_p (signed int, vull, vull);
705    VCMPEQUD_P  VCMPEQUD_PU
706  signed int __builtin_vec_vcmpeq_p (signed int, vsll, vsll);
707    VCMPEQUD_P  VCMPEQUD_PS
708  signed int __builtin_vec_vcmpeq_p (signed int, vbll, vbll);
709    VCMPEQUD_P  VCMPEQUD_PB
710  signed int __builtin_vec_vcmpeq_p (signed int, vsq, vsq);
711    VCMPEQUT_P  VCMPEQUT_P_VSQ
712  signed int __builtin_vec_vcmpeq_p (signed int, vuq, vuq);
713    VCMPEQUT_P  VCMPEQUT_P_VUQ
714  signed int __builtin_vec_vcmpeq_p (signed int, vf, vf);
715    VCMPEQFP_P
716  signed int __builtin_vec_vcmpeq_p (signed int, vd, vd);
717    XVCMPEQDP_P
718; The following variants are deprecated.
719  signed int __builtin_vec_vcmpeq_p (signed int, vbc, vuc);
720    VCMPEQUB_P  VCMPEQUB_P_BU
721  signed int __builtin_vec_vcmpeq_p (signed int, vuc, vbc);
722    VCMPEQUB_P  VCMPEQUB_P_UB
723  signed int __builtin_vec_vcmpeq_p (signed int, vbc, vsc);
724    VCMPEQUB_P  VCMPEQUB_P_BS
725  signed int __builtin_vec_vcmpeq_p (signed int, vsc, vbc);
726    VCMPEQUB_P  VCMPEQUB_P_SB
727  signed int __builtin_vec_vcmpeq_p (signed int, vbs, vus);
728    VCMPEQUH_P  VCMPEQUH_P_BU
729  signed int __builtin_vec_vcmpeq_p (signed int, vus, vbs);
730    VCMPEQUH_P  VCMPEQUH_P_UB
731  signed int __builtin_vec_vcmpeq_p (signed int, vbs, vss);
732    VCMPEQUH_P  VCMPEQUH_P_BS
733  signed int __builtin_vec_vcmpeq_p (signed int, vss, vbs);
734    VCMPEQUH_P  VCMPEQUH_P_SB
735  signed int __builtin_vec_vcmpeq_p (signed int, vbi, vui);
736    VCMPEQUW_P  VCMPEQUW_P_BU
737  signed int __builtin_vec_vcmpeq_p (signed int, vui, vbi);
738    VCMPEQUW_P  VCMPEQUW_P_UB
739  signed int __builtin_vec_vcmpeq_p (signed int, vbi, vsi);
740    VCMPEQUW_P  VCMPEQUW_P_BS
741  signed int __builtin_vec_vcmpeq_p (signed int, vsi, vbi);
742    VCMPEQUW_P  VCMPEQUW_P_SB
743  signed int __builtin_vec_vcmpeq_p (signed int, vbll, vull);
744    VCMPEQUD_P  VCMPEQUD_P_BU
745  signed int __builtin_vec_vcmpeq_p (signed int, vull, vbll);
746    VCMPEQUD_P  VCMPEQUD_P_UB
747  signed int __builtin_vec_vcmpeq_p (signed int, vbll, vsll);
748    VCMPEQUD_P  VCMPEQUD_P_BS
749  signed int __builtin_vec_vcmpeq_p (signed int, vbll, vsll);
750    VCMPEQUD_P  VCMPEQUD_P_SB
751
752[VEC_CMPEQB, SKIP, __builtin_byte_in_set]
753  signed int __builtin_byte_in_set (unsigned int,  unsigned long long);
754    CMPEQB
755
756[VEC_CMPGE, vec_cmpge, __builtin_vec_cmpge]
757  vbc __builtin_vec_cmpge (vsc, vsc);
758    CMPGE_16QI  CMPGE_16QI_VSC
759  vbc __builtin_vec_cmpge (vuc, vuc);
760    CMPGE_U16QI  CMPGE_16QI_VUC
761  vbs __builtin_vec_cmpge (vss, vss);
762    CMPGE_8HI  CMPGE_8HI_VSS
763  vbs __builtin_vec_cmpge (vus, vus);
764    CMPGE_U8HI  CMPGE_8HI_VUS
765  vbi __builtin_vec_cmpge (vsi, vsi);
766    CMPGE_4SI  CMPGE_4SI_VSI
767  vbi __builtin_vec_cmpge (vui, vui);
768    CMPGE_U4SI  CMPGE_4SI_VUI
769  vbll __builtin_vec_cmpge (vsll, vsll);
770    CMPGE_2DI  CMPGE_2DI_VSLL
771  vbll __builtin_vec_cmpge (vull, vull);
772    CMPGE_U2DI  CMPGE_2DI_VULL
773  vbq __builtin_vec_cmpge (vsq, vsq);
774    CMPGE_1TI
775  vbq __builtin_vec_cmpge (vuq, vuq);
776    CMPGE_U1TI
777  vbi __builtin_vec_cmpge (vf, vf);
778    VCMPGEFP
779  vbll __builtin_vec_cmpge (vd, vd);
780    XVCMPGEDP
781
782; We skip generating a #define because of the C-versus-C++ complexity
783; in altivec.h.  Look there for the template-y details.
784; See altivec_build_resolved_builtin for how we deal with VEC_CMPGE_P.
785; It's quite strange and horrible!
786[VEC_CMPGE_P, SKIP, __builtin_vec_vcmpge_p]
787  signed int __builtin_vec_vcmpge_p (signed int, vuc, vuc);
788    VCMPGTUB_P  VCMPGTUB_PR
789  signed int __builtin_vec_vcmpge_p (signed int, vsc, vsc);
790    VCMPGTSB_P  VCMPGTSB_PR
791  signed int __builtin_vec_vcmpge_p (signed int, vus, vus);
792    VCMPGTUH_P  VCMPGTUH_PR
793  signed int __builtin_vec_vcmpge_p (signed int, vss, vss);
794    VCMPGTSH_P  VCMPGTSH_PR
795  signed int __builtin_vec_vcmpge_p (signed int, vui, vui);
796    VCMPGTUW_P  VCMPGTUW_PR
797  signed int __builtin_vec_vcmpge_p (signed int, vsi, vsi);
798    VCMPGTSW_P  VCMPGTSW_PR
799  signed int __builtin_vec_vcmpge_p (signed int, vull, vull);
800    VCMPGTUD_P  VCMPGTUD_PR
801  signed int __builtin_vec_vcmpge_p (signed int, vsll, vsll);
802    VCMPGTSD_P  VCMPGTSD_PR
803  signed int __builtin_vec_vcmpge_p (signed int, vuq, vuq);
804    VCMPGTUT_P  VCMPGTUT_PR
805  signed int __builtin_vec_vcmpge_p (signed int, vsq, vsq);
806    VCMPGTST_P  VCMPGTST_PR
807  signed int __builtin_vec_vcmpge_p (signed int, vf, vf);
808    VCMPGEFP_P
809  signed int __builtin_vec_vcmpge_p (signed int, vd, vd);
810    XVCMPGEDP_P
811; The following variants are deprecated.
812  signed int __builtin_vec_vcmpge_p (signed int, vbc, vuc);
813    VCMPGTUB_P  VCMPGTUB_PR_BU
814  signed int __builtin_vec_vcmpge_p (signed int, vuc, vbc);
815    VCMPGTUB_P  VCMPGTUB_PR_UB
816  signed int __builtin_vec_vcmpge_p (signed int, vbc, vsc);
817    VCMPGTSB_P  VCMPGTSB_PR_BS
818  signed int __builtin_vec_vcmpge_p (signed int, vsc, vbc);
819    VCMPGTSB_P  VCMPGTSB_PR_SB
820  signed int __builtin_vec_vcmpge_p (signed int, vbs, vus);
821    VCMPGTUH_P  VCMPGTUH_PR_BU
822  signed int __builtin_vec_vcmpge_p (signed int, vus, vbs);
823    VCMPGTUH_P  VCMPGTUH_PR_UB
824  signed int __builtin_vec_vcmpge_p (signed int, vbs, vss);
825    VCMPGTSH_P  VCMPGTSH_PR_BS
826  signed int __builtin_vec_vcmpge_p (signed int, vss, vbs);
827    VCMPGTSH_P  VCMPGTSH_PR_SB
828  signed int __builtin_vec_vcmpge_p (signed int, vbi, vui);
829    VCMPGTUW_P  VCMPGTUW_PR_BU
830  signed int __builtin_vec_vcmpge_p (signed int, vui, vbi);
831    VCMPGTUW_P  VCMPGTUW_PR_UB
832  signed int __builtin_vec_vcmpge_p (signed int, vbi, vsi);
833    VCMPGTSW_P  VCMPGTSW_PR_BS
834  signed int __builtin_vec_vcmpge_p (signed int, vsi, vbi);
835    VCMPGTSW_P  VCMPGTSW_PR_SB
836  signed int __builtin_vec_vcmpge_p (signed int, vbll, vull);
837    VCMPGTUD_P  VCMPGTUD_PR_BU
838  signed int __builtin_vec_vcmpge_p (signed int, vull, vbll);
839    VCMPGTUD_P  VCMPGTUD_PR_UB
840  signed int __builtin_vec_vcmpge_p (signed int, vbll, vsll);
841    VCMPGTSD_P  VCMPGTSD_PR_BS
842  signed int __builtin_vec_vcmpge_p (signed int, vsll, vbll);
843    VCMPGTSD_P  VCMPGTSD_PR_SB
844
845[VEC_CMPGT, vec_cmpgt, __builtin_vec_cmpgt]
846  vbc __builtin_vec_cmpgt (vsc, vsc);
847    VCMPGTSB
848  vbc __builtin_vec_cmpgt (vuc, vuc);
849    VCMPGTUB
850  vbs __builtin_vec_cmpgt (vss, vss);
851    VCMPGTSH
852  vbs __builtin_vec_cmpgt (vus, vus);
853    VCMPGTUH
854  vbi __builtin_vec_cmpgt (vsi, vsi);
855    VCMPGTSW
856  vbi __builtin_vec_cmpgt (vui, vui);
857    VCMPGTUW
858  vbll __builtin_vec_cmpgt (vsll, vsll);
859    VCMPGTSD
860  vbll __builtin_vec_cmpgt (vull, vull);
861    VCMPGTUD
862  vbq __builtin_vec_cmpgt (vsq, vsq);
863    VCMPGTST
864  vbq __builtin_vec_cmpgt (vuq, vuq);
865    VCMPGTUT
866  vbi __builtin_vec_cmpgt (vf, vf);
867    VCMPGTFP
868  vbll __builtin_vec_cmpgt (vd, vd);
869    XVCMPGTDP
870
871; We skip generating a #define because of the C-versus-C++ complexity
872; in altivec.h.  Look there for the template-y details.
873[VEC_CMPGT_P, SKIP, __builtin_vec_vcmpgt_p]
874  signed int __builtin_vec_vcmpgt_p (signed int, vuc, vuc);
875    VCMPGTUB_P
876  signed int __builtin_vec_vcmpgt_p (signed int, vsc, vsc);
877    VCMPGTSB_P
878  signed int __builtin_vec_vcmpgt_p (signed int, vus, vus);
879    VCMPGTUH_P
880  signed int __builtin_vec_vcmpgt_p (signed int, vss, vss);
881    VCMPGTSH_P
882  signed int __builtin_vec_vcmpgt_p (signed int, vui, vui);
883    VCMPGTUW_P
884  signed int __builtin_vec_vcmpgt_p (signed int, vsi, vsi);
885    VCMPGTSW_P
886  signed int __builtin_vec_vcmpgt_p (signed int, vull, vull);
887    VCMPGTUD_P
888  signed int __builtin_vec_vcmpgt_p (signed int, vsll, vsll);
889    VCMPGTSD_P
890  signed int __builtin_vec_vcmpgt_p (signed int, vuq, vuq);
891    VCMPGTUT_P
892  signed int __builtin_vec_vcmpgt_p (signed int, vsq, vsq);
893    VCMPGTST_P
894  signed int __builtin_vec_vcmpgt_p (signed int, vf, vf);
895    VCMPGTFP_P
896  signed int __builtin_vec_vcmpgt_p (signed int, vd, vd);
897    XVCMPGTDP_P
898; The following variants are deprecated.
899  signed int __builtin_vec_vcmpgt_p (signed int, vbc, vuc);
900    VCMPGTUB_P  VCMPGTUB_P_BU
901  signed int __builtin_vec_vcmpgt_p (signed int, vuc, vbc);
902    VCMPGTUB_P  VCMPGTUB_P_UB
903  signed int __builtin_vec_vcmpgt_p (signed int, vbc, vsc);
904    VCMPGTSB_P  VCMPGTSB_P_BS
905  signed int __builtin_vec_vcmpgt_p (signed int, vsc, vbc);
906    VCMPGTSB_P  VCMPGTSB_P_SB
907  signed int __builtin_vec_vcmpgt_p (signed int, vbs, vus);
908    VCMPGTUH_P  VCMPGTUH_P_BU
909  signed int __builtin_vec_vcmpgt_p (signed int, vus, vbs);
910    VCMPGTUH_P  VCMPGTUH_P_UB
911  signed int __builtin_vec_vcmpgt_p (signed int, vbs, vss);
912    VCMPGTSH_P  VCMPGTSH_P_BS
913  signed int __builtin_vec_vcmpgt_p (signed int, vss, vbs);
914    VCMPGTSH_P  VCMPGTSH_P_SB
915  signed int __builtin_vec_vcmpgt_p (signed int, vbi, vui);
916    VCMPGTUW_P  VCMPGTUW_P_BU
917  signed int __builtin_vec_vcmpgt_p (signed int, vui, vbi);
918    VCMPGTUW_P  VCMPGTUW_P_UB
919  signed int __builtin_vec_vcmpgt_p (signed int, vbi, vsi);
920    VCMPGTSW_P  VCMPGTSW_P_BS
921  signed int __builtin_vec_vcmpgt_p (signed int, vsi, vbi);
922    VCMPGTSW_P  VCMPGTSW_P_SB
923  signed int __builtin_vec_vcmpgt_p (signed int, vbll, vull);
924    VCMPGTUD_P  VCMPGTUD_P_BU
925  signed int __builtin_vec_vcmpgt_p (signed int, vull, vbll);
926    VCMPGTUD_P  VCMPGTUD_P_UB
927  signed int __builtin_vec_vcmpgt_p (signed int, vbll, vsll);
928    VCMPGTSD_P  VCMPGTSD_P_BS
929  signed int __builtin_vec_vcmpgt_p (signed int, vsll, vbll);
930    VCMPGTSD_P  VCMPGTSD_P_SB
931
932; Note that there is no entry for VEC_CMPLE.  VEC_CMPLE is implemented
933; using VEC_CMPGE with reversed arguments in altivec.h.
934
935; Note that there is no entry for VEC_CMPLT.  VEC_CMPLT is implemented
936; using VEC_CMPGT with reversed arguments in altivec.h.
937
938[VEC_CMPNE, vec_cmpne, __builtin_vec_cmpne]
939  vbc __builtin_vec_cmpne (vbc, vbc);
940    VCMPNEB  VCMPNEB_VBC
941  vbc __builtin_vec_cmpne (vsc, vsc);
942    VCMPNEB  VCMPNEB_VSC
943  vbc __builtin_vec_cmpne (vuc, vuc);
944    VCMPNEB  VCMPNEB_VUC
945  vbs __builtin_vec_cmpne (vbs, vbs);
946    VCMPNEH  VCMPNEH_VBS
947  vbs __builtin_vec_cmpne (vss, vss);
948    VCMPNEH  VCMPNEH_VSS
949  vbs __builtin_vec_cmpne (vus, vus);
950    VCMPNEH  VCMPNEH_VUS
951  vbi __builtin_vec_cmpne (vbi, vbi);
952    VCMPNEW  VCMPNEW_VBI
953  vbi __builtin_vec_cmpne (vsi, vsi);
954    VCMPNEW  VCMPNEW_VSI
955  vbi __builtin_vec_cmpne (vui, vui);
956    VCMPNEW  VCMPNEW_VUI
957  vbq __builtin_vec_cmpne (vsq, vsq);
958    VCMPNET  VCMPNET_VSQ
959  vbq __builtin_vec_cmpne (vuq, vuq);
960    VCMPNET  VCMPNET_VUQ
961
962; We skip generating a #define because of the C-versus-C++ complexity
963; in altivec.h.  Look there for the template-y details.
964[VEC_CMPNE_P, SKIP, __builtin_vec_vcmpne_p]
965  signed int __builtin_vec_vcmpne_p (vsc, vsc);
966    VCMPNEB_P  VCMPNEB_VSC_P
967  signed int __builtin_vec_vcmpne_p (vuc, vuc);
968    VCMPNEB_P  VCMPNEB_VUC_P
969  signed int __builtin_vec_vcmpne_p (vbc, vbc);
970    VCMPNEB_P  VCMPNEB_VBC_P
971  signed int __builtin_vec_vcmpne_p (vss, vss);
972    VCMPNEH_P  VCMPNEH_VSS_P
973  signed int __builtin_vec_vcmpne_p (vus, vus);
974    VCMPNEH_P  VCMPNEH_VUS_P
975  signed int __builtin_vec_vcmpne_p (vbs, vbs);
976    VCMPNEH_P  VCMPNEH_VBS_P
977  signed int __builtin_vec_vcmpne_p (vp, vp);
978    VCMPNEH_P  VCMPNEH_VP_P
979  signed int __builtin_vec_vcmpne_p (vsi, vsi);
980    VCMPNEW_P  VCMPNEW_VSI_P
981  signed int __builtin_vec_vcmpne_p (vui, vui);
982    VCMPNEW_P  VCMPNEW_VUI_P
983  signed int __builtin_vec_vcmpne_p (vbi, vbi);
984    VCMPNEW_P  VCMPNEW_VBI_P
985  signed int __builtin_vec_vcmpne_p (vsll, vsll);
986    VCMPNED_P  VCMPNED_VSLL_P
987  signed int __builtin_vec_vcmpne_p (vull, vull);
988    VCMPNED_P  VCMPNED_VULL_P
989  signed int __builtin_vec_vcmpne_p (vbll, vbll);
990    VCMPNED_P  VCMPNED_VBLL_P
991  signed int __builtin_vec_vcmpne_p (vsq, vsq);
992    VCMPNET_P  VCMPNET_VSQ_P
993  signed int __builtin_vec_vcmpne_p (vuq, vuq);
994    VCMPNET_P  VCMPNET_VUQ_P
995  signed int __builtin_vec_vcmpne_p (vf, vf);
996    VCMPNEFP_P
997  signed int __builtin_vec_vcmpne_p (vd, vd);
998    VCMPNEDP_P
999; The following variants are deprecated.
1000  signed int __builtin_vec_vcmpne_p (signed int, vbc, vuc);
1001    VCMPNEB_P  VCMPNEB_P_BU
1002  signed int __builtin_vec_vcmpne_p (signed int, vuc, vbc);
1003    VCMPNEB_P  VCMPNEB_P_UB
1004  signed int __builtin_vec_vcmpne_p (signed int, vbc, vsc);
1005    VCMPNEB_P  VCMPNEB_P_BS
1006  signed int __builtin_vec_vcmpne_p (signed int, vsc, vbc);
1007    VCMPNEB_P  VCMPNEB_P_SB
1008  signed int __builtin_vec_vcmpne_p (signed int, vbs, vus);
1009    VCMPNEH_P  VCMPNEH_P_BU
1010  signed int __builtin_vec_vcmpne_p (signed int, vus, vbs);
1011    VCMPNEH_P  VCMPNEH_P_UB
1012  signed int __builtin_vec_vcmpne_p (signed int, vbs, vss);
1013    VCMPNEH_P  VCMPNEH_P_BS
1014  signed int __builtin_vec_vcmpne_p (signed int, vss, vbs);
1015    VCMPNEH_P  VCMPNEH_P_SB
1016  signed int __builtin_vec_vcmpne_p (signed int, vbi, vui);
1017    VCMPNEW_P  VCMPNEW_P_BU
1018  signed int __builtin_vec_vcmpne_p (signed int, vui, vbi);
1019    VCMPNEW_P  VCMPNEW_P_UB
1020  signed int __builtin_vec_vcmpne_p (signed int, vbi, vsi);
1021    VCMPNEW_P  VCMPNEW_P_BS
1022  signed int __builtin_vec_vcmpne_p (signed int, vsi, vbi);
1023    VCMPNEW_P  VCMPNEW_P_SB
1024  signed int __builtin_vec_vcmpne_p (signed int, vbll, vull);
1025    VCMPNED_P  VCMPNED_P_BU
1026  signed int __builtin_vec_vcmpne_p (signed int, vull, vbll);
1027    VCMPNED_P  VCMPNED_P_UB
1028  signed int __builtin_vec_vcmpne_p (signed int, vbll, vsll);
1029    VCMPNED_P  VCMPNED_P_BS
1030  signed int __builtin_vec_vcmpne_p (signed int, vbll, vsll);
1031    VCMPNED_P  VCMPNED_P_SB
1032
1033[VEC_CMPNEZ, vec_cmpnez, __builtin_vec_vcmpnez]
1034  vbc __builtin_vec_cmpnez (vsc, vsc);
1035    CMPNEZB  CMPNEZB_S
1036  vbc __builtin_vec_cmpnez (vuc, vuc);
1037    CMPNEZB  CMPNEZB_U
1038  vbs __builtin_vec_cmpnez (vss, vss);
1039    CMPNEZH  CMPNEZH_S
1040  vbs __builtin_vec_cmpnez (vus, vus);
1041    CMPNEZH  CMPNEZH_U
1042  vbi __builtin_vec_cmpnez (vsi, vsi);
1043    CMPNEZW  CMPNEZW_S
1044  vbi __builtin_vec_cmpnez (vui, vui);
1045    CMPNEZW  CMPNEZW_U
1046
1047; We skip generating a #define because of the C-versus-C++ complexity
1048; in altivec.h.  Look there for the template-y details.
1049[VEC_CMPNEZ_P, SKIP, __builtin_vec_vcmpnez_p]
1050  signed int __builtin_vec_vcmpnez_p (signed int, vsc, vsc);
1051    VCMPNEZB_P  VCMPNEZB_VSC_P
1052  signed int __builtin_vec_vcmpnez_p (signed int, vuc, vuc);
1053    VCMPNEZB_P  VCMPNEZB_VUC_P
1054  signed int __builtin_vec_vcmpnez_p (signed int, vss, vss);
1055    VCMPNEZH_P  VCMPNEZH_VSS_P
1056  signed int __builtin_vec_vcmpnez_p (signed int, vus, vus);
1057    VCMPNEZH_P  VCMPNEZH_VUS_P
1058  signed int __builtin_vec_vcmpnez_p (signed int, vsi, vsi);
1059    VCMPNEZW_P  VCMPNEZW_VSI_P
1060  signed int __builtin_vec_vcmpnez_p (signed int, vui, vui);
1061    VCMPNEZW_P  VCMPNEZW_VUI_P
1062
1063[VEC_CMPRB, SKIP, __builtin_byte_in_range]
1064  signed int __builtin_byte_in_range (unsigned int, unsigned int);
1065    CMPRB
1066
1067[VEC_CMPRB2, SKIP, __builtin_byte_in_either_range]
1068  signed int __builtin_byte_in_range (unsigned int, unsigned int);
1069    CMPRB2
1070
1071[VEC_CNTLZ, vec_cntlz, __builtin_vec_vclz]
1072  vsc __builtin_vec_vclz (vsc);
1073    VCLZB  VCLZB_S
1074  vuc __builtin_vec_vclz (vuc);
1075    VCLZB  VCLZB_U
1076  vss __builtin_vec_vclz (vss);
1077    VCLZH  VCLZH_S
1078  vus __builtin_vec_vclz (vus);
1079    VCLZH  VCLZH_U
1080  vsi __builtin_vec_vclz (vsi);
1081    VCLZW  VCLZW_S
1082  vui __builtin_vec_vclz (vui);
1083    VCLZW  VCLZW_U
1084  vsll __builtin_vec_vclz (vsll);
1085    VCLZD  VCLZD_S
1086  vull __builtin_vec_vclz (vull);
1087    VCLZD  VCLZD_U
1088
1089[VEC_CNTLZM, vec_cntlzm, __builtin_vec_vclzdm]
1090  vull __builtin_vec_vclzdm (vull, vull);
1091    VCLZDM
1092
1093[VEC_CNTTZM, vec_cnttzm, __builtin_vec_vctzdm]
1094  vull __builtin_vec_vctzdm (vull, vull);
1095    VCTZDM
1096
1097[VEC_CNTLZ_LSBB, vec_cntlz_lsbb, __builtin_vec_vclzlsbb]
1098  signed int __builtin_vec_vclzlsbb (vsc);
1099    VCLZLSBB_V16QI  VCLZLSBB_VSC
1100  signed int __builtin_vec_vclzlsbb (vuc);
1101    VCLZLSBB_V16QI  VCLZLSBB_VUC
1102  signed int __builtin_vec_vclzlsbb (vss);
1103    VCLZLSBB_V8HI  VCLZLSBB_VSS
1104  signed int __builtin_vec_vclzlsbb (vus);
1105    VCLZLSBB_V8HI  VCLZLSBB_VUS
1106  signed int __builtin_vec_vclzlsbb (vsi);
1107    VCLZLSBB_V4SI  VCLZLSBB_VSI
1108  signed int __builtin_vec_vclzlsbb (vui);
1109    VCLZLSBB_V4SI  VCLZLSBB_VUI
1110
1111[VEC_CNTM, vec_cntm, __builtin_vec_cntm]
1112  unsigned long long __builtin_vec_cntm (vuc, const int);
1113    VCNTMBB
1114  unsigned long long __builtin_vec_cntm (vus, const int);
1115    VCNTMBH
1116  unsigned long long __builtin_vec_cntm (vui, const int);
1117    VCNTMBW
1118  unsigned long long __builtin_vec_cntm (vull, const int);
1119    VCNTMBD
1120
1121[VEC_CNTTZ, vec_cnttz, __builtin_vec_vctz]
1122  vsc __builtin_vec_vctz (vsc);
1123    VCTZB  VCTZB_S
1124  vuc __builtin_vec_vctz (vuc);
1125    VCTZB  VCTZB_U
1126  vss __builtin_vec_vctz (vss);
1127    VCTZH  VCTZH_S
1128  vus __builtin_vec_vctz (vus);
1129    VCTZH  VCTZH_U
1130  vsi __builtin_vec_vctz (vsi);
1131    VCTZW  VCTZW_S
1132  vui __builtin_vec_vctz (vui);
1133    VCTZW  VCTZW_U
1134  vsll __builtin_vec_vctz (vsll);
1135    VCTZD  VCTZD_S
1136  vull __builtin_vec_vctz (vull);
1137    VCTZD  VCTZD_U
1138
1139[VEC_CNTTZ_LSBB, vec_cnttz_lsbb, __builtin_vec_vctzlsbb]
1140  signed int __builtin_vec_vctzlsbb (vsc);
1141    VCTZLSBB_V16QI  VCTZLSBB_VSC
1142  signed int __builtin_vec_vctzlsbb (vuc);
1143    VCTZLSBB_V16QI  VCTZLSBB_VUC
1144  signed int __builtin_vec_vctzlsbb (vss);
1145    VCTZLSBB_V8HI  VCTZLSBB_VSS
1146  signed int __builtin_vec_vctzlsbb (vus);
1147    VCTZLSBB_V8HI  VCTZLSBB_VUS
1148  signed int __builtin_vec_vctzlsbb (vsi);
1149    VCTZLSBB_V4SI  VCTZLSBB_VSI
1150  signed int __builtin_vec_vctzlsbb (vui);
1151    VCTZLSBB_V4SI  VCTZLSBB_VUI
1152
1153[VEC_CONVERT_4F32_8I16, SKIP, __builtin_vec_convert_4f32_8i16]
1154  vus __builtin_vec_convert_4f32_8i16 (vf, vf);
1155    CONVERT_4F32_8I16
1156
1157[VEC_CONVERT_4F32_8F16, vec_pack_to_short_fp32, __builtin_vec_convert_4f32_8f16]
1158  vus __builtin_vec_convert_4f32_8f16 (vf, vf);
1159    CONVERT_4F32_8F16
1160
1161[VEC_COPYSIGN, SKIP, __builtin_vec_copysign]
1162  vf __builtin_vec_copysign (vf, vf);
1163    COPYSIGN_V4SF
1164  vd __builtin_vec_copysign (vd, vd);
1165    CPSGNDP
1166
1167[VEC_CTF, vec_ctf, __builtin_vec_ctf]
1168  vf __builtin_vec_ctf (vsi, const int);
1169    VCFSX
1170  vf __builtin_vec_ctf (vui, const int);
1171    VCFUX
1172  vd __builtin_vec_ctf (vsll, const int);
1173    XVCVSXDDP_SCALE
1174  vd __builtin_vec_ctf (vull, const int);
1175    XVCVUXDDP_SCALE
1176
1177[VEC_CTS, vec_cts, __builtin_vec_cts]
1178  vsi __builtin_vec_cts (vf, const int);
1179    VCTSXS
1180  vsll __builtin_vec_cts (vd, const int);
1181    XVCVDPSXDS_SCALE
1182
1183[VEC_CTU, vec_ctu, __builtin_vec_ctu]
1184  vui __builtin_vec_ctu (vf, const int);
1185    VCTUXS
1186  vull __builtin_vec_ctu (vd, const int);
1187    XVCVDPUXDS_SCALE
1188
1189[VEC_DIV, vec_div, __builtin_vec_div]
1190  vsi __builtin_vec_div (vsi, vsi);
1191    VDIVSW
1192  vui __builtin_vec_div (vui, vui);
1193    VDIVUW
1194  vsll __builtin_vec_div (vsll, vsll);
1195    DIV_V2DI
1196  vull __builtin_vec_div (vull, vull);
1197    UDIV_V2DI
1198  vsq __builtin_vec_div (vsq, vsq);
1199    DIV_V1TI
1200  vuq __builtin_vec_div (vuq, vuq);
1201    UDIV_V1TI
1202  vf __builtin_vec_div (vf, vf);
1203    XVDIVSP
1204  vd __builtin_vec_div (vd, vd);
1205    XVDIVDP
1206
1207[VEC_DIVE, vec_dive, __builtin_vec_dive]
1208  vsi __builtin_vec_dive (vsi, vsi);
1209    VDIVESW
1210  vui __builtin_vec_dive (vui, vui);
1211    VDIVEUW
1212  vsll __builtin_vec_dive (vsll, vsll);
1213    VDIVESD
1214  vull __builtin_vec_dive (vull, vull);
1215    VDIVEUD
1216  vsq __builtin_vec_dive (vsq, vsq);
1217    DIVES_V1TI
1218  vuq __builtin_vec_dive (vuq, vuq);
1219    DIVEU_V1TI
1220
1221[VEC_DOUBLE, vec_double, __builtin_vec_double]
1222  vd __builtin_vec_double (vsll);
1223    XVCVSXDDP
1224  vd __builtin_vec_double (vull);
1225    XVCVUXDDP
1226
1227[VEC_DOUBLEE, vec_doublee, __builtin_vec_doublee]
1228  vd __builtin_vec_doublee (vsi);
1229    DOUBLEE_V4SI
1230  vd __builtin_vec_doublee (vui);
1231    UNS_DOUBLEE_V4SI
1232  vd __builtin_vec_doublee (vf);
1233    DOUBLEE_V4SF
1234
1235[VEC_DOUBLEH, vec_doubleh, __builtin_vec_doubleh]
1236  vd __builtin_vec_doubleh (vsi);
1237    DOUBLEH_V4SI
1238  vd __builtin_vec_doubleh (vui);
1239    UNS_DOUBLEH_V4SI
1240  vd __builtin_vec_doubleh (vf);
1241    DOUBLEH_V4SF
1242
1243[VEC_DOUBLEL, vec_doublel, __builtin_vec_doublel]
1244  vd __builtin_vec_doublel (vsi);
1245    DOUBLEL_V4SI
1246  vd __builtin_vec_doublel (vui);
1247    UNS_DOUBLEL_V4SI
1248  vd __builtin_vec_doublel (vf);
1249    DOUBLEL_V4SF
1250
1251[VEC_DOUBLEO, vec_doubleo, __builtin_vec_doubleo]
1252  vd __builtin_vec_doubleo (vsi);
1253    DOUBLEO_V4SI
1254  vd __builtin_vec_doubleo (vui);
1255    UNS_DOUBLEO_V4SI
1256  vd __builtin_vec_doubleo (vf);
1257    DOUBLEO_V4SF
1258
1259[VEC_DST, vec_dst, __builtin_vec_dst]
1260  void __builtin_vec_dst (unsigned char *, const int, const int);
1261    DST  DST_UC
1262  void __builtin_vec_dst (signed char *, const int, const int);
1263    DST  DST_SC
1264  void __builtin_vec_dst (unsigned short *, const int, const int);
1265    DST  DST_US
1266  void __builtin_vec_dst (signed short *, const int, const int);
1267    DST  DST_SS
1268  void __builtin_vec_dst (unsigned int *, const int, const int);
1269    DST  DST_UI
1270  void __builtin_vec_dst (signed int *, const int, const int);
1271    DST  DST_SI
1272  void __builtin_vec_dst (unsigned long *, const int, const int);
1273    DST  DST_UL
1274  void __builtin_vec_dst (signed long *, const int, const int);
1275    DST  DST_SL
1276  void __builtin_vec_dst (unsigned long long *, const int, const int);
1277    DST  DST_ULL
1278  void __builtin_vec_dst (signed long long *, const int, const int);
1279    DST  DST_SLL
1280  void __builtin_vec_dst (float *, const int, const int);
1281    DST  DST_F
1282  void __builtin_vec_dst (vuc *, const int, const int);
1283    DST  DST_VUC
1284  void __builtin_vec_dst (vsc *, const int, const int);
1285    DST  DST_VSC
1286  void __builtin_vec_dst (vbc *, const int, const int);
1287    DST  DST_VBC
1288  void __builtin_vec_dst (vus *, const int, const int);
1289    DST  DST_VUS
1290  void __builtin_vec_dst (vss *, const int, const int);
1291    DST  DST_VSS
1292  void __builtin_vec_dst (vbs *, const int, const int);
1293    DST  DST_VBS
1294  void __builtin_vec_dst (vp *, const int, const int);
1295    DST  DST_VP
1296  void __builtin_vec_dst (vui *, const int, const int);
1297    DST  DST_VUI
1298  void __builtin_vec_dst (vsi *, const int, const int);
1299    DST  DST_VSI
1300  void __builtin_vec_dst (vbi *, const int, const int);
1301    DST  DST_VBI
1302  void __builtin_vec_dst (vf *, const int, const int);
1303    DST  DST_VF
1304
1305[VEC_DSTST, vec_dstst, __builtin_vec_dstst]
1306  void __builtin_vec_dstst (unsigned char *, const int, const int);
1307    DSTST  DSTST_UC
1308  void __builtin_vec_dstst (signed char *, const int, const int);
1309    DSTST  DSTST_SC
1310  void __builtin_vec_dstst (unsigned short *, const int, const int);
1311    DSTST  DSTST_US
1312  void __builtin_vec_dstst (signed short *, const int, const int);
1313    DSTST  DSTST_SS
1314  void __builtin_vec_dstst (unsigned int *, const int, const int);
1315    DSTST  DSTST_UI
1316  void __builtin_vec_dstst (signed int *, const int, const int);
1317    DSTST  DSTST_SI
1318  void __builtin_vec_dstst (unsigned long *, const int, const int);
1319    DSTST  DSTST_UL
1320  void __builtin_vec_dstst (signed long *, const int, const int);
1321    DSTST  DSTST_SL
1322  void __builtin_vec_dstst (unsigned long long *, const int, const int);
1323    DSTST  DSTST_ULL
1324  void __builtin_vec_dstst (signed long long *, const int, const int);
1325    DSTST  DSTST_SLL
1326  void __builtin_vec_dstst (float *, const int, const int);
1327    DSTST  DSTST_F
1328  void __builtin_vec_dstst (vuc *, const int, const int);
1329    DSTST  DSTST_VUC
1330  void __builtin_vec_dstst (vsc *, const int, const int);
1331    DSTST  DSTST_VSC
1332  void __builtin_vec_dstst (vbc *, const int, const int);
1333    DSTST  DSTST_VBC
1334  void __builtin_vec_dstst (vus *, const int, const int);
1335    DSTST  DSTST_VUS
1336  void __builtin_vec_dstst (vss *, const int, const int);
1337    DSTST  DSTST_VSS
1338  void __builtin_vec_dstst (vbs *, const int, const int);
1339    DSTST  DSTST_VBS
1340  void __builtin_vec_dstst (vp *, const int, const int);
1341    DSTST  DSTST_VP
1342  void __builtin_vec_dstst (vui *, const int, const int);
1343    DSTST  DSTST_VUI
1344  void __builtin_vec_dstst (vsi *, const int, const int);
1345    DSTST  DSTST_VSI
1346  void __builtin_vec_dstst (vbi *, const int, const int);
1347    DSTST  DSTST_VBI
1348  void __builtin_vec_dstst (vf *, const int, const int);
1349    DSTST  DSTST_VF
1350
1351[VEC_DSTSTT, vec_dststt, __builtin_vec_dststt]
1352  void __builtin_vec_dststt (unsigned char *, const int, const int);
1353    DSTSTT  DSTSTT_UC
1354  void __builtin_vec_dststt (signed char *, const int, const int);
1355    DSTSTT  DSTSTT_SC
1356  void __builtin_vec_dststt (unsigned short *, const int, const int);
1357    DSTSTT  DSTSTT_US
1358  void __builtin_vec_dststt (signed short *, const int, const int);
1359    DSTSTT  DSTSTT_SS
1360  void __builtin_vec_dststt (unsigned int *, const int, const int);
1361    DSTSTT  DSTSTT_UI
1362  void __builtin_vec_dststt (signed int *, const int, const int);
1363    DSTSTT  DSTSTT_SI
1364  void __builtin_vec_dststt (unsigned long *, const int, const int);
1365    DSTSTT  DSTSTT_UL
1366  void __builtin_vec_dststt (signed long *, const int, const int);
1367    DSTSTT  DSTSTT_SL
1368  void __builtin_vec_dststt (unsigned long long *, const int, const int);
1369    DSTSTT  DSTSTT_ULL
1370  void __builtin_vec_dststt (signed long long *, const int, const int);
1371    DSTSTT  DSTSTT_SLL
1372  void __builtin_vec_dststt (float *, const int, const int);
1373    DSTSTT  DSTSTT_F
1374  void __builtin_vec_dststt (vuc *, const int, const int);
1375    DSTSTT  DSTSTT_VUC
1376  void __builtin_vec_dststt (vsc *, const int, const int);
1377    DSTSTT  DSTSTT_VSC
1378  void __builtin_vec_dststt (vbc *, const int, const int);
1379    DSTSTT  DSTSTT_VBC
1380  void __builtin_vec_dststt (vus *, const int, const int);
1381    DSTSTT  DSTSTT_VUS
1382  void __builtin_vec_dststt (vss *, const int, const int);
1383    DSTSTT  DSTSTT_VSS
1384  void __builtin_vec_dststt (vbs *, const int, const int);
1385    DSTSTT  DSTSTT_VBS
1386  void __builtin_vec_dststt (vp *, const int, const int);
1387    DSTSTT  DSTSTT_VP
1388  void __builtin_vec_dststt (vui *, const int, const int);
1389    DSTSTT  DSTSTT_VUI
1390  void __builtin_vec_dststt (vsi *, const int, const int);
1391    DSTSTT  DSTSTT_VSI
1392  void __builtin_vec_dststt (vbi *, const int, const int);
1393    DSTSTT  DSTSTT_VBI
1394  void __builtin_vec_dststt (vf *, const int, const int);
1395    DSTSTT  DSTSTT_VF
1396
1397[VEC_DSTT, vec_dstt, __builtin_vec_dstt]
1398  void __builtin_vec_dstt (unsigned char *, const int, const int);
1399    DSTT  DSTT_UC
1400  void __builtin_vec_dstt (signed char *, const int, const int);
1401    DSTT  DSTT_SC
1402  void __builtin_vec_dstt (unsigned short *, const int, const int);
1403    DSTT  DSTT_US
1404  void __builtin_vec_dstt (signed short *, const int, const int);
1405    DSTT  DSTT_SS
1406  void __builtin_vec_dstt (unsigned int *, const int, const int);
1407    DSTT  DSTT_UI
1408  void __builtin_vec_dstt (signed int *, const int, const int);
1409    DSTT  DSTT_SI
1410  void __builtin_vec_dstt (unsigned long *, const int, const int);
1411    DSTT  DSTT_UL
1412  void __builtin_vec_dstt (signed long *, const int, const int);
1413    DSTT  DSTT_SL
1414  void __builtin_vec_dstt (unsigned long long *, const int, const int);
1415    DSTT  DSTT_ULL
1416  void __builtin_vec_dstt (signed long long *, const int, const int);
1417    DSTT  DSTT_SLL
1418  void __builtin_vec_dstt (float *, const int, const int);
1419    DSTT  DSTT_F
1420  void __builtin_vec_dstt (vuc *, const int, const int);
1421    DSTT  DSTT_VUC
1422  void __builtin_vec_dstt (vsc *, const int, const int);
1423    DSTT  DSTT_VSC
1424  void __builtin_vec_dstt (vbc *, const int, const int);
1425    DSTT  DSTT_VBC
1426  void __builtin_vec_dstt (vus *, const int, const int);
1427    DSTT  DSTT_VUS
1428  void __builtin_vec_dstt (vss *, const int, const int);
1429    DSTT  DSTT_VSS
1430  void __builtin_vec_dstt (vbs *, const int, const int);
1431    DSTT  DSTT_VBS
1432  void __builtin_vec_dstt (vp *, const int, const int);
1433    DSTT  DSTT_VP
1434  void __builtin_vec_dstt (vui *, const int, const int);
1435    DSTT  DSTT_VUI
1436  void __builtin_vec_dstt (vsi *, const int, const int);
1437    DSTT  DSTT_VSI
1438  void __builtin_vec_dstt (vbi *, const int, const int);
1439    DSTT  DSTT_VBI
1440  void __builtin_vec_dstt (vf *, const int, const int);
1441    DSTT  DSTT_VF
1442
1443[VEC_EQV, vec_eqv, __builtin_vec_eqv]
1444  vsc __builtin_vec_eqv (vsc, vsc);
1445    EQV_V16QI
1446  vuc __builtin_vec_eqv (vuc, vuc);
1447    EQV_V16QI_UNS  EQV_V16QI_VUC
1448  vbc __builtin_vec_eqv (vbc, vbc);
1449    EQV_V16QI_UNS  EQV_V16QI_VBC
1450  vss __builtin_vec_eqv (vss, vss);
1451    EQV_V8HI
1452  vus __builtin_vec_eqv (vus, vus);
1453    EQV_V8HI_UNS  EQV_V8HI_VUS
1454  vbs __builtin_vec_eqv (vbs, vbs);
1455    EQV_V8HI_UNS  EQV_V8HI_VBS
1456  vsi __builtin_vec_eqv (vsi, vsi);
1457    EQV_V4SI
1458  vui __builtin_vec_eqv (vui, vui);
1459    EQV_V4SI_UNS  EQV_V4SI_VUI
1460  vbi __builtin_vec_eqv (vbi, vbi);
1461    EQV_V4SI_UNS  EQV_V4SI_VBI
1462  vsll __builtin_vec_eqv (vsll, vsll);
1463    EQV_V2DI
1464  vull __builtin_vec_eqv (vull, vull);
1465    EQV_V2DI_UNS  EQV_V2DI_VULL
1466  vbll __builtin_vec_eqv (vbll, vbll);
1467    EQV_V2DI_UNS  EQV_V2DI_VBLL
1468  vf __builtin_vec_eqv (vf, vf);
1469    EQV_V4SF
1470  vd __builtin_vec_eqv (vd, vd);
1471    EQV_V2DF
1472; The following variants are deprecated.
1473  vsc __builtin_vec_eqv (vbc, vsc);
1474    EQV_V16QI  EQV_VBC_VSC
1475  vsc __builtin_vec_eqv (vsc, vbc);
1476    EQV_V16QI  EQV_VSC_VBC
1477  vuc __builtin_vec_eqv (vbc, vuc);
1478    EQV_V16QI_UNS  EQV_VBC_VUC
1479  vuc __builtin_vec_eqv (vuc, vbc);
1480    EQV_V16QI_UNS  EQV_VUC_VBC
1481  vss __builtin_vec_eqv (vbs, vss);
1482    EQV_V8HI  EQV_VBS_VSS
1483  vss __builtin_vec_eqv (vss, vbs);
1484    EQV_V8HI  EQV_VSS_VBS
1485  vus __builtin_vec_eqv (vbs, vus);
1486    EQV_V8HI_UNS  EQV_VBS_VUS
1487  vus __builtin_vec_eqv (vus, vbs);
1488    EQV_V8HI_UNS  EQV_VUS_VBS
1489  vsi __builtin_vec_eqv (vbi, vsi);
1490    EQV_V4SI  EQV_VBI_VSI
1491  vsi __builtin_vec_eqv (vsi, vbi);
1492    EQV_V4SI  EQV_VSI_VBI
1493  vui __builtin_vec_eqv (vbi, vui);
1494    EQV_V4SI_UNS  EQV_VBI_VUI
1495  vui __builtin_vec_eqv (vui, vbi);
1496    EQV_V4SI_UNS  EQV_VUI_VBI
1497  vsll __builtin_vec_eqv (vbll, vsll);
1498    EQV_V2DI  EQV_VBLL_VSLL
1499  vsll __builtin_vec_eqv (vsll, vbll);
1500    EQV_V2DI  EQV_VSLL_VBLL
1501  vull __builtin_vec_eqv (vbll, vull);
1502    EQV_V2DI_UNS  EQV_VBLL_VULL
1503  vull __builtin_vec_eqv (vull, vbll);
1504    EQV_V2DI_UNS  EQV_VULL_VBLL
1505
1506[VEC_EXPANDM, vec_expandm, __builtin_vec_vexpandm]
1507  vuc __builtin_vec_vexpandm (vuc);
1508    VEXPANDMB
1509  vus __builtin_vec_vexpandm (vus);
1510    VEXPANDMH
1511  vui __builtin_vec_vexpandm (vui);
1512    VEXPANDMW
1513  vull __builtin_vec_vexpandm (vull);
1514    VEXPANDMD
1515  vuq __builtin_vec_vexpandm (vuq);
1516    VEXPANDMQ
1517
1518[VEC_EXPTE, vec_expte, __builtin_vec_expte]
1519  vf __builtin_vec_expte (vf);
1520    VEXPTEFP
1521
1522; There are no actual builtins for vec_extract.  There is special handling for
1523; this in altivec_resolve_overloaded_builtin in rs6000-c.cc, where the call
1524; is replaced by "pointer tricks."  The single overload here causes
1525; __builtin_vec_extract to be registered with the front end so this can
1526; happen.
1527[VEC_EXTRACT, vec_extract, __builtin_vec_extract]
1528  vsi __builtin_vec_extract (vsi, signed int);
1529    VSPLTW  EXTRACT_FAKERY
1530
1531[VEC_EXTRACT_FP_FROM_SHORTH, vec_extract_fp32_from_shorth, __builtin_vec_vextract_fp_from_shorth]
1532  vf __builtin_vec_vextract_fp_from_shorth (vus);
1533    VEXTRACT_FP_FROM_SHORTH
1534
1535[VEC_EXTRACT_FP_FROM_SHORTL, vec_extract_fp32_from_shortl, __builtin_vec_vextract_fp_from_shortl]
1536  vf __builtin_vec_vextract_fp_from_shortl (vus);
1537    VEXTRACT_FP_FROM_SHORTL
1538
1539[VEC_EXTRACTH, vec_extracth, __builtin_vec_extracth]
1540  vull __builtin_vec_extracth (vuc, vuc, unsigned char);
1541    VEXTRACTBR
1542  vull __builtin_vec_extracth (vus, vus, unsigned char);
1543    VEXTRACTHR
1544  vull __builtin_vec_extracth (vui, vui, unsigned char);
1545    VEXTRACTWR
1546  vull __builtin_vec_extracth (vull, vull, unsigned char);
1547    VEXTRACTDR
1548
1549[VEC_EXTRACTL, vec_extractl, __builtin_vec_extractl]
1550  vull __builtin_vec_extractl (vuc, vuc, unsigned char);
1551    VEXTRACTBL
1552  vull __builtin_vec_extractl (vus, vus, unsigned char);
1553    VEXTRACTHL
1554  vull __builtin_vec_extractl (vui, vui, unsigned char);
1555    VEXTRACTWL
1556  vull __builtin_vec_extractl (vull, vull, unsigned char);
1557    VEXTRACTDL
1558
1559[VEC_EXTRACTM, vec_extractm, __builtin_vec_vextractm]
1560  signed int __builtin_vec_vextractm (vuc);
1561    VEXTRACTMB
1562  signed int __builtin_vec_vextractm (vus);
1563    VEXTRACTMH
1564  signed int __builtin_vec_vextractm (vui);
1565    VEXTRACTMW
1566  signed int __builtin_vec_vextractm (vull);
1567    VEXTRACTMD
1568  signed int __builtin_vec_vextractm (vuq);
1569    VEXTRACTMQ
1570
1571[VEC_EXTRACT4B, vec_extract4b, __builtin_vec_extract4b]
1572  vull __builtin_vec_extract4b (vuc, const int);
1573    EXTRACT4B
1574
1575[VEC_EXTULX, vec_xlx, __builtin_vec_vextulx]
1576  signed char __builtin_vec_vextulx (unsigned int, vsc);
1577    VEXTUBLX  VEXTUBLX_S
1578  unsigned char __builtin_vec_vextulx (unsigned int, vuc);
1579    VEXTUBLX  VEXTUBLX_U
1580  signed short __builtin_vec_vextulx (unsigned int, vss);
1581    VEXTUHLX  VEXTUHLX_S
1582  unsigned short __builtin_vec_vextulx (unsigned int, vus);
1583    VEXTUHLX  VEXTUHLX_U
1584  signed int __builtin_vec_vextulx (unsigned int, vsi);
1585    VEXTUWLX  VEXTUWLX_S
1586  unsigned int __builtin_vec_vextulx (unsigned int, vui);
1587    VEXTUWLX  VEXTUWLX_U
1588  float __builtin_vec_vextulx (unsigned int, vf);
1589    VEXTUWLX  VEXTUWLX_F
1590
1591[VEC_EXTURX, vec_xrx, __builtin_vec_vexturx]
1592  signed char __builtin_vec_vexturx (unsigned int, vsc);
1593    VEXTUBRX  VEXTUBRX_S
1594  unsigned char __builtin_vec_vexturx (unsigned int, vuc);
1595    VEXTUBRX  VEXTUBRX_U
1596  signed short __builtin_vec_vexturx (unsigned int, vss);
1597    VEXTUHRX  VEXTUHRX_S
1598  unsigned short __builtin_vec_vexturx (unsigned int, vus);
1599    VEXTUHRX  VEXTUHRX_U
1600  signed int __builtin_vec_vexturx (unsigned int, vsi);
1601    VEXTUWRX  VEXTUWRX_S
1602  unsigned int __builtin_vec_vexturx (unsigned int, vui);
1603    VEXTUWRX  VEXTUWRX_U
1604  float __builtin_vec_vexturx (unsigned int, vf);
1605    VEXTUWRX  VEXTUWRX_F
1606
1607[VEC_FIRSTMATCHINDEX, vec_first_match_index, __builtin_vec_first_match_index]
1608  unsigned int __builtin_vec_first_match_index (vsc, vsc);
1609    VFIRSTMATCHINDEX_V16QI FIRSTMATCHINDEX_VSC
1610  unsigned int __builtin_vec_first_match_index (vuc, vuc);
1611    VFIRSTMATCHINDEX_V16QI FIRSTMATCHINDEX_VUC
1612  unsigned int __builtin_vec_first_match_index (vss, vss);
1613    VFIRSTMATCHINDEX_V8HI FIRSTMATCHINDEX_VSS
1614  unsigned int __builtin_vec_first_match_index (vus, vus);
1615    VFIRSTMATCHINDEX_V8HI FIRSTMATCHINDEX_VUS
1616  unsigned int __builtin_vec_first_match_index (vsi, vsi);
1617    VFIRSTMATCHINDEX_V4SI FIRSTMATCHINDEX_VSI
1618  unsigned int __builtin_vec_first_match_index (vui, vui);
1619    VFIRSTMATCHINDEX_V4SI FIRSTMATCHINDEX_VUI
1620
1621[VEC_FIRSTMATCHOREOSINDEX, vec_first_match_or_eos_index, __builtin_vec_first_match_or_eos_index]
1622  unsigned int __builtin_vec_first_match_or_eos_index (vsc, vsc);
1623    VFIRSTMATCHOREOSINDEX_V16QI FIRSTMATCHOREOSINDEX_VSC
1624  unsigned int __builtin_vec_first_match_or_eos_index (vuc, vuc);
1625    VFIRSTMATCHOREOSINDEX_V16QI FIRSTMATCHOREOSINDEX_VUC
1626  unsigned int __builtin_vec_first_match_or_eos_index (vss, vss);
1627    VFIRSTMATCHOREOSINDEX_V8HI FIRSTMATCHOREOSINDEX_VSS
1628  unsigned int __builtin_vec_first_match_or_eos_index (vus, vus);
1629    VFIRSTMATCHOREOSINDEX_V8HI FIRSTMATCHOREOSINDEX_VUS
1630  unsigned int __builtin_vec_first_match_or_eos_index (vsi, vsi);
1631    VFIRSTMATCHOREOSINDEX_V4SI FIRSTMATCHOREOSINDEX_VSI
1632  unsigned int __builtin_vec_first_match_or_eos_index (vui, vui);
1633    VFIRSTMATCHOREOSINDEX_V4SI FIRSTMATCHOREOSINDEX_VUI
1634
1635[VEC_FIRSTMISMATCHINDEX, vec_first_mismatch_index, __builtin_vec_first_mismatch_index]
1636  unsigned int __builtin_vec_first_mismatch_index (vsc, vsc);
1637    VFIRSTMISMATCHINDEX_V16QI FIRSTMISMATCHINDEX_VSC
1638  unsigned int __builtin_vec_first_mismatch_index (vuc, vuc);
1639    VFIRSTMISMATCHINDEX_V16QI FIRSTMISMATCHINDEX_VUC
1640  unsigned int __builtin_vec_first_mismatch_index (vss, vss);
1641    VFIRSTMISMATCHINDEX_V8HI FIRSTMISMATCHINDEX_VSS
1642  unsigned int __builtin_vec_first_mismatch_index (vus, vus);
1643    VFIRSTMISMATCHINDEX_V8HI FIRSTMISMATCHINDEX_VUS
1644  unsigned int __builtin_vec_first_mismatch_index (vsi, vsi);
1645    VFIRSTMISMATCHINDEX_V4SI FIRSTMISMATCHINDEX_VSI
1646  unsigned int __builtin_vec_first_mismatch_index (vui, vui);
1647    VFIRSTMISMATCHINDEX_V4SI FIRSTMISMATCHINDEX_VUI
1648
1649[VEC_FIRSTMISMATCHOREOSINDEX, vec_first_mismatch_or_eos_index, __builtin_vec_first_mismatch_or_eos_index]
1650  unsigned int __builtin_vec_first_mismatch_or_eos_index (vsc, vsc);
1651    VFIRSTMISMATCHOREOSINDEX_V16QI FIRSTMISMATCHOREOSINDEX_VSC
1652  unsigned int __builtin_vec_first_mismatch_or_eos_index (vuc, vuc);
1653    VFIRSTMISMATCHOREOSINDEX_V16QI FIRSTMISMATCHOREOSINDEX_VUC
1654  unsigned int __builtin_vec_first_mismatch_or_eos_index (vss, vss);
1655    VFIRSTMISMATCHOREOSINDEX_V8HI FIRSTMISMATCHOREOSINDEX_VSS
1656  unsigned int __builtin_vec_first_mismatch_or_eos_index (vus, vus);
1657    VFIRSTMISMATCHOREOSINDEX_V8HI FIRSTMISMATCHOREOSINDEX_VUS
1658  unsigned int __builtin_vec_first_mismatch_or_eos_index (vsi, vsi);
1659    VFIRSTMISMATCHOREOSINDEX_V4SI FIRSTMISMATCHOREOSINDEX_VSI
1660  unsigned int __builtin_vec_first_mismatch_or_eos_index (vui, vui);
1661    VFIRSTMISMATCHOREOSINDEX_V4SI FIRSTMISMATCHOREOSINDEX_VUI
1662
1663[VEC_FLOAT, vec_float, __builtin_vec_float]
1664  vf __builtin_vec_float (vsi);
1665    XVCVSXWSP
1666  vf __builtin_vec_float (vui);
1667    XVCVUXWSP
1668
1669[VEC_FLOAT2, vec_float2, __builtin_vec_float2]
1670  vf __builtin_vec_float2 (vsll, vsll);
1671    FLOAT2_V2DI
1672  vf __builtin_vec_float2 (vull, vull);
1673    UNS_FLOAT2_V2DI
1674  vf __builtin_vec_float2 (vd, vd);
1675    FLOAT2_V2DF
1676
1677[VEC_FLOATE, vec_floate, __builtin_vec_floate]
1678  vf __builtin_vec_floate (vsll);
1679    FLOATE_V2DI
1680  vf __builtin_vec_floate (vull);
1681    UNS_FLOATE_V2DI
1682  vf __builtin_vec_floate (vd);
1683    FLOATE_V2DF
1684
1685[VEC_FLOATO, vec_floato, __builtin_vec_floato]
1686  vf __builtin_vec_floato (vsll);
1687    FLOATO_V2DI
1688  vf __builtin_vec_floato (vull);
1689    UNS_FLOATO_V2DI
1690  vf __builtin_vec_floato (vd);
1691    FLOATO_V2DF
1692
1693[VEC_FLOOR, vec_floor, __builtin_vec_floor]
1694  vf __builtin_vec_floor (vf);
1695    VRFIM
1696  vd __builtin_vec_floor (vd);
1697    XVRDPIM
1698
1699[VEC_GB, vec_gb, __builtin_vec_vgbbd]
1700  vsc __builtin_vec_vgbbd (vsc);
1701    VGBBD  VGBBD_S
1702  vuc __builtin_vec_vgbbd (vuc);
1703    VGBBD  VGBBD_U
1704
1705[VEC_GENBM, vec_genbm, __builtin_vec_mtvsrbm]
1706  vuc __builtin_vec_mtvsrbm (unsigned long long);
1707    MTVSRBM
1708
1709[VEC_GENHM, vec_genhm, __builtin_vec_mtvsrhm]
1710  vus __builtin_vec_mtvsrhm (unsigned long long);
1711    MTVSRHM
1712
1713[VEC_GENWM, vec_genwm, __builtin_vec_mtvsrwm]
1714  vui __builtin_vec_mtvsrwm (unsigned long long);
1715    MTVSRWM
1716
1717[VEC_GENDM, vec_gendm, __builtin_vec_mtvsrdm]
1718  vull __builtin_vec_mtvsrdm (unsigned long long);
1719    MTVSRDM
1720
1721[VEC_GENQM, vec_genqm, __builtin_vec_mtvsrqm]
1722  vuq __builtin_vec_mtvsrqm (unsigned long long);
1723    MTVSRQM
1724
1725[VEC_GENPCVM, vec_genpcvm, __builtin_vec_xxgenpcvm]
1726  vuc __builtin_vec_xxgenpcvm (vuc, const int);
1727    XXGENPCVM_V16QI
1728  vus __builtin_vec_xxgenpcvm (vus, const int);
1729    XXGENPCVM_V8HI
1730  vui __builtin_vec_xxgenpcvm (vui, const int);
1731    XXGENPCVM_V4SI
1732  vull __builtin_vec_xxgenpcvm (vull, const int);
1733    XXGENPCVM_V2DI
1734
1735[VEC_GNB, vec_gnb, __builtin_vec_gnb]
1736  unsigned long long __builtin_vec_gnb (vuq, const int);
1737    VGNB
1738
1739; There are no actual builtins for vec_insert.  There is special handling for
1740; this in altivec_resolve_overloaded_builtin in rs6000-c.cc, where the call
1741; is replaced by "pointer tricks."  The single overload here causes
1742; __builtin_vec_insert to be registered with the front end so this can happen.
1743[VEC_INSERT, vec_insert, __builtin_vec_insert]
1744  vsi __builtin_vec_insert (vsi, vsi, signed int);
1745    XXPERMDI_4SI  INSERT_FAKERY
1746
1747[VEC_INSERTH, vec_inserth, __builtin_vec_inserth]
1748  vuc __builtin_vec_inserth (unsigned char, vuc, unsigned int);
1749    VINSERTGPRBR
1750  vuc __builtin_vec_inserth (vuc, vuc, unsigned int);
1751    VINSERTVPRBR
1752  vus __builtin_vec_inserth (unsigned short, vus, unsigned int);
1753    VINSERTGPRHR
1754  vus __builtin_vec_inserth (vus, vus, unsigned int);
1755    VINSERTVPRHR
1756  vui __builtin_vec_inserth (unsigned int, vui, unsigned int);
1757    VINSERTGPRWR
1758  vui __builtin_vec_inserth (vui, vui, unsigned int);
1759    VINSERTVPRWR
1760  vull __builtin_vec_inserth (unsigned long long, vull, unsigned int);
1761    VINSERTGPRDR
1762
1763[VEC_INSERTL, vec_insertl, __builtin_vec_insertl]
1764  vuc __builtin_vec_insertl (unsigned char, vuc, unsigned int);
1765    VINSERTGPRBL
1766  vuc __builtin_vec_insertl (vuc, vuc, unsigned int);
1767    VINSERTVPRBL
1768  vus __builtin_vec_insertl (unsigned short, vus, unsigned int);
1769    VINSERTGPRHL
1770  vus __builtin_vec_insertl (vus, vus, unsigned int);
1771    VINSERTVPRHL
1772  vui __builtin_vec_insertl (unsigned int, vui, unsigned int);
1773    VINSERTGPRWL
1774  vui __builtin_vec_insertl (vui, vui, unsigned int);
1775    VINSERTVPRWL
1776  vull __builtin_vec_insertl (unsigned long long, vull, unsigned int);
1777    VINSERTGPRDL
1778
1779[VEC_INSERT4B, vec_insert4b, __builtin_vec_insert4b]
1780  vuc __builtin_vec_insert4b (vsi, vuc, const int);
1781    INSERT4B  INSERT4B_S
1782  vuc __builtin_vec_insert4b (vui, vuc, const int);
1783    INSERT4B  INSERT4B_U
1784
1785[VEC_LD, vec_ld, __builtin_vec_ld]
1786  vsc __builtin_vec_ld (signed long, const vsc *);
1787    LVX_V16QI  LVX_V16QI_VSC
1788  vsc __builtin_vec_ld (signed long, const signed char *);
1789    LVX_V16QI  LVX_V16QI_SC
1790  vuc __builtin_vec_ld (signed long, const vuc *);
1791    LVX_V16QI  LVX_V16QI_VUC
1792  vuc __builtin_vec_ld (signed long, const unsigned char *);
1793    LVX_V16QI  LVX_V16QI_UC
1794  vbc __builtin_vec_ld (signed long, const vbc *);
1795    LVX_V16QI  LVX_V16QI_VBC
1796  vss __builtin_vec_ld (signed long, const vss *);
1797    LVX_V8HI  LVX_V8HI_VSS
1798  vss __builtin_vec_ld (signed long, const signed short *);
1799    LVX_V8HI  LVX_V8HI_SS
1800  vus __builtin_vec_ld (signed long, const vus *);
1801    LVX_V8HI  LVX_V8HI_VUS
1802  vus __builtin_vec_ld (signed long, const unsigned short *);
1803    LVX_V8HI  LVX_V8HI_US
1804  vbs __builtin_vec_ld (signed long, const vbs *);
1805    LVX_V8HI  LVX_V8HI_VBS
1806  vp __builtin_vec_ld (signed long, const vp *);
1807    LVX_V8HI  LVX_V8HI_VP
1808  vsi __builtin_vec_ld (signed long, const vsi *);
1809    LVX_V4SI  LVX_V4SI_VSI
1810  vsi __builtin_vec_ld (signed long, const signed int *);
1811    LVX_V4SI  LVX_V4SI_SI
1812  vui __builtin_vec_ld (signed long, const vui *);
1813    LVX_V4SI  LVX_V4SI_VUI
1814  vui __builtin_vec_ld (signed long, const unsigned int *);
1815    LVX_V4SI  LVX_V4SI_UI
1816  vbi __builtin_vec_ld (signed long, const vbi *);
1817    LVX_V4SI  LVX_V4SI_VBI
1818  vsll __builtin_vec_ld (signed long, const vsll *);
1819    LVX_V2DI  LVX_V2DI_VSLL
1820  vsll __builtin_vec_ld (signed long, const signed long long *);
1821    LVX_V2DI  LVX_V2DI_SLL
1822  vull __builtin_vec_ld (signed long, const vull *);
1823    LVX_V2DI  LVX_V2DI_VULL
1824  vull __builtin_vec_ld (signed long, const unsigned long long *);
1825    LVX_V2DI  LVX_V2DI_ULL
1826  vbll __builtin_vec_ld (signed long, const vbll *);
1827    LVX_V2DI  LVX_V2DI_VBLL
1828  vsq __builtin_vec_ld (signed long, const vsq *);
1829    LVX_V1TI  LVX_V1TI_VSQ
1830  vuq __builtin_vec_ld (signed long, const vuq *);
1831    LVX_V1TI  LVX_V1TI_VUQ
1832  vsq __builtin_vec_ld (signed long, const __int128 *);
1833    LVX_V1TI  LVX_V1TI_TI
1834  vuq __builtin_vec_ld (signed long, const unsigned __int128 *);
1835    LVX_V1TI  LVX_V1TI_UTI
1836  vf __builtin_vec_ld (signed long, const vf *);
1837    LVX_V4SF  LVX_V4SF_VF
1838  vf __builtin_vec_ld (signed long, const float *);
1839    LVX_V4SF  LVX_V4SF_F
1840  vd __builtin_vec_ld (signed long, const vd *);
1841    LVX_V2DF  LVX_V2DF_VD
1842  vd __builtin_vec_ld (signed long, const double *);
1843    LVX_V2DF  LVX_V2DF_D
1844; The following variants are deprecated.
1845  vsi __builtin_vec_ld (signed long, const long *);
1846    LVX_V4SI  LVX_V4SI_SL
1847  vui __builtin_vec_ld (signed long, const unsigned long *);
1848    LVX_V4SI  LVX_V4SI_UL
1849
1850[VEC_LDE, vec_lde, __builtin_vec_lde]
1851  vsc __builtin_vec_lde (signed long, const signed char *);
1852    LVEBX  LVEBX_SC
1853  vuc __builtin_vec_lde (signed long, const unsigned char *);
1854    LVEBX  LVEBX_UC
1855  vss __builtin_vec_lde (signed long, const signed short *);
1856    LVEHX  LVEHX_SS
1857  vus __builtin_vec_lde (signed long, const unsigned short *);
1858    LVEHX  LVEHX_US
1859  vsi __builtin_vec_lde (signed long, const signed int *);
1860    LVEWX  LVEWX_SI
1861  vui __builtin_vec_lde (signed long, const unsigned int *);
1862    LVEWX  LVEWX_UI
1863  vf __builtin_vec_lde (signed long, const float *);
1864    LVEWX  LVEWX_F
1865; The following variants are deprecated.
1866  vsi __builtin_vec_lde (signed long, const long *);
1867    LVEWX  LVEWX_SL
1868  vui __builtin_vec_lde (signed long, const unsigned long *);
1869    LVEWX  LVEWX_UL
1870
1871[VEC_LDL, vec_ldl, __builtin_vec_ldl]
1872  vsc __builtin_vec_ldl (signed long, const vsc *);
1873    LVXL_V16QI  LVXL_V16QI_VSC
1874  vsc __builtin_vec_ldl (signed long, const signed char *);
1875    LVXL_V16QI  LVXL_V16QI_SC
1876  vuc __builtin_vec_ldl (signed long, const vuc *);
1877    LVXL_V16QI  LVXL_V16QI_VUC
1878  vuc __builtin_vec_ldl (signed long, const unsigned char *);
1879    LVXL_V16QI  LVXL_V16QI_UC
1880  vbc __builtin_vec_ldl (signed long, const vbc *);
1881    LVXL_V16QI  LVXL_V16QI_VBC
1882  vss __builtin_vec_ldl (signed long, const vss *);
1883    LVXL_V8HI  LVXL_V8HI_VSS
1884  vss __builtin_vec_ldl (signed long, const signed short *);
1885    LVXL_V8HI  LVXL_V8HI_SS
1886  vus __builtin_vec_ldl (signed long, const vus *);
1887    LVXL_V8HI  LVXL_V8HI_VUS
1888  vus __builtin_vec_ldl (signed long, const unsigned short *);
1889    LVXL_V8HI  LVXL_V8HI_US
1890  vbs __builtin_vec_ldl (signed long, const vbs *);
1891    LVXL_V8HI  LVXL_V8HI_VBS
1892  vp __builtin_vec_ldl (signed long, const vp *);
1893    LVXL_V8HI  LVXL_V8HI_VP
1894  vsi __builtin_vec_ldl (signed long, const vsi *);
1895    LVXL_V4SI  LVXL_V4SI_VSI
1896  vsi __builtin_vec_ldl (signed long, const signed int *);
1897    LVXL_V4SI  LVXL_V4SI_SI
1898  vui __builtin_vec_ldl (signed long, const vui *);
1899    LVXL_V4SI  LVXL_V4SI_VUI
1900  vui __builtin_vec_ldl (signed long, const unsigned int *);
1901    LVXL_V4SI  LVXL_V4SI_UI
1902  vbi __builtin_vec_ldl (signed long, const vbi *);
1903    LVXL_V4SI  LVXL_V4SI_VBI
1904  vsll __builtin_vec_ldl (signed long, const vsll *);
1905    LVXL_V2DI  LVXL_V2DI_VSLL
1906  vsll __builtin_vec_ldl (signed long, const signed long long *);
1907    LVXL_V2DI  LVXL_V2DI_SLL
1908  vull __builtin_vec_ldl (signed long, const vull *);
1909    LVXL_V2DI  LVXL_V2DI_VULL
1910  vull __builtin_vec_ldl (signed long, const unsigned long long *);
1911    LVXL_V2DI  LVXL_V2DI_ULL
1912  vbll __builtin_vec_ldl (signed long, const vbll *);
1913    LVXL_V2DI  LVXL_V2DI_VBLL
1914  vf __builtin_vec_ldl (signed long, const vf *);
1915    LVXL_V4SF  LVXL_V4SF_VF
1916  vf __builtin_vec_ldl (signed long, const float *);
1917    LVXL_V4SF  LVXL_V4SF_F
1918  vd __builtin_vec_ldl (signed long, const vd *);
1919    LVXL_V2DF  LVXL_V2DF_VD
1920  vd __builtin_vec_ldl (signed long, const double *);
1921    LVXL_V2DF  LVXL_V2DF_D
1922
1923[VEC_LOGE, vec_loge, __builtin_vec_loge]
1924  vf __builtin_vec_loge (vf);
1925    VLOGEFP
1926
1927[VEC_LVLX, vec_lvlx, __builtin_vec_lvlx, __PPU__]
1928  vbc __builtin_vec_lvlx (signed long, const vbc *);
1929    LVLX  LVLX_VBC
1930  vsc __builtin_vec_lvlx (signed long, const vsc *);
1931    LVLX  LVLX_VSC
1932  vsc __builtin_vec_lvlx (signed long, const signed char *);
1933    LVLX  LVLX_SC
1934  vuc __builtin_vec_lvlx (signed long, const vuc *);
1935    LVLX  LVLX_VUC
1936  vuc __builtin_vec_lvlx (signed long, const unsigned char *);
1937    LVLX  LVLX_UC
1938  vbs __builtin_vec_lvlx (signed long, const vbs *);
1939    LVLX  LVLX_VBS
1940  vss __builtin_vec_lvlx (signed long, const vss *);
1941    LVLX  LVLX_VSS
1942  vss __builtin_vec_lvlx (signed long, const signed short *);
1943    LVLX  LVLX_SS
1944  vus __builtin_vec_lvlx (signed long, const vus *);
1945    LVLX  LVLX_VUS
1946  vus __builtin_vec_lvlx (signed long, const unsigned short *);
1947    LVLX  LVLX_US
1948  vp __builtin_vec_lvlx (signed long, const vp *);
1949    LVLX  LVLX_VP
1950  vbi __builtin_vec_lvlx (signed long, const vbi *);
1951    LVLX  LVLX_VBI
1952  vsi __builtin_vec_lvlx (signed long, const vsi *);
1953    LVLX  LVLX_VSI
1954  vsi __builtin_vec_lvlx (signed long, const signed int *);
1955    LVLX  LVLX_SI
1956  vui __builtin_vec_lvlx (signed long, const vui *);
1957    LVLX  LVLX_VUI
1958  vui __builtin_vec_lvlx (signed long, const unsigned int *);
1959    LVLX  LVLX_UI
1960  vf __builtin_vec_lvlx (signed long, const vf *);
1961    LVLX  LVLX_VF
1962  vf __builtin_vec_lvlx (signed long, const float *);
1963    LVLX  LVLX_F
1964
1965[VEC_LVLXL, vec_lvlxl, __builtin_vec_lvlxl, __PPU__]
1966  vbc __builtin_vec_lvlxl (signed long, const vbc *);
1967    LVLXL  LVLXL_VBC
1968  vsc __builtin_vec_lvlxl (signed long, const vsc *);
1969    LVLXL  LVLXL_VSC
1970  vsc __builtin_vec_lvlxl (signed long, const signed char *);
1971    LVLXL  LVLXL_SC
1972  vuc __builtin_vec_lvlxl (signed long, const vuc *);
1973    LVLXL  LVLXL_VUC
1974  vuc __builtin_vec_lvlxl (signed long, const unsigned char *);
1975    LVLXL  LVLXL_UC
1976  vbs __builtin_vec_lvlxl (signed long, const vbs *);
1977    LVLXL  LVLXL_VBS
1978  vss __builtin_vec_lvlxl (signed long, const vss *);
1979    LVLXL  LVLXL_VSS
1980  vss __builtin_vec_lvlxl (signed long, const signed short *);
1981    LVLXL  LVLXL_SS
1982  vus __builtin_vec_lvlxl (signed long, const vus *);
1983    LVLXL  LVLXL_VUS
1984  vus __builtin_vec_lvlxl (signed long, const unsigned short *);
1985    LVLXL  LVLXL_US
1986  vp __builtin_vec_lvlxl (signed long, const vp *);
1987    LVLXL  LVLXL_VP
1988  vbi __builtin_vec_lvlxl (signed long, const vbi *);
1989    LVLXL  LVLXL_VBI
1990  vsi __builtin_vec_lvlxl (signed long, const vsi *);
1991    LVLXL  LVLXL_VSI
1992  vsi __builtin_vec_lvlxl (signed long, const signed int *);
1993    LVLXL  LVLXL_SI
1994  vui __builtin_vec_lvlxl (signed long, const vui *);
1995    LVLXL  LVLXL_VUI
1996  vui __builtin_vec_lvlxl (signed long, const unsigned int *);
1997    LVLXL  LVLXL_UI
1998  vf __builtin_vec_lvlxl (signed long, const vf *);
1999    LVLXL  LVLXL_VF
2000  vf __builtin_vec_lvlxl (signed long, const float *);
2001    LVLXL  LVLXL_F
2002
2003[VEC_LVRX, vec_lvrx, __builtin_vec_lvrx, __PPU__]
2004  vbc __builtin_vec_lvrx (signed long, const vbc *);
2005    LVRX  LVRX_VBC
2006  vsc __builtin_vec_lvrx (signed long, const vsc *);
2007    LVRX  LVRX_VSC
2008  vsc __builtin_vec_lvrx (signed long, const signed char *);
2009    LVRX  LVRX_SC
2010  vuc __builtin_vec_lvrx (signed long, const vuc *);
2011    LVRX  LVRX_VUC
2012  vuc __builtin_vec_lvrx (signed long, const unsigned char *);
2013    LVRX  LVRX_UC
2014  vbs __builtin_vec_lvrx (signed long, const vbs *);
2015    LVRX  LVRX_VBS
2016  vss __builtin_vec_lvrx (signed long, const vss *);
2017    LVRX  LVRX_VSS
2018  vss __builtin_vec_lvrx (signed long, const signed short *);
2019    LVRX  LVRX_SS
2020  vus __builtin_vec_lvrx (signed long, const vus *);
2021    LVRX  LVRX_VUS
2022  vus __builtin_vec_lvrx (signed long, const unsigned short *);
2023    LVRX  LVRX_US
2024  vp __builtin_vec_lvrx (signed long, const vp *);
2025    LVRX  LVRX_VP
2026  vbi __builtin_vec_lvrx (signed long, const vbi *);
2027    LVRX  LVRX_VBI
2028  vsi __builtin_vec_lvrx (signed long, const vsi *);
2029    LVRX  LVRX_VSI
2030  vsi __builtin_vec_lvrx (signed long, const signed int *);
2031    LVRX  LVRX_SI
2032  vui __builtin_vec_lvrx (signed long, const vui *);
2033    LVRX  LVRX_VUI
2034  vui __builtin_vec_lvrx (signed long, const unsigned int *);
2035    LVRX  LVRX_UI
2036  vf __builtin_vec_lvrx (signed long, const vf *);
2037    LVRX  LVRX_VF
2038  vf __builtin_vec_lvrx (signed long, const float *);
2039    LVRX  LVRX_F
2040
2041[VEC_LVRXL, vec_lvrxl, __builtin_vec_lvrxl, __PPU__]
2042  vbc __builtin_vec_lvrxl (signed long, const vbc *);
2043    LVRXL  LVRXL_VBC
2044  vsc __builtin_vec_lvrxl (signed long, const vsc *);
2045    LVRXL  LVRXL_VSC
2046  vsc __builtin_vec_lvrxl (signed long, const signed char *);
2047    LVRXL  LVRXL_SC
2048  vuc __builtin_vec_lvrxl (signed long, const vuc *);
2049    LVRXL  LVRXL_VUC
2050  vuc __builtin_vec_lvrxl (signed long, const unsigned char *);
2051    LVRXL  LVRXL_UC
2052  vbs __builtin_vec_lvrxl (signed long, const vbs *);
2053    LVRXL  LVRXL_VBS
2054  vss __builtin_vec_lvrxl (signed long, const vss *);
2055    LVRXL  LVRXL_VSS
2056  vss __builtin_vec_lvrxl (signed long, const signed short *);
2057    LVRXL  LVRXL_SS
2058  vus __builtin_vec_lvrxl (signed long, const vus *);
2059    LVRXL  LVRXL_VUS
2060  vus __builtin_vec_lvrxl (signed long, const unsigned short *);
2061    LVRXL  LVRXL_US
2062  vp __builtin_vec_lvrxl (signed long, const vp *);
2063    LVRXL  LVRXL_VP
2064  vbi __builtin_vec_lvrxl (signed long, const vbi *);
2065    LVRXL  LVRXL_VBI
2066  vsi __builtin_vec_lvrxl (signed long, const vsi *);
2067    LVRXL  LVRXL_VSI
2068  vsi __builtin_vec_lvrxl (signed long, const signed int *);
2069    LVRXL  LVRXL_SI
2070  vui __builtin_vec_lvrxl (signed long, const vui *);
2071    LVRXL  LVRXL_VUI
2072  vui __builtin_vec_lvrxl (signed long, const unsigned int *);
2073    LVRXL  LVRXL_UI
2074  vf __builtin_vec_lvrxl (signed long, const vf *);
2075    LVRXL  LVRXL_VF
2076  vf __builtin_vec_lvrxl (signed long, const float *);
2077    LVRXL  LVRXL_F
2078
2079[VEC_LVSL, vec_lvsl, __builtin_vec_lvsl]
2080  vuc __builtin_vec_lvsl (signed long, const unsigned char *);
2081    LVSL  LVSL_UC
2082  vuc __builtin_vec_lvsl (signed long, const signed char *);
2083    LVSL  LVSL_SC
2084  vuc __builtin_vec_lvsl (signed long, const char *);
2085    LVSL  LVSL_STR
2086  vuc __builtin_vec_lvsl (signed long, const unsigned short *);
2087    LVSL  LVSL_US
2088  vuc __builtin_vec_lvsl (signed long, const signed short *);
2089    LVSL  LVSL_SS
2090  vuc __builtin_vec_lvsl (signed long, const unsigned int *);
2091    LVSL  LVSL_UI
2092  vuc __builtin_vec_lvsl (signed long, const signed int *);
2093    LVSL  LVSL_SI
2094  vuc __builtin_vec_lvsl (signed long, const unsigned long *);
2095    LVSL  LVSL_UL
2096  vuc __builtin_vec_lvsl (signed long, const signed long *);
2097    LVSL  LVSL_SL
2098  vuc __builtin_vec_lvsl (signed long, const unsigned long long *);
2099    LVSL  LVSL_ULL
2100  vuc __builtin_vec_lvsl (signed long, const signed long long *);
2101    LVSL  LVSL_SLL
2102  vuc __builtin_vec_lvsl (signed long, const float *);
2103    LVSL  LVSL_F
2104  vuc __builtin_vec_lvsl (signed long, const double *);
2105    LVSL  LVSL_D
2106
2107[VEC_LVSR, vec_lvsr, __builtin_vec_lvsr]
2108  vuc __builtin_vec_lvsr (signed long, const unsigned char *);
2109    LVSR  LVSR_UC
2110  vuc __builtin_vec_lvsr (signed long, const signed char *);
2111    LVSR  LVSR_SC
2112  vuc __builtin_vec_lvsr (signed long, const char *);
2113    LVSR  LVSR_STR
2114  vuc __builtin_vec_lvsr (signed long, const unsigned short *);
2115    LVSR  LVSR_US
2116  vuc __builtin_vec_lvsr (signed long, const signed short *);
2117    LVSR  LVSR_SS
2118  vuc __builtin_vec_lvsr (signed long, const unsigned int *);
2119    LVSR  LVSR_UI
2120  vuc __builtin_vec_lvsr (signed long, const signed int *);
2121    LVSR  LVSR_SI
2122  vuc __builtin_vec_lvsr (signed long, const unsigned long *);
2123    LVSR  LVSR_UL
2124  vuc __builtin_vec_lvsr (signed long, const signed long *);
2125    LVSR  LVSR_SL
2126  vuc __builtin_vec_lvsr (signed long, const unsigned long long *);
2127    LVSR  LVSR_ULL
2128  vuc __builtin_vec_lvsr (signed long, const signed long long *);
2129    LVSR  LVSR_SLL
2130  vuc __builtin_vec_lvsr (signed long, const float *);
2131    LVSR  LVSR_F
2132  vuc __builtin_vec_lvsr (signed long, const double *);
2133    LVSR  LVSR_D
2134
2135[VEC_LXVL, vec_xl_len, __builtin_vec_lxvl]
2136  vsc __builtin_vec_lxvl (const signed char *, unsigned int);
2137    LXVL  LXVL_VSC
2138  vuc __builtin_vec_lxvl (const unsigned char *, unsigned int);
2139    LXVL  LXVL_VUC
2140  vss __builtin_vec_lxvl (const signed short *, unsigned int);
2141    LXVL  LXVL_VSS
2142  vus __builtin_vec_lxvl (const unsigned short *, unsigned int);
2143    LXVL  LXVL_VUS
2144  vsi __builtin_vec_lxvl (const signed int *, unsigned int);
2145    LXVL  LXVL_VSI
2146  vui __builtin_vec_lxvl (const unsigned int *, unsigned int);
2147    LXVL  LXVL_VUI
2148  vsll __builtin_vec_lxvl (const signed long long *, unsigned int);
2149    LXVL  LXVL_VSLL
2150  vull __builtin_vec_lxvl (const unsigned long long *, unsigned int);
2151    LXVL  LXVL_VULL
2152  vsq __builtin_vec_lxvl (const signed __int128 *, unsigned int);
2153    LXVL  LXVL_VSQ
2154  vuq __builtin_vec_lxvl (const unsigned __int128 *, unsigned int);
2155    LXVL  LXVL_VUQ
2156  vf __builtin_vec_lxvl (const float *, unsigned int);
2157    LXVL  LXVL_VF
2158  vd __builtin_vec_lxvl (const double *, unsigned int);
2159    LXVL  LXVL_VD
2160
2161[VEC_MADD, vec_madd, __builtin_vec_madd]
2162  vss __builtin_vec_madd (vss, vss, vss);
2163    VMLADDUHM  VMLADDUHM_VSS
2164  vss __builtin_vec_madd (vss, vus, vus);
2165    VMLADDUHM  VMLADDUHM_VSSVUS
2166  vss __builtin_vec_madd (vus, vss, vss);
2167    VMLADDUHM  VMLADDUHM_VUSVSS
2168  vus __builtin_vec_madd (vus, vus, vus);
2169    VMLADDUHM  VMLADDUHM_VUS
2170  vf __builtin_vec_madd (vf, vf, vf);
2171    VMADDFP
2172  vd __builtin_vec_madd (vd, vd, vd);
2173    XVMADDDP
2174
2175[VEC_MADDS, vec_madds, __builtin_vec_madds]
2176  vss __builtin_vec_madds (vss, vss, vss);
2177    VMHADDSHS
2178
2179[VEC_MAX, vec_max, __builtin_vec_max]
2180  vsc __builtin_vec_max (vsc, vsc);
2181    VMAXSB
2182  vuc __builtin_vec_max (vuc, vuc);
2183    VMAXUB
2184  vss __builtin_vec_max (vss, vss);
2185    VMAXSH
2186  vus __builtin_vec_max (vus, vus);
2187    VMAXUH
2188  vsi __builtin_vec_max (vsi, vsi);
2189    VMAXSW
2190  vui __builtin_vec_max (vui, vui);
2191    VMAXUW
2192  vsll __builtin_vec_max (vsll, vsll);
2193    VMAXSD
2194  vull __builtin_vec_max (vull, vull);
2195    VMAXUD
2196  vf __builtin_vec_max (vf, vf);
2197    VMAXFP
2198  vd __builtin_vec_max (vd, vd);
2199    XVMAXDP
2200; The following variants are deprecated.
2201  vsc __builtin_vec_max (vsc, vbc);
2202    VMAXSB  VMAXSB_SB
2203  vsc __builtin_vec_max (vbc, vsc);
2204    VMAXSB  VMAXSB_BS
2205  vuc __builtin_vec_max (vuc, vbc);
2206    VMAXUB  VMAXUB_UB
2207  vuc __builtin_vec_max (vbc, vuc);
2208    VMAXUB  VMAXUB_BU
2209  vss __builtin_vec_max (vss, vbs);
2210    VMAXSH  VMAXSH_SB
2211  vss __builtin_vec_max (vbs, vss);
2212    VMAXSH  VMAXSH_BS
2213  vus __builtin_vec_max (vus, vbs);
2214    VMAXUH  VMAXUH_UB
2215  vus __builtin_vec_max (vbs, vus);
2216    VMAXUH  VMAXUH_BU
2217  vsi __builtin_vec_max (vsi, vbi);
2218    VMAXSW  VMAXSW_SB
2219  vsi __builtin_vec_max (vbi, vsi);
2220    VMAXSW  VMAXSW_BS
2221  vui __builtin_vec_max (vui, vbi);
2222    VMAXUW  VMAXUW_UB
2223  vui __builtin_vec_max (vbi, vui);
2224    VMAXUW  VMAXUW_BU
2225  vsll __builtin_vec_max (vsll, vbll);
2226    VMAXSD  VMAXSD_SB
2227  vsll __builtin_vec_max (vbll, vsll);
2228    VMAXSD  VMAXSD_BS
2229  vull __builtin_vec_max (vull, vbll);
2230    VMAXUD  VMAXUD_UB
2231  vull __builtin_vec_max (vbll, vull);
2232    VMAXUD  VMAXUD_BU
2233
2234[VEC_MERGEE, vec_mergee, __builtin_vec_vmrgew]
2235  vsi __builtin_vec_vmrgew (vsi, vsi);
2236    VMRGEW_V4SI  VMRGEW_VSI
2237  vui __builtin_vec_vmrgew (vui, vui);
2238    VMRGEW_V4SI  VMRGEW_VUI
2239  vbi __builtin_vec_vmrgew (vbi, vbi);
2240    VMRGEW_V4SI  VMRGEW_VBI
2241  vsll __builtin_vec_vmrgew (vsll, vsll);
2242    VMRGEW_V2DI  VMRGEW_VSLL
2243  vull __builtin_vec_vmrgew (vull, vull);
2244    VMRGEW_V2DI  VMRGEW_VULL
2245  vbll __builtin_vec_vmrgew (vbll, vbll);
2246    VMRGEW_V2DI  VMRGEW_VBLL
2247  vf __builtin_vec_vmrgew (vf, vf);
2248    VMRGEW_V4SF
2249  vd __builtin_vec_vmrgew (vd, vd);
2250    VMRGEW_V2DF
2251
2252[VEC_MERGEH, vec_mergeh, __builtin_vec_mergeh]
2253  vbc __builtin_vec_mergeh (vbc, vbc);
2254    VMRGHB  VMRGHB_VBC
2255  vsc __builtin_vec_mergeh (vsc, vsc);
2256    VMRGHB  VMRGHB_VSC
2257  vuc __builtin_vec_mergeh (vuc, vuc);
2258    VMRGHB  VMRGHB_VUC
2259  vbs __builtin_vec_mergeh (vbs, vbs);
2260    VMRGHH  VMRGHH_VBS
2261  vss __builtin_vec_mergeh (vss, vss);
2262    VMRGHH  VMRGHH_VSS
2263  vus __builtin_vec_mergeh (vus, vus);
2264    VMRGHH  VMRGHH_VUS
2265  vp __builtin_vec_mergeh (vp, vp);
2266    VMRGHH  VMRGHH_VP
2267  vbi __builtin_vec_mergeh (vbi, vbi);
2268    VMRGHW  VMRGHW_VBI
2269  vsi __builtin_vec_mergeh (vsi, vsi);
2270    VMRGHW  VMRGHW_VSI
2271  vui __builtin_vec_mergeh (vui, vui);
2272    VMRGHW  VMRGHW_VUI
2273  vbll __builtin_vec_mergeh (vbll, vbll);
2274    VEC_MERGEH_V2DI  VEC_MERGEH_VBLL
2275  vsll __builtin_vec_mergeh (vsll, vsll);
2276    VEC_MERGEH_V2DI  VEC_MERGEH_VSLL
2277  vull __builtin_vec_mergeh (vull, vull);
2278    VEC_MERGEH_V2DI  VEC_MERGEH_VULL
2279  vf __builtin_vec_mergeh (vf, vf);
2280    VMRGHW  VMRGHW_VF
2281  vd __builtin_vec_mergeh (vd, vd);
2282    VEC_MERGEH_V2DF
2283; The following variants are deprecated.
2284  vsll __builtin_vec_mergeh (vsll, vbll);
2285    VEC_MERGEH_V2DI  VEC_MERGEH_VSLL_VBLL
2286  vsll __builtin_vec_mergeh (vbll, vsll);
2287    VEC_MERGEH_V2DI  VEC_MERGEH_VBLL_VSLL
2288  vull __builtin_vec_mergeh (vull, vbll);
2289    VEC_MERGEH_V2DI  VEC_MERGEH_VULL_VBLL
2290  vull __builtin_vec_mergeh (vbll, vull);
2291    VEC_MERGEH_V2DI  VEC_MERGEH_VBLL_VULL
2292
2293[VEC_MERGEL, vec_mergel, __builtin_vec_mergel]
2294  vbc __builtin_vec_mergel (vbc, vbc);
2295    VMRGLB  VMRGLB_VBC
2296  vsc __builtin_vec_mergel (vsc, vsc);
2297    VMRGLB  VMRGLB_VSC
2298  vuc __builtin_vec_mergel (vuc, vuc);
2299    VMRGLB  VMRGLB_VUC
2300  vbs __builtin_vec_mergel (vbs, vbs);
2301    VMRGLH  VMRGLH_VBS
2302  vss __builtin_vec_mergel (vss, vss);
2303    VMRGLH  VMRGLH_VSS
2304  vus __builtin_vec_mergel (vus, vus);
2305    VMRGLH  VMRGLH_VUS
2306  vp __builtin_vec_mergel (vp, vp);
2307    VMRGLH  VMRGLH_VP
2308  vbi __builtin_vec_mergel (vbi, vbi);
2309    VMRGLW  VMRGLW_VBI
2310  vsi __builtin_vec_mergel (vsi, vsi);
2311    VMRGLW  VMRGLW_VSI
2312  vui __builtin_vec_mergel (vui, vui);
2313    VMRGLW  VMRGLW_VUI
2314  vbll __builtin_vec_mergel (vbll, vbll);
2315    VEC_MERGEL_V2DI  VEC_MERGEL_VBLL
2316  vsll __builtin_vec_mergel (vsll, vsll);
2317    VEC_MERGEL_V2DI  VEC_MERGEL_VSLL
2318  vull __builtin_vec_mergel (vull, vull);
2319    VEC_MERGEL_V2DI  VEC_MERGEL_VULL
2320  vf __builtin_vec_mergel (vf, vf);
2321    VMRGLW  VMRGLW_VF
2322  vd __builtin_vec_mergel (vd, vd);
2323    VEC_MERGEL_V2DF
2324; The following variants are deprecated.
2325  vsll __builtin_vec_mergel (vsll, vbll);
2326    VEC_MERGEL_V2DI  VEC_MERGEL_VSLL_VBLL
2327  vsll __builtin_vec_mergel (vbll, vsll);
2328    VEC_MERGEL_V2DI  VEC_MERGEL_VBLL_VSLL
2329  vull __builtin_vec_mergel (vull, vbll);
2330    VEC_MERGEL_V2DI  VEC_MERGEL_VULL_VBLL
2331  vull __builtin_vec_mergel (vbll, vull);
2332    VEC_MERGEL_V2DI  VEC_MERGEL_VBLL_VULL
2333
2334[VEC_MERGEO, vec_mergeo, __builtin_vec_vmrgow]
2335  vsi __builtin_vec_vmrgow (vsi, vsi);
2336    VMRGOW_V4SI  VMRGOW_VSI
2337  vui __builtin_vec_vmrgow (vui, vui);
2338    VMRGOW_V4SI  VMRGOW_VUI
2339  vbi __builtin_vec_vmrgow (vbi, vbi);
2340    VMRGOW_V4SI  VMRGOW_VBI
2341  vsll __builtin_vec_vmrgow (vsll, vsll);
2342    VMRGOW_V2DI  VMRGOW_VSLL
2343  vull __builtin_vec_vmrgow (vull, vull);
2344    VMRGOW_V2DI  VMRGOW_VULL
2345  vbll __builtin_vec_vmrgow (vbll, vbll);
2346    VMRGOW_V2DI  VMRGOW_VBLL
2347  vf __builtin_vec_vmrgow (vf, vf);
2348    VMRGOW_V4SF
2349  vd __builtin_vec_vmrgow (vd, vd);
2350    VMRGOW_V2DF
2351
2352[VEC_MFVSCR, vec_mfvscr, __builtin_vec_mfvscr]
2353  vus __builtin_vec_mfvscr ();
2354    MFVSCR
2355
2356[VEC_MIN, vec_min, __builtin_vec_min]
2357  vsc __builtin_vec_min (vsc, vsc);
2358    VMINSB
2359  vuc __builtin_vec_min (vuc, vuc);
2360    VMINUB
2361  vss __builtin_vec_min (vss, vss);
2362    VMINSH
2363  vus __builtin_vec_min (vus, vus);
2364    VMINUH
2365  vsi __builtin_vec_min (vsi, vsi);
2366    VMINSW
2367  vui __builtin_vec_min (vui, vui);
2368    VMINUW
2369  vsll __builtin_vec_min (vsll, vsll);
2370    VMINSD
2371  vull __builtin_vec_min (vull, vull);
2372    VMINUD
2373  vf __builtin_vec_min (vf, vf);
2374    VMINFP
2375  vd __builtin_vec_min (vd, vd);
2376    XVMINDP
2377; The following variants are deprecated.
2378  vsc __builtin_vec_min (vsc, vbc);
2379    VMINSB  VMINSB_SB
2380  vsc __builtin_vec_min (vbc, vsc);
2381    VMINSB  VMINSB_BS
2382  vuc __builtin_vec_min (vuc, vbc);
2383    VMINUB  VMINUB_UB
2384  vuc __builtin_vec_min (vbc, vuc);
2385    VMINUB  VMINUB_BU
2386  vss __builtin_vec_min (vss, vbs);
2387    VMINSH  VMINSH_SB
2388  vss __builtin_vec_min (vbs, vss);
2389    VMINSH  VMINSH_BS
2390  vus __builtin_vec_min (vus, vbs);
2391    VMINUH  VMINUH_UB
2392  vus __builtin_vec_min (vbs, vus);
2393    VMINUH  VMINUH_BU
2394  vsi __builtin_vec_min (vsi, vbi);
2395    VMINSW  VMINSW_SB
2396  vsi __builtin_vec_min (vbi, vsi);
2397    VMINSW  VMINSW_BS
2398  vui __builtin_vec_min (vui, vbi);
2399    VMINUW  VMINUW_UB
2400  vui __builtin_vec_min (vbi, vui);
2401    VMINUW  VMINUW_BU
2402  vsll __builtin_vec_min (vsll, vbll);
2403    VMINSD  VMINSD_SB
2404  vsll __builtin_vec_min (vbll, vsll);
2405    VMINSD  VMINSD_BS
2406  vull __builtin_vec_min (vull, vbll);
2407    VMINUD  VMINUD_UB
2408  vull __builtin_vec_min (vbll, vull);
2409    VMINUD  VMINUD_BU
2410
2411[VEC_MLADD, vec_mladd, __builtin_vec_mladd]
2412  vss __builtin_vec_mladd (vss, vss, vss);
2413    VMLADDUHM  VMLADDUHM_VSS2
2414  vss __builtin_vec_mladd (vss, vus, vus);
2415    VMLADDUHM  VMLADDUHM_VSSVUS2
2416  vss __builtin_vec_mladd (vus, vss, vss);
2417    VMLADDUHM  VMLADDUHM_VUSVSS2
2418  vus __builtin_vec_mladd (vus, vus, vus);
2419    VMLADDUHM  VMLADDUHM_VUS2
2420
2421[VEC_MOD, vec_mod, __builtin_vec_mod]
2422  vsi __builtin_vec_mod (vsi, vsi);
2423    VMODSW
2424  vui __builtin_vec_mod (vui, vui);
2425    VMODUW
2426  vsll __builtin_vec_mod (vsll, vsll);
2427    VMODSD
2428  vull __builtin_vec_mod (vull, vull);
2429    VMODUD
2430  vsq __builtin_vec_mod (vsq, vsq);
2431    MODS_V1TI
2432  vuq __builtin_vec_mod (vuq, vuq);
2433    MODU_V1TI
2434
2435[VEC_MRADDS, vec_mradds, __builtin_vec_mradds]
2436  vss __builtin_vec_mradds (vss, vss, vss);
2437    VMHRADDSHS
2438
2439[VEC_MSUB, vec_msub, __builtin_vec_msub]
2440  vf __builtin_vec_msub (vf, vf, vf);
2441    XVMSUBSP
2442  vd __builtin_vec_msub (vd, vd, vd);
2443    XVMSUBDP
2444
2445[VEC_MSUM, vec_msum, __builtin_vec_msum]
2446  vui __builtin_vec_msum (vuc, vuc, vui);
2447    VMSUMUBM
2448  vsi __builtin_vec_msum (vsc, vuc, vsi);
2449    VMSUMMBM
2450  vui __builtin_vec_msum (vus, vus, vui);
2451    VMSUMUHM
2452  vsi __builtin_vec_msum (vss, vss, vsi);
2453    VMSUMSHM
2454  vsq __builtin_vec_msum (vsll, vsll, vsq);
2455    VMSUMUDM  VMSUMUDM_S
2456  vuq __builtin_vec_msum (vull, vull, vuq);
2457    VMSUMUDM  VMSUMUDM_U
2458
2459[VEC_MSUMC, vec_msumc, __builtin_vec_msumc]
2460  vuq __builtin_vec_msumc (vull, vull, vuq);
2461    VMSUMCUD
2462
2463[VEC_MSUMS, vec_msums, __builtin_vec_msums]
2464  vui __builtin_vec_msums (vus, vus, vui);
2465    VMSUMUHS
2466  vsi __builtin_vec_msums (vss, vss, vsi);
2467    VMSUMSHS
2468
2469[VEC_MTVSCR, vec_mtvscr, __builtin_vec_mtvscr]
2470  void __builtin_vec_mtvscr (vbc);
2471    MTVSCR  MTVSCR_VBC
2472  void __builtin_vec_mtvscr (vsc);
2473    MTVSCR  MTVSCR_VSC
2474  void __builtin_vec_mtvscr (vuc);
2475    MTVSCR  MTVSCR_VUC
2476  void __builtin_vec_mtvscr (vbs);
2477    MTVSCR  MTVSCR_VBS
2478  void __builtin_vec_mtvscr (vss);
2479    MTVSCR  MTVSCR_VSS
2480  void __builtin_vec_mtvscr (vus);
2481    MTVSCR  MTVSCR_VUS
2482  void __builtin_vec_mtvscr (vp);
2483    MTVSCR  MTVSCR_VP
2484  void __builtin_vec_mtvscr (vbi);
2485    MTVSCR  MTVSCR_VBI
2486  void __builtin_vec_mtvscr (vsi);
2487    MTVSCR  MTVSCR_VSI
2488  void __builtin_vec_mtvscr (vui);
2489    MTVSCR  MTVSCR_VUI
2490
2491; Note that the entries for VEC_MUL are currently ignored.  See rs6000-c.cc:
2492; altivec_resolve_overloaded_builtin, where there is special-case code for
2493; VEC_MUL.  TODO: Is this really necessary?  Investigate.  Seven missing
2494; prototypes here...no corresponding builtins.  Also added "vmulld" in P10
2495; which could be used instead of MUL_V2DI, conditionally?
2496[VEC_MUL, vec_mul, __builtin_vec_mul]
2497  vsll __builtin_vec_mul (vsll, vsll);
2498    MUL_V2DI
2499  vf __builtin_vec_mul (vf, vf);
2500    XVMULSP
2501  vd __builtin_vec_mul (vd, vd);
2502    XVMULDP
2503
2504[VEC_MULE, vec_mule, __builtin_vec_mule]
2505  vss __builtin_vec_mule (vsc, vsc);
2506    VMULESB
2507  vus __builtin_vec_mule (vuc, vuc);
2508    VMULEUB
2509  vsi __builtin_vec_mule (vss, vss);
2510    VMULESH
2511  vui __builtin_vec_mule (vus, vus);
2512    VMULEUH
2513  vsll __builtin_vec_mule (vsi, vsi);
2514    VMULESW
2515  vull __builtin_vec_mule (vui, vui);
2516    VMULEUW
2517  vsq __builtin_vec_mule (vsll, vsll);
2518    VMULESD
2519  vuq __builtin_vec_mule (vull, vull);
2520    VMULEUD
2521
2522[VEC_MULH, vec_mulh, __builtin_vec_mulh]
2523  vsi __builtin_vec_mulh (vsi, vsi);
2524    VMULHSW
2525  vui __builtin_vec_mulh (vui, vui);
2526    VMULHUW
2527  vsll __builtin_vec_mulh (vsll, vsll);
2528    VMULHSD
2529  vull __builtin_vec_mulh (vull, vull);
2530    VMULHUD
2531
2532[VEC_MULO, vec_mulo, __builtin_vec_mulo]
2533  vss __builtin_vec_mulo (vsc, vsc);
2534    VMULOSB
2535  vus __builtin_vec_mulo (vuc, vuc);
2536    VMULOUB
2537  vsi __builtin_vec_mulo (vss, vss);
2538    VMULOSH
2539  vui __builtin_vec_mulo (vus, vus);
2540    VMULOUH
2541  vsll __builtin_vec_mulo (vsi, vsi);
2542    VMULOSW
2543  vull __builtin_vec_mulo (vui, vui);
2544    VMULOUW
2545  vsq __builtin_vec_mulo (vsll, vsll);
2546    VMULOSD
2547  vuq __builtin_vec_mulo (vull, vull);
2548    VMULOUD
2549
2550[VEC_NABS, vec_nabs, __builtin_vec_nabs]
2551  vsc __builtin_vec_nabs (vsc);
2552    NABS_V16QI
2553  vss __builtin_vec_nabs (vss);
2554    NABS_V8HI
2555  vsi __builtin_vec_nabs (vsi);
2556    NABS_V4SI
2557  vsll __builtin_vec_nabs (vsll);
2558    NABS_V2DI
2559  vf __builtin_vec_nabs (vf);
2560    NABS_V4SF
2561  vd __builtin_vec_nabs (vd);
2562    NABS_V2DF
2563
2564[VEC_NAND, vec_nand, __builtin_vec_nand]
2565  vsc __builtin_vec_nand (vsc, vsc);
2566    NAND_V16QI
2567  vuc __builtin_vec_nand (vuc, vuc);
2568    NAND_V16QI_UNS  NAND_VUC
2569  vbc __builtin_vec_nand (vbc, vbc);
2570    NAND_V16QI_UNS  NAND_VBC
2571  vss __builtin_vec_nand (vss, vss);
2572    NAND_V8HI
2573  vus __builtin_vec_nand (vus, vus);
2574    NAND_V8HI_UNS  NAND_VUS
2575  vbs __builtin_vec_nand (vbs, vbs);
2576    NAND_V8HI_UNS  NAND_VBS
2577  vsi __builtin_vec_nand (vsi, vsi);
2578    NAND_V4SI
2579  vui __builtin_vec_nand (vui, vui);
2580    NAND_V4SI_UNS  NAND_VUI
2581  vbi __builtin_vec_nand (vbi, vbi);
2582    NAND_V4SI_UNS  NAND_VBI
2583  vsll __builtin_vec_nand (vsll, vsll);
2584    NAND_V2DI
2585  vull __builtin_vec_nand (vull, vull);
2586    NAND_V2DI_UNS  NAND_VULL
2587  vbll __builtin_vec_nand (vbll, vbll);
2588    NAND_V2DI_UNS  NAND_VBLL
2589  vf __builtin_vec_nand (vf, vf);
2590    NAND_V4SF
2591  vd __builtin_vec_nand (vd, vd);
2592    NAND_V2DF
2593; The following variants are deprecated.
2594  vsc __builtin_vec_nand (vbc, vsc);
2595    NAND_V16QI  NAND_VBC_VSC
2596  vsc __builtin_vec_nand (vsc, vbc);
2597    NAND_V16QI  NAND_VSC_VBC
2598  vuc __builtin_vec_nand (vbc, vuc);
2599    NAND_V16QI_UNS  NAND_VBC_VUC
2600  vuc __builtin_vec_nand (vuc, vbc);
2601    NAND_V16QI_UNS  NAND_VUC_VBC
2602  vss __builtin_vec_nand (vbs, vss);
2603    NAND_V8HI  NAND_VBS_VSS
2604  vss __builtin_vec_nand (vss, vbs);
2605    NAND_V8HI  NAND_VSS_VBS
2606  vus __builtin_vec_nand (vbs, vus);
2607    NAND_V8HI_UNS  NAND_VBS_VUS
2608  vus __builtin_vec_nand (vus, vbs);
2609    NAND_V8HI_UNS  NAND_VUS_VBS
2610  vsi __builtin_vec_nand (vbi, vsi);
2611    NAND_V4SI  NAND_VBI_VSI
2612  vsi __builtin_vec_nand (vsi, vbi);
2613    NAND_V4SI  NAND_VSI_VBI
2614  vui __builtin_vec_nand (vbi, vui);
2615    NAND_V4SI_UNS  NAND_VBI_VUI
2616  vui __builtin_vec_nand (vui, vbi);
2617    NAND_V4SI_UNS  NAND_VUI_VBI
2618  vsll __builtin_vec_nand (vbll, vsll);
2619    NAND_V2DI  NAND_VBLL_VSLL
2620  vsll __builtin_vec_nand (vsll, vbll);
2621    NAND_V2DI  NAND_VSLL_VBLL
2622  vull __builtin_vec_nand (vbll, vull);
2623    NAND_V2DI_UNS  NAND_VBLL_VULL
2624  vull __builtin_vec_nand (vull, vbll);
2625    NAND_V2DI_UNS  NAND_VULL_VBLL
2626
2627[VEC_NCIPHER_BE, vec_ncipher_be, __builtin_vec_vncipher_be]
2628  vuc __builtin_vec_vncipher_be (vuc, vuc);
2629    VNCIPHER_BE
2630
2631[VEC_NCIPHERLAST_BE, vec_ncipherlast_be, __builtin_vec_vncipherlast_be]
2632  vuc __builtin_vec_vncipherlast_be (vuc, vuc);
2633    VNCIPHERLAST_BE
2634
2635[VEC_NEARBYINT, vec_nearbyint, __builtin_vec_nearbyint]
2636  vf __builtin_vec_nearbyint (vf);
2637    XVRSPI  XVRSPI_NBI
2638  vd __builtin_vec_nearbyint (vd);
2639    XVRDPI  XVRDPI_NBI
2640
2641[VEC_NEG, vec_neg, __builtin_vec_neg]
2642  vsc __builtin_vec_neg (vsc);
2643    NEG_V16QI
2644  vss __builtin_vec_neg (vss);
2645    NEG_V8HI
2646  vsi __builtin_vec_neg (vsi);
2647    NEG_V4SI
2648  vsll __builtin_vec_neg (vsll);
2649    NEG_V2DI
2650  vf __builtin_vec_neg (vf);
2651    NEG_V4SF
2652  vd __builtin_vec_neg (vd);
2653    NEG_V2DF
2654
2655[VEC_NMADD, vec_nmadd, __builtin_vec_nmadd]
2656  vf __builtin_vec_nmadd (vf, vf, vf);
2657    XVNMADDSP
2658  vd __builtin_vec_nmadd (vd, vd, vd);
2659    XVNMADDDP
2660
2661[VEC_NMSUB, vec_nmsub, __builtin_vec_nmsub]
2662  vf __builtin_vec_nmsub (vf, vf, vf);
2663    VNMSUBFP
2664  vd __builtin_vec_nmsub (vd, vd, vd);
2665    XVNMSUBDP
2666
2667[VEC_NOR, vec_nor, __builtin_vec_nor]
2668  vsc __builtin_vec_nor (vsc, vsc);
2669    VNOR_V16QI
2670  vuc __builtin_vec_nor (vuc, vuc);
2671    VNOR_V16QI_UNS  VNOR_V16QI_U
2672  vbc __builtin_vec_nor (vbc, vbc);
2673    VNOR_V16QI_UNS  VNOR_V16QI_B
2674  vss __builtin_vec_nor (vss, vss);
2675    VNOR_V8HI
2676  vus __builtin_vec_nor (vus, vus);
2677    VNOR_V8HI_UNS  VNOR_V8HI_U
2678  vbs __builtin_vec_nor (vbs, vbs);
2679    VNOR_V8HI_UNS  VNOR_V8HI_B
2680  vsi __builtin_vec_nor (vsi, vsi);
2681    VNOR_V4SI
2682  vui __builtin_vec_nor (vui, vui);
2683    VNOR_V4SI_UNS  VNOR_V4SI_U
2684  vbi __builtin_vec_nor (vbi, vbi);
2685    VNOR_V4SI_UNS  VNOR_V4SI_B
2686  vsll __builtin_vec_nor (vsll, vsll);
2687    VNOR_V2DI
2688  vull __builtin_vec_nor (vull, vull);
2689    VNOR_V2DI_UNS  VNOR_V2DI_U
2690  vbll __builtin_vec_nor (vbll, vbll);
2691    VNOR_V2DI_UNS  VNOR_V2DI_B
2692  vsq __builtin_vec_nor (vsq, vsq);
2693    VNOR_V1TI  VNOR_V1TI_S
2694  vuq __builtin_vec_nor (vuq, vuq);
2695    VNOR_V1TI_UNS  VNOR_V1TI_U
2696  vf __builtin_vec_nor (vf, vf);
2697    VNOR_V4SF
2698  vd __builtin_vec_nor (vd, vd);
2699    VNOR_V2DF
2700; The following variants are deprecated.
2701  vsll __builtin_vec_nor (vsll, vbll);
2702    VNOR_V2DI  VNOR_VSLL_VBLL
2703  vsll __builtin_vec_nor (vbll, vsll);
2704    VNOR_V2DI  VNOR_VBLL_VSLL
2705  vull __builtin_vec_nor (vull, vbll);
2706    VNOR_V2DI_UNS  VNOR_VULL_VBLL
2707  vull __builtin_vec_nor (vbll, vull);
2708    VNOR_V2DI_UNS  VNOR_VBLL_VULL
2709  vsq __builtin_vec_nor (vsq, vbq);
2710    VNOR_V1TI  VNOR_VSQ_VBQ
2711  vsq __builtin_vec_nor (vbq, vsq);
2712    VNOR_V1TI  VNOR_VBQ_VSQ
2713  vuq __builtin_vec_nor (vuq, vbq);
2714    VNOR_V1TI_UNS  VNOR_VUQ_VBQ
2715  vuq __builtin_vec_nor (vbq, vuq);
2716    VNOR_V1TI_UNS  VNOR_VBQ_VUQ
2717
2718[VEC_OR, vec_or, __builtin_vec_or]
2719  vsc __builtin_vec_or (vsc, vsc);
2720    VOR_V16QI
2721  vuc __builtin_vec_or (vuc, vuc);
2722    VOR_V16QI_UNS  VOR_V16QI_U
2723  vbc __builtin_vec_or (vbc, vbc);
2724    VOR_V16QI_UNS  VOR_V16QI_B
2725  vss __builtin_vec_or (vss, vss);
2726    VOR_V8HI
2727  vus __builtin_vec_or (vus, vus);
2728    VOR_V8HI_UNS  VOR_V8HI_U
2729  vbs __builtin_vec_or (vbs, vbs);
2730    VOR_V8HI_UNS  VOR_V8HI_B
2731  vsi __builtin_vec_or (vsi, vsi);
2732    VOR_V4SI
2733  vui __builtin_vec_or (vui, vui);
2734    VOR_V4SI_UNS  VOR_V4SI_U
2735  vbi __builtin_vec_or (vbi, vbi);
2736    VOR_V4SI_UNS  VOR_V4SI_B
2737  vsll __builtin_vec_or (vsll, vsll);
2738    VOR_V2DI
2739  vull __builtin_vec_or (vull, vull);
2740    VOR_V2DI_UNS  VOR_V2DI_U
2741  vbll __builtin_vec_or (vbll, vbll);
2742    VOR_V2DI_UNS  VOR_V2DI_B
2743  vf __builtin_vec_or (vf, vf);
2744    VOR_V4SF
2745  vd __builtin_vec_or (vd, vd);
2746    VOR_V2DF
2747; The following variants are deprecated.
2748  vsc __builtin_vec_or (vsc, vbc);
2749    VOR_V16QI  VOR_VSC_VBC
2750  vsc __builtin_vec_or (vbc, vsc);
2751    VOR_V16QI  VOR_VBC_VSC
2752  vuc __builtin_vec_or (vuc, vbc);
2753    VOR_V16QI_UNS  VOR_V16QI_UB
2754  vuc __builtin_vec_or (vbc, vuc);
2755    VOR_V16QI_UNS  VOR_V16QI_BU
2756  vss __builtin_vec_or (vss, vbs);
2757    VOR_V8HI  VOR_VSS_VBS
2758  vss __builtin_vec_or (vbs, vss);
2759    VOR_V8HI  VOR_VBS_VSS
2760  vus __builtin_vec_or (vus, vbs);
2761    VOR_V8HI_UNS  VOR_V8HI_UB
2762  vus __builtin_vec_or (vbs, vus);
2763    VOR_V8HI_UNS  VOR_V8HI_BU
2764  vsi __builtin_vec_or (vsi, vbi);
2765    VOR_V4SI  VOR_VSI_VBI
2766  vsi __builtin_vec_or (vbi, vsi);
2767    VOR_V4SI  VOR_VBI_VSI
2768  vui __builtin_vec_or (vui, vbi);
2769    VOR_V4SI_UNS  VOR_V4SI_UB
2770  vui __builtin_vec_or (vbi, vui);
2771    VOR_V4SI_UNS  VOR_V4SI_BU
2772  vsll __builtin_vec_or (vsll, vbll);
2773    VOR_V2DI  VOR_VSLL_VBLL
2774  vsll __builtin_vec_or (vbll, vsll);
2775    VOR_V2DI  VOR_VBLL_VSLL
2776  vull __builtin_vec_or (vull, vbll);
2777    VOR_V2DI_UNS  VOR_V2DI_UB
2778  vull __builtin_vec_or (vbll, vull);
2779    VOR_V2DI_UNS  VOR_V2DI_BU
2780  vf __builtin_vec_or (vf, vbi);
2781    VOR_V4SF  VOR_VF_VBI
2782  vf __builtin_vec_or (vbi, vf);
2783    VOR_V4SF  VOR_VBI_VF
2784  vd __builtin_vec_or (vd, vbll);
2785    VOR_V2DF  VOR_VD_VBLL
2786  vd __builtin_vec_or (vbll, vd);
2787    VOR_V2DF  VOR_VBLL_VD
2788
2789[VEC_ORC, vec_orc, __builtin_vec_orc]
2790  vsc __builtin_vec_orc (vsc, vsc);
2791    ORC_V16QI
2792  vuc __builtin_vec_orc (vuc, vuc);
2793    ORC_V16QI_UNS  ORC_VUC
2794  vbc __builtin_vec_orc (vbc, vbc);
2795    ORC_V16QI_UNS  ORC_VBC
2796  vss __builtin_vec_orc (vss, vss);
2797    ORC_V8HI
2798  vus __builtin_vec_orc (vus, vus);
2799    ORC_V8HI_UNS  ORC_VUS
2800  vbs __builtin_vec_orc (vbs, vbs);
2801    ORC_V8HI_UNS  ORC_VBS
2802  vsi __builtin_vec_orc (vsi, vsi);
2803    ORC_V4SI
2804  vui __builtin_vec_orc (vui, vui);
2805    ORC_V4SI_UNS  ORC_VUI
2806  vbi __builtin_vec_orc (vbi, vbi);
2807    ORC_V4SI_UNS  ORC_VBI
2808  vsll __builtin_vec_orc (vsll, vsll);
2809    ORC_V2DI
2810  vull __builtin_vec_orc (vull, vull);
2811    ORC_V2DI_UNS  ORC_VULL
2812  vbll __builtin_vec_orc (vbll, vbll);
2813    ORC_V2DI_UNS  ORC_VBLL
2814  vf __builtin_vec_orc (vf, vf);
2815    ORC_V4SF
2816  vd __builtin_vec_orc (vd, vd);
2817    ORC_V2DF
2818; The following variants are deprecated.
2819  vsc __builtin_vec_orc (vbc, vsc);
2820    ORC_V16QI  ORC_VBC_VSC
2821  vsc __builtin_vec_orc (vsc, vbc);
2822    ORC_V16QI  ORC_VSC_VBC
2823  vuc __builtin_vec_orc (vbc, vuc);
2824    ORC_V16QI_UNS  ORC_VBC_VUC
2825  vuc __builtin_vec_orc (vuc, vbc);
2826    ORC_V16QI_UNS  ORC_VUC_VBC
2827  vss __builtin_vec_orc (vbs, vss);
2828    ORC_V8HI  ORC_VBS_VSS
2829  vss __builtin_vec_orc (vss, vbs);
2830    ORC_V8HI  ORC_VSS_VBS
2831  vus __builtin_vec_orc (vbs, vus);
2832    ORC_V8HI_UNS  ORC_VBS_VUS
2833  vus __builtin_vec_orc (vus, vbs);
2834    ORC_V8HI_UNS  ORC_VUS_VBS
2835  vsi __builtin_vec_orc (vbi, vsi);
2836    ORC_V4SI  ORC_VBI_VSI
2837  vsi __builtin_vec_orc (vsi, vbi);
2838    ORC_V4SI  ORC_VSI_VBI
2839  vui __builtin_vec_orc (vbi, vui);
2840    ORC_V4SI_UNS  ORC_VBI_VUI
2841  vui __builtin_vec_orc (vui, vbi);
2842    ORC_V4SI_UNS  ORC_VUI_VBI
2843  vsll __builtin_vec_orc (vbll, vsll);
2844    ORC_V2DI  ORC_VBLL_VSLL
2845  vsll __builtin_vec_orc (vsll, vbll);
2846    ORC_V2DI  ORC_VSLL_VBLL
2847  vull __builtin_vec_orc (vbll, vull);
2848    ORC_V2DI_UNS  ORC_VBLL_VULL
2849  vull __builtin_vec_orc (vull, vbll);
2850    ORC_V2DI_UNS  ORC_VULL_VBLL
2851
2852[VEC_PACK, vec_pack, __builtin_vec_pack]
2853  vsc __builtin_vec_pack (vss, vss);
2854    VPKUHUM  VPKUHUM_VSS
2855  vuc __builtin_vec_pack (vus, vus);
2856    VPKUHUM  VPKUHUM_VUS
2857  vbc __builtin_vec_pack (vbs, vbs);
2858    VPKUHUM  VPKUHUM_VBS
2859  vss __builtin_vec_pack (vsi, vsi);
2860    VPKUWUM  VPKUWUM_VSI
2861  vus __builtin_vec_pack (vui, vui);
2862    VPKUWUM  VPKUWUM_VUI
2863  vbs __builtin_vec_pack (vbi, vbi);
2864    VPKUWUM  VPKUWUM_VBI
2865  vsi __builtin_vec_pack (vsll, vsll);
2866    VPKUDUM  VPKUDUM_VSLL
2867  vui __builtin_vec_pack (vull, vull);
2868    VPKUDUM  VPKUDUM_VULL
2869  vbi __builtin_vec_pack (vbll, vbll);
2870    VPKUDUM  VPKUDUM_VBLL
2871  vf __builtin_vec_pack (vd, vd);
2872    FLOAT2_V2DF FLOAT2_V2DF_PACK
2873
2874[VEC_PACKPX, vec_packpx, __builtin_vec_packpx]
2875  vp __builtin_vec_packpx (vui, vui);
2876    VPKPX
2877
2878[VEC_PACKS, vec_packs, __builtin_vec_packs]
2879  vuc __builtin_vec_packs (vus, vus);
2880    VPKUHUS  VPKUHUS_S
2881  vsc __builtin_vec_packs (vss, vss);
2882    VPKSHSS
2883  vus __builtin_vec_packs (vui, vui);
2884    VPKUWUS  VPKUWUS_S
2885  vss __builtin_vec_packs (vsi, vsi);
2886    VPKSWSS
2887  vui __builtin_vec_packs (vull, vull);
2888    VPKUDUS  VPKUDUS_S
2889  vsi __builtin_vec_packs (vsll, vsll);
2890    VPKSDSS
2891
2892[VEC_PACKSU, vec_packsu, __builtin_vec_packsu]
2893  vuc __builtin_vec_packsu (vus, vus);
2894    VPKUHUS  VPKUHUS_U
2895  vuc __builtin_vec_packsu (vss, vss);
2896    VPKSHUS
2897  vus __builtin_vec_packsu (vui, vui);
2898    VPKUWUS  VPKUWUS_U
2899  vus __builtin_vec_packsu (vsi, vsi);
2900    VPKSWUS
2901  vui __builtin_vec_packsu (vull, vull);
2902    VPKUDUS  VPKUDUS_U
2903  vui __builtin_vec_packsu (vsll, vsll);
2904    VPKSDUS
2905
2906[VEC_PDEP, vec_pdep, __builtin_vec_vpdepd]
2907  vull __builtin_vec_vpdepd (vull, vull);
2908    VPDEPD
2909
2910[VEC_PERM, vec_perm, __builtin_vec_perm]
2911  vsc __builtin_vec_perm (vsc, vsc, vuc);
2912    VPERM_16QI
2913  vuc __builtin_vec_perm (vuc, vuc, vuc);
2914    VPERM_16QI_UNS VPERM_16QI_VUC
2915  vbc __builtin_vec_perm (vbc, vbc, vuc);
2916    VPERM_16QI_UNS VPERM_16QI_VBC
2917  vss __builtin_vec_perm (vss, vss, vuc);
2918    VPERM_8HI
2919  vus __builtin_vec_perm (vus, vus, vuc);
2920    VPERM_8HI_UNS VPERM_8HI_VUS
2921  vbs __builtin_vec_perm (vbs, vbs, vuc);
2922    VPERM_8HI_UNS VPERM_8HI_VBS
2923  vp __builtin_vec_perm (vp, vp, vuc);
2924    VPERM_8HI_UNS VPERM_8HI_VP
2925  vsi __builtin_vec_perm (vsi, vsi, vuc);
2926    VPERM_4SI
2927  vui __builtin_vec_perm (vui, vui, vuc);
2928    VPERM_4SI_UNS VPERM_4SI_VUI
2929  vbi __builtin_vec_perm (vbi, vbi, vuc);
2930    VPERM_4SI_UNS VPERM_4SI_VBI
2931  vsll __builtin_vec_perm (vsll, vsll, vuc);
2932    VPERM_2DI
2933  vull __builtin_vec_perm (vull, vull, vuc);
2934    VPERM_2DI_UNS VPERM_2DI_VULL
2935  vbll __builtin_vec_perm (vbll, vbll, vuc);
2936    VPERM_2DI_UNS VPERM_2DI_VBLL
2937  vf __builtin_vec_perm (vf, vf, vuc);
2938    VPERM_4SF
2939  vd __builtin_vec_perm (vd, vd, vuc);
2940    VPERM_2DF
2941  vsq __builtin_vec_perm (vsq, vsq, vuc);
2942    VPERM_1TI
2943  vuq __builtin_vec_perm (vuq, vuq, vuc);
2944    VPERM_1TI_UNS
2945; The following variants are deprecated.
2946  vsc __builtin_vec_perm (vsc, vuc, vuc);
2947    VPERM_16QI  VPERM_VSC_VUC_VUC
2948  vbc __builtin_vec_perm (vbc, vbc, vbc);
2949    VPERM_16QI  VPERM_VBC_VBC_VBC
2950
2951[VEC_PERMX, vec_permx, __builtin_vec_xxpermx]
2952  vsc __builtin_vec_xxpermx (vsc, vsc, vuc, const int);
2953    XXPERMX_UV2DI  XXPERMX_VSC
2954  vuc __builtin_vec_xxpermx (vuc, vuc, vuc, const int);
2955    XXPERMX_UV2DI  XXPERMX_VUC
2956  vss __builtin_vec_xxpermx (vss, vss, vuc, const int);
2957    XXPERMX_UV2DI  XXPERMX_VSS
2958  vus __builtin_vec_xxpermx (vus, vus, vuc, const int);
2959    XXPERMX_UV2DI  XXPERMX_VUS
2960  vsi __builtin_vec_xxpermx (vsi, vsi, vuc, const int);
2961    XXPERMX_UV2DI  XXPERMX_VSI
2962  vui __builtin_vec_xxpermx (vui, vui, vuc, const int);
2963    XXPERMX_UV2DI  XXPERMX_VUI
2964  vsll __builtin_vec_xxpermx (vsll, vsll, vuc, const int);
2965    XXPERMX_UV2DI  XXPERMX_VSLL
2966  vull __builtin_vec_xxpermx (vull, vull, vuc, const int);
2967    XXPERMX_UV2DI  XXPERMX_VULL
2968  vf __builtin_vec_xxpermx (vf, vf, vuc, const int);
2969    XXPERMX_UV2DI  XXPERMX_VF
2970  vd __builtin_vec_xxpermx (vd, vd, vuc, const int);
2971    XXPERMX_UV2DI  XXPERMX_VD
2972
2973[VEC_PERMXOR, vec_permxor, __builtin_vec_vpermxor]
2974  vsc __builtin_vec_vpermxor (vsc, vsc, vsc);
2975    VPERMXOR  VPERMXOR_VSC
2976  vuc __builtin_vec_vpermxor (vuc, vuc, vuc);
2977    VPERMXOR  VPERMXOR_VUC
2978  vbc __builtin_vec_vpermxor (vbc, vbc, vbc);
2979    VPERMXOR  VPERMXOR_VBC
2980
2981[VEC_PEXT, vec_pext, __builtin_vec_vpextd]
2982  vull __builtin_vec_vpextd (vull, vull);
2983    VPEXTD
2984
2985[VEC_PMSUM, vec_pmsum_be, __builtin_vec_vpmsum]
2986  vus __builtin_vec_vpmsum (vuc, vuc);
2987    VPMSUMB  VPMSUMB_V
2988  vui __builtin_vec_vpmsum (vus, vus);
2989    VPMSUMH  VPMSUMH_V
2990  vull __builtin_vec_vpmsum (vui, vui);
2991    VPMSUMW  VPMSUMW_V
2992  vuq __builtin_vec_vpmsum (vull, vull);
2993    VPMSUMD  VPMSUMD_V
2994
2995[VEC_POPCNT, vec_popcnt, __builtin_vec_vpopcntu]
2996  vuc __builtin_vec_vpopcntu (vsc);
2997    VPOPCNTB
2998  vuc __builtin_vec_vpopcntu (vuc);
2999    VPOPCNTUB
3000  vus __builtin_vec_vpopcntu (vss);
3001    VPOPCNTH
3002  vus __builtin_vec_vpopcntu (vus);
3003    VPOPCNTUH
3004  vui __builtin_vec_vpopcntu (vsi);
3005    VPOPCNTW
3006  vui __builtin_vec_vpopcntu (vui);
3007    VPOPCNTUW
3008  vull __builtin_vec_vpopcntu (vsll);
3009    VPOPCNTD
3010  vull __builtin_vec_vpopcntu (vull);
3011    VPOPCNTUD
3012
3013[VEC_PARITY_LSBB, vec_parity_lsbb, __builtin_vec_vparity_lsbb]
3014  vui __builtin_vec_vparity_lsbb (vsi);
3015    VPRTYBW  VPRTYBW_S
3016  vui __builtin_vec_vparity_lsbb (vui);
3017    VPRTYBW  VPRTYBW_U
3018  vull __builtin_vec_vparity_lsbb (vsll);
3019    VPRTYBD  VPRTYBD_S
3020  vull __builtin_vec_vparity_lsbb (vull);
3021    VPRTYBD  VPRTYBD_U
3022  vuq __builtin_vec_vparity_lsbb (vsq);
3023    VPRTYBQ  VPRTYBQ_S
3024  vuq __builtin_vec_vparity_lsbb (vuq);
3025    VPRTYBQ  VPRTYBQ_U
3026
3027; There are no actual builtins for vec_promote.  There is special handling for
3028; this in altivec_resolve_overloaded_builtin in rs6000-c.cc, where the call
3029; is replaced by a constructor.  The single overload here causes
3030; __builtin_vec_promote to be registered with the front end so that can happen.
3031[VEC_PROMOTE, vec_promote, __builtin_vec_promote]
3032  vsi __builtin_vec_promote (vsi, const int);
3033    ABS_V4SI PROMOTE_FAKERY
3034
3035[VEC_RE, vec_re, __builtin_vec_re]
3036  vf __builtin_vec_re (vf);
3037    VREFP
3038  vd __builtin_vec_re (vd);
3039    XVREDP
3040
3041[VEC_RECIP, vec_recipdiv, __builtin_vec_recipdiv]
3042  vf __builtin_vec_recipdiv (vf, vf);
3043    RECIP_V4SF
3044  vd __builtin_vec_recipdiv (vd, vd);
3045    RECIP_V2DF
3046
3047[VEC_REPLACE_ELT, vec_replace_elt, __builtin_vec_replace_elt]
3048  vui __builtin_vec_replace_elt (vui, unsigned int, const int);
3049    VREPLACE_ELT_UV4SI
3050  vsi __builtin_vec_replace_elt (vsi, signed int, const int);
3051    VREPLACE_ELT_V4SI
3052  vull __builtin_vec_replace_elt (vull, unsigned long long, const int);
3053    VREPLACE_ELT_UV2DI
3054  vsll __builtin_vec_replace_elt (vsll, signed long long, const int);
3055    VREPLACE_ELT_V2DI
3056  vf __builtin_vec_replace_elt (vf, float, const int);
3057    VREPLACE_ELT_V4SF
3058  vd __builtin_vec_replace_elt (vd, double, const int);
3059    VREPLACE_ELT_V2DF
3060
3061[VEC_REPLACE_UN, vec_replace_unaligned, __builtin_vec_replace_un]
3062  vuc __builtin_vec_replace_un (vui, unsigned int, const int);
3063    VREPLACE_UN_UV4SI
3064  vuc __builtin_vec_replace_un (vsi, signed int, const int);
3065    VREPLACE_UN_V4SI
3066  vuc __builtin_vec_replace_un (vull, unsigned long long, const int);
3067    VREPLACE_UN_UV2DI
3068  vuc __builtin_vec_replace_un (vsll, signed long long, const int);
3069    VREPLACE_UN_V2DI
3070  vuc __builtin_vec_replace_un (vf, float, const int);
3071    VREPLACE_UN_V4SF
3072  vuc __builtin_vec_replace_un (vd, double, const int);
3073    VREPLACE_UN_V2DF
3074
3075[VEC_REVB, vec_revb, __builtin_vec_revb]
3076  vss __builtin_vec_revb (vss);
3077    REVB_V8HI  REVB_VSS
3078  vus __builtin_vec_revb (vus);
3079    REVB_V8HI  REVB_VUS
3080  vsi __builtin_vec_revb (vsi);
3081    REVB_V4SI  REVB_VSI
3082  vui __builtin_vec_revb (vui);
3083    REVB_V4SI  REVB_VUI
3084  vsll __builtin_vec_revb (vsll);
3085    REVB_V2DI  REVB_VSLL
3086  vull __builtin_vec_revb (vull);
3087    REVB_V2DI  REVB_VULL
3088  vsq __builtin_vec_revb (vsq);
3089    REVB_V1TI  REVB_VSQ
3090  vuq __builtin_vec_revb (vuq);
3091    REVB_V1TI  REVB_VUQ
3092  vf __builtin_vec_revb (vf);
3093    REVB_V4SF
3094  vd __builtin_vec_revb (vd);
3095    REVB_V2DF
3096; The following variants are deprecated.
3097  vsc __builtin_vec_revb (vsc);
3098    REVB_V16QI  REVB_VSC
3099  vuc __builtin_vec_revb (vuc);
3100    REVB_V16QI  REVB_VUC
3101  vbc __builtin_vec_revb (vbc);
3102    REVB_V16QI  REVB_VBC
3103  vbs __builtin_vec_revb (vbs);
3104    REVB_V8HI  REVB_VBS
3105  vbi __builtin_vec_revb (vbi);
3106    REVB_V4SI  REVB_VBI
3107  vbll __builtin_vec_revb (vbll);
3108    REVB_V2DI  REVB_VBLL
3109
3110[VEC_REVE, vec_reve, __builtin_vec_vreve]
3111  vsc __builtin_vec_vreve (vsc);
3112    VREVE_V16QI  VREVE_VSC
3113  vuc __builtin_vec_vreve (vuc);
3114    VREVE_V16QI  VREVE_VUC
3115  vbc __builtin_vec_vreve (vbc);
3116    VREVE_V16QI  VREVE_VBC
3117  vss __builtin_vec_vreve (vss);
3118    VREVE_V8HI  VREVE_VSS
3119  vus __builtin_vec_vreve (vus);
3120    VREVE_V8HI  VREVE_VUS
3121  vbs __builtin_vec_vreve (vbs);
3122    VREVE_V8HI  VREVE_VBS
3123  vsi __builtin_vec_vreve (vsi);
3124    VREVE_V4SI  VREVE_VSI
3125  vui __builtin_vec_vreve (vui);
3126    VREVE_V4SI  VREVE_VUI
3127  vbi __builtin_vec_vreve (vbi);
3128    VREVE_V4SI  VREVE_VBI
3129  vsll __builtin_vec_vreve (vsll);
3130    VREVE_V2DI  VREVE_VSLL
3131  vull __builtin_vec_vreve (vull);
3132    VREVE_V2DI  VREVE_VULL
3133  vbll __builtin_vec_vreve (vbll);
3134    VREVE_V2DI  VREVE_VBLL
3135  vf __builtin_vec_vreve (vf);
3136    VREVE_V4SF
3137  vd __builtin_vec_vreve (vd);
3138    VREVE_V2DF
3139
3140[VEC_RINT, vec_rint, __builtin_vec_rint]
3141  vf __builtin_vec_rint (vf);
3142    XVRSPIC
3143  vd __builtin_vec_rint (vd);
3144    XVRDPIC
3145
3146[VEC_RL, vec_rl, __builtin_vec_rl]
3147  vsc __builtin_vec_rl (vsc, vuc);
3148    VRLB  VRLB_VSC
3149  vuc __builtin_vec_rl (vuc, vuc);
3150    VRLB  VRLB_VUC
3151  vss __builtin_vec_rl (vss, vus);
3152    VRLH  VRLH_VSS
3153  vus __builtin_vec_rl (vus, vus);
3154    VRLH  VRLH_VUS
3155  vsi __builtin_vec_rl (vsi, vui);
3156    VRLW  VRLW_VSI
3157  vui __builtin_vec_rl (vui, vui);
3158    VRLW  VRLW_VUI
3159  vsll __builtin_vec_rl (vsll, vull);
3160    VRLD  VRLD_VSLL
3161  vull __builtin_vec_rl (vull, vull);
3162    VRLD  VRLD_VULL
3163  vsq __builtin_vec_rl (vsq, vuq);
3164    VRLQ  VRLQ_VSQ
3165  vuq __builtin_vec_rl (vuq, vuq);
3166    VRLQ  VRLQ_VUQ
3167
3168[VEC_RLMI, vec_rlmi, __builtin_vec_rlmi]
3169  vui __builtin_vec_rlmi (vui, vui, vui);
3170    VRLWMI
3171  vull __builtin_vec_rlmi (vull, vull, vull);
3172    VRLDMI
3173  vsq __builtin_vec_rlmi (vsq, vsq, vuq);
3174    VRLQMI  VRLQMI_VSQ
3175  vuq __builtin_vec_rlmi (vuq, vuq, vuq);
3176    VRLQMI  VRLQMI_VUQ
3177
3178[VEC_RLNM, vec_vrlnm, __builtin_vec_rlnm]
3179  vui __builtin_vec_rlnm (vui, vui);
3180    VRLWNM
3181  vull __builtin_vec_rlnm (vull, vull);
3182    VRLDNM
3183  vsq __builtin_vec_rlnm (vsq, vuq);
3184    VRLQNM  VRLQNM_VSQ
3185  vuq __builtin_vec_rlnm (vuq, vuq);
3186    VRLQNM  VRLQNM_VUQ
3187
3188[VEC_ROUND, vec_round, __builtin_vec_round]
3189  vf __builtin_vec_round (vf);
3190    VRFIN
3191  vd __builtin_vec_round (vd);
3192    XVRDPI
3193
3194[VEC_RSQRT, vec_rsqrt, __builtin_vec_rsqrt]
3195  vf __builtin_vec_rsqrt (vf);
3196    RSQRT_4SF
3197  vd __builtin_vec_rsqrt (vd);
3198    RSQRT_2DF
3199
3200[VEC_RSQRTE, vec_rsqrte, __builtin_vec_rsqrte]
3201  vf __builtin_vec_rsqrte (vf);
3202    VRSQRTEFP
3203  vd __builtin_vec_rsqrte (vd);
3204    XVRSQRTEDP
3205
3206[VEC_SBOX_BE, vec_sbox_be, __builtin_vec_sbox_be]
3207  vuc __builtin_vec_sbox_be (vuc);
3208    VSBOX_BE
3209
3210[VEC_SEL, vec_sel, __builtin_vec_sel]
3211  vsc __builtin_vec_sel (vsc, vsc, vbc);
3212    VSEL_16QI  VSEL_16QI_B
3213  vsc __builtin_vec_sel (vsc, vsc, vuc);
3214    VSEL_16QI  VSEL_16QI_U
3215  vuc __builtin_vec_sel (vuc, vuc, vbc);
3216    VSEL_16QI_UNS  VSEL_16QI_UB
3217  vuc __builtin_vec_sel (vuc, vuc, vuc);
3218    VSEL_16QI_UNS  VSEL_16QI_UU
3219  vbc __builtin_vec_sel (vbc, vbc, vbc);
3220    VSEL_16QI_UNS  VSEL_16QI_BB
3221  vbc __builtin_vec_sel (vbc, vbc, vuc);
3222    VSEL_16QI_UNS  VSEL_16QI_BU
3223  vss __builtin_vec_sel (vss, vss, vbs);
3224    VSEL_8HI  VSEL_8HI_B
3225  vss __builtin_vec_sel (vss, vss, vus);
3226    VSEL_8HI  VSEL_8HI_U
3227  vus __builtin_vec_sel (vus, vus, vbs);
3228    VSEL_8HI_UNS  VSEL_8HI_UB
3229  vus __builtin_vec_sel (vus, vus, vus);
3230    VSEL_8HI_UNS  VSEL_8HI_UU
3231  vbs __builtin_vec_sel (vbs, vbs, vbs);
3232    VSEL_8HI_UNS  VSEL_8HI_BB
3233  vbs __builtin_vec_sel (vbs, vbs, vus);
3234    VSEL_8HI_UNS  VSEL_8HI_BU
3235  vsi __builtin_vec_sel (vsi, vsi, vbi);
3236    VSEL_4SI  VSEL_4SI_B
3237  vsi __builtin_vec_sel (vsi, vsi, vui);
3238    VSEL_4SI  VSEL_4SI_U
3239  vui __builtin_vec_sel (vui, vui, vbi);
3240    VSEL_4SI_UNS  VSEL_4SI_UB
3241  vui __builtin_vec_sel (vui, vui, vui);
3242    VSEL_4SI_UNS  VSEL_4SI_UU
3243  vbi __builtin_vec_sel (vbi, vbi, vbi);
3244    VSEL_4SI_UNS  VSEL_4SI_BB
3245  vbi __builtin_vec_sel (vbi, vbi, vui);
3246    VSEL_4SI_UNS  VSEL_4SI_BU
3247  vsll __builtin_vec_sel (vsll, vsll, vbll);
3248    VSEL_2DI_B  VSEL_2DI_B
3249  vsll __builtin_vec_sel (vsll, vsll, vull);
3250    VSEL_2DI_B  VSEL_2DI_U
3251  vull __builtin_vec_sel (vull, vull, vbll);
3252    VSEL_2DI_UNS  VSEL_2DI_UB
3253  vull __builtin_vec_sel (vull, vull, vull);
3254    VSEL_2DI_UNS  VSEL_2DI_UU
3255  vbll __builtin_vec_sel (vbll, vbll, vbll);
3256    VSEL_2DI_UNS  VSEL_2DI_BB
3257  vbll __builtin_vec_sel (vbll, vbll, vull);
3258    VSEL_2DI_UNS  VSEL_2DI_BU
3259  vf __builtin_vec_sel (vf, vf, vbi);
3260    VSEL_4SF  VSEL_4SF_B
3261  vf __builtin_vec_sel (vf, vf, vui);
3262    VSEL_4SF  VSEL_4SF_U
3263  vd __builtin_vec_sel (vd, vd, vbll);
3264    VSEL_2DF  VSEL_2DF_B
3265  vd __builtin_vec_sel (vd, vd, vull);
3266    VSEL_2DF  VSEL_2DF_U
3267; The following variants are deprecated.
3268  vsll __builtin_vec_sel (vsll, vsll, vsll);
3269    VSEL_2DI_B  VSEL_2DI_S
3270  vull __builtin_vec_sel (vull, vull, vsll);
3271    VSEL_2DI_UNS  VSEL_2DI_US
3272  vf __builtin_vec_sel (vf, vf, vf);
3273    VSEL_4SF  VSEL_4SF_F
3274  vf __builtin_vec_sel (vf, vf, vsi);
3275    VSEL_4SF  VSEL_4SF_S
3276  vd __builtin_vec_sel (vd, vd, vsll);
3277    VSEL_2DF  VSEL_2DF_S
3278  vd __builtin_vec_sel (vd, vd, vd);
3279    VSEL_2DF  VSEL_2DF_D
3280
3281[VEC_SHASIGMA_BE, vec_shasigma_be, __builtin_crypto_vshasigma]
3282  vui __builtin_crypto_vshasigma (vui, const int, const int);
3283    VSHASIGMAW
3284  vull __builtin_crypto_vshasigma (vull, const int, const int);
3285    VSHASIGMAD
3286
3287[VEC_SIGNED, vec_signed, __builtin_vec_vsigned]
3288  vsi __builtin_vec_vsigned (vf);
3289    VEC_VSIGNED_V4SF
3290  vsll __builtin_vec_vsigned (vd);
3291    VEC_VSIGNED_V2DF
3292
3293[VEC_SIGNED2, vec_signed2, __builtin_vec_vsigned2]
3294  vsi __builtin_vec_vsigned2 (vd, vd);
3295    VEC_VSIGNED2_V2DF
3296
3297[VEC_SIGNEDE, vec_signede, __builtin_vec_vsignede]
3298  vsi __builtin_vec_vsignede (vd);
3299    VEC_VSIGNEDE_V2DF
3300
3301[VEC_SIGNEDO, vec_signedo, __builtin_vec_vsignedo]
3302  vsi __builtin_vec_vsignedo (vd);
3303    VEC_VSIGNEDO_V2DF
3304
3305[VEC_SIGNEXTI, vec_signexti, __builtin_vec_signexti]
3306  vsi __builtin_vec_signexti (vsc);
3307    VSIGNEXTSB2W
3308  vsi __builtin_vec_signexti (vss);
3309    VSIGNEXTSH2W
3310
3311[VEC_SIGNEXTLL, vec_signextll, __builtin_vec_signextll]
3312  vsll __builtin_vec_signextll (vsc);
3313    VSIGNEXTSB2D
3314  vsll __builtin_vec_signextll (vss);
3315    VSIGNEXTSH2D
3316  vsll __builtin_vec_signextll (vsi);
3317    VSIGNEXTSW2D
3318
3319[VEC_SIGNEXTQ, vec_signextq, __builtin_vec_signextq]
3320  vsq __builtin_vec_signextq (vsll);
3321    VSIGNEXTSD2Q
3322
3323[VEC_SL, vec_sl, __builtin_vec_sl]
3324  vsc __builtin_vec_sl (vsc, vuc);
3325    VSLB  VSLB_VSC
3326  vuc __builtin_vec_sl (vuc, vuc);
3327    VSLB  VSLB_VUC
3328  vss __builtin_vec_sl (vss, vus);
3329    VSLH  VSLH_VSS
3330  vus __builtin_vec_sl (vus, vus);
3331    VSLH  VSLH_VUS
3332  vsi __builtin_vec_sl (vsi, vui);
3333    VSLW  VSLW_VSI
3334  vui __builtin_vec_sl (vui, vui);
3335    VSLW  VSLW_VUI
3336  vsll __builtin_vec_sl (vsll, vull);
3337    VSLD  VSLD_VSLL
3338  vull __builtin_vec_sl (vull, vull);
3339    VSLD  VSLD_VULL
3340  vsq __builtin_vec_sl (vsq, vuq);
3341    VSLQ  VSLQ_VSQ
3342  vuq __builtin_vec_sl (vuq, vuq);
3343    VSLQ  VSLQ_VUQ
3344
3345[VEC_SLD, vec_sld, __builtin_vec_sld]
3346  vsc __builtin_vec_sld (vsc, vsc, const int);
3347    VSLDOI_16QI  VSLDOI_VSC
3348  vbc __builtin_vec_sld (vbc, vbc, const int);
3349    VSLDOI_16QI  VSLDOI_VBC
3350  vuc __builtin_vec_sld (vuc, vuc, const int);
3351    VSLDOI_16QI  VSLDOI_VUC
3352  vss __builtin_vec_sld (vss, vss, const int);
3353    VSLDOI_8HI  VSLDOI_VSS
3354  vbs __builtin_vec_sld (vbs, vbs, const int);
3355    VSLDOI_8HI  VSLDOI_VBS
3356  vus __builtin_vec_sld (vus, vus, const int);
3357    VSLDOI_8HI  VSLDOI_VUS
3358  vp __builtin_vec_sld (vp, vp, const int);
3359    VSLDOI_8HI  VSLDOI_VP
3360  vsi __builtin_vec_sld (vsi, vsi, const int);
3361    VSLDOI_4SI  VSLDOI_VSI
3362  vbi __builtin_vec_sld (vbi, vbi, const int);
3363    VSLDOI_4SI  VSLDOI_VBI
3364  vui __builtin_vec_sld (vui, vui, const int);
3365    VSLDOI_4SI  VSLDOI_VUI
3366  vsll __builtin_vec_sld (vsll, vsll, const int);
3367    VSLDOI_2DI  VSLDOI_VSLL
3368  vbll __builtin_vec_sld (vbll, vbll, const int);
3369    VSLDOI_2DI  VSLDOI_VBLL
3370  vull __builtin_vec_sld (vull, vull, const int);
3371    VSLDOI_2DI  VSLDOI_VULL
3372  vf __builtin_vec_sld (vf, vf, const int);
3373    VSLDOI_4SF
3374  vd __builtin_vec_sld (vd, vd, const int);
3375    VSLDOI_2DF
3376
3377[VEC_SLDB, vec_sldb, __builtin_vec_sldb]
3378  vsc __builtin_vec_sldb (vsc, vsc, const int);
3379    VSLDB_V16QI  VSLDB_VSC
3380  vuc __builtin_vec_sldb (vuc, vuc, const int);
3381    VSLDB_V16QI  VSLDB_VUC
3382  vss __builtin_vec_sldb (vss, vss, const int);
3383    VSLDB_V8HI  VSLDB_VSS
3384  vus __builtin_vec_sldb (vus, vus, const int);
3385    VSLDB_V8HI  VSLDB_VUS
3386  vsi __builtin_vec_sldb (vsi, vsi, const int);
3387    VSLDB_V4SI  VSLDB_VSI
3388  vui __builtin_vec_sldb (vui, vui, const int);
3389    VSLDB_V4SI  VSLDB_VUI
3390  vsll __builtin_vec_sldb (vsll, vsll, const int);
3391    VSLDB_V2DI  VSLDB_VSLL
3392  vull __builtin_vec_sldb (vull, vull, const int);
3393    VSLDB_V2DI  VSLDB_VULL
3394
3395[VEC_SLDW, vec_sldw, __builtin_vec_sldw]
3396  vsc __builtin_vec_sldw (vsc, vsc, const int);
3397    XXSLDWI_16QI  XXSLDWI_VSC
3398  vuc __builtin_vec_sldw (vuc, vuc, const int);
3399    XXSLDWI_16QI  XXSLDWI_VUC
3400  vss __builtin_vec_sldw (vss, vss, const int);
3401    XXSLDWI_8HI  XXSLDWI_VSS
3402  vus __builtin_vec_sldw (vus, vus, const int);
3403    XXSLDWI_8HI  XXSLDWI_VUS
3404  vsi __builtin_vec_sldw (vsi, vsi, const int);
3405    XXSLDWI_4SI  XXSLDWI_VSI
3406  vui __builtin_vec_sldw (vui, vui, const int);
3407    XXSLDWI_4SI  XXSLDWI_VUI
3408  vsll __builtin_vec_sldw (vsll, vsll, const int);
3409    XXSLDWI_2DI  XXSLDWI_VSLL
3410  vull __builtin_vec_sldw (vull, vull, const int);
3411    XXSLDWI_2DI  XXSLDWI_VULL
3412  vf __builtin_vec_sldw (vf, vf, const int);
3413    XXSLDWI_4SF  XXSLDWI_VF
3414  vd __builtin_vec_sldw (vd, vd, const int);
3415    XXSLDWI_2DF  XXSLDWI_VD
3416
3417[VEC_SLL, vec_sll, __builtin_vec_sll]
3418  vsc __builtin_vec_sll (vsc, vuc);
3419    VSL  VSL_VSC
3420  vuc __builtin_vec_sll (vuc, vuc);
3421    VSL  VSL_VUC
3422  vss __builtin_vec_sll (vss, vuc);
3423    VSL  VSL_VSS
3424  vus __builtin_vec_sll (vus, vuc);
3425    VSL  VSL_VUS
3426  vp __builtin_vec_sll (vp, vuc);
3427    VSL  VSL_VP
3428  vsi __builtin_vec_sll (vsi, vuc);
3429    VSL  VSL_VSI
3430  vui __builtin_vec_sll (vui, vuc);
3431    VSL  VSL_VUI
3432  vsll __builtin_vec_sll (vsll, vuc);
3433    VSL  VSL_VSLL
3434  vull __builtin_vec_sll (vull, vuc);
3435    VSL  VSL_VULL
3436; The following variants are deprecated.
3437  vsc __builtin_vec_sll (vsc, vus);
3438    VSL  VSL_VSC_VUS
3439  vsc __builtin_vec_sll (vsc, vui);
3440    VSL  VSL_VSC_VUI
3441  vuc __builtin_vec_sll (vuc, vus);
3442    VSL  VSL_VUC_VUS
3443  vuc __builtin_vec_sll (vuc, vui);
3444    VSL  VSL_VUC_VUI
3445  vbc __builtin_vec_sll (vbc, vuc);
3446    VSL  VSL_VBC_VUC
3447  vbc __builtin_vec_sll (vbc, vus);
3448    VSL  VSL_VBC_VUS
3449  vbc __builtin_vec_sll (vbc, vui);
3450    VSL  VSL_VBC_VUI
3451  vss __builtin_vec_sll (vss, vus);
3452    VSL  VSL_VSS_VUS
3453  vss __builtin_vec_sll (vss, vui);
3454    VSL  VSL_VSS_VUI
3455  vus __builtin_vec_sll (vus, vus);
3456    VSL  VSL_VUS_VUS
3457  vus __builtin_vec_sll (vus, vui);
3458    VSL  VSL_VUS_VUI
3459  vbs __builtin_vec_sll (vbs, vuc);
3460    VSL  VSL_VBS_VUC
3461  vbs __builtin_vec_sll (vbs, vus);
3462    VSL  VSL_VBS_VUS
3463  vbs __builtin_vec_sll (vbs, vui);
3464    VSL  VSL_VBS_VUI
3465  vp __builtin_vec_sll (vp, vus);
3466    VSL  VSL_VP_VUS
3467  vp __builtin_vec_sll (vp, vui);
3468    VSL  VSL_VP_VUI
3469  vsi __builtin_vec_sll (vsi, vus);
3470    VSL  VSL_VSI_VUS
3471  vsi __builtin_vec_sll (vsi, vui);
3472    VSL  VSL_VSI_VUI
3473  vui __builtin_vec_sll (vui, vus);
3474    VSL  VSL_VUI_VUS
3475  vui __builtin_vec_sll (vui, vui);
3476    VSL  VSL_VUI_VUI
3477  vbi __builtin_vec_sll (vbi, vuc);
3478    VSL  VSL_VBI_VUC
3479  vbi __builtin_vec_sll (vbi, vus);
3480    VSL  VSL_VBI_VUS
3481  vbi __builtin_vec_sll (vbi, vui);
3482    VSL  VSL_VBI_VUI
3483  vbll __builtin_vec_sll (vbll, vuc);
3484    VSL  VSL_VBLL_VUC
3485  vbll __builtin_vec_sll (vbll, vus);
3486    VSL  VSL_VBLL_VUS
3487  vbll __builtin_vec_sll (vbll, vull);
3488    VSL  VSL_VBLL_VULL
3489
3490[VEC_SLO, vec_slo, __builtin_vec_slo]
3491  vsc __builtin_vec_slo (vsc, vsc);
3492    VSLO  VSLO_VSCS
3493  vsc __builtin_vec_slo (vsc, vuc);
3494    VSLO  VSLO_VSCU
3495  vuc __builtin_vec_slo (vuc, vsc);
3496    VSLO  VSLO_VUCS
3497  vuc __builtin_vec_slo (vuc, vuc);
3498    VSLO  VSLO_VUCU
3499  vss __builtin_vec_slo (vss, vsc);
3500    VSLO  VSLO_VSSS
3501  vss __builtin_vec_slo (vss, vuc);
3502    VSLO  VSLO_VSSU
3503  vus __builtin_vec_slo (vus, vsc);
3504    VSLO  VSLO_VUSS
3505  vus __builtin_vec_slo (vus, vuc);
3506    VSLO  VSLO_VUSU
3507  vp __builtin_vec_slo (vp, vsc);
3508    VSLO  VSLO_VPS
3509  vp __builtin_vec_slo (vp, vuc);
3510    VSLO  VSLO_VPU
3511  vsi __builtin_vec_slo (vsi, vsc);
3512    VSLO  VSLO_VSIS
3513  vsi __builtin_vec_slo (vsi, vuc);
3514    VSLO  VSLO_VSIU
3515  vui __builtin_vec_slo (vui, vsc);
3516    VSLO  VSLO_VUIS
3517  vui __builtin_vec_slo (vui, vuc);
3518    VSLO  VSLO_VUIU
3519  vsll __builtin_vec_slo (vsll, vsc);
3520    VSLO  VSLO_VSLLS
3521  vsll __builtin_vec_slo (vsll, vuc);
3522    VSLO  VSLO_VSLLU
3523  vull __builtin_vec_slo (vull, vsc);
3524    VSLO  VSLO_VULLS
3525  vull __builtin_vec_slo (vull, vuc);
3526    VSLO  VSLO_VULLU
3527  vf __builtin_vec_slo (vf, vsc);
3528    VSLO  VSLO_VFS
3529  vf __builtin_vec_slo (vf, vuc);
3530    VSLO  VSLO_VFU
3531
3532[VEC_SLV, vec_slv, __builtin_vec_vslv]
3533  vuc __builtin_vec_vslv (vuc, vuc);
3534    VSLV
3535
3536[VEC_SPLAT, vec_splat, __builtin_vec_splat]
3537  vsc __builtin_vec_splat (vsc, signed int);
3538    VSPLTB  VSPLTB_VSC
3539  vuc __builtin_vec_splat (vuc, signed int);
3540    VSPLTB  VSPLTB_VUC
3541  vbc __builtin_vec_splat (vbc, signed int);
3542    VSPLTB  VSPLTB_VBC
3543  vss __builtin_vec_splat (vss, signed int);
3544    VSPLTH  VSPLTH_VSS
3545  vus __builtin_vec_splat (vus, signed int);
3546    VSPLTH  VSPLTH_VUS
3547  vbs __builtin_vec_splat (vbs, signed int);
3548    VSPLTH  VSPLTH_VBS
3549  vp __builtin_vec_splat (vp, signed int);
3550    VSPLTH  VSPLTH_VP
3551  vf __builtin_vec_splat (vf, signed int);
3552    VSPLTW  VSPLTW_VF
3553  vsi __builtin_vec_splat (vsi, signed int);
3554    VSPLTW  VSPLTW_VSI
3555  vui __builtin_vec_splat (vui, signed int);
3556    VSPLTW  VSPLTW_VUI
3557  vbi __builtin_vec_splat (vbi, signed int);
3558    VSPLTW  VSPLTW_VBI
3559  vd __builtin_vec_splat (vd, signed int);
3560    XXSPLTD_V2DF
3561  vsll __builtin_vec_splat (vsll, signed int);
3562    XXSPLTD_V2DI  XXSPLTD_VSLL
3563  vull __builtin_vec_splat (vull, signed int);
3564    XXSPLTD_V2DI  XXSPLTD_VULL
3565  vbll __builtin_vec_splat (vbll, signed int);
3566    XXSPLTD_V2DI  XXSPLTD_VBLL
3567
3568[VEC_SPLAT_S8, vec_splat_s8, __builtin_vec_splat_s8]
3569  vsc __builtin_vec_splat_s8 (signed int);
3570    VSPLTISB
3571
3572[VEC_SPLAT_S16, vec_splat_s16, __builtin_vec_splat_s16]
3573  vss __builtin_vec_splat_s16 (signed int);
3574    VSPLTISH
3575
3576[VEC_SPLAT_S32, vec_splat_s32, __builtin_vec_splat_s32]
3577  vsi __builtin_vec_splat_s32 (signed int);
3578    VSPLTISW
3579
3580; There are no entries for vec_splat_u{8,16,32}.  These are handled
3581; in altivec.h with a #define and a cast.
3582
3583[VEC_SPLATI, vec_splati, __builtin_vec_xxspltiw]
3584  vsi __builtin_vec_xxspltiw (signed int);
3585    VXXSPLTIW_V4SI
3586  vf __builtin_vec_xxspltiw (float);
3587    VXXSPLTIW_V4SF
3588
3589[VEC_SPLATID, vec_splatid, __builtin_vec_xxspltid]
3590  vd __builtin_vec_xxspltid (float);
3591    VXXSPLTIDP
3592
3593[VEC_SPLATI_INS, vec_splati_ins, __builtin_vec_xxsplti32dx]
3594  vsi __builtin_vec_xxsplti32dx (vsi, const int, signed int);
3595    VXXSPLTI32DX_V4SI  VXXSPLTI32DX_VSI
3596  vui __builtin_vec_xxsplti32dx (vui, const int, unsigned int);
3597    VXXSPLTI32DX_V4SI  VXXSPLTI32DX_VUI
3598  vf __builtin_vec_xxsplti32dx (vf, const int, float);
3599    VXXSPLTI32DX_V4SF
3600
3601; There are no actual builtins for vec_splats.  There is special handling for
3602; this in altivec_resolve_overloaded_builtin in rs6000-c.cc, where the call
3603; is replaced by a constructor.  The single overload here causes
3604; __builtin_vec_splats to be registered with the front end so that can happen.
3605[VEC_SPLATS, vec_splats, __builtin_vec_splats]
3606  vsi __builtin_vec_splats (vsi);
3607    ABS_V4SI SPLATS_FAKERY
3608
3609[VEC_SQRT, vec_sqrt, __builtin_vec_sqrt]
3610  vf __builtin_vec_sqrt (vf);
3611    XVSQRTSP
3612  vd __builtin_vec_sqrt (vd);
3613    XVSQRTDP
3614
3615[VEC_SR, vec_sr, __builtin_vec_sr]
3616  vsc __builtin_vec_sr (vsc, vuc);
3617    VSRB  VSRB_VSC
3618  vuc __builtin_vec_sr (vuc, vuc);
3619    VSRB  VSRB_VUC
3620  vss __builtin_vec_sr (vss, vus);
3621    VSRH  VSRH_VSS
3622  vus __builtin_vec_sr (vus, vus);
3623    VSRH  VSRH_VUS
3624  vsi __builtin_vec_sr (vsi, vui);
3625    VSRW  VSRW_VSI
3626  vui __builtin_vec_sr (vui, vui);
3627    VSRW  VSRW_VUI
3628  vsll __builtin_vec_sr (vsll, vull);
3629    VSRD  VSRD_VSLL
3630  vull __builtin_vec_sr (vull, vull);
3631    VSRD  VSRD_VULL
3632  vsq __builtin_vec_sr (vsq, vuq);
3633    VSRQ  VSRQ_VSQ
3634  vuq __builtin_vec_sr (vuq, vuq);
3635    VSRQ  VSRQ_VUQ
3636
3637[VEC_SRA, vec_sra, __builtin_vec_sra]
3638  vsc __builtin_vec_sra (vsc, vuc);
3639    VSRAB  VSRAB_VSC
3640  vuc __builtin_vec_sra (vuc, vuc);
3641    VSRAB  VSRAB_VUC
3642  vss __builtin_vec_sra (vss, vus);
3643    VSRAH  VSRAH_VSS
3644  vus __builtin_vec_sra (vus, vus);
3645    VSRAH  VSRAH_VUS
3646  vsi __builtin_vec_sra (vsi, vui);
3647    VSRAW  VSRAW_VSI
3648  vui __builtin_vec_sra (vui, vui);
3649    VSRAW  VSRAW_VUI
3650  vsll __builtin_vec_sra (vsll, vull);
3651    VSRAD  VSRAD_VSLL
3652  vull __builtin_vec_sra (vull, vull);
3653    VSRAD  VSRAD_VULL
3654  vsq __builtin_vec_sra (vsq, vuq);
3655    VSRAQ  VSRAQ_VSQ
3656  vuq __builtin_vec_sra (vuq, vuq);
3657    VSRAQ  VSRAQ_VUQ
3658
3659[VEC_SRDB, vec_srdb, __builtin_vec_srdb]
3660  vsc __builtin_vec_srdb (vsc, vsc, const int);
3661    VSRDB_V16QI  VSRDB_VSC
3662  vuc __builtin_vec_srdb (vuc, vuc, const int);
3663    VSRDB_V16QI  VSRDB_VUC
3664  vss __builtin_vec_srdb (vss, vss, const int);
3665    VSRDB_V8HI  VSRDB_VSS
3666  vus __builtin_vec_srdb (vus, vus, const int);
3667    VSRDB_V8HI  VSRDB_VUS
3668  vsi __builtin_vec_srdb (vsi, vsi, const int);
3669    VSRDB_V4SI  VSRDB_VSI
3670  vui __builtin_vec_srdb (vui, vui, const int);
3671    VSRDB_V4SI  VSRDB_VUI
3672  vsll __builtin_vec_srdb (vsll, vsll, const int);
3673    VSRDB_V2DI  VSRDB_VSLL
3674  vull __builtin_vec_srdb (vull, vull, const int);
3675    VSRDB_V2DI  VSRDB_VULL
3676
3677[VEC_SRL, vec_srl, __builtin_vec_srl]
3678  vsc __builtin_vec_srl (vsc, vuc);
3679    VSR  VSR_VSC
3680  vuc __builtin_vec_srl (vuc, vuc);
3681    VSR  VSR_VUC
3682  vss __builtin_vec_srl (vss, vuc);
3683    VSR  VSR_VSS
3684  vus __builtin_vec_srl (vus, vuc);
3685    VSR  VSR_VUS
3686  vp __builtin_vec_srl (vp, vuc);
3687    VSR  VSR_VP
3688  vsi __builtin_vec_srl (vsi, vuc);
3689    VSR  VSR_VSI
3690  vui __builtin_vec_srl (vui, vuc);
3691    VSR  VSR_VUI
3692  vsll __builtin_vec_srl (vsll, vuc);
3693    VSR  VSR_VSLL
3694  vull __builtin_vec_srl (vull, vuc);
3695    VSR  VSR_VULL
3696; The following variants are deprecated.
3697  vsc __builtin_vec_srl (vsc, vus);
3698    VSR  VSR_VSC_VUS
3699  vsc __builtin_vec_srl (vsc, vui);
3700    VSR  VSR_VSC_VUI
3701  vuc __builtin_vec_srl (vuc, vus);
3702    VSR  VSR_VUC_VUS
3703  vuc __builtin_vec_srl (vuc, vui);
3704    VSR  VSR_VUC_VUI
3705  vbc __builtin_vec_srl (vbc, vuc);
3706    VSR  VSR_VBC_VUC
3707  vbc __builtin_vec_srl (vbc, vus);
3708    VSR  VSR_VBC_VUS
3709  vbc __builtin_vec_srl (vbc, vui);
3710    VSR  VSR_VBC_VUI
3711  vss __builtin_vec_srl (vss, vus);
3712    VSR  VSR_VSS_VUS
3713  vss __builtin_vec_srl (vss, vui);
3714    VSR  VSR_VSS_VUI
3715  vus __builtin_vec_srl (vus, vus);
3716    VSR  VSR_VUS_VUS
3717  vus __builtin_vec_srl (vus, vui);
3718    VSR  VSR_VUS_VUI
3719  vbs __builtin_vec_srl (vbs, vuc);
3720    VSR  VSR_VBS_VUC
3721  vbs __builtin_vec_srl (vbs, vus);
3722    VSR  VSR_VBS_VUS
3723  vbs __builtin_vec_srl (vbs, vui);
3724    VSR  VSR_VBS_VUI
3725  vp __builtin_vec_srl (vp, vus);
3726    VSR  VSR_VP_VUS
3727  vp __builtin_vec_srl (vp, vui);
3728    VSR  VSR_VP_VUI
3729  vsi __builtin_vec_srl (vsi, vus);
3730    VSR  VSR_VSI_VUS
3731  vsi __builtin_vec_srl (vsi, vui);
3732    VSR  VSR_VSI_VUI
3733  vui __builtin_vec_srl (vui, vus);
3734    VSR  VSR_VUI_VUS
3735  vui __builtin_vec_srl (vui, vui);
3736    VSR  VSR_VUI_VUI
3737  vbi __builtin_vec_srl (vbi, vuc);
3738    VSR  VSR_VBI_VUC
3739  vbi __builtin_vec_srl (vbi, vus);
3740    VSR  VSR_VBI_VUS
3741  vbi __builtin_vec_srl (vbi, vui);
3742    VSR  VSR_VBI_VUI
3743
3744[VEC_SRO, vec_sro, __builtin_vec_sro]
3745  vsc __builtin_vec_sro (vsc, vsc);
3746    VSRO  VSRO_VSCS
3747  vsc __builtin_vec_sro (vsc, vuc);
3748    VSRO  VSRO_VSCU
3749  vuc __builtin_vec_sro (vuc, vsc);
3750    VSRO  VSRO_VUCS
3751  vuc __builtin_vec_sro (vuc, vuc);
3752    VSRO  VSRO_VUCU
3753  vss __builtin_vec_sro (vss, vsc);
3754    VSRO  VSRO_VSSS
3755  vss __builtin_vec_sro (vss, vuc);
3756    VSRO  VSRO_VSSU
3757  vus __builtin_vec_sro (vus, vsc);
3758    VSRO  VSRO_VUSS
3759  vus __builtin_vec_sro (vus, vuc);
3760    VSRO  VSRO_VUSU
3761  vp __builtin_vec_sro (vp, vsc);
3762    VSRO  VSRO_VPS
3763  vp __builtin_vec_sro (vp, vuc);
3764    VSRO  VSRO_VPU
3765  vsi __builtin_vec_sro (vsi, vsc);
3766    VSRO  VSRO_VSIS
3767  vsi __builtin_vec_sro (vsi, vuc);
3768    VSRO  VSRO_VSIU
3769  vui __builtin_vec_sro (vui, vsc);
3770    VSRO  VSRO_VUIS
3771  vui __builtin_vec_sro (vui, vuc);
3772    VSRO  VSRO_VUIU
3773  vsll __builtin_vec_sro (vsll, vsc);
3774    VSRO  VSRO_VSLLS
3775  vsll __builtin_vec_sro (vsll, vuc);
3776    VSRO  VSRO_VSLLU
3777  vull __builtin_vec_sro (vull, vsc);
3778    VSRO  VSRO_VULLS
3779  vull __builtin_vec_sro (vull, vuc);
3780    VSRO  VSRO_VULLU
3781  vf __builtin_vec_sro (vf, vsc);
3782    VSRO  VSRO_VFS
3783  vf __builtin_vec_sro (vf, vuc);
3784    VSRO  VSRO_VFU
3785
3786[VEC_SRV, vec_srv, __builtin_vec_vsrv]
3787  vuc __builtin_vec_vsrv (vuc, vuc);
3788    VSRV
3789
3790[VEC_ST, vec_st, __builtin_vec_st]
3791  void __builtin_vec_st (vsc, signed long long, vsc *);
3792    STVX_V16QI  STVX_VSC
3793  void __builtin_vec_st (vsc, signed long long, signed char *);
3794    STVX_V16QI  STVX_SC
3795  void __builtin_vec_st (vuc, signed long long, vuc *);
3796    STVX_V16QI  STVX_VUC
3797  void __builtin_vec_st (vuc, signed long long, unsigned char *);
3798    STVX_V16QI  STVX_UC
3799  void __builtin_vec_st (vbc, signed long long, vbc *);
3800    STVX_V16QI  STVX_VBC
3801  void __builtin_vec_st (vbc, signed long long, signed char *);
3802    STVX_V16QI  STVX_SC_B
3803  void __builtin_vec_st (vbc, signed long long, unsigned char *);
3804    STVX_V16QI  STVX_UC_B
3805  void __builtin_vec_st (vss, signed long long, vss *);
3806    STVX_V8HI  STVX_VSS
3807  void __builtin_vec_st (vss, signed long long, signed short *);
3808    STVX_V8HI  STVX_SS
3809  void __builtin_vec_st (vus, signed long long, vus *);
3810    STVX_V8HI  STVX_VUS
3811  void __builtin_vec_st (vus, signed long long, unsigned short *);
3812    STVX_V8HI  STVX_US
3813  void __builtin_vec_st (vbs, signed long long, vbs *);
3814    STVX_V8HI  STVX_VBS
3815  void __builtin_vec_st (vbs, signed long long, signed short *);
3816    STVX_V8HI  STVX_SS_B
3817  void __builtin_vec_st (vbs, signed long long, unsigned short *);
3818    STVX_V8HI  STVX_US_B
3819  void __builtin_vec_st (vp, signed long long, vp *);
3820    STVX_V8HI  STVX_P
3821  void __builtin_vec_st (vsi, signed long long, vsi *);
3822    STVX_V4SI  STVX_VSI
3823  void __builtin_vec_st (vsi, signed long long, signed int *);
3824    STVX_V4SI  STVX_SI
3825  void __builtin_vec_st (vui, signed long long, vui *);
3826    STVX_V4SI  STVX_VUI
3827  void __builtin_vec_st (vui, signed long long, unsigned int *);
3828    STVX_V4SI  STVX_UI
3829  void __builtin_vec_st (vbi, signed long long, vbi *);
3830    STVX_V4SI  STVX_VBI
3831  void __builtin_vec_st (vbi, signed long long, signed int *);
3832    STVX_V4SI  STVX_SI_B
3833  void __builtin_vec_st (vbi, signed long long, unsigned int *);
3834    STVX_V4SI  STVX_UI_B
3835  void __builtin_vec_st (vsll, signed long long, vsll *);
3836    STVX_V2DI  STVX_VSLL
3837  void __builtin_vec_st (vsll, signed long long, signed long long *);
3838    STVX_V2DI  STVX_SLL
3839  void __builtin_vec_st (vull, signed long long, vull *);
3840    STVX_V2DI  STVX_VULL
3841  void __builtin_vec_st (vull, signed long long, unsigned long long *);
3842    STVX_V2DI  STVX_ULL
3843  void __builtin_vec_st (vbll, signed long long, vbll *);
3844    STVX_V2DI  STVX_VBLL
3845  void __builtin_vec_st (vf, signed long long, vf *);
3846    STVX_V4SF  STVX_VF
3847  void __builtin_vec_st (vf, signed long long, float *);
3848    STVX_V4SF  STVX_F
3849  void __builtin_vec_st (vd, signed long long, vd *);
3850    STVX_V2DF  STVX_VD
3851  void __builtin_vec_st (vd, signed long long, double *);
3852    STVX_V2DF  STVX_D
3853; The following variants are deprecated.
3854  void __builtin_vec_st (vbll, signed long long, signed long long *);
3855    STVX_V2DI  STVX_SLL_B
3856  void __builtin_vec_st (vbll, signed long long, unsigned long long *);
3857    STVX_V2DI  STVX_ULL_B
3858
3859[VEC_STE, vec_ste, __builtin_vec_ste]
3860  void __builtin_vec_ste (vsc, signed long long, signed char *);
3861    STVEBX  STVEBX_S
3862  void __builtin_vec_ste (vuc, signed long long, unsigned char *);
3863    STVEBX  STVEBX_U
3864  void __builtin_vec_ste (vbc, signed long long, signed char *);
3865    STVEBX  STVEBX_BS
3866  void __builtin_vec_ste (vbc, signed long long, unsigned char *);
3867    STVEBX  STVEBX_BU
3868  void __builtin_vec_ste (vss, signed long long, signed short *);
3869    STVEHX  STVEHX_S
3870  void __builtin_vec_ste (vus, signed long long, unsigned short *);
3871    STVEHX  STVEHX_U
3872  void __builtin_vec_ste (vbs, signed long long, signed short *);
3873    STVEHX  STVEHX_BS
3874  void __builtin_vec_ste (vbs, signed long long, unsigned short *);
3875    STVEHX  STVEHX_BU
3876  void __builtin_vec_ste (vp, signed long long, signed short *);
3877    STVEHX  STVEHX_PS
3878  void __builtin_vec_ste (vp, signed long long, unsigned short *);
3879    STVEHX  STVEHX_PU
3880  void __builtin_vec_ste (vsi, signed long long, signed int *);
3881    STVEWX  STVEHWX_S
3882  void __builtin_vec_ste (vui, signed long long, unsigned int *);
3883    STVEWX  STVEWX_U
3884  void __builtin_vec_ste (vbi, signed long long, signed int *);
3885    STVEWX  STVEWX_BS
3886  void __builtin_vec_ste (vbi, signed long long, unsigned int *);
3887    STVEWX  STVEWX_BU
3888  void __builtin_vec_ste (vf, signed long long, float *);
3889    STVEWX  STVEWX_F
3890
3891; There are no builtins for VEC_STEP; this is handled directly
3892; with a constant replacement in rs6000_resolve_overloaded_builtin.
3893; The single overload registers __builtin_vec_step with the front end
3894; so this can happen.
3895[VEC_STEP, vec_step, __builtin_vec_step]
3896  signed int __builtin_vec_step (vsi);
3897    VCLZLSBB_V4SI  STEP_FAKERY
3898
3899[VEC_STL, vec_stl, __builtin_vec_stl]
3900  void __builtin_vec_stl (vsc, signed long long, vsc *);
3901    STVXL_V16QI  STVXL_VSC
3902  void __builtin_vec_stl (vsc, signed long long, signed char *);
3903    STVXL_V16QI  STVXL_SC
3904  void __builtin_vec_stl (vuc, signed long long, vuc *);
3905    STVXL_V16QI  STVXL_VUC
3906  void __builtin_vec_stl (vuc, signed long long, unsigned char *);
3907    STVXL_V16QI  STVXL_UC
3908  void __builtin_vec_stl (vbc, signed long long, vbc *);
3909    STVXL_V16QI  STVXL_VBC
3910  void __builtin_vec_stl (vbc, signed long long, signed char *);
3911    STVXL_V16QI  STVXL_SC_B
3912  void __builtin_vec_stl (vbc, signed long long, unsigned char *);
3913    STVXL_V16QI  STVXL_UC_B
3914  void __builtin_vec_stl (vss, signed long long, vss *);
3915    STVXL_V8HI  STVXL_VSS
3916  void __builtin_vec_stl (vss, signed long long, signed short *);
3917    STVXL_V8HI  STVXL_SS
3918  void __builtin_vec_stl (vus, signed long long, vus *);
3919    STVXL_V8HI  STVXL_VUS
3920  void __builtin_vec_stl (vus, signed long long, unsigned short *);
3921    STVXL_V8HI  STVXL_US
3922  void __builtin_vec_stl (vbs, signed long long, vbs *);
3923    STVXL_V8HI  STVXL_VBS
3924  void __builtin_vec_stl (vbs, signed long long, signed short *);
3925    STVXL_V8HI  STVXL_SS_B
3926  void __builtin_vec_stl (vbs, signed long long, unsigned short *);
3927    STVXL_V8HI  STVXL_US_B
3928  void __builtin_vec_stl (vp, signed long long, vp *);
3929    STVXL_V8HI  STVXL_P
3930  void __builtin_vec_stl (vsi, signed long long, vsi *);
3931    STVXL_V4SI  STVXL_VSI
3932  void __builtin_vec_stl (vsi, signed long long, signed int *);
3933    STVXL_V4SI  STVXL_SI
3934  void __builtin_vec_stl (vui, signed long long, vui *);
3935    STVXL_V4SI  STVXL_VUI
3936  void __builtin_vec_stl (vui, signed long long, unsigned int *);
3937    STVXL_V4SI  STVXL_UI
3938  void __builtin_vec_stl (vbi, signed long long, vbi *);
3939    STVXL_V4SI  STVXL_VBI
3940  void __builtin_vec_stl (vbi, signed long long, signed int *);
3941    STVXL_V4SI  STVXL_SI_B
3942  void __builtin_vec_stl (vbi, signed long long, unsigned int *);
3943    STVXL_V4SI  STVXL_UI_B
3944  void __builtin_vec_stl (vsll, signed long long, vsll *);
3945    STVXL_V2DI  STVXL_VSLL
3946  void __builtin_vec_stl (vsll, signed long long, signed long long *);
3947    STVXL_V2DI  STVXL_SLL
3948  void __builtin_vec_stl (vull, signed long long, vull *);
3949    STVXL_V2DI  STVXL_VULL
3950  void __builtin_vec_stl (vull, signed long long, unsigned long long *);
3951    STVXL_V2DI  STVXL_ULL
3952  void __builtin_vec_stl (vbll, signed long long, vbll *);
3953    STVXL_V2DI  STVXL_VBLL
3954  void __builtin_vec_stl (vbll, signed long long, signed long long *);
3955    STVXL_V2DI  STVXL_SLL_B
3956  void __builtin_vec_stl (vbll, signed long long, unsigned long long *);
3957    STVXL_V2DI  STVXL_ULL_B
3958  void __builtin_vec_stl (vf, signed long long, vf *);
3959    STVXL_V4SF  STVXL_VF
3960  void __builtin_vec_stl (vf, signed long long, float *);
3961    STVXL_V4SF  STVXL_F
3962  void __builtin_vec_stl (vd, signed long long, vd *);
3963    STVXL_V2DF  STVXL_VD
3964  void __builtin_vec_stl (vd, signed long long, double *);
3965    STVXL_V2DF  STVXL_D
3966
3967[VEC_STRIL, vec_stril, __builtin_vec_stril]
3968  vuc __builtin_vec_stril (vuc);
3969    VSTRIBL  VSTRIBL_U
3970  vsc __builtin_vec_stril (vsc);
3971    VSTRIBL  VSTRIBL_S
3972  vus __builtin_vec_stril (vus);
3973    VSTRIHL  VSTRIHL_U
3974  vss __builtin_vec_stril (vss);
3975    VSTRIHL  VSTRIHL_S
3976
3977[VEC_STRIL_P, vec_stril_p, __builtin_vec_stril_p]
3978  signed int __builtin_vec_stril_p (vuc);
3979    VSTRIBL_P  VSTRIBL_PU
3980  signed int __builtin_vec_stril_p (vsc);
3981    VSTRIBL_P  VSTRIBL_PS
3982  signed int __builtin_vec_stril_p (vus);
3983    VSTRIHL_P  VSTRIHL_PU
3984  signed int __builtin_vec_stril_p (vss);
3985    VSTRIHL_P  VSTRIHL_PS
3986
3987[VEC_STRIR, vec_strir, __builtin_vec_strir]
3988  vuc __builtin_vec_strir (vuc);
3989    VSTRIBR  VSTRIBR_U
3990  vsc __builtin_vec_strir (vsc);
3991    VSTRIBR  VSTRIBR_S
3992  vus __builtin_vec_strir (vus);
3993    VSTRIHR  VSTRIHR_U
3994  vss __builtin_vec_strir (vss);
3995    VSTRIHR  VSTRIHR_S
3996
3997[VEC_STRIR_P, vec_strir_p, __builtin_vec_strir_p]
3998  signed int __builtin_vec_strir_p (vuc);
3999    VSTRIBR_P  VSTRIBR_PU
4000  signed int __builtin_vec_strir_p (vsc);
4001    VSTRIBR_P  VSTRIBR_PS
4002  signed int __builtin_vec_strir_p (vus);
4003    VSTRIHR_P  VSTRIHR_PU
4004  signed int __builtin_vec_strir_p (vss);
4005    VSTRIHR_P  VSTRIHR_PS
4006
4007[VEC_STVLX, vec_stvlx, __builtin_vec_stvlx, __PPU__]
4008  void __builtin_vec_stvlx (vbc, signed long long, vbc *);
4009    STVLX  STVLX_VBC
4010  void __builtin_vec_stvlx (vsc, signed long long, vsc *);
4011    STVLX  STVLX_VSC
4012  void __builtin_vec_stvlx (vsc, signed long long, signed char *);
4013    STVLX  STVLX_SC
4014  void __builtin_vec_stvlx (vuc, signed long long, vuc *);
4015    STVLX  STVLX_VUC
4016  void __builtin_vec_stvlx (vuc, signed long long, unsigned char *);
4017    STVLX  STVLX_UC
4018  void __builtin_vec_stvlx (vbs, signed long long, vbs *);
4019    STVLX  STVLX_VBS
4020  void __builtin_vec_stvlx (vss, signed long long, vss *);
4021    STVLX  STVLX_VSS
4022  void __builtin_vec_stvlx (vss, signed long long, signed short *);
4023    STVLX  STVLX_SS
4024  void __builtin_vec_stvlx (vus, signed long long, vus *);
4025    STVLX  STVLX_VUS
4026  void __builtin_vec_stvlx (vus, signed long long, unsigned short *);
4027    STVLX  STVLX_US
4028  void __builtin_vec_stvlx (vp, signed long long, vp *);
4029    STVLX  STVLX_VP
4030  void __builtin_vec_stvlx (vbi, signed long long, vbi *);
4031    STVLX  STVLX_VBI
4032  void __builtin_vec_stvlx (vsi, signed long long, vsi *);
4033    STVLX  STVLX_VSI
4034  void __builtin_vec_stvlx (vsi, signed long long, signed int *);
4035    STVLX  STVLX_SI
4036  void __builtin_vec_stvlx (vui, signed long long, vui *);
4037    STVLX  STVLX_VUI
4038  void __builtin_vec_stvlx (vui, signed long long, unsigned int *);
4039    STVLX  STVLX_UI
4040  void __builtin_vec_stvlx (vf, signed long long, vf *);
4041    STVLX  STVLX_VF
4042  void __builtin_vec_stvlx (vf, signed long long, float *);
4043    STVLX  STVLX_F
4044
4045[VEC_STVLXL, vec_stvlxl, __builtin_vec_stvlxl, __PPU__]
4046  void __builtin_vec_stvlxl (vbc, signed long long, vbc *);
4047    STVLXL  STVLXL_VBC
4048  void __builtin_vec_stvlxl (vsc, signed long long, vsc *);
4049    STVLXL  STVLXL_VSC
4050  void __builtin_vec_stvlxl (vsc, signed long long, signed char *);
4051    STVLXL  STVLXL_SC
4052  void __builtin_vec_stvlxl (vuc, signed long long, vuc *);
4053    STVLXL  STVLXL_VUC
4054  void __builtin_vec_stvlxl (vuc, signed long long, unsigned char *);
4055    STVLXL  STVLXL_UC
4056  void __builtin_vec_stvlxl (vbs, signed long long, vbs *);
4057    STVLXL  STVLXL_VBS
4058  void __builtin_vec_stvlxl (vss, signed long long, vss *);
4059    STVLXL  STVLXL_VSS
4060  void __builtin_vec_stvlxl (vss, signed long long, signed short *);
4061    STVLXL  STVLXL_SS
4062  void __builtin_vec_stvlxl (vus, signed long long, vus *);
4063    STVLXL  STVLXL_VUS
4064  void __builtin_vec_stvlxl (vus, signed long long, unsigned short *);
4065    STVLXL  STVLXL_US
4066  void __builtin_vec_stvlxl (vp, signed long long, vp *);
4067    STVLXL  STVLXL_VP
4068  void __builtin_vec_stvlxl (vbi, signed long long, vbi *);
4069    STVLXL  STVLXL_VBI
4070  void __builtin_vec_stvlxl (vsi, signed long long, vsi *);
4071    STVLXL  STVLXL_VSI
4072  void __builtin_vec_stvlxl (vsi, signed long long, signed int *);
4073    STVLXL  STVLXL_SI
4074  void __builtin_vec_stvlxl (vui, signed long long, vui *);
4075    STVLXL  STVLXL_VUI
4076  void __builtin_vec_stvlxl (vui, signed long long, unsigned int *);
4077    STVLXL  STVLXL_UI
4078  void __builtin_vec_stvlxl (vf, signed long long, vf *);
4079    STVLXL  STVLXL_VF
4080  void __builtin_vec_stvlxl (vf, signed long long, float *);
4081    STVLXL  STVLXL_F
4082
4083[VEC_STVRX, vec_stvrx, __builtin_vec_stvrx, __PPU__]
4084  void __builtin_vec_stvrx (vbc, signed long long, vbc *);
4085    STVRX  STVRX_VBC
4086  void __builtin_vec_stvrx (vsc, signed long long, vsc *);
4087    STVRX  STVRX_VSC
4088  void __builtin_vec_stvrx (vsc, signed long long, signed char *);
4089    STVRX  STVRX_SC
4090  void __builtin_vec_stvrx (vuc, signed long long, vuc *);
4091    STVRX  STVRX_VUC
4092  void __builtin_vec_stvrx (vuc, signed long long, unsigned char *);
4093    STVRX  STVRX_UC
4094  void __builtin_vec_stvrx (vbs, signed long long, vbs *);
4095    STVRX  STVRX_VBS
4096  void __builtin_vec_stvrx (vss, signed long long, vss *);
4097    STVRX  STVRX_VSS
4098  void __builtin_vec_stvrx (vss, signed long long, signed short *);
4099    STVRX  STVRX_SS
4100  void __builtin_vec_stvrx (vus, signed long long, vus *);
4101    STVRX  STVRX_VUS
4102  void __builtin_vec_stvrx (vus, signed long long, unsigned short *);
4103    STVRX  STVRX_US
4104  void __builtin_vec_stvrx (vp, signed long long, vp *);
4105    STVRX  STVRX_VP
4106  void __builtin_vec_stvrx (vbi, signed long long, vbi *);
4107    STVRX  STVRX_VBI
4108  void __builtin_vec_stvrx (vsi, signed long long, vsi *);
4109    STVRX  STVRX_VSI
4110  void __builtin_vec_stvrx (vsi, signed long long, signed int *);
4111    STVRX  STVRX_SI
4112  void __builtin_vec_stvrx (vui, signed long long, vui *);
4113    STVRX  STVRX_VUI
4114  void __builtin_vec_stvrx (vui, signed long long, unsigned int *);
4115    STVRX  STVRX_UI
4116  void __builtin_vec_stvrx (vf, signed long long, vf *);
4117    STVRX  STVRX_VF
4118  void __builtin_vec_stvrx (vf, signed long long, float *);
4119    STVRX  STVRX_F
4120
4121[VEC_STVRXL, vec_stvrxl, __builtin_vec_stvrxl, __PPU__]
4122  void __builtin_vec_stvrxl (vbc, signed long long, vbc *);
4123    STVRXL  STVRXL_VBC
4124  void __builtin_vec_stvrxl (vsc, signed long long, vsc *);
4125    STVRXL  STVRXL_VSC
4126  void __builtin_vec_stvrxl (vsc, signed long long, signed char *);
4127    STVRXL  STVRXL_SC
4128  void __builtin_vec_stvrxl (vuc, signed long long, vuc *);
4129    STVRXL  STVRXL_VUC
4130  void __builtin_vec_stvrxl (vuc, signed long long, unsigned char *);
4131    STVRXL  STVRXL_UC
4132  void __builtin_vec_stvrxl (vbs, signed long long, vbs *);
4133    STVRXL  STVRXL_VBS
4134  void __builtin_vec_stvrxl (vss, signed long long, vss *);
4135    STVRXL  STVRXL_VSS
4136  void __builtin_vec_stvrxl (vss, signed long long, signed short *);
4137    STVRXL  STVRXL_SS
4138  void __builtin_vec_stvrxl (vus, signed long long, vus *);
4139    STVRXL  STVRXL_VUS
4140  void __builtin_vec_stvrxl (vus, signed long long, unsigned short *);
4141    STVRXL  STVRXL_US
4142  void __builtin_vec_stvrxl (vp, signed long long, vp *);
4143    STVRXL  STVRXL_VP
4144  void __builtin_vec_stvrxl (vbi, signed long long, vbi *);
4145    STVRXL  STVRXL_VBI
4146  void __builtin_vec_stvrxl (vsi, signed long long, vsi *);
4147    STVRXL  STVRXL_VSI
4148  void __builtin_vec_stvrxl (vsi, signed long long, signed int *);
4149    STVRXL  STVRXL_SI
4150  void __builtin_vec_stvrxl (vui, signed long long, vui *);
4151    STVRXL  STVRXL_VUI
4152  void __builtin_vec_stvrxl (vui, signed long long, unsigned int *);
4153    STVRXL  STVRXL_UI
4154  void __builtin_vec_stvrxl (vf, signed long long, vf *);
4155    STVRXL  STVRXL_VF
4156  void __builtin_vec_stvrxl (vf, signed long long, float *);
4157    STVRXL  STVRXL_F
4158
4159[VEC_STXVL, vec_xst_len, __builtin_vec_stxvl]
4160  void __builtin_vec_stxvl (vsc, signed char *, unsigned int);
4161    STXVL  STXVL_VSC
4162  void __builtin_vec_stxvl (vuc, unsigned char *, unsigned int);
4163    STXVL  STXVL_VUC
4164  void __builtin_vec_stxvl (vss, signed short *, unsigned int);
4165    STXVL  STXVL_VSS
4166  void __builtin_vec_stxvl (vus, unsigned short *, unsigned int);
4167    STXVL  STXVL_VUS
4168  void __builtin_vec_stxvl (vsi, signed int *, unsigned int);
4169    STXVL  STXVL_VSI
4170  void __builtin_vec_stxvl (vui, unsigned int *, unsigned int);
4171    STXVL  STXVL_VUI
4172  void __builtin_vec_stxvl (vsll, signed long long *, unsigned int);
4173    STXVL  STXVL_VSLL
4174  void __builtin_vec_stxvl (vull, unsigned long long *, unsigned int);
4175    STXVL  STXVL_VULL
4176  void __builtin_vec_stxvl (vsq, signed __int128 *, unsigned int);
4177    STXVL  STXVL_VSQ
4178  void __builtin_vec_stxvl (vuq, unsigned __int128 *, unsigned int);
4179    STXVL  STXVL_VUQ
4180  void __builtin_vec_stxvl (vf, float *, unsigned int);
4181    STXVL  STXVL_VF
4182  void __builtin_vec_stxvl (vd, double *, unsigned int);
4183    STXVL  STXVL_VD
4184
4185[VEC_SUB, vec_sub, __builtin_vec_sub]
4186  vsc __builtin_vec_sub (vsc, vsc);
4187    VSUBUBM  VSUBUBM_VSC
4188  vuc __builtin_vec_sub (vuc, vuc);
4189    VSUBUBM  VSUBUBM_VUC
4190  vss __builtin_vec_sub (vss, vss);
4191    VSUBUHM  VSUBUHM_VSS
4192  vus __builtin_vec_sub (vus, vus);
4193    VSUBUHM  VSUBUHM_VUS
4194  vsi __builtin_vec_sub (vsi, vsi);
4195    VSUBUWM  VSUBUWM_VSI
4196  vui __builtin_vec_sub (vui, vui);
4197    VSUBUWM  VSUBUWM_VUI
4198  vsll __builtin_vec_sub (vsll, vsll);
4199    VSUBUDM  VSUBUDM_VSLL
4200  vull __builtin_vec_sub (vull, vull);
4201    VSUBUDM  VSUBUDM_VULL
4202  vsq __builtin_vec_sub (vsq, vsq);
4203    VSUBUQM  VSUBUQM_VSQ
4204  vuq __builtin_vec_sub (vuq, vuq);
4205    VSUBUQM  VSUBUQM_VUQ
4206  vf __builtin_vec_sub (vf, vf);
4207    VSUBFP
4208  vd __builtin_vec_sub (vd, vd);
4209    XVSUBDP
4210; The following variants are deprecated.
4211  vsc __builtin_vec_sub (vsc, vbc);
4212    VSUBUBM  VSUBUBM_VSC_VBC
4213  vsc __builtin_vec_sub (vbc, vsc);
4214    VSUBUBM  VSUBUBM_VBC_VSC
4215  vuc __builtin_vec_sub (vuc, vbc);
4216    VSUBUBM  VSUBUBM_VUC_VBC
4217  vuc __builtin_vec_sub (vbc, vuc);
4218    VSUBUBM  VSUBUBM_VBC_VUC
4219  vss __builtin_vec_sub (vss, vbs);
4220    VSUBUHM  VSUBUHM_VSS_VBS
4221  vss __builtin_vec_sub (vbs, vss);
4222    VSUBUHM  VSUBUHM_VBS_VSS
4223  vus __builtin_vec_sub (vus, vbs);
4224    VSUBUHM  VSUBUHM_VUS_VBS
4225  vus __builtin_vec_sub (vbs, vus);
4226    VSUBUHM  VSUBUHM_VBS_VUS
4227  vsi __builtin_vec_sub (vsi, vbi);
4228    VSUBUWM  VSUBUWM_VSI_VBI
4229  vsi __builtin_vec_sub (vbi, vsi);
4230    VSUBUWM  VSUBUWM_VBI_VSI
4231  vui __builtin_vec_sub (vui, vbi);
4232    VSUBUWM  VSUBUWM_VUI_VBI
4233  vui __builtin_vec_sub (vbi, vui);
4234    VSUBUWM  VSUBUWM_VBI_VUI
4235  vsll __builtin_vec_sub (vsll, vbll);
4236    VSUBUDM  VSUBUDM_VSLL_VBLL
4237  vsll __builtin_vec_sub (vbll, vsll);
4238    VSUBUDM  VSUBUDM_VBLL_VSLL
4239  vull __builtin_vec_sub (vull, vbll);
4240    VSUBUDM  VSUBUDM_VULL_VBLL
4241  vull __builtin_vec_sub (vbll, vull);
4242    VSUBUDM  VSUBUDM_VBLL_VULL
4243
4244[VEC_SUBC, vec_subc, __builtin_vec_subc]
4245  vsi __builtin_vec_subc (vsi, vsi);
4246    VSUBCUW  VSUBCUW_VSI
4247  vui __builtin_vec_subc (vui, vui);
4248    VSUBCUW  VSUBCUW_VUI
4249  vsq __builtin_vec_subc (vsq, vsq);
4250    VSUBCUQ  VSUBCUQ_VSQ
4251  vuq __builtin_vec_subc (vuq, vuq);
4252    VSUBCUQ  VSUBCUQ_VUQ
4253
4254; TODO: Note that the entry for VEC_SUBE currently gets ignored in
4255; altivec_resolve_overloaded_builtin.  Revisit whether we can remove
4256; that.  We still need to register the legal builtin forms here.
4257[VEC_SUBE, vec_sube, __builtin_vec_sube]
4258  vsq __builtin_vec_sube (vsq, vsq, vsq);
4259    VSUBEUQM  VSUBEUQM_VSQ
4260  vuq __builtin_vec_sube (vuq, vuq, vuq);
4261    VSUBEUQM  VSUBEUQM_VUQ
4262
4263; TODO: Note that the entry for VEC_SUBEC currently gets ignored in
4264; altivec_resolve_overloaded_builtin.  Revisit whether we can remove
4265; that.  We still need to register the legal builtin forms here.
4266[VEC_SUBEC, vec_subec, __builtin_vec_subec]
4267  vsq __builtin_vec_subec (vsq, vsq, vsq);
4268    VSUBECUQ  VSUBECUQ_VSQ
4269  vuq __builtin_vec_subec (vuq, vuq, vuq);
4270    VSUBECUQ  VSUBECUQ_VUQ
4271
4272[VEC_SUBS, vec_subs, __builtin_vec_subs]
4273  vuc __builtin_vec_subs (vuc, vuc);
4274    VSUBUBS
4275  vsc __builtin_vec_subs (vsc, vsc);
4276    VSUBSBS
4277  vus __builtin_vec_subs (vus, vus);
4278    VSUBUHS
4279  vss __builtin_vec_subs (vss, vss);
4280    VSUBSHS
4281  vui __builtin_vec_subs (vui, vui);
4282    VSUBUWS
4283  vsi __builtin_vec_subs (vsi, vsi);
4284    VSUBSWS
4285; The following variants are deprecated.
4286  vuc __builtin_vec_subs (vuc, vbc);
4287    VSUBUBS  VSUBUBS_UB
4288  vuc __builtin_vec_subs (vbc, vuc);
4289    VSUBUBS  VSUBUBS_BU
4290  vsc __builtin_vec_subs (vsc, vbc);
4291    VSUBSBS  VSUBSBS_SB
4292  vsc __builtin_vec_subs (vbc, vsc);
4293    VSUBSBS  VSUBSBS_BS
4294  vus __builtin_vec_subs (vus, vbs);
4295    VSUBUHS  VSUBUHS_UB
4296  vus __builtin_vec_subs (vbs, vus);
4297    VSUBUHS  VSUBUHS_BU
4298  vss __builtin_vec_subs (vss, vbs);
4299    VSUBSHS  VSUBSHS_SB
4300  vss __builtin_vec_subs (vbs, vss);
4301    VSUBSHS  VSUBSHS_BS
4302  vui __builtin_vec_subs (vui, vbi);
4303    VSUBUWS  VSUBUWS_UB
4304  vui __builtin_vec_subs (vbi, vui);
4305    VSUBUWS  VSUBUWS_BU
4306  vsi __builtin_vec_subs (vsi, vbi);
4307    VSUBSWS  VSUBSWS_SB
4308  vsi __builtin_vec_subs (vbi, vsi);
4309    VSUBSWS  VSUBSWS_BS
4310
4311[VEC_SUM2S, vec_sum2s, __builtin_vec_sum2s]
4312  vsi __builtin_vec_sum2s (vsi, vsi);
4313    VSUM2SWS
4314
4315[VEC_SUM4S, vec_sum4s, __builtin_vec_sum4s]
4316  vui __builtin_vec_sum4s (vuc, vui);
4317    VSUM4UBS
4318  vsi __builtin_vec_sum4s (vsc, vsi);
4319    VSUM4SBS
4320  vsi __builtin_vec_sum4s (vss, vsi);
4321    VSUM4SHS
4322
4323[VEC_SUMS, vec_sums, __builtin_vec_sums]
4324  vsi __builtin_vec_sums (vsi, vsi);
4325    VSUMSWS
4326
4327[VEC_TERNARYLOGIC, vec_ternarylogic, __builtin_vec_xxeval]
4328  vuc __builtin_vec_xxeval (vuc, vuc, vuc, const int);
4329    XXEVAL  XXEVAL_VUC
4330  vus __builtin_vec_xxeval (vus, vus, vus, const int);
4331    XXEVAL  XXEVAL_VUS
4332  vui __builtin_vec_xxeval (vui, vui, vui, const int);
4333    XXEVAL  XXEVAL_VUI
4334  vull __builtin_vec_xxeval (vull, vull, vull, const int);
4335    XXEVAL  XXEVAL_VULL
4336  vuq __builtin_vec_xxeval (vuq, vuq, vuq, const int);
4337    XXEVAL  XXEVAL_VUQ
4338
4339[VEC_TEST_LSBB_ALL_ONES, vec_test_lsbb_all_ones, __builtin_vec_xvtlsbb_all_ones]
4340  signed int __builtin_vec_xvtlsbb_all_ones (vuc);
4341    XVTLSBB_ONES
4342
4343[VEC_TEST_LSBB_ALL_ZEROS, vec_test_lsbb_all_zeros, __builtin_vec_xvtlsbb_all_zeros]
4344  signed int __builtin_vec_xvtlsbb_all_zeros (vuc);
4345    XVTLSBB_ZEROS
4346
4347[VEC_TRUNC, vec_trunc, __builtin_vec_trunc]
4348  vf __builtin_vec_trunc (vf);
4349    VRFIZ
4350  vd __builtin_vec_trunc (vd);
4351    XVRDPIZ
4352
4353[VEC_TSTSFI_GT, SKIP, __builtin_dfp_dtstsfi_gt]
4354  signed int __builtin_dfp_dtstsfi_gt (const int, _Decimal64);
4355    TSTSFI_GT_DD
4356  signed int __builtin_dfp_dtstsfi_gt (const int, _Decimal128);
4357    TSTSFI_GT_TD
4358
4359[VEC_TSTSFI_EQ, SKIP, __builtin_dfp_dtstsfi_eq]
4360  signed int __builtin_dfp_dtstsfi_eq (const int, _Decimal64);
4361    TSTSFI_EQ_DD
4362  signed int __builtin_dfp_dtstsfi_eq (const int, _Decimal128);
4363    TSTSFI_EQ_TD
4364
4365[VEC_TSTSFI_LT, SKIP, __builtin_dfp_dtstsfi_lt]
4366  signed int __builtin_dfp_dtstsfi_lt (const int, _Decimal64);
4367    TSTSFI_LT_DD
4368  signed int __builtin_dfp_dtstsfi_lt (const int, _Decimal128);
4369    TSTSFI_LT_TD
4370
4371[VEC_TSTSFI_OV, SKIP, __builtin_dfp_dtstsfi_ov]
4372  signed int __builtin_dfp_dtstsfi_ov (const int, _Decimal64);
4373    TSTSFI_OV_DD
4374  signed int __builtin_dfp_dtstsfi_ov (const int, _Decimal128);
4375    TSTSFI_OV_TD
4376
4377[VEC_UNPACKH, vec_unpackh, __builtin_vec_unpackh]
4378  vss __builtin_vec_unpackh (vsc);
4379    VUPKHSB  VUPKHSB_VSC
4380  vbs __builtin_vec_unpackh (vbc);
4381    VUPKHSB  VUPKHSB_VBC
4382  vsi __builtin_vec_unpackh (vss);
4383    VUPKHSH  VUPKHSH_VSS
4384  vbi __builtin_vec_unpackh (vbs);
4385    VUPKHSH  VUPKHSH_VBS
4386  vui __builtin_vec_unpackh (vp);
4387    VUPKHPX
4388  vsll __builtin_vec_unpackh (vsi);
4389    VUPKHSW  VUPKHSW_VSI
4390  vbll __builtin_vec_unpackh (vbi);
4391    VUPKHSW  VUPKHSW_VBI
4392  vd __builtin_vec_unpackh (vf);
4393    DOUBLEH_V4SF VUPKHF
4394
4395[VEC_UNPACKL, vec_unpackl, __builtin_vec_unpackl]
4396  vss __builtin_vec_unpackl (vsc);
4397    VUPKLSB  VUPKLSB_VSC
4398  vbs __builtin_vec_unpackl (vbc);
4399    VUPKLSB  VUPKLSB_VBC
4400  vsi __builtin_vec_unpackl (vss);
4401    VUPKLSH  VUPKLSH_VSS
4402  vbi __builtin_vec_unpackl (vbs);
4403    VUPKLSH  VUPKLSH_VBS
4404  vui __builtin_vec_unpackl (vp);
4405    VUPKLPX
4406  vsll __builtin_vec_unpackl (vsi);
4407    VUPKLSW  VUPKLSW_VSI
4408  vbll __builtin_vec_unpackl (vbi);
4409    VUPKLSW  VUPKLSW_VBI
4410  vd __builtin_vec_unpackl (vf);
4411    DOUBLEL_V4SF VUPKLF
4412
4413[VEC_UNSIGNED, vec_unsigned, __builtin_vec_vunsigned]
4414  vui __builtin_vec_vunsigned (vf);
4415    VEC_VUNSIGNED_V4SF
4416  vull __builtin_vec_vunsigned (vd);
4417    VEC_VUNSIGNED_V2DF
4418
4419[VEC_UNSIGNED2, vec_unsigned2, __builtin_vec_vunsigned2]
4420  vui __builtin_vec_vunsigned2 (vd, vd);
4421    VEC_VUNSIGNED2_V2DF
4422
4423[VEC_UNSIGNEDE, vec_unsignede, __builtin_vec_vunsignede]
4424  vui __builtin_vec_vunsignede (vd);
4425    VEC_VUNSIGNEDE_V2DF
4426
4427[VEC_UNSIGNEDO, vec_unsignedo, __builtin_vec_vunsignedo]
4428  vui __builtin_vec_vunsignedo (vd);
4429    VEC_VUNSIGNEDO_V2DF
4430
4431[VEC_VEE, vec_extract_exp, __builtin_vec_extract_exp]
4432  vui __builtin_vec_extract_exp (vf);
4433    VEESP
4434  vull __builtin_vec_extract_exp (vd);
4435    VEEDP
4436
4437[VEC_VES, vec_extract_sig, __builtin_vec_extract_sig]
4438  vui __builtin_vec_extract_sig (vf);
4439    VESSP
4440  vull __builtin_vec_extract_sig (vd);
4441    VESDP
4442
4443[VEC_VIE, vec_insert_exp, __builtin_vec_insert_exp]
4444  vf __builtin_vec_insert_exp (vf, vui);
4445    VIESP  VIESP_VF
4446  vf __builtin_vec_insert_exp (vui, vui);
4447    VIESP  VIESP_VUI
4448  vd __builtin_vec_insert_exp (vd, vull);
4449    VIEDP  VIEDP_VD
4450  vd __builtin_vec_insert_exp (vull, vull);
4451    VIEDP  VIEDP_VULL
4452
4453; It is truly unfortunate that vec_vprtyb has an incompatible set of
4454; interfaces with vec_parity_lsbb.  So we can't even deprecate this.
4455[VEC_VPRTYB, vec_vprtyb, __builtin_vec_vprtyb]
4456  vsi __builtin_vec_vprtyb (vsi);
4457    VPRTYBW  VPRTYB_VSI
4458  vui __builtin_vec_vprtyb (vui);
4459    VPRTYBW  VPRTYB_VUI
4460  vsll __builtin_vec_vprtyb (vsll);
4461    VPRTYBD  VPRTYB_VSLL
4462  vull __builtin_vec_vprtyb (vull);
4463    VPRTYBD  VPRTYB_VULL
4464  vsq __builtin_vec_vprtyb (vsq);
4465    VPRTYBQ  VPRTYB_VSQ
4466  vuq __builtin_vec_vprtyb (vuq);
4467    VPRTYBQ  VPRTYB_VUQ
4468  signed __int128 __builtin_vec_vprtyb (signed __int128);
4469    VPRTYBQ  VPRTYB_SQ
4470  unsigned __int128 __builtin_vec_vprtyb (unsigned __int128);
4471    VPRTYBQ  VPRTYB_UQ
4472
4473[VEC_VSCEEQ, scalar_cmp_exp_eq, __builtin_vec_scalar_cmp_exp_eq]
4474  signed int __builtin_vec_scalar_cmp_exp_eq (double, double);
4475    VSCEDPEQ
4476  signed int __builtin_vec_scalar_cmp_exp_eq (_Float128, _Float128);
4477    VSCEQPEQ
4478
4479[VEC_VSCEGT, scalar_cmp_exp_gt, __builtin_vec_scalar_cmp_exp_gt]
4480  signed int __builtin_vec_scalar_cmp_exp_gt (double, double);
4481    VSCEDPGT
4482  signed int __builtin_vec_scalar_cmp_exp_gt (_Float128, _Float128);
4483    VSCEQPGT
4484
4485[VEC_VSCELT, scalar_cmp_exp_lt, __builtin_vec_scalar_cmp_exp_lt]
4486  signed int __builtin_vec_scalar_cmp_exp_lt (double, double);
4487    VSCEDPLT
4488  signed int __builtin_vec_scalar_cmp_exp_lt (_Float128, _Float128);
4489    VSCEQPLT
4490
4491[VEC_VSCEUO, scalar_cmp_exp_unordered, __builtin_vec_scalar_cmp_exp_unordered]
4492  signed int __builtin_vec_scalar_cmp_exp_unordered (double, double);
4493    VSCEDPUO
4494  signed int __builtin_vec_scalar_cmp_exp_unordered (_Float128, _Float128);
4495    VSCEQPUO
4496
4497[VEC_VSEE, scalar_extract_exp, __builtin_vec_scalar_extract_exp]
4498  unsigned int __builtin_vec_scalar_extract_exp (double);
4499    VSEEDP
4500  unsigned int __builtin_vec_scalar_extract_exp (_Float128);
4501    VSEEQP
4502
4503[VEC_VSES, scalar_extract_sig, __builtin_vec_scalar_extract_sig]
4504  unsigned long long __builtin_vec_scalar_extract_sig (double);
4505    VSESDP
4506  unsigned __int128 __builtin_vec_scalar_extract_sig (_Float128);
4507    VSESQP
4508
4509[VEC_VSIE, scalar_insert_exp, __builtin_vec_scalar_insert_exp]
4510  double __builtin_vec_scalar_insert_exp (unsigned long long, unsigned long long);
4511    VSIEDP
4512  double __builtin_vec_scalar_insert_exp (double, unsigned long long);
4513    VSIEDPF
4514  _Float128 __builtin_vec_scalar_insert_exp (unsigned __int128, unsigned long long);
4515    VSIEQP
4516  _Float128 __builtin_vec_scalar_insert_exp (_Float128, unsigned long long);
4517    VSIEQPF
4518
4519[VEC_VSTDC, scalar_test_data_class, __builtin_vec_scalar_test_data_class]
4520  unsigned int __builtin_vec_scalar_test_data_class (float, const int);
4521    VSTDCSP
4522  unsigned int __builtin_vec_scalar_test_data_class (double, const int);
4523    VSTDCDP
4524  unsigned int __builtin_vec_scalar_test_data_class (_Float128, const int);
4525    VSTDCQP
4526
4527[VEC_VSTDCN, scalar_test_neg, __builtin_vec_scalar_test_neg]
4528  unsigned int __builtin_vec_scalar_test_neg (float);
4529    VSTDCNSP
4530  unsigned int __builtin_vec_scalar_test_neg (double);
4531    VSTDCNDP
4532  unsigned int __builtin_vec_scalar_test_neg (_Float128);
4533    VSTDCNQP
4534
4535[VEC_VTDC, vec_test_data_class, __builtin_vec_test_data_class]
4536  vbi __builtin_vec_test_data_class (vf, const int);
4537    VTDCSP
4538  vbll __builtin_vec_test_data_class (vd, const int);
4539    VTDCDP
4540
4541[VEC_XL, vec_xl, __builtin_vec_vsx_ld]
4542  vsc __builtin_vec_vsx_ld (signed long long, const vsc *);
4543    LXVW4X_V16QI  LXVW4X_VSC
4544  vsc __builtin_vec_vsx_ld (signed long long, const signed char *);
4545    LXVW4X_V16QI  LXVW4X_SC
4546  vuc __builtin_vec_vsx_ld (signed long long, const vuc *);
4547    LXVW4X_V16QI  LXVW4X_VUC
4548  vuc __builtin_vec_vsx_ld (signed long long, const unsigned char *);
4549    LXVW4X_V16QI  LXVW4X_UC
4550  vbc __builtin_vec_vsx_ld (signed long long, const vbc *);
4551    LXVW4X_V16QI  LXVW4X_VBC
4552  vss __builtin_vec_vsx_ld (signed long long, const vss *);
4553    LXVW4X_V8HI  LXVW4X_VSS
4554  vss __builtin_vec_vsx_ld (signed long long, const signed short *);
4555    LXVW4X_V8HI  LXVW4X_SS
4556  vus __builtin_vec_vsx_ld (signed long long, const vus *);
4557    LXVW4X_V8HI  LXVW4X_VUS
4558  vus __builtin_vec_vsx_ld (signed long long, const unsigned short *);
4559    LXVW4X_V8HI  LXVW4X_US
4560  vbs __builtin_vec_vsx_ld (signed long long, const vbs *);
4561    LXVW4X_V8HI  LXVW4X_VBS
4562  vp __builtin_vec_vsx_ld (signed long long, const vp *);
4563    LXVW4X_V8HI  LXVW4X_P
4564  vsi __builtin_vec_vsx_ld (signed long long, const vsi *);
4565    LXVW4X_V4SI  LXVW4X_VSI
4566  vsi __builtin_vec_vsx_ld (signed long long, const signed int *);
4567    LXVW4X_V4SI  LXVW4X_SI
4568  vui __builtin_vec_vsx_ld (signed long long, const vui *);
4569    LXVW4X_V4SI  LXVW4X_VUI
4570  vui __builtin_vec_vsx_ld (signed long long, const unsigned int *);
4571    LXVW4X_V4SI  LXVW4X_UI
4572  vbi __builtin_vec_vsx_ld (signed long long, const vbi *);
4573    LXVW4X_V4SI  LXVW4X_VBI
4574  vsll __builtin_vec_vsx_ld (signed long long, const vsll *);
4575    LXVD2X_V2DI  LXVD2X_VSLL
4576  vsll __builtin_vec_vsx_ld (signed long long, const signed long long *);
4577    LXVD2X_V2DI  LXVD2X_SLL
4578  vull __builtin_vec_vsx_ld (signed long long, const vull *);
4579    LXVD2X_V2DI  LXVD2X_VULL
4580  vull __builtin_vec_vsx_ld (signed long long, const unsigned long long *);
4581    LXVD2X_V2DI  LXVD2X_ULL
4582  vbll __builtin_vec_vsx_ld (signed long long, const vbll *);
4583    LXVD2X_V2DI  LXVD2X_VBLL
4584  vsq __builtin_vec_vsx_ld (signed long long, const vsq *);
4585    LXVD2X_V1TI  LXVD2X_VSQ
4586  vsq __builtin_vec_vsx_ld (signed long long, const signed __int128 *);
4587    LXVD2X_V1TI  LXVD2X_SQ
4588  vuq __builtin_vec_vsx_ld (signed long long, const unsigned __int128 *);
4589    LXVD2X_V1TI  LXVD2X_UQ
4590  vf __builtin_vec_vsx_ld (signed long long, const vf *);
4591    LXVW4X_V4SF  LXVW4X_VF
4592  vf __builtin_vec_vsx_ld (signed long long, const float *);
4593    LXVW4X_V4SF  LXVW4X_F
4594  vd __builtin_vec_vsx_ld (signed long long, const vd *);
4595    LXVD2X_V2DF  LXVD2X_VD
4596  vd __builtin_vec_vsx_ld (signed long long, const double *);
4597    LXVD2X_V2DF  LXVD2X_D
4598
4599[VEC_XL_BE, vec_xl_be, __builtin_vec_xl_be]
4600  vsc __builtin_vec_xl_be (signed long long, const vsc *);
4601    LD_ELEMREV_V16QI  LD_ELEMREV_VSC
4602  vsc __builtin_vec_xl_be (signed long long, const signed char *);
4603    LD_ELEMREV_V16QI  LD_ELEMREV_SC
4604  vuc __builtin_vec_xl_be (signed long long, const vuc *);
4605    LD_ELEMREV_V16QI  LD_ELEMREV_VUC
4606  vuc __builtin_vec_xl_be (signed long long, const unsigned char *);
4607    LD_ELEMREV_V16QI  LD_ELEMREV_UC
4608  vss __builtin_vec_xl_be (signed long long, const vss *);
4609    LD_ELEMREV_V8HI  LD_ELEMREV_VSS
4610  vss __builtin_vec_xl_be (signed long long, const signed short *);
4611    LD_ELEMREV_V8HI  LD_ELEMREV_SS
4612  vus __builtin_vec_xl_be (signed long long, const vus *);
4613    LD_ELEMREV_V8HI  LD_ELEMREV_VUS
4614  vus __builtin_vec_xl_be (signed long long, const unsigned short *);
4615    LD_ELEMREV_V8HI  LD_ELEMREV_US
4616  vsi __builtin_vec_xl_be (signed long long, const vsi *);
4617    LD_ELEMREV_V4SI  LD_ELEMREV_VSI
4618  vsi __builtin_vec_xl_be (signed long long, const signed int *);
4619    LD_ELEMREV_V4SI  LD_ELEMREV_SI
4620  vui __builtin_vec_xl_be (signed long long, const vui *);
4621    LD_ELEMREV_V4SI  LD_ELEMREV_VUI
4622  vui __builtin_vec_xl_be (signed long long, const unsigned int *);
4623    LD_ELEMREV_V4SI  LD_ELEMREV_UI
4624  vsll __builtin_vec_xl_be (signed long long, const vsll *);
4625    LD_ELEMREV_V2DI  LD_ELEMREV_VSLL
4626  vsll __builtin_vec_xl_be (signed long long, const signed long long *);
4627    LD_ELEMREV_V2DI  LD_ELEMREV_SLL
4628  vull __builtin_vec_xl_be (signed long long, const vull *);
4629    LD_ELEMREV_V2DI  LD_ELEMREV_VULL
4630  vull __builtin_vec_xl_be (signed long long, const unsigned long long *);
4631    LD_ELEMREV_V2DI  LD_ELEMREV_ULL
4632  vsq __builtin_vec_xl_be (signed long long, const signed __int128 *);
4633    LD_ELEMREV_V1TI  LD_ELEMREV_SQ
4634  vuq __builtin_vec_xl_be (signed long long, const unsigned __int128 *);
4635    LD_ELEMREV_V1TI  LD_ELEMREV_UQ
4636  vf __builtin_vec_xl_be (signed long long, const vf *);
4637    LD_ELEMREV_V4SF  LD_ELEMREV_VF
4638  vf __builtin_vec_xl_be (signed long long, const float *);
4639    LD_ELEMREV_V4SF  LD_ELEMREV_F
4640  vd __builtin_vec_xl_be (signed long long, const vd *);
4641    LD_ELEMREV_V2DF  LD_ELEMREV_VD
4642  vd __builtin_vec_xl_be (signed long long, const double *);
4643    LD_ELEMREV_V2DF  LD_ELEMREV_DD
4644
4645[VEC_XL_LEN_R, vec_xl_len_r, __builtin_vec_xl_len_r]
4646  vuc __builtin_vsx_xl_len_r (const unsigned char *, unsigned int);
4647    XL_LEN_R
4648
4649[VEC_XL_SEXT, vec_xl_sext, __builtin_vec_xl_sext]
4650  vsq __builtin_vec_xl_sext (signed long long, const signed char *);
4651    SE_LXVRBX
4652  vsq __builtin_vec_xl_sext (signed long long, const signed short *);
4653    SE_LXVRHX
4654  vsq __builtin_vec_xl_sext (signed long long, const signed int *);
4655    SE_LXVRWX
4656  vsq __builtin_vec_xl_sext (signed long long, const signed long long *);
4657    SE_LXVRDX
4658
4659[VEC_XL_ZEXT, vec_xl_zext, __builtin_vec_xl_zext]
4660  vuq __builtin_vec_xl_zext (signed long long, const unsigned char *);
4661    ZE_LXVRBX
4662  vuq __builtin_vec_xl_zext (signed long long, const unsigned short *);
4663    ZE_LXVRHX
4664  vuq __builtin_vec_xl_zext (signed long long, const unsigned int *);
4665    ZE_LXVRWX
4666  vuq __builtin_vec_xl_zext (signed long long, const unsigned long long *);
4667    ZE_LXVRDX
4668
4669[VEC_XOR, vec_xor, __builtin_vec_xor]
4670  vsc __builtin_vec_xor (vsc, vsc);
4671    VXOR_V16QI
4672  vuc __builtin_vec_xor (vuc, vuc);
4673    VXOR_V16QI_UNS  VXOR_VUC
4674  vbc __builtin_vec_xor (vbc, vbc);
4675    VXOR_V16QI_UNS  VXOR_VBC
4676  vss __builtin_vec_xor (vss, vss);
4677    VXOR_V8HI
4678  vus __builtin_vec_xor (vus, vus);
4679    VXOR_V8HI_UNS  VXOR_VUS
4680  vbs __builtin_vec_xor (vbs, vbs);
4681    VXOR_V8HI_UNS  VXOR_VBS
4682  vsi __builtin_vec_xor (vsi, vsi);
4683    VXOR_V4SI
4684  vui __builtin_vec_xor (vui, vui);
4685    VXOR_V4SI_UNS  VXOR_VUI
4686  vbi __builtin_vec_xor (vbi, vbi);
4687    VXOR_V4SI_UNS  VXOR_VBI
4688  vsll __builtin_vec_xor (vsll, vsll);
4689    VXOR_V2DI
4690  vull __builtin_vec_xor (vull, vull);
4691    VXOR_V2DI_UNS  VXOR_VULL
4692  vbll __builtin_vec_xor (vbll, vbll);
4693    VXOR_V2DI_UNS  VXOR_VBLL
4694  vf __builtin_vec_xor (vf, vf);
4695    VXOR_V4SF
4696  vd __builtin_vec_xor (vd, vd);
4697    VXOR_V2DF
4698; The following variants are deprecated.
4699  vsc __builtin_vec_xor (vsc, vbc);
4700    VXOR_V16QI  VXOR_VSC_VBC
4701  vsc __builtin_vec_xor (vbc, vsc);
4702    VXOR_V16QI  VXOR_VBC_VSC
4703  vsc __builtin_vec_xor (vsc, vuc);
4704    VXOR_V16QI  VXOR_VSC_VUC
4705  vuc __builtin_vec_xor (vuc, vbc);
4706    VXOR_V16QI_UNS  VXOR_VUC_VBC
4707  vuc __builtin_vec_xor (vbc, vuc);
4708    VXOR_V16QI_UNS  VXOR_VBC_VUC
4709  vuc __builtin_vec_xor (vuc, vsc);
4710    VXOR_V16QI_UNS  VXOR_VUC_VSC
4711  vss __builtin_vec_xor (vss, vbs);
4712    VXOR_V8HI  VXOR_VSS_VBS
4713  vss __builtin_vec_xor (vbs, vss);
4714    VXOR_V8HI  VXOR_VBS_VSS
4715  vus __builtin_vec_xor (vus, vbs);
4716    VXOR_V8HI_UNS  VXOR_VUS_VBS
4717  vus __builtin_vec_xor (vbs, vus);
4718    VXOR_V8HI_UNS  VXOR_VBS_VUS
4719  vsi __builtin_vec_xor (vsi, vbi);
4720    VXOR_V4SI  VXOR_VSI_VBI
4721  vsi __builtin_vec_xor (vbi, vsi);
4722    VXOR_V4SI  VXOR_VBI_VSI
4723  vui __builtin_vec_xor (vui, vbi);
4724    VXOR_V4SI_UNS  VXOR_VUI_VBI
4725  vui __builtin_vec_xor (vbi, vui);
4726    VXOR_V4SI_UNS  VXOR_VBI_VUI
4727  vsll __builtin_vec_xor (vsll, vbll);
4728    VXOR_V2DI  VXOR_VSLL_VBLL
4729  vsll __builtin_vec_xor (vbll, vsll);
4730    VXOR_V2DI  VXOR_VBLL_VSLL
4731  vull __builtin_vec_xor (vull, vbll);
4732    VXOR_V2DI_UNS  VXOR_VULL_VBLL
4733  vull __builtin_vec_xor (vbll, vull);
4734    VXOR_V2DI_UNS  VXOR_VBLL_VULL
4735  vf __builtin_vec_xor (vf, vbi);
4736    VXOR_V4SF  VXOR_VF_VBI
4737  vf __builtin_vec_xor (vbi, vf);
4738    VXOR_V4SF  VXOR_VBI_VF
4739  vd __builtin_vec_xor (vd, vbll);
4740    VXOR_V2DF  VXOR_VD_VBLL
4741  vd __builtin_vec_xor (vbll, vd);
4742    VXOR_V2DF  VXOR_VBLL_VD
4743
4744[VEC_XST, vec_xst, __builtin_vec_vsx_st]
4745  void __builtin_vec_vsx_st (vsc, signed long long, vsc *);
4746    STXVW4X_V16QI  STXVW4X_VSC
4747  void __builtin_vec_vsx_st (vsc, signed long long, signed char *);
4748    STXVW4X_V16QI  STXVW4X_SC
4749  void __builtin_vec_vsx_st (vuc, signed long long, vuc *);
4750    STXVW4X_V16QI  STXVW4X_VUC
4751  void __builtin_vec_vsx_st (vuc, signed long long, unsigned char *);
4752    STXVW4X_V16QI  STXVW4X_UC
4753  void __builtin_vec_vsx_st (vbc, signed long long, vbc *);
4754    STXVW4X_V16QI  STXVW4X_VBC
4755  void __builtin_vec_vsx_st (vbc, signed long long, signed char *);
4756    STXVW4X_V16QI  STXVW4X_VBC_S
4757  void __builtin_vec_vsx_st (vbc, signed long long, unsigned char *);
4758    STXVW4X_V16QI  STXVW4X_VBC_U
4759  void __builtin_vec_vsx_st (vss, signed long long, vss *);
4760    STXVW4X_V8HI  STXVW4X_VSS
4761  void __builtin_vec_vsx_st (vss, signed long long, signed short *);
4762    STXVW4X_V8HI  STXVW4X_SS
4763  void __builtin_vec_vsx_st (vus, signed long long, vus *);
4764    STXVW4X_V8HI  STXVW4X_VUS
4765  void __builtin_vec_vsx_st (vus, signed long long, unsigned short *);
4766    STXVW4X_V8HI  STXVW4X_US
4767  void __builtin_vec_vsx_st (vbs, signed long long, vbs *);
4768    STXVW4X_V8HI  STXVW4X_VBS
4769  void __builtin_vec_vsx_st (vbs, signed long long, signed short *);
4770    STXVW4X_V8HI  STXVW4X_VBS_S
4771  void __builtin_vec_vsx_st (vbs, signed long long, unsigned short *);
4772    STXVW4X_V8HI  STXVW4X_VBS_U
4773  void __builtin_vec_vsx_st (vp, signed long long, vp *);
4774    STXVW4X_V8HI  STXVW4X_VP
4775  void __builtin_vec_vsx_st (vsi, signed long long, vsi *);
4776    STXVW4X_V4SI  STXVW4X_VSI
4777  void __builtin_vec_vsx_st (vsi, signed long long, signed int *);
4778    STXVW4X_V4SI  STXVW4X_SI
4779  void __builtin_vec_vsx_st (vui, signed long long, vui *);
4780    STXVW4X_V4SI  STXVW4X_VUI
4781  void __builtin_vec_vsx_st (vui, signed long long, unsigned int *);
4782    STXVW4X_V4SI  STXVW4X_UI
4783  void __builtin_vec_vsx_st (vbi, signed long long, vbi *);
4784    STXVW4X_V4SI  STXVW4X_VBI
4785  void __builtin_vec_vsx_st (vbi, signed long long, signed int *);
4786    STXVW4X_V4SI  STXVW4X_VBI_S
4787  void __builtin_vec_vsx_st (vbi, signed long long, unsigned int *);
4788    STXVW4X_V4SI  STXVW4X_VBI_U
4789  void __builtin_vec_vsx_st (vsll, signed long long, vsll *);
4790    STXVD2X_V2DI  STXVD2X_VSLL
4791  void __builtin_vec_vsx_st (vsll, signed long long, signed long long *);
4792    STXVD2X_V2DI  STXVD2X_SLL
4793  void __builtin_vec_vsx_st (vull, signed long long, vull *);
4794    STXVD2X_V2DI  STXVD2X_VULL
4795  void __builtin_vec_vsx_st (vull, signed long long, unsigned long long *);
4796    STXVD2X_V2DI  STXVD2X_ULL
4797  void __builtin_vec_vsx_st (vbll, signed long long, vbll *);
4798    STXVD2X_V2DI  STXVD2X_VBLL
4799  void __builtin_vec_vsx_st (vsq, signed long long, signed __int128 *);
4800    STXVD2X_V1TI  STXVD2X_SQ
4801  void __builtin_vec_vsx_st (vuq, signed long long, unsigned __int128 *);
4802    STXVD2X_V1TI  STXVD2X_UQ
4803  void __builtin_vec_vsx_st (vf, signed long long, vf *);
4804    STXVW4X_V4SF  STXVW4X_VF
4805  void __builtin_vec_vsx_st (vf, signed long long, float *);
4806    STXVW4X_V4SF  STXVW4X_F
4807  void __builtin_vec_vsx_st (vd, signed long long, vd *);
4808    STXVD2X_V2DF  STXVD2X_VD
4809  void __builtin_vec_vsx_st (vd, signed long long, double *);
4810    STXVD2X_V2DF  STXVD2X_D
4811
4812[VEC_XST_BE, vec_xst_be, __builtin_vec_xst_be]
4813  void __builtin_vec_xst_be (vsc, signed long long, vsc *);
4814    ST_ELEMREV_V16QI  ST_ELEMREV_VSC
4815  void __builtin_vec_xst_be (vsc, signed long long, signed char *);
4816    ST_ELEMREV_V16QI  ST_ELEMREV_SC_
4817  void __builtin_vec_xst_be (vuc, signed long long, vuc *);
4818    ST_ELEMREV_V16QI  ST_ELEMREV_VUC
4819  void __builtin_vec_xst_be (vuc, signed long long, unsigned char *);
4820    ST_ELEMREV_V16QI  ST_ELEMREV_UC
4821  void __builtin_vec_xst_be (vss, signed long long, vss *);
4822    ST_ELEMREV_V8HI  ST_ELEMREV_VSS
4823  void __builtin_vec_xst_be (vss, signed long long, signed short *);
4824    ST_ELEMREV_V8HI  ST_ELEMREV_SS
4825  void __builtin_vec_xst_be (vus, signed long long, vus *);
4826    ST_ELEMREV_V8HI  ST_ELEMREV_VUS
4827  void __builtin_vec_xst_be (vus, signed long long, unsigned short *);
4828    ST_ELEMREV_V8HI  ST_ELEMREV_US
4829  void __builtin_vec_xst_be (vsi, signed long long, vsi *);
4830    ST_ELEMREV_V4SI  ST_ELEMREV_VSI
4831  void __builtin_vec_xst_be (vsi, signed long long, signed int *);
4832    ST_ELEMREV_V4SI  ST_ELEMREV_SI
4833  void __builtin_vec_xst_be (vui, signed long long, vui *);
4834    ST_ELEMREV_V4SI  ST_ELEMREV_VUI
4835  void __builtin_vec_xst_be (vui, signed long long, unsigned int *);
4836    ST_ELEMREV_V4SI  ST_ELEMREV_UI
4837  void __builtin_vec_xst_be (vsll, signed long long, vsll *);
4838    ST_ELEMREV_V2DI  ST_ELEMREV_VSLL
4839  void __builtin_vec_xst_be (vsll, signed long long, signed long long *);
4840    ST_ELEMREV_V2DI  ST_ELEMREV_SLL
4841  void __builtin_vec_xst_be (vull, signed long long, vull *);
4842    ST_ELEMREV_V2DI  ST_ELEMREV_VULL
4843  void __builtin_vec_xst_be (vull, signed long long, unsigned long long *);
4844    ST_ELEMREV_V2DI  ST_ELEMREV_ULL
4845  void __builtin_vec_xst_be (vsq, signed long long, signed __int128 *);
4846    ST_ELEMREV_V1TI  ST_ELEMREV_SQ
4847  void __builtin_vec_xst_be (vuq, signed long long, unsigned __int128 *);
4848    ST_ELEMREV_V1TI  ST_ELEMREV_UQ
4849  void __builtin_vec_xst_be (vf, signed long long, vf *);
4850    ST_ELEMREV_V4SF  ST_ELEMREV_VF
4851  void __builtin_vec_xst_be (vf, signed long long, float *);
4852    ST_ELEMREV_V4SF  ST_ELEMREV_F
4853  void __builtin_vec_xst_be (vd, signed long long, vd *);
4854    ST_ELEMREV_V2DF  ST_ELEMREV_VD
4855  void __builtin_vec_xst_be (vd, signed long long, double *);
4856    ST_ELEMREV_V2DF  ST_ELEMREV_D
4857
4858[VEC_XST_LEN_R, vec_xst_len_r, __builtin_vec_xst_len_r]
4859  void __builtin_vsx_xst_len_r (vuc, unsigned char *, unsigned int);
4860    XST_LEN_R
4861
4862[VEC_XST_TRUNC, vec_xst_trunc, __builtin_vec_xst_trunc]
4863  void __builtin_vec_xst_trunc (vsq, signed long long, signed char *);
4864    TR_STXVRBX  TR_STXVRBX_S
4865  void __builtin_vec_xst_trunc (vuq, signed long long, unsigned char *);
4866    TR_STXVRBX  TR_STXVRBX_U
4867  void __builtin_vec_xst_trunc (vsq, signed long long, signed short *);
4868    TR_STXVRHX  TR_STXVRHX_S
4869  void __builtin_vec_xst_trunc (vuq, signed long long, unsigned short *);
4870    TR_STXVRHX  TR_STXVRHX_U
4871  void __builtin_vec_xst_trunc (vsq, signed long long, signed int *);
4872    TR_STXVRWX  TR_STXVRWX_S
4873  void __builtin_vec_xst_trunc (vuq, signed long long, unsigned int *);
4874    TR_STXVRWX  TR_STXVRWX_U
4875  void __builtin_vec_xst_trunc (vsq, signed long long, signed long long *);
4876    TR_STXVRDX  TR_STXVRDX_S
4877  void __builtin_vec_xst_trunc (vuq, signed long long, unsigned long long *);
4878    TR_STXVRDX  TR_STXVRDX_U
4879
4880[VEC_XXPERMDI, vec_xxpermdi, __builtin_vsx_xxpermdi]
4881  vsc __builtin_vsx_xxpermdi (vsc, vsc, const int);
4882    XXPERMDI_16QI  XXPERMDI_VSC
4883  vuc __builtin_vsx_xxpermdi (vuc, vuc, const int);
4884    XXPERMDI_16QI  XXPERMDI_VUC
4885  vss __builtin_vsx_xxpermdi (vss, vss, const int);
4886    XXPERMDI_8HI  XXPERMDI_VSS
4887  vus __builtin_vsx_xxpermdi (vus, vus, const int);
4888    XXPERMDI_8HI  XXPERMDI_VUS
4889  vsi __builtin_vsx_xxpermdi (vsi, vsi, const int);
4890    XXPERMDI_4SI  XXPERMDI_VSI
4891  vui __builtin_vsx_xxpermdi (vui, vui, const int);
4892    XXPERMDI_4SI  XXPERMDI_VUI
4893  vsll __builtin_vsx_xxpermdi (vsll, vsll, const int);
4894    XXPERMDI_2DI  XXPERMDI_VSLL
4895  vull __builtin_vsx_xxpermdi (vull, vull, const int);
4896    XXPERMDI_2DI  XXPERMDI_VULL
4897  vf __builtin_vsx_xxpermdi (vf, vf, const int);
4898    XXPERMDI_4SF  XXPERMDI_VF
4899  vd __builtin_vsx_xxpermdi (vd, vd, const int);
4900    XXPERMDI_2DF  XXPERMDI_VD
4901
4902[VEC_XXSLDWI, vec_xxsldwi, __builtin_vsx_xxsldwi]
4903  vsc __builtin_vsx_xxsldwi (vsc, vsc, const int);
4904    XXSLDWI_16QI  XXSLDWI_VSC2
4905  vuc __builtin_vsx_xxsldwi (vuc, vuc, const int);
4906    XXSLDWI_16QI  XXSLDWI_VUC2
4907  vss __builtin_vsx_xxsldwi (vss, vss, const int);
4908    XXSLDWI_8HI  XXSLDWI_VSS2
4909  vus __builtin_vsx_xxsldwi (vus, vus, const int);
4910    XXSLDWI_8HI  XXSLDWI_VUS2
4911  vsi __builtin_vsx_xxsldwi (vsi, vsi, const int);
4912    XXSLDWI_4SI  XXSLDWI_VSI2
4913  vui __builtin_vsx_xxsldwi (vui, vui, const int);
4914    XXSLDWI_4SI  XXSLDWI_VUI2
4915  vsll __builtin_vsx_xxsldwi (vsll, vsll, const int);
4916    XXSLDWI_2DI  XXSLDWI_VSLL2
4917  vull __builtin_vsx_xxsldwi (vull, vull, const int);
4918    XXSLDWI_2DI  XXSLDWI_VULL2
4919  vf __builtin_vsx_xxsldwi (vf, vf, const int);
4920    XXSLDWI_4SF  XXSLDWI_VF2
4921  vd __builtin_vsx_xxsldwi (vd, vd, const int);
4922    XXSLDWI_2DF  XXSLDWI_VD2
4923
4924
4925; **************************************************************************
4926; **************************************************************************
4927; ****    Deprecated overloads that should never have existed at all    ****
4928; **************************************************************************
4929; **************************************************************************
4930
4931[VEC_LVEBX, vec_lvebx, __builtin_vec_lvebx]
4932  vsc __builtin_vec_lvebx (signed long, signed char *);
4933    LVEBX  LVEBX_DEPR1
4934  vuc __builtin_vec_lvebx (signed long, unsigned char *);
4935    LVEBX  LVEBX_DEPR2
4936
4937[VEC_LVEHX, vec_lvehx, __builtin_vec_lvehx]
4938  vss __builtin_vec_lvehx (signed long, signed short *);
4939    LVEHX  LVEHX_DEPR1
4940  vus __builtin_vec_lvehx (signed long, unsigned short *);
4941    LVEHX  LVEHX_DEPR2
4942
4943[VEC_LVEWX, vec_lvewx, __builtin_vec_lvewx]
4944  vf __builtin_vec_lvewx (signed long, float *);
4945    LVEWX  LVEWX_DEPR1
4946  vsi __builtin_vec_lvewx (signed long, signed int *);
4947    LVEWX  LVEWX_DEPR2
4948  vui __builtin_vec_lvewx (signed long, unsigned int *);
4949    LVEWX  LVEWX_DEPR3
4950  vsi __builtin_vec_lvewx (signed long, signed long *);
4951    LVEWX  LVEWX_DEPR4
4952  vui __builtin_vec_lvewx (signed long, unsigned long *);
4953    LVEWX  LVEWX_DEPR5
4954
4955[VEC_STVEBX, vec_stvebx, __builtin_vec_stvebx]
4956  void __builtin_vec_stvebx (vsc, signed long, signed char *);
4957    STVEBX  STVEBX_DEPR1
4958  void __builtin_vec_stvebx (vuc, signed long, unsigned char *);
4959    STVEBX  STVEBX_DEPR2
4960  void __builtin_vec_stvebx (vbc, signed long, signed char *);
4961    STVEBX  STVEBX_DEPR3
4962  void __builtin_vec_stvebx (vbc, signed long, signed char *);
4963    STVEBX  STVEBX_DEPR4
4964  void __builtin_vec_stvebx (vsc, signed long, void *);
4965    STVEBX  STVEBX_DEPR5
4966  void __builtin_vec_stvebx (vuc, signed long, void *);
4967    STVEBX  STVEBX_DEPR6
4968
4969[VEC_STVEHX, vec_stvehx, __builtin_vec_stvehx]
4970  void __builtin_vec_stvehx (vss, signed long, signed short *);
4971    STVEHX  STVEHX_DEPR1
4972  void __builtin_vec_stvehx (vus, signed long, unsigned short *);
4973    STVEHX  STVEHX_DEPR2
4974  void __builtin_vec_stvehx (vbs, signed long, signed short *);
4975    STVEHX  STVEHX_DEPR3
4976  void __builtin_vec_stvehx (vbs, signed long, signed short *);
4977    STVEHX  STVEHX_DEPR4
4978  void __builtin_vec_stvehx (vss, signed long, void *);
4979    STVEHX  STVEHX_DEPR5
4980  void __builtin_vec_stvehx (vus, signed long, void *);
4981    STVEHX  STVEHX_DEPR6
4982
4983[VEC_STVEWX, vec_stvewx, __builtin_vec_stvewx]
4984  void __builtin_vec_stvewx (vf, signed long, float *);
4985    STVEWX  STVEWX_DEPR1
4986  void __builtin_vec_stvewx (vsi, signed long, signed int *);
4987    STVEWX  STVEWX_DEPR2
4988  void __builtin_vec_stvewx (vui, signed long, unsigned int *);
4989    STVEWX  STVEWX_DEPR3
4990  void __builtin_vec_stvewx (vbi, signed long, signed int *);
4991    STVEWX  STVEWX_DEPR4
4992  void __builtin_vec_stvewx (vbi, signed long, unsigned int *);
4993    STVEWX  STVEWX_DEPR5
4994  void __builtin_vec_stvewx (vf, signed long, void *);
4995    STVEWX  STVEWX_DEPR6
4996  void __builtin_vec_stvewx (vsi, signed long, void *);
4997    STVEWX  STVEWX_DEPR7
4998  void __builtin_vec_stvewx (vui, signed long, void *);
4999    STVEWX  STVEWX_DEPR8
5000
5001[VEC_TSTSFI_EQ_DD, SKIP, __builtin_dfp_dtstsfi_eq_dd]
5002  signed int __builtin_dfp_dtstsfi_eq_dd (const int, _Decimal64);
5003    TSTSFI_EQ_DD  TSTSFI_EQ_DD_DEPR1
5004
5005[VEC_TSTSFI_EQ_TD, SKIP, __builtin_dfp_dtstsfi_eq_td]
5006  signed int __builtin_dfp_dtstsfi_eq_td (const int, _Decimal128);
5007    TSTSFI_EQ_TD  TSTSFI_EQ_TD_DEPR1
5008
5009[VEC_TSTSFI_GT_DD, SKIP, __builtin_dfp_dtstsfi_gt_dd]
5010  signed int __builtin_dfp_dtstsfi_gt_dd (const int, _Decimal64);
5011    TSTSFI_GT_DD  TSTSFI_GT_DD_DEPR1
5012
5013[VEC_TSTSFI_GT_TD, SKIP, __builtin_dfp_dtstsfi_gt_td]
5014  signed int __builtin_dfp_dtstsfi_gt_td (const int, _Decimal128);
5015    TSTSFI_GT_TD  TSTSFI_GT_TD_DEPR1
5016
5017[VEC_TSTSFI_LT_DD, SKIP, __builtin_dfp_dtstsfi_lt_dd]
5018  signed int __builtin_dfp_dtstsfi_lt_dd (const int, _Decimal64);
5019    TSTSFI_LT_DD  TSTSFI_LT_DD_DEPR1
5020
5021[VEC_TSTSFI_LT_TD, SKIP, __builtin_dfp_dtstsfi_lt_td]
5022  signed int __builtin_dfp_dtstsfi_lt_td (const int, _Decimal128);
5023    TSTSFI_LT_TD  TSTSFI_LT_TD_DEPR1
5024
5025[VEC_TSTSFI_OV_DD, SKIP, __builtin_dfp_dtstsfi_ov_dd]
5026  signed int __builtin_dfp_dtstsfi_ov_dd (const int, _Decimal64);
5027    TSTSFI_OV_DD  TSTSFI_OV_DD_DEPR1
5028
5029[VEC_TSTSFI_OV_TD, SKIP, __builtin_dfp_dtstsfi_ov_td]
5030  signed int __builtin_dfp_dtstsfi_ov_td (const int, _Decimal128);
5031    TSTSFI_OV_TD  TSTSFI_OV_TD_DEPR1
5032
5033[VEC_VADDCUQ, vec_vaddcuq, __builtin_vec_vaddcuq]
5034  vsq __builtin_vec_vaddcuq (vsq, vsq);
5035    VADDCUQ  VADDCUQ_DEPR1
5036  vuq __builtin_vec_vaddcuq (vuq, vuq);
5037    VADDCUQ  VADDCUQ_DEPR2
5038
5039[VEC_VADDECUQ, vec_vaddecuq, __builtin_vec_vaddecuq]
5040  vsq __builtin_vec_vaddecuq (vsq, vsq, vsq);
5041    VADDECUQ  VADDECUQ_DEPR1
5042  vuq __builtin_vec_vaddecuq (vuq, vuq, vuq);
5043    VADDECUQ  VADDECUQ_DEPR2
5044
5045[VEC_VADDEUQM, vec_vaddeuqm, __builtin_vec_vaddeuqm]
5046  vsq __builtin_vec_vaddeuqm (vsq, vsq, vsq);
5047    VADDEUQM  VADDEUQM_DEPR1
5048  vuq __builtin_vec_vaddeuqm (vuq, vuq, vuq);
5049    VADDEUQM  VADDEUQM_DEPR2
5050
5051[VEC_VADDFP, vec_vaddfp, __builtin_vec_vaddfp]
5052  vf __builtin_vec_vaddfp (vf, vf);
5053    VADDFP  VADDFP_DEPR1
5054
5055[VEC_VADDSBS, vec_vaddsbs, __builtin_vec_vaddsbs]
5056  vsc __builtin_vec_vaddsbs (vsc, vsc);
5057    VADDSBS  VADDSBS_DEPR1
5058  vsc __builtin_vec_vaddsbs (vbc, vsc);
5059    VADDSBS  VADDSBS_DEPR2
5060  vsc __builtin_vec_vaddsbs (vsc, vbc);
5061    VADDSBS  VADDSBS_DEPR3
5062
5063[VEC_VADDSHS, vec_vaddshs, __builtin_vec_vaddshs]
5064  vss __builtin_vec_vaddshs (vss, vss);
5065    VADDSHS  VADDSHS_DEPR1
5066  vss __builtin_vec_vaddshs (vbs, vss);
5067    VADDSHS  VADDSHS_DEPR2
5068  vss __builtin_vec_vaddshs (vss, vbs);
5069    VADDSHS  VADDSHS_DEPR3
5070
5071[VEC_VADDSWS, vec_vaddsws, __builtin_vec_vaddsws]
5072  vsi __builtin_vec_vaddsws (vsi, vsi);
5073    VADDSWS  VADDSWS_DEPR1
5074  vsi __builtin_vec_vaddsws (vbi, vsi);
5075    VADDSWS  VADDSWS_DEPR2
5076  vsi __builtin_vec_vaddsws (vsi, vbi);
5077    VADDSWS  VADDSWS_DEPR3
5078
5079[VEC_VADDUBM, vec_vaddubm, __builtin_vec_vaddubm]
5080  vsc __builtin_vec_vaddubm (vsc, vsc);
5081    VADDUBM  VADDUBM_DEPR1
5082  vuc __builtin_vec_vaddubm (vsc, vuc);
5083    VADDUBM  VADDUBM_DEPR2
5084  vuc __builtin_vec_vaddubm (vuc, vsc);
5085    VADDUBM  VADDUBM_DEPR3
5086  vuc __builtin_vec_vaddubm (vuc, vuc);
5087    VADDUBM  VADDUBM_DEPR4
5088  vsc __builtin_vec_vaddubm (vbc, vsc);
5089    VADDUBM  VADDUBM_DEPR5
5090  vsc __builtin_vec_vaddubm (vsc, vbc);
5091    VADDUBM  VADDUBM_DEPR6
5092  vuc __builtin_vec_vaddubm (vbc, vuc);
5093    VADDUBM  VADDUBM_DEPR7
5094  vuc __builtin_vec_vaddubm (vuc, vbc);
5095    VADDUBM  VADDUBM_DEPR8
5096
5097[VEC_VADDUBS, vec_vaddubs, __builtin_vec_vaddubs]
5098  vuc __builtin_vec_vaddubs (vsc, vuc);
5099    VADDUBS  VADDUBS_DEPR1
5100  vuc __builtin_vec_vaddubs (vuc, vsc);
5101    VADDUBS  VADDUBS_DEPR2
5102  vuc __builtin_vec_vaddubs (vuc, vuc);
5103    VADDUBS  VADDUBS_DEPR3
5104  vuc __builtin_vec_vaddubs (vbc, vuc);
5105    VADDUBS  VADDUBS_DEPR4
5106  vuc __builtin_vec_vaddubs (vuc, vbc);
5107    VADDUBS  VADDUBS_DEPR5
5108
5109[VEC_VADDUDM, vec_vaddudm, __builtin_vec_vaddudm]
5110  vsll __builtin_vec_vaddudm (vbll, vsll);
5111    VADDUDM  VADDUDM_DEPR1
5112  vsll __builtin_vec_vaddudm (vsll, vbll);
5113    VADDUDM  VADDUDM_DEPR2
5114  vsll __builtin_vec_vaddudm (vsll, vsll);
5115    VADDUDM  VADDUDM_DEPR3
5116  vull __builtin_vec_vaddudm (vbll, vull);
5117    VADDUDM  VADDUDM_DEPR4
5118  vull __builtin_vec_vaddudm (vull, vbll);
5119    VADDUDM  VADDUDM_DEPR5
5120  vull __builtin_vec_vaddudm (vull, vull);
5121    VADDUDM  VADDUDM_DEPR6
5122
5123[VEC_VADDUHM, vec_vadduhm, __builtin_vec_vadduhm]
5124  vss __builtin_vec_vadduhm (vss, vss);
5125    VADDUHM  VADDUHM_DEPR1
5126  vus __builtin_vec_vadduhm (vss, vus);
5127    VADDUHM  VADDUHM_DEPR2
5128  vus __builtin_vec_vadduhm (vus, vss);
5129    VADDUHM  VADDUHM_DEPR3
5130  vus __builtin_vec_vadduhm (vus, vus);
5131    VADDUHM  VADDUHM_DEPR4
5132  vss __builtin_vec_vadduhm (vbs, vss);
5133    VADDUHM  VADDUHM_DEPR5
5134  vss __builtin_vec_vadduhm (vss, vbs);
5135    VADDUHM  VADDUHM_DEPR6
5136  vus __builtin_vec_vadduhm (vbs, vus);
5137    VADDUHM  VADDUHM_DEPR7
5138  vus __builtin_vec_vadduhm (vus, vbs);
5139    VADDUHM  VADDUHM_DEPR8
5140
5141[VEC_VADDUHS, vec_vadduhs, __builtin_vec_vadduhs]
5142  vus __builtin_vec_vadduhs (vss, vus);
5143    VADDUHS  VADDUHS_DEPR1
5144  vus __builtin_vec_vadduhs (vus, vss);
5145    VADDUHS  VADDUHS_DEPR2
5146  vus __builtin_vec_vadduhs (vus, vus);
5147    VADDUHS  VADDUHS_DEPR3
5148  vus __builtin_vec_vadduhs (vbs, vus);
5149    VADDUHS  VADDUHS_DEPR4
5150  vus __builtin_vec_vadduhs (vus, vbs);
5151    VADDUHS  VADDUHS_DEPR5
5152
5153[VEC_VADDUQM, vec_vadduqm, __builtin_vec_vadduqm]
5154  vsq __builtin_vec_vadduqm (vsq, vsq);
5155    VADDUQM  VADDUQM_DEPR1
5156  vuq __builtin_vec_vadduqm (vuq, vuq);
5157    VADDUQM  VADDUQM_DEPR2
5158
5159[VEC_VADDUWM, vec_vadduwm, __builtin_vec_vadduwm]
5160  vsi __builtin_vec_vadduwm (vsi, vsi);
5161    VADDUWM  VADDUWM_DEPR1
5162  vui __builtin_vec_vadduwm (vsi, vui);
5163    VADDUWM  VADDUWM_DEPR2
5164  vui __builtin_vec_vadduwm (vui, vsi);
5165    VADDUWM  VADDUWM_DEPR3
5166  vui __builtin_vec_vadduwm (vui, vui);
5167    VADDUWM  VADDUWM_DEPR4
5168  vsi __builtin_vec_vadduwm (vbi, vsi);
5169    VADDUWM  VADDUWM_DEPR5
5170  vsi __builtin_vec_vadduwm (vsi, vbi);
5171    VADDUWM  VADDUWM_DEPR6
5172  vui __builtin_vec_vadduwm (vbi, vui);
5173    VADDUWM  VADDUWM_DEPR7
5174  vui __builtin_vec_vadduwm (vui, vbi);
5175    VADDUWM  VADDUWM_DEPR8
5176
5177[VEC_VADDUWS, vec_vadduws, __builtin_vec_vadduws]
5178  vui __builtin_vec_vadduws (vsi, vui);
5179    VADDUWS  VADDUWS_DEPR1
5180  vui __builtin_vec_vadduws (vui, vsi);
5181    VADDUWS  VADDUWS_DEPR2
5182  vui __builtin_vec_vadduws (vui, vui);
5183    VADDUWS  VADDUWS_DEPR3
5184  vui __builtin_vec_vadduws (vbi, vui);
5185    VADDUWS  VADDUWS_DEPR4
5186  vui __builtin_vec_vadduws (vui, vbi);
5187    VADDUWS  VADDUWS_DEPR5
5188
5189[VEC_VADUB, vec_absdb, __builtin_vec_vadub]
5190  vuc __builtin_vec_vadub (vuc, vuc);
5191    VADUB  VADUB_DEPR1
5192
5193[VEC_VADUH, vec_absdh, __builtin_vec_vaduh]
5194  vus __builtin_vec_vaduh (vus, vus);
5195    VADUH  VADUH_DEPR1
5196
5197[VEC_VADUW, vec_absdw, __builtin_vec_vaduw]
5198  vui __builtin_vec_vaduw (vui, vui);
5199    VADUW  VADUW_DEPR1
5200
5201[VEC_VAVGSB, vec_vavgsb, __builtin_vec_vavgsb]
5202  vsc __builtin_vec_vavgsb (vsc, vsc);
5203    VAVGSB  VAVGSB_DEPR1
5204
5205[VEC_VAVGSH, vec_vavgsh, __builtin_vec_vavgsh]
5206  vss __builtin_vec_vavgsh (vss, vss);
5207    VAVGSH  VAVGSH_DEPR1
5208
5209[VEC_VAVGSW, vec_vavgsw, __builtin_vec_vavgsw]
5210  vsi __builtin_vec_vavgsw (vsi, vsi);
5211    VAVGSW  VAVGSW_DEPR1
5212
5213[VEC_VAVGUB, vec_vavgub, __builtin_vec_vavgub]
5214  vuc __builtin_vec_vavgub (vuc, vuc);
5215    VAVGUB  VAVGUB_DEPR1
5216
5217[VEC_VAVGUH, vec_vavguh, __builtin_vec_vavguh]
5218  vus __builtin_vec_vavguh (vus, vus);
5219    VAVGUH  VAVGUH_DEPR1
5220
5221[VEC_VAVGUW, vec_vavguw, __builtin_vec_vavguw]
5222  vui __builtin_vec_vavguw (vui, vui);
5223    VAVGUW  VAVGUW_DEPR1
5224
5225[VEC_VBPERMQ, vec_vbpermq, __builtin_vec_vbpermq]
5226  vull __builtin_vec_vbpermq (vull, vuc);
5227    VBPERMQ  VBPERMQ_DEPR1
5228  vsll __builtin_vec_vbpermq (vsc, vsc);
5229    VBPERMQ  VBPERMQ_DEPR2
5230  vull __builtin_vec_vbpermq (vuc, vuc);
5231    VBPERMQ  VBPERMQ_DEPR3
5232  vull __builtin_vec_vbpermq (vuq, vuc);
5233    VBPERMQ  VBPERMQ_DEPR4
5234
5235[VEC_VCFSX, vec_vcfsx, __builtin_vec_vcfsx]
5236  vf __builtin_vec_vcfsx (vsi, const int);
5237    VCFSX  VCFSX_DEPR1
5238
5239[VEC_VCFUX, vec_vcfux, __builtin_vec_vcfux]
5240  vf __builtin_vec_vcfux (vui, const int);
5241    VCFUX  VCFUX_DEPR1
5242
5243[VEC_VCLZB, vec_vclzb, __builtin_vec_vclzb]
5244  vsc __builtin_vec_vclzb (vsc);
5245    VCLZB  VCLZB_DEPR1
5246  vuc __builtin_vec_vclzb (vuc);
5247    VCLZB  VCLZB_DEPR2
5248
5249[VEC_VCLZD, vec_vclzd, __builtin_vec_vclzd]
5250  vsll __builtin_vec_vclzd (vsll);
5251    VCLZD  VCLZD_DEPR1
5252  vull __builtin_vec_vclzd (vull);
5253    VCLZD  VCLZD_DEPR2
5254
5255[VEC_VCLZH, vec_vclzh, __builtin_vec_vclzh]
5256  vss __builtin_vec_vclzh (vss);
5257    VCLZH  VCLZH_DEPR1
5258  vus __builtin_vec_vclzh (vus);
5259    VCLZH  VCLZH_DEPR2
5260
5261[VEC_VCLZW, vec_vclzw, __builtin_vec_vclzw]
5262  vsi __builtin_vec_vclzw (vsi);
5263    VCLZW  VCLZW_DEPR1
5264  vui __builtin_vec_vclzw (vui);
5265    VCLZW  VCLZW_DEPR2
5266
5267[VEC_VCMPEQFP, vec_vcmpeqfp, __builtin_vec_vcmpeqfp]
5268  vbi __builtin_vec_vcmpeqfp (vf, vf);
5269    VCMPEQFP  VCMPEQFP_DEPR1
5270
5271[VEC_VCMPEQUB, vec_vcmpequb, __builtin_vec_vcmpequb]
5272  vbc __builtin_vec_vcmpequb (vsc, vsc);
5273    VCMPEQUB  VCMPEQUB_DEPR1
5274  vbc __builtin_vec_vcmpequb (vuc, vuc);
5275    VCMPEQUB  VCMPEQUB_DEPR2
5276
5277[VEC_VCMPEQUH, vec_vcmpequh, __builtin_vec_vcmpequh]
5278  vbs __builtin_vec_vcmpequh (vss, vss);
5279    VCMPEQUH  VCMPEQUH_DEPR1
5280  vbs __builtin_vec_vcmpequh (vus, vus);
5281    VCMPEQUH  VCMPEQUH_DEPR2
5282
5283[VEC_VCMPEQUW, vec_vcmpequw, __builtin_vec_vcmpequw]
5284  vbi __builtin_vec_vcmpequw (vsi, vsi);
5285    VCMPEQUW  VCMPEQUW_DEPR1
5286  vbi __builtin_vec_vcmpequw (vui, vui);
5287    VCMPEQUW  VCMPEQUW_DEPR2
5288
5289[VEC_VCMPGTFP, vec_vcmpgtfp, __builtin_vec_vcmpgtfp]
5290  vbi __builtin_vec_vcmpgtfp (vf, vf);
5291    VCMPGTFP  VCMPGTFP_DEPR1
5292
5293[VEC_VCMPGTSB, vec_vcmpgtsb, __builtin_vec_vcmpgtsb]
5294  vbc __builtin_vec_vcmpgtsb (vsc, vsc);
5295    VCMPGTSB  VCMPGTSB_DEPR1
5296
5297[VEC_VCMPGTSH, vec_vcmpgtsh, __builtin_vec_vcmpgtsh]
5298  vbs __builtin_vec_vcmpgtsh (vss, vss);
5299    VCMPGTSH  VCMPGTSH_DEPR1
5300
5301[VEC_VCMPGTSW, vec_vcmpgtsw, __builtin_vec_vcmpgtsw]
5302  vbi __builtin_vec_vcmpgtsw (vsi, vsi);
5303    VCMPGTSW  VCMPGTSW_DEPR1
5304
5305[VEC_VCMPGTUB, vec_vcmpgtub, __builtin_vec_vcmpgtub]
5306  vbc __builtin_vec_vcmpgtub (vuc, vuc);
5307    VCMPGTUB  VCMPGTUB_DEPR1
5308
5309[VEC_VCMPGTUH, vec_vcmpgtuh, __builtin_vec_vcmpgtuh]
5310  vbs __builtin_vec_vcmpgtuh (vus, vus);
5311    VCMPGTUH  VCMPGTUH_DEPR1
5312
5313[VEC_VCMPGTUW, vec_vcmpgtuw, __builtin_vec_vcmpgtuw]
5314  vbi __builtin_vec_vcmpgtuw (vui, vui);
5315    VCMPGTUW  VCMPGTUW_DEPR1
5316
5317[VEC_VCTZB, vec_vctzb, __builtin_vec_vctzb]
5318  vsc __builtin_vec_vctzb (vsc);
5319    VCTZB  VCTZB_DEPR1
5320  vuc __builtin_vec_vctzb (vuc);
5321    VCTZB  VCTZB_DEPR2
5322
5323[VEC_VCTZD, vec_vctzd, __builtin_vec_vctzd]
5324  vsll __builtin_vec_vctzd (vsll);
5325    VCTZD  VCTZD_DEPR1
5326  vull __builtin_vec_vctzd (vull);
5327    VCTZD  VCTZD_DEPR2
5328
5329[VEC_VCTZH, vec_vctzh, __builtin_vec_vctzh]
5330  vss __builtin_vec_vctzh (vss);
5331    VCTZH  VCTZH_DEPR1
5332  vus __builtin_vec_vctzh (vus);
5333    VCTZH  VCTZH_DEPR2
5334
5335[VEC_VCTZW, vec_vctzw, __builtin_vec_vctzw]
5336  vsi __builtin_vec_vctzw (vsi);
5337    VCTZW  VCTZW_DEPR1
5338  vui __builtin_vec_vctzw (vui);
5339    VCTZW  VCTZW_DEPR2
5340
5341[VEC_VEEDP, vec_extract_exp_dp, __builtin_vec_extract_exp_dp]
5342  vull __builtin_vec_extract_exp_dp (vd);
5343    VEEDP  VEEDP_DEPR1
5344
5345[VEC_VEESP, vec_extract_exp_sp, __builtin_vec_extract_exp_sp]
5346  vui __builtin_vec_extract_exp_sp (vf);
5347    VEESP  VEESP_DEPR1
5348
5349[VEC_VESDP, vec_extract_sig_dp, __builtin_vec_extract_sig_dp]
5350  vull __builtin_vec_extract_sig_dp (vd);
5351    VESDP  VESDP_DEPR1
5352
5353[VEC_VESSP, vec_extract_sig_sp, __builtin_vec_extract_sig_sp]
5354  vui __builtin_vec_extract_sig_sp (vf);
5355    VESSP  VESSP_DEPR1
5356
5357[VEC_VIEDP, vec_insert_exp_dp, __builtin_vec_insert_exp_dp]
5358  vd __builtin_vec_insert_exp_dp (vd, vull);
5359    VIEDP  VIEDP_DEPR1
5360  vd __builtin_vec_insert_exp_dp (vull, vull);
5361    VIEDP  VIEDP_DEPR2
5362
5363[VEC_VIESP, vec_insert_exp_sp, __builtin_vec_insert_exp_sp]
5364  vf __builtin_vec_insert_exp_sp (vf, vui);
5365    VIESP  VIESP_DEPR1
5366  vf __builtin_vec_insert_exp_sp (vui, vui);
5367    VIESP  VIESP_DEPR2
5368
5369[VEC_VMAXFP, vec_vmaxfp, __builtin_vec_vmaxfp]
5370  vf __builtin_vec_vmaxfp (vf, vf);
5371    VMAXFP  VMAXFP_DEPR1
5372
5373[VEC_VMAXSB, vec_vmaxsb, __builtin_vec_vmaxsb]
5374  vsc __builtin_vec_vmaxsb (vsc, vsc);
5375    VMAXSB  VMAXSB_DEPR1
5376  vsc __builtin_vec_vmaxsb (vbc, vsc);
5377    VMAXSB  VMAXSB_DEPR2
5378  vsc __builtin_vec_vmaxsb (vsc, vbc);
5379    VMAXSB  VMAXSB_DEPR3
5380
5381[VEC_VMAXSD, vec_vmaxsd, __builtin_vec_vmaxsd]
5382  vsll __builtin_vec_vmaxsd (vsll, vsll);
5383    VMAXSD  VMAXSD_DEPR1
5384  vsll __builtin_vec_vmaxsd (vbll, vsll);
5385    VMAXSD  VMAXSD_DEPR2
5386  vsll __builtin_vec_vmaxsd (vsll, vbll);
5387    VMAXSD  VMAXSD_DEPR3
5388
5389[VEC_VMAXSH, vec_vmaxsh, __builtin_vec_vmaxsh]
5390  vss __builtin_vec_vmaxsh (vss, vss);
5391    VMAXSH  VMAXSH_DEPR1
5392  vss __builtin_vec_vmaxsh (vbs, vss);
5393    VMAXSH  VMAXSH_DEPR2
5394  vss __builtin_vec_vmaxsh (vss, vbs);
5395    VMAXSH  VMAXSH_DEPR3
5396
5397[VEC_VMAXSW, vec_vmaxsw, __builtin_vec_vmaxsw]
5398  vsi __builtin_vec_vmaxsw (vsi, vsi);
5399    VMAXSW  VMAXSW_DEPR1
5400  vsi __builtin_vec_vmaxsw (vbi, vsi);
5401    VMAXSW  VMAXSW_DEPR2
5402  vsi __builtin_vec_vmaxsw (vsi, vbi);
5403    VMAXSW  VMAXSW_DEPR3
5404
5405[VEC_VMAXUB, vec_vmaxub, __builtin_vec_vmaxub]
5406  vuc __builtin_vec_vmaxub (vsc, vuc);
5407    VMAXUB  VMAXUB_DEPR1
5408  vuc __builtin_vec_vmaxub (vuc, vsc);
5409    VMAXUB  VMAXUB_DEPR2
5410  vuc __builtin_vec_vmaxub (vuc, vuc);
5411    VMAXUB  VMAXUB_DEPR3
5412  vuc __builtin_vec_vmaxub (vbc, vuc);
5413    VMAXUB  VMAXUB_DEPR4
5414  vuc __builtin_vec_vmaxub (vuc, vbc);
5415    VMAXUB  VMAXUB_DEPR5
5416
5417[VEC_VMAXUD, vec_vmaxud, __builtin_vec_vmaxud]
5418  vull __builtin_vec_vmaxud (vull, vull);
5419    VMAXUD  VMAXUD_DEPR1
5420  vull __builtin_vec_vmaxud (vbll, vull);
5421    VMAXUD  VMAXUD_DEPR2
5422  vull __builtin_vec_vmaxud (vull, vbll);
5423    VMAXUD  VMAXUD_DEPR3
5424
5425[VEC_VMAXUH, vec_vmaxuh, __builtin_vec_vmaxuh]
5426  vus __builtin_vec_vmaxuh (vss, vus);
5427    VMAXUH  VMAXUH_DEPR1
5428  vus __builtin_vec_vmaxuh (vus, vss);
5429    VMAXUH  VMAXUH_DEPR2
5430  vus __builtin_vec_vmaxuh (vus, vus);
5431    VMAXUH  VMAXUH_DEPR3
5432  vus __builtin_vec_vmaxuh (vbs, vus);
5433    VMAXUH  VMAXUH_DEPR4
5434  vus __builtin_vec_vmaxuh (vus, vbs);
5435    VMAXUH  VMAXUH_DEPR5
5436
5437[VEC_VMAXUW, vec_vmaxuw, __builtin_vec_vmaxuw]
5438  vui __builtin_vec_vmaxuw (vsi, vui);
5439    VMAXUW  VMAXUW_DEPR1
5440  vui __builtin_vec_vmaxuw (vui, vsi);
5441    VMAXUW  VMAXUW_DEPR2
5442  vui __builtin_vec_vmaxuw (vui, vui);
5443    VMAXUW  VMAXUW_DEPR3
5444  vui __builtin_vec_vmaxuw (vbi, vui);
5445    VMAXUW  VMAXUW_DEPR4
5446  vui __builtin_vec_vmaxuw (vui, vbi);
5447    VMAXUW  VMAXUW_DEPR5
5448
5449[VEC_VMINFP, vec_vminfp, __builtin_vec_vminfp]
5450  vf __builtin_vec_vminfp (vf, vf);
5451    VMINFP  VMINFP_DEPR1
5452
5453[VEC_VMINSB, vec_vminsb, __builtin_vec_vminsb]
5454  vsc __builtin_vec_vminsb (vsc, vsc);
5455    VMINSB  VMINSB_DEPR1
5456  vsc __builtin_vec_vminsb (vbc, vsc);
5457    VMINSB  VMINSB_DEPR2
5458  vsc __builtin_vec_vminsb (vsc, vbc);
5459    VMINSB  VMINSB_DEPR3
5460
5461[VEC_VMINSD, vec_vminsd, __builtin_vec_vminsd]
5462  vsll __builtin_vec_vminsd (vsll, vsll);
5463    VMINSD  VMINSD_DEPR1
5464  vsll __builtin_vec_vminsd (vbll, vsll);
5465    VMINSD  VMINSD_DEPR2
5466  vsll __builtin_vec_vminsd (vsll, vbll);
5467    VMINSD  VMINSD_DEPR3
5468
5469[VEC_VMINSH, vec_vminsh, __builtin_vec_vminsh]
5470  vss __builtin_vec_vminsh (vss, vss);
5471    VMINSH  VMINSH_DEPR1
5472  vss __builtin_vec_vminsh (vbs, vss);
5473    VMINSH  VMINSH_DEPR2
5474  vss __builtin_vec_vminsh (vss, vbs);
5475    VMINSH  VMINSH_DEPR3
5476
5477[VEC_VMINSW, vec_vminsw, __builtin_vec_vminsw]
5478  vsi __builtin_vec_vminsw (vsi, vsi);
5479    VMINSW  VMINSW_DEPR1
5480  vsi __builtin_vec_vminsw (vbi, vsi);
5481    VMINSW  VMINSW_DEPR2
5482  vsi __builtin_vec_vminsw (vsi, vbi);
5483    VMINSW  VMINSW_DEPR3
5484
5485[VEC_VMINUB, vec_vminub, __builtin_vec_vminub]
5486  vuc __builtin_vec_vminub (vsc, vuc);
5487    VMINUB  VMINUB_DEPR1
5488  vuc __builtin_vec_vminub (vuc, vsc);
5489    VMINUB  VMINUB_DEPR2
5490  vuc __builtin_vec_vminub (vuc, vuc);
5491    VMINUB  VMINUB_DEPR3
5492  vuc __builtin_vec_vminub (vbc, vuc);
5493    VMINUB  VMINUB_DEPR4
5494  vuc __builtin_vec_vminub (vuc, vbc);
5495    VMINUB  VMINUB_DEPR5
5496
5497[VEC_VMINUD, vec_vminud, __builtin_vec_vminud]
5498  vull __builtin_vec_vminud (vull, vull);
5499    VMINUD  VMINUD_DEPR1
5500  vull __builtin_vec_vminud (vbll, vull);
5501    VMINUD  VMINUD_DEPR2
5502  vull __builtin_vec_vminud (vull, vbll);
5503    VMINUD  VMINUD_DEPR3
5504
5505[VEC_VMINUH, vec_vminuh, __builtin_vec_vminuh]
5506  vus __builtin_vec_vminuh (vss, vus);
5507    VMINUH  VMINUH_DEPR1
5508  vus __builtin_vec_vminuh (vus, vss);
5509    VMINUH  VMINUH_DEPR2
5510  vus __builtin_vec_vminuh (vus, vus);
5511    VMINUH  VMINUH_DEPR3
5512  vus __builtin_vec_vminuh (vbs, vus);
5513    VMINUH  VMINUH_DEPR4
5514  vus __builtin_vec_vminuh (vus, vbs);
5515    VMINUH  VMINUH_DEPR5
5516
5517[VEC_VMINUW, vec_vminuw, __builtin_vec_vminuw]
5518  vui __builtin_vec_vminuw (vsi, vui);
5519    VMINUW  VMINUW_DEPR1
5520  vui __builtin_vec_vminuw (vui, vsi);
5521    VMINUW  VMINUW_DEPR2
5522  vui __builtin_vec_vminuw (vui, vui);
5523    VMINUW  VMINUW_DEPR3
5524  vui __builtin_vec_vminuw (vbi, vui);
5525    VMINUW  VMINUW_DEPR4
5526  vui __builtin_vec_vminuw (vui, vbi);
5527    VMINUW  VMINUW_DEPR5
5528
5529[VEC_VMRGHB, vec_vmrghb, __builtin_vec_vmrghb]
5530  vsc __builtin_vec_vmrghb (vsc, vsc);
5531    VMRGHB  VMRGHB_DEPR1
5532  vuc __builtin_vec_vmrghb (vuc, vuc);
5533    VMRGHB  VMRGHB_DEPR2
5534  vbc __builtin_vec_vmrghb (vbc, vbc);
5535    VMRGHB  VMRGHB_DEPR3
5536
5537[VEC_VMRGHH, vec_vmrghh, __builtin_vec_vmrghh]
5538  vss __builtin_vec_vmrghh (vss, vss);
5539    VMRGHH  VMRGHH_DEPR1
5540  vus __builtin_vec_vmrghh (vus, vus);
5541    VMRGHH  VMRGHH_DEPR2
5542  vbs __builtin_vec_vmrghh (vbs, vbs);
5543    VMRGHH  VMRGHH_DEPR3
5544  vp __builtin_vec_vmrghh (vp, vp);
5545    VMRGHH  VMRGHH_DEPR4
5546
5547[VEC_VMRGHW, vec_vmrghw, __builtin_vec_vmrghw]
5548  vf __builtin_vec_vmrghw (vf, vf);
5549    VMRGHW  VMRGHW_DEPR1
5550  vsi __builtin_vec_vmrghw (vsi, vsi);
5551    VMRGHW  VMRGHW_DEPR2
5552  vui __builtin_vec_vmrghw (vui, vui);
5553    VMRGHW  VMRGHW_DEPR3
5554  vbi __builtin_vec_vmrghw (vbi, vbi);
5555    VMRGHW  VMRGHW_DEPR4
5556
5557[VEC_VMRGLB, vec_vmrglb, __builtin_vec_vmrglb]
5558  vsc __builtin_vec_vmrglb (vsc, vsc);
5559    VMRGLB  VMRGLB_DEPR1
5560  vuc __builtin_vec_vmrglb (vuc, vuc);
5561    VMRGLB  VMRGLB_DEPR2
5562  vbc __builtin_vec_vmrglb (vbc, vbc);
5563    VMRGLB  VMRGLB_DEPR3
5564
5565[VEC_VMRGLH, vec_vmrglh, __builtin_vec_vmrglh]
5566  vss __builtin_vec_vmrglh (vss, vss);
5567    VMRGLH  VMRGLH_DEPR1
5568  vus __builtin_vec_vmrglh (vus, vus);
5569    VMRGLH  VMRGLH_DEPR2
5570  vbs __builtin_vec_vmrglh (vbs, vbs);
5571    VMRGLH  VMRGLH_DEPR3
5572  vp __builtin_vec_vmrglh (vp, vp);
5573    VMRGLH  VMRGLH_DEPR4
5574
5575[VEC_VMRGLW, vec_vmrglw, __builtin_vec_vmrglw]
5576  vf __builtin_vec_vmrglw (vf, vf);
5577    VMRGLW  VMRGLW_DEPR1
5578  vsi __builtin_vec_vmrglw (vsi, vsi);
5579    VMRGLW  VMRGLW_DEPR2
5580  vui __builtin_vec_vmrglw (vui, vui);
5581    VMRGLW  VMRGLW_DEPR3
5582  vbi __builtin_vec_vmrglw (vbi, vbi);
5583    VMRGLW  VMRGLW_DEPR4
5584
5585[VEC_VMSUMMBM, vec_vmsummbm, __builtin_vec_vmsummbm]
5586  vsi __builtin_vec_vmsummbm (vsc, vuc, vsi);
5587    VMSUMMBM  VMSUMMBM_DEPR1
5588
5589[VEC_VMSUMSHM, vec_vmsumshm, __builtin_vec_vmsumshm]
5590  vsi __builtin_vec_vmsumshm (vss, vss, vsi);
5591    VMSUMSHM  VMSUMSHM_DEPR1
5592
5593[VEC_VMSUMSHS, vec_vmsumshs, __builtin_vec_vmsumshs]
5594  vsi __builtin_vec_vmsumshs (vss, vss, vsi);
5595    VMSUMSHS  VMSUMSHS_DEPR1
5596
5597[VEC_VMSUMUBM, vec_vmsumubm, __builtin_vec_vmsumubm]
5598  vui __builtin_vec_vmsumubm (vuc, vuc, vui);
5599    VMSUMUBM  VMSUMUBM_DEPR1
5600
5601[VEC_VMSUMUDM, vec_vmsumudm, __builtin_vec_vmsumudm]
5602  vuq __builtin_vec_vmsumudm (vull, vull, vuq);
5603    VMSUMUDM  VMSUMUDM_DEPR1
5604
5605[VEC_VMSUMUHM, vec_vmsumuhm, __builtin_vec_vmsumuhm]
5606  vui __builtin_vec_vmsumuhm (vus, vus, vui);
5607    VMSUMUHM  VMSUMUHM_DEPR1
5608
5609[VEC_VMSUMUHS, vec_vmsumuhs, __builtin_vec_vmsumuhs]
5610  vui __builtin_vec_vmsumuhs (vus, vus, vui);
5611    VMSUMUHS  VMSUMUHS_DEPR1
5612
5613[VEC_VMULESB, vec_vmulesb, __builtin_vec_vmulesb]
5614  vss __builtin_vec_vmulesb (vsc, vsc);
5615    VMULESB  VMULESB_DEPR1
5616
5617[VEC_VMULESH, vec_vmulesh, __builtin_vec_vmulesh]
5618  vsi __builtin_vec_vmulesh (vss, vss);
5619    VMULESH  VMULESH_DEPR1
5620
5621[VEC_VMULESW, SKIP, __builtin_vec_vmulesw]
5622  vsll __builtin_vec_vmulesw (vsi, vsi);
5623    VMULESW  VMULESW_DEPR1
5624
5625[VEC_VMULEUB, vec_vmuleub, __builtin_vec_vmuleub]
5626  vus __builtin_vec_vmuleub (vuc, vuc);
5627    VMULEUB  VMULEUB_DEPR1
5628
5629[VEC_VMULEUH, vec_vmuleuh, __builtin_vec_vmuleuh]
5630  vui __builtin_vec_vmuleuh (vus, vus);
5631    VMULEUH  VMULEUH_DEPR1
5632
5633[VEC_VMULEUW, SKIP, __builtin_vec_vmuleuw]
5634  vull __builtin_vec_vmuleuw (vui, vui);
5635    VMULEUW  VMULEUW_DEPR1
5636
5637[VEC_VMULOSB, vec_vmulosb, __builtin_vec_vmulosb]
5638  vss __builtin_vec_vmulosb (vsc, vsc);
5639    VMULOSB  VMULOSB_DEPR1
5640
5641[VEC_VMULOSH, vec_vmulosh, __builtin_vec_vmulosh]
5642  vsi __builtin_vec_vmulosh (vss, vss);
5643    VMULOSH  VMULOSH_DEPR1
5644
5645[VEC_VMULOSW, SKIP, __builtin_vec_vmulosw]
5646  vsll __builtin_vec_vmulosw (vsi, vsi);
5647    VMULOSW  VMULOSW_DEPR1
5648
5649[VEC_VMULOUB, vec_vmuloub, __builtin_vec_vmuloub]
5650  vus __builtin_vec_vmuloub (vuc, vuc);
5651    VMULOUB  VMULOUB_DEPR1
5652
5653[VEC_VMULOUH, vec_vmulouh, __builtin_vec_vmulouh]
5654  vui __builtin_vec_vmulouh (vus, vus);
5655    VMULOUH  VMULOUH_DEPR1
5656
5657[VEC_VMULOUW, SKIP, __builtin_vec_vmulouw]
5658  vull __builtin_vec_vmulouw (vui, vui);
5659    VMULOUW  VMULOUW_DEPR1
5660
5661[VEC_VPKSDSS, vec_vpksdss, __builtin_vec_vpksdss]
5662  vsi __builtin_vec_vpksdss (vsll, vsll);
5663    VPKSDSS  VPKSDSS_DEPR1
5664
5665[VEC_VPKSDUS, vec_vpksdus, __builtin_vec_vpksdus]
5666  vui __builtin_vec_vpksdus (vsll, vsll);
5667    VPKSDUS  VPKSDUS_DEPR1
5668
5669[VEC_VPKSHSS, vec_vpkshss, __builtin_vec_vpkshss]
5670  vsc __builtin_vec_vpkshss (vss, vss);
5671    VPKSHSS  VPKSHSS_DEPR1
5672
5673[VEC_VPKSHUS, vec_vpkshus, __builtin_vec_vpkshus]
5674  vuc __builtin_vec_vpkshus (vss, vss);
5675    VPKSHUS  VPKSHUS_DEPR1
5676
5677[VEC_VPKSWSS, vec_vpkswss, __builtin_vec_vpkswss]
5678  vss __builtin_vec_vpkswss (vsi, vsi);
5679    VPKSWSS  VPKSWSS_DEPR1
5680
5681[VEC_VPKSWUS, vec_vpkswus, __builtin_vec_vpkswus]
5682  vus __builtin_vec_vpkswus (vsi, vsi);
5683    VPKSWUS  VPKSWUS_DEPR1
5684
5685[VEC_VPKUDUM, vec_vpkudum, __builtin_vec_vpkudum]
5686  vsi __builtin_vec_vpkudum (vsll, vsll);
5687    VPKUDUM  VPKUDUM_DEPR1
5688  vui __builtin_vec_vpkudum (vull, vull);
5689    VPKUDUM  VPKUDUM_DEPR2
5690  vbi __builtin_vec_vpkudum (vbll, vbll);
5691    VPKUDUM  VPKUDUM_DEPR3
5692
5693[VEC_VPKUDUS, vec_vpkudus, __builtin_vec_vpkudus]
5694  vui __builtin_vec_vpkudus (vull, vull);
5695    VPKUDUS  VPKUDUS_DEPR1
5696
5697[VEC_VPKUHUM, vec_vpkuhum, __builtin_vec_vpkuhum]
5698  vsc __builtin_vec_vpkuhum (vss, vss);
5699    VPKUHUM  VPKUHUM_DEPR1
5700  vuc __builtin_vec_vpkuhum (vus, vus);
5701    VPKUHUM  VPKUHUM_DEPR2
5702  vbc __builtin_vec_vpkuhum (vbs, vbs);
5703    VPKUHUM  VPKUHUM_DEPR3
5704
5705[VEC_VPKUHUS, vec_vpkuhus, __builtin_vec_vpkuhus]
5706  vuc __builtin_vec_vpkuhus (vus, vus);
5707    VPKUHUS  VPKUHUS_DEPR1
5708
5709[VEC_VPKUWUM, vec_vpkuwum, __builtin_vec_vpkuwum]
5710  vss __builtin_vec_vpkuwum (vsi, vsi);
5711    VPKUWUM  VPKUWUM_DEPR1
5712  vus __builtin_vec_vpkuwum (vui, vui);
5713    VPKUWUM  VPKUWUM_DEPR2
5714  vbs __builtin_vec_vpkuwum (vbi, vbi);
5715    VPKUWUM  VPKUWUM_DEPR3
5716
5717[VEC_VPKUWUS, vec_vpkuwus, __builtin_vec_vpkuwus]
5718  vus __builtin_vec_vpkuwus (vui, vui);
5719    VPKUWUS  VPKUWUS_DEPR1
5720
5721[VEC_VPOPCNT, vec_vpopcnt, __builtin_vec_vpopcnt]
5722  vsc __builtin_vec_vpopcnt (vsc);
5723    VPOPCNTB  VPOPCNT_DEPR1
5724  vuc __builtin_vec_vpopcnt (vuc);
5725    VPOPCNTB  VPOPCNT_DEPR2
5726  vss __builtin_vec_vpopcnt (vss);
5727    VPOPCNTH  VPOPCNT_DEPR3
5728  vus __builtin_vec_vpopcnt (vus);
5729    VPOPCNTH  VPOPCNT_DEPR4
5730  vsi __builtin_vec_vpopcnt (vsi);
5731    VPOPCNTW  VPOPCNT_DEPR5
5732  vui __builtin_vec_vpopcnt (vui);
5733    VPOPCNTW  VPOPCNT_DEPR6
5734  vsll __builtin_vec_vpopcnt (vsll);
5735    VPOPCNTD  VPOPCNT_DEPR7
5736  vull __builtin_vec_vpopcnt (vull);
5737    VPOPCNTD  VPOPCNT_DEPR8
5738
5739[VEC_VPOPCNTB, vec_vpopcntb, __builtin_vec_vpopcntb]
5740  vsc __builtin_vec_vpopcntb (vsc);
5741    VPOPCNTB  VPOPCNTB_DEPR1
5742  vuc __builtin_vec_vpopcntb (vuc);
5743    VPOPCNTB  VPOPCNTB_DEPR2
5744
5745[VEC_VPOPCNTD, vec_vpopcntd, __builtin_vec_vpopcntd]
5746  vsll __builtin_vec_vpopcntd (vsll);
5747    VPOPCNTD  VPOPCNTD_DEPR1
5748  vull __builtin_vec_vpopcntd (vull);
5749    VPOPCNTD  VPOPCNTD_DEPR2
5750
5751[VEC_VPOPCNTH, vec_vpopcnth, __builtin_vec_vpopcnth]
5752  vss __builtin_vec_vpopcnth (vss);
5753    VPOPCNTH  VPOPCNTH_DEPR1
5754  vus __builtin_vec_vpopcnth (vus);
5755    VPOPCNTH  VPOPCNTH_DEPR2
5756
5757[VEC_VPOPCNTW, vec_vpopcntw, __builtin_vec_vpopcntw]
5758  vsi __builtin_vec_vpopcntw (vsi);
5759    VPOPCNTW  VPOPCNTW_DEPR1
5760  vui __builtin_vec_vpopcntw (vui);
5761    VPOPCNTW  VPOPCNTW_DEPR2
5762
5763[VEC_VPRTYBD, vec_vprtybd, __builtin_vec_vprtybd]
5764  vsll __builtin_vec_vprtybd (vsll);
5765    VPRTYBD  VPRTYBD_DEPR1
5766  vull __builtin_vec_vprtybd (vull);
5767    VPRTYBD  VPRTYBD_DEPR2
5768
5769[VEC_VPRTYBQ, vec_vprtybq, __builtin_vec_vprtybq]
5770  vsq __builtin_vec_vprtybq (vsq);
5771    VPRTYBQ  VPRTYBQ_DEPR1
5772  vuq __builtin_vec_vprtybq (vuq);
5773    VPRTYBQ  VPRTYBQ_DEPR2
5774  signed __int128 __builtin_vec_vprtybq (signed __int128);
5775    VPRTYBQ  VPRTYBQ_DEPR3
5776  unsigned __int128 __builtin_vec_vprtybq (unsigned __int128);
5777    VPRTYBQ  VPRTYBQ_DEPR4
5778
5779[VEC_VPRTYBW, vec_vprtybw, __builtin_vec_vprtybw]
5780  vsi __builtin_vec_vprtybw (vsi);
5781    VPRTYBW  VPRTYBW_DEPR1
5782  vui __builtin_vec_vprtybw (vui);
5783    VPRTYBW  VPRTYBW_DEPR2
5784
5785[VEC_VRLB, vec_vrlb, __builtin_vec_vrlb]
5786  vsc __builtin_vec_vrlb (vsc, vuc);
5787    VRLB  VRLB_DEPR1
5788  vuc __builtin_vec_vrlb (vuc, vuc);
5789    VRLB  VRLB_DEPR2
5790
5791[VEC_VRLD, SKIP, __builtin_vec_vrld]
5792  vsll __builtin_vec_vrld (vsll, vull);
5793    VRLD  VRLD_DEPR1
5794  vull __builtin_vec_vrld (vull, vull);
5795    VRLD  VRLD_DEPR2
5796
5797[VEC_VRLH, vec_vrlh, __builtin_vec_vrlh]
5798  vss __builtin_vec_vrlh (vss, vus);
5799    VRLH  VRLH_DEPR1
5800  vus __builtin_vec_vrlh (vus, vus);
5801    VRLH  VRLH_DEPR2
5802
5803[VEC_VRLW, vec_vrlw, __builtin_vec_vrlw]
5804  vsi __builtin_vec_vrlw (vsi, vui);
5805    VRLW  VRLW_DEPR1
5806  vui __builtin_vec_vrlw (vui, vui);
5807    VRLW  VRLW_DEPR2
5808
5809[VEC_VSLB, vec_vslb, __builtin_vec_vslb]
5810  vsc __builtin_vec_vslb (vsc, vuc);
5811    VSLB  VSLB_DEPR1
5812  vuc __builtin_vec_vslb (vuc, vuc);
5813    VSLB  VSLB_DEPR2
5814
5815[VEC_VSLD, SKIP, __builtin_vec_vsld]
5816  vsll __builtin_vec_vsld (vsll, vull);
5817    VSLD  VSLD_DEPR1
5818  vull __builtin_vec_vsld (vull, vull);
5819    VSLD  VSLD_DEPR2
5820
5821[VEC_VSLH, vec_vslh, __builtin_vec_vslh]
5822  vss __builtin_vec_vslh (vss, vus);
5823    VSLH  VSLH_DEPR1
5824  vus __builtin_vec_vslh (vus, vus);
5825    VSLH  VSLH_DEPR2
5826
5827[VEC_VSLW, vec_vslw, __builtin_vec_vslw]
5828  vsi __builtin_vec_vslw (vsi, vui);
5829    VSLW  VSLW_DEPR1
5830  vui __builtin_vec_vslw (vui, vui);
5831    VSLW  VSLW_DEPR2
5832
5833[VEC_VSPLTB, vec_vspltb, __builtin_vec_vspltb]
5834  vsc __builtin_vec_vspltb (vsc, const int);
5835    VSPLTB  VSPLTB_DEPR1
5836  vuc __builtin_vec_vspltb (vuc, const int);
5837    VSPLTB  VSPLTB_DEPR2
5838  vbc __builtin_vec_vspltb (vbc, const int);
5839    VSPLTB  VSPLTB_DEPR3
5840
5841[VEC_VSPLTH, vec_vsplth, __builtin_vec_vsplth]
5842  vss __builtin_vec_vsplth (vss, const int);
5843    VSPLTH  VSPLTH_DEPR1
5844  vus __builtin_vec_vsplth (vus, const int);
5845    VSPLTH  VSPLTH_DEPR2
5846  vbs __builtin_vec_vsplth (vbs, const int);
5847    VSPLTH  VSPLTH_DEPR3
5848  vp __builtin_vec_vsplth (vp, const int);
5849    VSPLTH  VSPLTH_DEPR4
5850
5851[VEC_VSPLTW, vec_vspltw, __builtin_vec_vspltw]
5852  vsi __builtin_vec_vspltw (vsi, const int);
5853    VSPLTW  VSPLTW_DEPR1
5854  vui __builtin_vec_vspltw (vui, const int);
5855    VSPLTW  VSPLTW_DEPR2
5856  vbi __builtin_vec_vspltw (vbi, const int);
5857    VSPLTW  VSPLTW_DEPR3
5858  vf __builtin_vec_vspltw (vf, const int);
5859    VSPLTW  VSPLTW_DEPR4
5860
5861[VEC_VSRAB, vec_vsrab, __builtin_vec_vsrab]
5862  vsc __builtin_vec_vsrab (vsc, vuc);
5863    VSRAB  VSRAB_DEPR1
5864  vuc __builtin_vec_vsrab (vuc, vuc);
5865    VSRAB  VSRAB_DEPR2
5866
5867[VEC_VSRAD, SKIP, __builtin_vec_vsrad]
5868  vsll __builtin_vec_vsrad (vsll, vull);
5869    VSRAD  VSRAD_DEPR1
5870  vull __builtin_vec_vsrad (vull, vull);
5871    VSRAD  VSRAD_DEPR2
5872
5873[VEC_VSRAH, vec_vsrah, __builtin_vec_vsrah]
5874  vss __builtin_vec_vsrah (vss, vus);
5875    VSRAH  VSRAH_DEPR1
5876  vus __builtin_vec_vsrah (vus, vus);
5877    VSRAH  VSRAH_DEPR2
5878
5879[VEC_VSRAW, vec_vsraw, __builtin_vec_vsraw]
5880  vsi __builtin_vec_vsraw (vsi, vui);
5881    VSRAW  VSRAW_DEPR1
5882  vui __builtin_vec_vsraw (vui, vui);
5883    VSRAW  VSRAW_DEPR2
5884
5885[VEC_VSRB, vec_vsrb, __builtin_vec_vsrb]
5886  vsc __builtin_vec_vsrb (vsc, vuc);
5887    VSRB  VSRB_DEPR1
5888  vuc __builtin_vec_vsrb (vuc, vuc);
5889    VSRB  VSRB_DEPR2
5890
5891[VEC_VSRD, SKIP, __builtin_vec_vsrd]
5892  vsll __builtin_vec_vsrd (vsll, vull);
5893    VSRD  VSRD_DEPR1
5894  vull __builtin_vec_vsrd (vull, vull);
5895    VSRD  VSRD_DEPR2
5896
5897[VEC_VSRH, vec_vsrh, __builtin_vec_vsrh]
5898  vss __builtin_vec_vsrh (vss, vus);
5899    VSRH  VSRH_DEPR1
5900  vus __builtin_vec_vsrh (vus, vus);
5901    VSRH  VSRH_DEPR2
5902
5903[VEC_VSRW, vec_vsrw, __builtin_vec_vsrw]
5904  vsi __builtin_vec_vsrw (vsi, vui);
5905    VSRW  VSRW_DEPR1
5906  vui __builtin_vec_vsrw (vui, vui);
5907    VSRW  VSRW_DEPR2
5908
5909[VEC_VSTDCDP, scalar_test_data_class_dp, __builtin_vec_scalar_test_data_class_dp]
5910  unsigned int __builtin_vec_scalar_test_data_class_dp (double, const int);
5911    VSTDCDP  VSTDCDP_DEPR1
5912
5913[VEC_VSTDCNDP, scalar_test_neg_dp, __builtin_vec_scalar_test_neg_dp]
5914  unsigned int __builtin_vec_scalar_test_neg_dp (double);
5915    VSTDCNDP  VSTDCNDP_DEPR1
5916
5917[VEC_VSTDCNQP, scalar_test_neg_qp, __builtin_vec_scalar_test_neg_qp]
5918  unsigned int __builtin_vec_scalar_test_neg_qp (_Float128);
5919    VSTDCNQP  VSTDCNQP_DEPR1
5920
5921[VEC_VSTDCNSP, scalar_test_neg_sp, __builtin_vec_scalar_test_neg_sp]
5922  unsigned int __builtin_vec_scalar_test_neg_sp (float);
5923    VSTDCNSP  VSTDCNSP_DEPR1
5924
5925[VEC_VSTDCQP, scalar_test_data_class_qp, __builtin_vec_scalar_test_data_class_qp]
5926  unsigned int __builtin_vec_scalar_test_data_class_qp (_Float128, const int);
5927    VSTDCQP  VSTDCQP_DEPR1
5928
5929[VEC_VSTDCSP, scalar_test_data_class_sp, __builtin_vec_scalar_test_data_class_sp]
5930  unsigned int __builtin_vec_scalar_test_data_class_sp (float, const int);
5931    VSTDCSP  VSTDCSP_DEPR1
5932
5933[VEC_VSUBCUQ, vec_vsubcuq, __builtin_vec_vsubcuq]
5934  vsq __builtin_vec_vsubcuq (vsq, vsq);
5935    VSUBCUQ  VSUBCUQ_DEPR1
5936  vuq __builtin_vec_vsubcuq (vuq, vuq);
5937    VSUBCUQ  VSUBCUQ_DEPR2
5938
5939[VEC_VSUBECUQ, vec_vsubecuq, __builtin_vec_vsubecuq]
5940  vsq __builtin_vec_vsubecuq (vsq, vsq, vsq);
5941    VSUBECUQ  VSUBECUQ_DEPR1
5942  vuq __builtin_vec_vsubecuq (vuq, vuq, vuq);
5943    VSUBECUQ  VSUBECUQ_DEPR2
5944
5945[VEC_VSUBEUQM, vec_vsubeuqm, __builtin_vec_vsubeuqm]
5946  vsq __builtin_vec_vsubeuqm (vsq, vsq, vsq);
5947    VSUBEUQM  VSUBEUQM_DEPR1
5948  vuq __builtin_vec_vsubeuqm (vuq, vuq, vuq);
5949    VSUBEUQM  VSUBEUQM_DEPR2
5950
5951[VEC_VSUBFP, vec_vsubfp, __builtin_vec_vsubfp]
5952  vf __builtin_vec_vsubfp (vf, vf);
5953    VSUBFP  VSUBFP_DEPR1
5954
5955[VEC_VSUBSBS, vec_vsubsbs, __builtin_vec_vsubsbs]
5956  vsc __builtin_vec_vsubsbs (vsc, vsc);
5957    VSUBSBS  VSUBSBS_DEPR1
5958  vsc __builtin_vec_vsubsbs (vbc, vsc);
5959    VSUBSBS  VSUBSBS_DEPR2
5960  vsc __builtin_vec_vsubsbs (vsc, vbc);
5961    VSUBSBS  VSUBSBS_DEPR3
5962
5963[VEC_VSUBSHS, vec_vsubshs, __builtin_vec_vsubshs]
5964  vss __builtin_vec_vsubshs (vss, vss);
5965    VSUBSHS  VSUBSHS_DEPR1
5966  vss __builtin_vec_vsubshs (vbs, vss);
5967    VSUBSHS  VSUBSHS_DEPR2
5968  vss __builtin_vec_vsubshs (vss, vbs);
5969    VSUBSHS  VSUBSHS_DEPR3
5970
5971[VEC_VSUBSWS, vec_vsubsws, __builtin_vec_vsubsws]
5972  vsi __builtin_vec_vsubsws (vsi, vsi);
5973    VSUBSWS  VSUBSWS_DEPR1
5974  vsi __builtin_vec_vsubsws (vbi, vsi);
5975    VSUBSWS  VSUBSWS_DEPR2
5976  vsi __builtin_vec_vsubsws (vsi, vbi);
5977    VSUBSWS  VSUBSWS_DEPR3
5978
5979[VEC_VSUBUBM, vec_vsububm, __builtin_vec_vsububm]
5980  vsc __builtin_vec_vsububm (vsc, vsc);
5981    VSUBUBM  VSUBUBM_DEPR1
5982  vuc __builtin_vec_vsububm (vsc, vuc);
5983    VSUBUBM  VSUBUBM_DEPR2
5984  vuc __builtin_vec_vsububm (vuc, vsc);
5985    VSUBUBM  VSUBUBM_DEPR3
5986  vuc __builtin_vec_vsububm (vuc, vuc);
5987    VSUBUBM  VSUBUBM_DEPR4
5988  vsc __builtin_vec_vsububm (vbc, vsc);
5989    VSUBUBM  VSUBUBM_DEPR5
5990  vsc __builtin_vec_vsububm (vsc, vbc);
5991    VSUBUBM  VSUBUBM_DEPR6
5992  vuc __builtin_vec_vsububm (vbc, vuc);
5993    VSUBUBM  VSUBUBM_DEPR7
5994  vuc __builtin_vec_vsububm (vuc, vbc);
5995    VSUBUBM  VSUBUBM_DEPR8
5996
5997[VEC_VSUBUBS, vec_vsububs, __builtin_vec_vsububs]
5998  vsc __builtin_vec_vsububs (vsc, vsc);
5999    VSUBUBS  VSUBUBS_DEPR1
6000  vsc __builtin_vec_vsububs (vbc, vsc);
6001    VSUBUBS  VSUBUBS_DEPR2
6002  vsc __builtin_vec_vsububs (vsc, vbc);
6003    VSUBUBS  VSUBUBS_DEPR3
6004  vuc __builtin_vec_vsububs (vsc, vuc);
6005    VSUBUBS  VSUBUBS_DEPR4
6006  vuc __builtin_vec_vsububs (vuc, vsc);
6007    VSUBUBS  VSUBUBS_DEPR5
6008  vuc __builtin_vec_vsububs (vuc, vuc);
6009    VSUBUBS  VSUBUBS_DEPR6
6010  vuc __builtin_vec_vsububs (vbc, vuc);
6011    VSUBUBS  VSUBUBS_DEPR7
6012  vuc __builtin_vec_vsububs (vuc, vbc);
6013    VSUBUBS  VSUBUBS_DEPR8
6014
6015[VEC_VSUBUDM, vec_vsubudm, __builtin_vec_vsubudm]
6016  vsll __builtin_vec_vsubudm (vbll, vsll);
6017    VSUBUDM  VSUBUDM_DEPR1
6018  vsll __builtin_vec_vsubudm (vsll, vbll);
6019    VSUBUDM  VSUBUDM_DEPR2
6020  vsll __builtin_vec_vsubudm (vsll, vsll);
6021    VSUBUDM  VSUBUDM_DEPR3
6022  vull __builtin_vec_vsubudm (vbll, vull);
6023    VSUBUDM  VSUBUDM_DEPR4
6024  vull __builtin_vec_vsubudm (vull, vbll);
6025    VSUBUDM  VSUBUDM_DEPR5
6026  vull __builtin_vec_vsubudm (vull, vull);
6027    VSUBUDM  VSUBUDM_DEPR6
6028
6029[VEC_VSUBUHM, vec_vsubuhm, __builtin_vec_vsubuhm]
6030  vss __builtin_vec_vsubuhm (vss, vss);
6031    VSUBUHM  VUSBUHM_DEPR1
6032  vus __builtin_vec_vsubuhm (vss, vus);
6033    VSUBUHM  VUSBUHM_DEPR2
6034  vus __builtin_vec_vsubuhm (vus, vss);
6035    VSUBUHM  VUSBUHM_DEPR3
6036  vus __builtin_vec_vsubuhm (vus, vus);
6037    VSUBUHM  VUSBUHM_DEPR4
6038  vss __builtin_vec_vsubuhm (vbs, vss);
6039    VSUBUHM  VUSBUHM_DEPR5
6040  vss __builtin_vec_vsubuhm (vss, vbs);
6041    VSUBUHM  VUSBUHM_DEPR6
6042  vus __builtin_vec_vsubuhm (vbs, vus);
6043    VSUBUHM  VUSBUHM_DEPR7
6044  vus __builtin_vec_vsubuhm (vus, vbs);
6045    VSUBUHM  VUSBUHM_DEPR8
6046
6047[VEC_VSUBUHS, vec_vsubuhs, __builtin_vec_vsubuhs]
6048  vus __builtin_vec_vsubuhs (vss, vus);
6049    VSUBUHS  VSUBUHS_DEPR1
6050  vus __builtin_vec_vsubuhs (vus, vss);
6051    VSUBUHS  VSUBUHS_DEPR2
6052  vus __builtin_vec_vsubuhs (vus, vus);
6053    VSUBUHS  VSUBUHS_DEPR3
6054  vus __builtin_vec_vsubuhs (vbs, vus);
6055    VSUBUHS  VSUBUHS_DEPR4
6056  vus __builtin_vec_vsubuhs (vus, vbs);
6057    VSUBUHS  VSUBUHS_DEPR5
6058
6059[VEC_VSUBUQM, vec_vsubuqm, __builtin_vec_vsubuqm]
6060  vsq __builtin_vec_vsubuqm (vsq, vsq);
6061    VSUBUQM  VSUBUQM_DEPR1
6062  vuq __builtin_vec_vsubuqm (vuq, vuq);
6063    VSUBUQM  VSUBUQM_DEPR2
6064
6065[VEC_VSUBUWM, vec_vsubuwm, __builtin_vec_vsubuwm]
6066  vsi __builtin_vec_vsubuwm (vbi, vsi);
6067    VSUBUWM  VSUBUWM_DEPR1
6068  vsi __builtin_vec_vsubuwm (vsi, vbi);
6069    VSUBUWM  VSUBUWM_DEPR2
6070  vui __builtin_vec_vsubuwm (vbi, vui);
6071    VSUBUWM  VSUBUWM_DEPR3
6072  vui __builtin_vec_vsubuwm (vui, vbi);
6073    VSUBUWM  VSUBUWM_DEPR4
6074  vsi __builtin_vec_vsubuwm (vsi, vsi);
6075    VSUBUWM  VSUBUWM_DEPR5
6076  vui __builtin_vec_vsubuwm (vsi, vui);
6077    VSUBUWM  VSUBUWM_DEPR6
6078  vui __builtin_vec_vsubuwm (vui, vsi);
6079    VSUBUWM  VSUBUWM_DEPR7
6080  vui __builtin_vec_vsubuwm (vui, vui);
6081    VSUBUWM  VSUBUWM_DEPR8
6082
6083[VEC_VSUBUWS, vec_vsubuws, __builtin_vec_vsubuws]
6084  vui __builtin_vec_vsubuws (vsi, vui);
6085    VSUBUWS  VSUBUWS_DEPR1
6086  vui __builtin_vec_vsubuws (vui, vsi);
6087    VSUBUWS  VSUBUWS_DEPR2
6088  vui __builtin_vec_vsubuws (vui, vui);
6089    VSUBUWS  VSUBUWS_DEPR3
6090  vui __builtin_vec_vsubuws (vbi, vui);
6091    VSUBUWS  VSUBUWS_DEPR4
6092  vui __builtin_vec_vsubuws (vui, vbi);
6093    VSUBUWS  VSUBUWS_DEPR5
6094
6095[VEC_VSUM4SBS, vec_vsum4sbs, __builtin_vec_vsum4sbs]
6096  vsi __builtin_vec_vsum4sbs (vsc, vsi);
6097    VSUM4SBS  VSUM4SBS_DEPR1
6098
6099[VEC_VSUM4SHS, vec_vsum4shs, __builtin_vec_vsum4shs]
6100  vsi __builtin_vec_vsum4shs (vss, vsi);
6101    VSUM4SHS  VSUM4SHS_DEPR1
6102
6103[VEC_VSUM4UBS, vec_vsum4ubs, __builtin_vec_vsum4ubs]
6104  vui __builtin_vec_vsum4ubs (vuc, vui);
6105    VSUM4UBS  VSUM4UBS_DEPR1
6106
6107[VEC_VTDCDP, vec_test_data_class_dp, __builtin_vec_test_data_class_dp]
6108  vbll __builtin_vec_test_data_class_dp (vd, const int);
6109    VTDCDP  VTDCDP_DEPR1
6110
6111[VEC_VTDCSP, vec_test_data_class_sp, __builtin_vec_test_data_class_sp]
6112  vbi __builtin_vec_test_data_class_sp (vf, const int);
6113    VTDCSP  VTDCSP_DEPR1
6114
6115[VEC_UNS_DOUBLEE, vec_uns_doublee, __builtin_vec_uns_doublee]
6116  vd __builtin_vec_uns_doublee (vui);
6117    UNS_DOUBLEE_V4SI  UNS_DOUBLEE_DEPR1
6118
6119[VEC_UNS_DOUBLEH, vec_uns_doubleh, __builtin_vec_uns_doubleh]
6120  vd __builtin_vec_uns_doubleh (vui);
6121    UNS_DOUBLEH_V4SI  UNS_DOUBLEH_DEPR1
6122
6123[VEC_UNS_DOUBLEL, vec_uns_doublel, __builtin_vec_uns_doublel]
6124  vd __builtin_vec_uns_doublel (vui);
6125    UNS_DOUBLEL_V4SI  UNS_DOUBLEL_DEPR1
6126
6127[VEC_UNS_DOUBLEO, vec_uns_doubleo, __builtin_vec_uns_doubleo]
6128  vd __builtin_vec_uns_doubleo (vui);
6129    UNS_DOUBLEO_V4SI  UNS_DOUBLEO_DEPR1
6130
6131[VEC_VUPKHPX, vec_vupkhpx, __builtin_vec_vupkhpx]
6132  vui __builtin_vec_vupkhpx (vus);
6133    VUPKHPX  VUPKHPX_DEPR1
6134  vui __builtin_vec_vupkhpx (vp);
6135    VUPKHPX  VUPKHPX_DEPR2
6136
6137[VEC_VUPKHSB, vec_vupkhsb, __builtin_vec_vupkhsb]
6138  vss __builtin_vec_vupkhsb (vsc);
6139    VUPKHSB  VUPKHSB_DEPR1
6140  vbs __builtin_vec_vupkhsb (vbc);
6141    VUPKHSB  VUPKHSB_DEPR2
6142
6143[VEC_VUPKHSH, vec_vupkhsh, __builtin_vec_vupkhsh]
6144  vsi __builtin_vec_vupkhsh (vss);
6145    VUPKHSH  VUPKHSH_DEPR1
6146  vbi __builtin_vec_vupkhsh (vbs);
6147    VUPKHSH  VUPKHSH_DEPR2
6148
6149[VEC_VUPKHSW, vec_vupkhsw, __builtin_vec_vupkhsw]
6150  vsll __builtin_vec_vupkhsw (vsi);
6151    VUPKHSW  VUPKHSW_DEPR1
6152  vbll __builtin_vec_vupkhsw (vbi);
6153    VUPKHSW  VUPKHSW_DEPR2
6154
6155[VEC_VUPKLPX, vec_vupklpx, __builtin_vec_vupklpx]
6156  vui __builtin_vec_vupklpx (vus);
6157    VUPKLPX  VUPKLPX_DEPR1
6158  vui __builtin_vec_vupklpx (vp);
6159    VUPKLPX  VUPKLPX_DEPR2
6160
6161[VEC_VUPKLSB, vec_vupklsb, __builtin_vec_vupklsb]
6162  vss __builtin_vec_vupklsb (vsc);
6163    VUPKLSB  VUPKLSB_DEPR1
6164  vbs __builtin_vec_vupklsb (vbc);
6165    VUPKLSB  VUPKLSB_DEPR2
6166
6167[VEC_VUPKLSH, vec_vupklsh, __builtin_vec_vupklsh]
6168  vsi __builtin_vec_vupklsh (vss);
6169    VUPKLSH  VUPKLSH_DEPR1
6170  vbi __builtin_vec_vupklsh (vbs);
6171    VUPKLSH  VUPKLSH_DEPR2
6172
6173[VEC_VUPKLSW, vec_vupklsw, __builtin_vec_vupklsw]
6174  vsll __builtin_vec_vupklsw (vsi);
6175    VUPKLSW  VUPKLSW_DEPR1
6176  vbll __builtin_vec_vupklsw (vbi);
6177    VUPKLSW  VUPKLSW_DEPR2
6178