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