]>
Commit | Line | Data |
---|---|---|
4a720a95 | 1 | ; Built-in functions for PowerPC. |
7adcbafe | 2 | ; Copyright (C) 2020-2022 Free Software Foundation, Inc. |
4a720a95 BS |
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 | ; Built-in functions in this file are organized into "stanzas", where | |
23 | ; all built-ins in a given stanza are enabled together. Each stanza | |
24 | ; starts with a line identifying the circumstances in which the group of | |
25 | ; functions is permitted, with the gating predicate in square brackets. | |
26 | ; For example, this could be | |
27 | ; | |
28 | ; [altivec] | |
29 | ; | |
30 | ; or it could be | |
31 | ; | |
32 | ; [power9] | |
33 | ; | |
34 | ; The bracketed gating predicate is the only information allowed on | |
35 | ; the stanza header line, other than whitespace. | |
36 | ; | |
37 | ; Following the stanza header are two lines for each function: the | |
38 | ; prototype line and the attributes line. The prototype line has | |
39 | ; this format, where the square brackets indicate optional | |
40 | ; information and angle brackets indicate required information: | |
41 | ; | |
42 | ; [kind] <return-type> <bif-name> (<argument-list>); | |
43 | ; | |
44 | ; Here [kind] can be one of "const", "pure", or "fpmath"; | |
45 | ; <return-type> is a legal type for a built-in function result; | |
46 | ; <bif-name> is the name by which the function can be called; | |
47 | ; and <argument-list> is a comma-separated list of legal types | |
48 | ; for built-in function arguments. The argument list may be | |
49 | ; empty, but the parentheses and semicolon are required. | |
50 | ; | |
51 | ; A legal type is of the form: | |
52 | ; | |
53 | ; [const] [[signed|unsigned] <basetype> | <vectype>] [*] | |
54 | ; | |
55 | ; where "const" applies only to a <basetype> of "int". Legal values | |
56 | ; of <basetype> are (for now): | |
57 | ; | |
58 | ; char | |
59 | ; short | |
60 | ; int | |
61 | ; long | |
62 | ; long double | |
63 | ; long long | |
64 | ; float | |
65 | ; double | |
66 | ; __int128 | |
67 | ; _Float128 | |
68 | ; bool | |
69 | ; string | |
70 | ; _Decimal32 | |
71 | ; _Decimal64 | |
72 | ; _Decimal128 | |
73 | ; __ibm128 | |
74 | ; | |
75 | ; Legal values of <vectype> are as follows, and are shorthand for | |
76 | ; the associated meaning: | |
77 | ; | |
78 | ; vsc vector signed char | |
79 | ; vuc vector unsigned char | |
80 | ; vbc vector bool char | |
81 | ; vss vector signed short | |
82 | ; vus vector unsigned short | |
83 | ; vbs vector bool short | |
84 | ; vsi vector signed int | |
85 | ; vui vector unsigned int | |
86 | ; vbi vector bool int | |
87 | ; vsll vector signed long long | |
88 | ; vull vector unsigned long long | |
89 | ; vbll vector bool long long | |
90 | ; vsq vector signed __int128 | |
91 | ; vuq vector unsigned __int128 | |
92 | ; vbq vector bool __int128 | |
93 | ; vp vector pixel | |
94 | ; vf vector float | |
95 | ; vd vector double | |
96 | ; v256 __vector_pair | |
97 | ; v512 __vector_quad | |
98 | ; | |
99 | ; For simplicity, We don't support "short int" and "long long int". | |
100 | ; We don't currently support a <basetype> of "_Float16". "signed" | |
101 | ; and "unsigned" only apply to integral base types. The optional * | |
102 | ; indicates a pointer type. | |
103 | ; | |
104 | ; The attributes line looks like this: | |
105 | ; | |
106 | ; <bif-id> <bif-pattern> {<attribute-list>} | |
107 | ; | |
108 | ; Here <bif-id> is a unique internal identifier for the built-in | |
109 | ; function that will be used as part of an enumeration of all | |
110 | ; built-in functions; <bif-pattern> is the define_expand or | |
111 | ; define_insn that will be invoked when the call is expanded; | |
112 | ; and <attribute-list> is a comma-separated list of special | |
113 | ; conditions that apply to the built-in function. The attribute | |
114 | ; list may be empty, but the braces are required. | |
115 | ; | |
116 | ; Attributes are strings, and the allowed ones are listed below. | |
117 | ; | |
118 | ; init Process as a vec_init function | |
119 | ; set Process as a vec_set function | |
120 | ; extract Process as a vec_extract function | |
121 | ; nosoft Not valid with -msoft-float | |
122 | ; ldvec Needs special handling for vec_ld semantics | |
123 | ; stvec Needs special handling for vec_st semantics | |
124 | ; reve Needs special handling for element reversal | |
125 | ; pred Needs special handling for comparison predicates | |
126 | ; htm Needs special handling for transactional memory | |
127 | ; htmspr HTM function using an SPR | |
128 | ; htmcr HTM function using a CR | |
129 | ; mma Needs special handling for MMA | |
130 | ; quad MMA instruction using a register quad as an input operand | |
131 | ; pair MMA instruction using a register pair as an input operand | |
6cba7d1d | 132 | ; mmaint MMA instruction expanding to internal call at GIMPLE time |
4a720a95 BS |
133 | ; no32bit Not valid for TARGET_32BIT |
134 | ; 32bit Requires different handling for TARGET_32BIT | |
135 | ; cpu This is a "cpu_is" or "cpu_supports" builtin | |
136 | ; ldstmask Altivec mask for load or store | |
137 | ; lxvrse Needs special handling for load-rightmost, sign-extended | |
138 | ; lxvrze Needs special handling for load-rightmost, zero-extended | |
139 | ; endian Needs special handling for endianness | |
74aeb972 | 140 | ; ibmld Restrict usage to the case when TFmode is IBM-128 |
6f8abf2b | 141 | ; ibm128 Restrict usage to the case where __ibm128 is supported or if ibmld |
9d372165 | 142 | ; ieeeld Restrict usage to the case when TFmode is IEEE-128 |
4a720a95 BS |
143 | ; |
144 | ; Each attribute corresponds to extra processing required when | |
145 | ; the built-in is expanded. All such special processing should | |
146 | ; be controlled by an attribute from now on. | |
147 | ; | |
148 | ; It is important to note that each entry's <bif-name> must be | |
149 | ; unique. The code generated from this file will call def_builtin | |
150 | ; for each entry, and this can only happen once per name. | |
151 | ; | |
152 | ; The type signature for the builtin must match the modes of the RTL | |
153 | ; pattern <bif-pattern>. When a builtin is used only as a basis for | |
154 | ; overloading, you can use an arbitrary type for each mode (for example, | |
155 | ; for V8HImode, you could use vp, vss, vus, or vbs). The overloading | |
156 | ; machinery takes care of adding appropriate casts between vectors to | |
157 | ; satisfy impedance matching. The overloaded prototypes are the ones | |
158 | ; that must match what users expect. Thus you will often have a small | |
159 | ; number of entries in this file that correspond to a much greater | |
160 | ; number of entries in rs6000-overload.def. | |
161 | ; | |
162 | ; However, builtins in this file that are expected to be directly called | |
163 | ; by users must have one version for each expected type combination. | |
164 | ; | |
165 | ; Eventually we want to automatically generate built-in documentation | |
166 | ; from the entries in this file. Documenting of built-ins with more | |
167 | ; than one acceptable prototype can be done by cross-referencing | |
168 | ; against rs6000-overload.def and picking up the allowable prototypes | |
169 | ; from there. | |
170 | ; | |
171 | ; Blank lines may be used as desired in this file between the lines as | |
172 | ; defined above; that is, you can introduce as many extra newlines as you | |
173 | ; like after a required newline, but nowhere else. Lines beginning with | |
174 | ; a semicolon are also treated as blank lines. | |
175 | ; | |
176 | ; A const int argument may be restricted to certain values. This is | |
177 | ; indicated by one of the following occurring after the "int" token: | |
178 | ; | |
179 | ; <x> restricts the constant to x bits, interpreted as unsigned | |
180 | ; <x,y> restricts the constant to the inclusive range [x,y] | |
181 | ; [x,y] restricts the constant to the inclusive range [x,y], | |
182 | ; but only applies if the argument is constant. | |
183 | ; {x,y} restricts the constant to one of two values, x or y. | |
184 | ; | |
185 | ; Here x and y are integer tokens. Note that the "const" token is a | |
186 | ; lie when the restriction is [x,y], but this simplifies the parsing | |
187 | ; significantly and is hopefully forgivable. | |
188 | ||
189 | ||
190 | ||
87327344 BS |
191 | ; Builtins that have been around since time immemorial or are just |
192 | ; considered available everywhere. | |
193 | [always] | |
b5bc3931 BS |
194 | ; __builtin_cfstring is for Darwin, which will replace the decl we |
195 | ; create here with another one during subtarget processing. We just | |
196 | ; need to ensure it has a slot in the builtin enumeration. | |
197 | void __builtin_cfstring (); | |
198 | CFSTRING nothing {} | |
199 | ||
87327344 BS |
200 | void __builtin_cpu_init (); |
201 | CPU_INIT nothing {cpu} | |
202 | ||
203 | bool __builtin_cpu_is (string); | |
204 | CPU_IS nothing {cpu} | |
205 | ||
206 | bool __builtin_cpu_supports (string); | |
207 | CPU_SUPPORTS nothing {cpu} | |
208 | ||
209 | unsigned long long __builtin_ppc_get_timebase (); | |
210 | GET_TB rs6000_get_timebase {} | |
211 | ||
212 | double __builtin_mffs (); | |
213 | MFFS rs6000_mffs {} | |
214 | ||
0a60524d BS |
215 | ; Although the mffsl instruction is only available on POWER9 and later |
216 | ; processors, this builtin automatically falls back to mffs on older | |
217 | ; platforms. Thus it appears here in the [always] stanza. | |
218 | double __builtin_mffsl (); | |
aaf3a599 | 219 | MFFSL rs6000_mffsl {nosoft} |
0a60524d | 220 | |
74aeb972 BS |
221 | ; This is redundant with __builtin_pack_ibm128, as it requires long |
222 | ; double to be __ibm128. Should probably be deprecated. | |
87327344 | 223 | const long double __builtin_pack_longdouble (double, double); |
74aeb972 | 224 | PACK_TF packtf {ibmld} |
87327344 BS |
225 | |
226 | unsigned long __builtin_ppc_mftb (); | |
227 | MFTB rs6000_mftb_di {32bit} | |
228 | ||
229 | void __builtin_mtfsb0 (const int<5>); | |
aaf3a599 | 230 | MTFSB0 rs6000_mtfsb0 {nosoft} |
87327344 BS |
231 | |
232 | void __builtin_mtfsb1 (const int<5>); | |
aaf3a599 | 233 | MTFSB1 rs6000_mtfsb1 {nosoft} |
87327344 BS |
234 | |
235 | void __builtin_mtfsf (const int<8>, double); | |
236 | MTFSF rs6000_mtfsf {} | |
237 | ||
238 | const __ibm128 __builtin_pack_ibm128 (double, double); | |
6f8abf2b | 239 | PACK_IF packif {ibm128} |
87327344 BS |
240 | |
241 | void __builtin_set_fpscr_rn (const int[0,3]); | |
aaf3a599 | 242 | SET_FPSCR_RN rs6000_set_fpscr_rn {nosoft} |
87327344 BS |
243 | |
244 | const double __builtin_unpack_ibm128 (__ibm128, const int<1>); | |
6f8abf2b | 245 | UNPACK_IF unpackif {ibm128} |
87327344 | 246 | |
74aeb972 BS |
247 | ; This is redundant with __builtin_unpack_ibm128, as it requires long |
248 | ; double to be __ibm128. Should probably be deprecated. | |
87327344 | 249 | const double __builtin_unpack_longdouble (long double, const int<1>); |
74aeb972 | 250 | UNPACK_TF unpacktf {ibmld} |
87327344 BS |
251 | |
252 | ||
253 | ; Builtins that have been around just about forever, but not quite. | |
254 | [power5] | |
255 | fpmath double __builtin_recipdiv (double, double); | |
256 | RECIP recipdf3 {} | |
257 | ||
258 | fpmath float __builtin_recipdivf (float, float); | |
259 | RECIPF recipsf3 {} | |
260 | ||
261 | fpmath double __builtin_rsqrt (double); | |
262 | RSQRT rsqrtdf2 {} | |
263 | ||
264 | fpmath float __builtin_rsqrtf (float); | |
265 | RSQRTF rsqrtsf2 {} | |
266 | ||
267 | ||
268 | ; Power6 builtins (ISA 2.05). | |
269 | [power6] | |
87327344 BS |
270 | const signed int __builtin_p6_cmpb_32 (signed int, signed int); |
271 | CMPB_32 cmpbsi3 {} | |
272 | ||
273 | ||
c2c534f6 BS |
274 | ; Power6 builtins requiring 64-bit GPRs (even with 32-bit addressing). |
275 | [power6-64] | |
276 | const signed long __builtin_p6_cmpb (signed long, signed long); | |
d0823635 | 277 | CMPB cmpbdi3 {no32bit} |
c2c534f6 BS |
278 | |
279 | ||
4a720a95 BS |
280 | ; AltiVec builtins. |
281 | [altivec] | |
282 | const vsc __builtin_altivec_abs_v16qi (vsc); | |
283 | ABS_V16QI absv16qi2 {} | |
284 | ||
285 | const vf __builtin_altivec_abs_v4sf (vf); | |
286 | ABS_V4SF absv4sf2 {} | |
287 | ||
288 | const vsi __builtin_altivec_abs_v4si (vsi); | |
289 | ABS_V4SI absv4si2 {} | |
290 | ||
291 | const vss __builtin_altivec_abs_v8hi (vss); | |
292 | ABS_V8HI absv8hi2 {} | |
6cc92e94 BS |
293 | |
294 | const vsc __builtin_altivec_abss_v16qi (vsc); | |
295 | ABSS_V16QI altivec_abss_v16qi {} | |
296 | ||
297 | const vsi __builtin_altivec_abss_v4si (vsi); | |
298 | ABSS_V4SI altivec_abss_v4si {} | |
299 | ||
300 | const vss __builtin_altivec_abss_v8hi (vss); | |
301 | ABSS_V8HI altivec_abss_v8hi {} | |
302 | ||
303 | const vf __builtin_altivec_copysignfp (vf, vf); | |
304 | COPYSIGN_V4SF vector_copysignv4sf3 {} | |
305 | ||
306 | void __builtin_altivec_dss (const int<2>); | |
307 | DSS altivec_dss {} | |
308 | ||
309 | void __builtin_altivec_dssall (); | |
310 | DSSALL altivec_dssall {} | |
311 | ||
312 | void __builtin_altivec_dst (void *, const int, const int<2>); | |
313 | DST altivec_dst {} | |
314 | ||
315 | void __builtin_altivec_dstst (void *, const int, const int<2>); | |
316 | DSTST altivec_dstst {} | |
317 | ||
318 | void __builtin_altivec_dststt (void *, const int, const int<2>); | |
319 | DSTSTT altivec_dststt {} | |
320 | ||
321 | void __builtin_altivec_dstt (void *, const int, const int<2>); | |
322 | DSTT altivec_dstt {} | |
323 | ||
324 | fpmath vsi __builtin_altivec_fix_sfsi (vf); | |
325 | FIX_V4SF_V4SI fix_truncv4sfv4si2 {} | |
326 | ||
327 | fpmath vui __builtin_altivec_fixuns_sfsi (vf); | |
328 | FIXUNS_V4SF_V4SI fixuns_truncv4sfv4si2 {} | |
329 | ||
330 | fpmath vf __builtin_altivec_float_sisf (vsi); | |
331 | FLOAT_V4SI_V4SF floatv4siv4sf2 {} | |
332 | ||
333 | pure vsc __builtin_altivec_lvebx (signed long, const void *); | |
334 | LVEBX altivec_lvebx {ldvec} | |
335 | ||
336 | pure vss __builtin_altivec_lvehx (signed long, const void *); | |
337 | LVEHX altivec_lvehx {ldvec} | |
338 | ||
339 | pure vsi __builtin_altivec_lvewx (signed long, const void *); | |
340 | LVEWX altivec_lvewx {ldvec} | |
341 | ||
342 | pure vuc __builtin_altivec_lvsl (signed long, const void *); | |
343 | LVSL altivec_lvsl {ldvec} | |
344 | ||
345 | pure vuc __builtin_altivec_lvsr (signed long, const void *); | |
346 | LVSR altivec_lvsr {ldvec} | |
347 | ||
348 | pure vsi __builtin_altivec_lvx (signed long, const void *); | |
349 | LVX altivec_lvx_v4si {ldvec} | |
350 | ||
351 | pure vsq __builtin_altivec_lvx_v1ti (signed long, const void *); | |
352 | LVX_V1TI altivec_lvx_v1ti {ldvec} | |
353 | ||
354 | pure vsc __builtin_altivec_lvx_v16qi (signed long, const void *); | |
355 | LVX_V16QI altivec_lvx_v16qi {ldvec} | |
356 | ||
357 | pure vf __builtin_altivec_lvx_v4sf (signed long, const void *); | |
358 | LVX_V4SF altivec_lvx_v4sf {ldvec} | |
359 | ||
360 | pure vsi __builtin_altivec_lvx_v4si (signed long, const void *); | |
361 | LVX_V4SI altivec_lvx_v4si {ldvec} | |
362 | ||
363 | pure vss __builtin_altivec_lvx_v8hi (signed long, const void *); | |
364 | LVX_V8HI altivec_lvx_v8hi {ldvec} | |
365 | ||
366 | pure vsi __builtin_altivec_lvxl (signed long, const void *); | |
367 | LVXL altivec_lvxl_v4si {ldvec} | |
368 | ||
369 | pure vsc __builtin_altivec_lvxl_v16qi (signed long, const void *); | |
370 | LVXL_V16QI altivec_lvxl_v16qi {ldvec} | |
371 | ||
372 | pure vf __builtin_altivec_lvxl_v4sf (signed long, const void *); | |
373 | LVXL_V4SF altivec_lvxl_v4sf {ldvec} | |
374 | ||
375 | pure vsi __builtin_altivec_lvxl_v4si (signed long, const void *); | |
376 | LVXL_V4SI altivec_lvxl_v4si {ldvec} | |
377 | ||
378 | pure vss __builtin_altivec_lvxl_v8hi (signed long, const void *); | |
379 | LVXL_V8HI altivec_lvxl_v8hi {ldvec} | |
380 | ||
381 | const vsc __builtin_altivec_mask_for_load (const void *); | |
382 | MASK_FOR_LOAD altivec_lvsr_direct {ldstmask} | |
383 | ||
384 | vss __builtin_altivec_mfvscr (); | |
385 | MFVSCR altivec_mfvscr {} | |
386 | ||
387 | void __builtin_altivec_mtvscr (vsi); | |
388 | MTVSCR altivec_mtvscr {} | |
389 | ||
390 | const vsll __builtin_altivec_vmulesw (vsi, vsi); | |
391 | VMULESW vec_widen_smult_even_v4si {} | |
392 | ||
393 | const vull __builtin_altivec_vmuleuw (vui, vui); | |
394 | VMULEUW vec_widen_umult_even_v4si {} | |
395 | ||
396 | const vsll __builtin_altivec_vmulosw (vsi, vsi); | |
397 | VMULOSW vec_widen_smult_odd_v4si {} | |
398 | ||
399 | const vull __builtin_altivec_vmulouw (vui, vui); | |
400 | VMULOUW vec_widen_umult_odd_v4si {} | |
401 | ||
402 | const vsc __builtin_altivec_nabs_v16qi (vsc); | |
403 | NABS_V16QI nabsv16qi2 {} | |
404 | ||
405 | const vf __builtin_altivec_nabs_v4sf (vf); | |
406 | NABS_V4SF vsx_nabsv4sf2 {} | |
407 | ||
408 | const vsi __builtin_altivec_nabs_v4si (vsi); | |
409 | NABS_V4SI nabsv4si2 {} | |
410 | ||
411 | const vss __builtin_altivec_nabs_v8hi (vss); | |
412 | NABS_V8HI nabsv8hi2 {} | |
413 | ||
d32a5f4b BS |
414 | const vsc __builtin_altivec_neg_v16qi (vsc); |
415 | NEG_V16QI negv16qi2 {} | |
416 | ||
417 | const vf __builtin_altivec_neg_v4sf (vf); | |
418 | NEG_V4SF negv4sf2 {} | |
419 | ||
420 | const vsi __builtin_altivec_neg_v4si (vsi); | |
421 | NEG_V4SI negv4si2 {} | |
422 | ||
423 | const vss __builtin_altivec_neg_v8hi (vss); | |
424 | NEG_V8HI negv8hi2 {} | |
425 | ||
6cc92e94 BS |
426 | void __builtin_altivec_stvebx (vsc, signed long, void *); |
427 | STVEBX altivec_stvebx {stvec} | |
428 | ||
429 | void __builtin_altivec_stvehx (vss, signed long, void *); | |
430 | STVEHX altivec_stvehx {stvec} | |
431 | ||
432 | void __builtin_altivec_stvewx (vsi, signed long, void *); | |
433 | STVEWX altivec_stvewx {stvec} | |
434 | ||
435 | void __builtin_altivec_stvx (vsi, signed long, void *); | |
436 | STVX altivec_stvx_v4si {stvec} | |
437 | ||
438 | void __builtin_altivec_stvx_v16qi (vsc, signed long, void *); | |
439 | STVX_V16QI altivec_stvx_v16qi {stvec} | |
440 | ||
441 | void __builtin_altivec_stvx_v4sf (vf, signed long, void *); | |
442 | STVX_V4SF altivec_stvx_v4sf {stvec} | |
443 | ||
444 | void __builtin_altivec_stvx_v4si (vsi, signed long, void *); | |
445 | STVX_V4SI altivec_stvx_v4si {stvec} | |
446 | ||
447 | void __builtin_altivec_stvx_v8hi (vss, signed long, void *); | |
448 | STVX_V8HI altivec_stvx_v8hi {stvec} | |
449 | ||
450 | void __builtin_altivec_stvxl (vsi, signed long, void *); | |
451 | STVXL altivec_stvxl_v4si {stvec} | |
452 | ||
453 | void __builtin_altivec_stvxl_v16qi (vsc, signed long, void *); | |
454 | STVXL_V16QI altivec_stvxl_v16qi {stvec} | |
455 | ||
456 | void __builtin_altivec_stvxl_v4sf (vf, signed long, void *); | |
457 | STVXL_V4SF altivec_stvxl_v4sf {stvec} | |
458 | ||
459 | void __builtin_altivec_stvxl_v4si (vsi, signed long, void *); | |
460 | STVXL_V4SI altivec_stvxl_v4si {stvec} | |
461 | ||
462 | void __builtin_altivec_stvxl_v8hi (vss, signed long, void *); | |
463 | STVXL_V8HI altivec_stvxl_v8hi {stvec} | |
464 | ||
465 | fpmath vf __builtin_altivec_uns_float_sisf (vui); | |
466 | UNSFLOAT_V4SI_V4SF floatunsv4siv4sf2 {} | |
467 | ||
468 | const vui __builtin_altivec_vaddcuw (vui, vui); | |
469 | VADDCUW altivec_vaddcuw {} | |
470 | ||
471 | const vf __builtin_altivec_vaddfp (vf, vf); | |
472 | VADDFP addv4sf3 {} | |
473 | ||
474 | const vsc __builtin_altivec_vaddsbs (vsc, vsc); | |
475 | VADDSBS altivec_vaddsbs {} | |
476 | ||
477 | const vss __builtin_altivec_vaddshs (vss, vss); | |
478 | VADDSHS altivec_vaddshs {} | |
479 | ||
480 | const vsi __builtin_altivec_vaddsws (vsi, vsi); | |
481 | VADDSWS altivec_vaddsws {} | |
482 | ||
483 | const vuc __builtin_altivec_vaddubm (vuc, vuc); | |
484 | VADDUBM addv16qi3 {} | |
485 | ||
486 | const vuc __builtin_altivec_vaddubs (vuc, vuc); | |
487 | VADDUBS altivec_vaddubs {} | |
488 | ||
489 | const vus __builtin_altivec_vadduhm (vus, vus); | |
490 | VADDUHM addv8hi3 {} | |
491 | ||
492 | const vus __builtin_altivec_vadduhs (vus, vus); | |
493 | VADDUHS altivec_vadduhs {} | |
494 | ||
495 | const vsi __builtin_altivec_vadduwm (vsi, vsi); | |
496 | VADDUWM addv4si3 {} | |
497 | ||
498 | const vui __builtin_altivec_vadduws (vui, vui); | |
499 | VADDUWS altivec_vadduws {} | |
500 | ||
501 | const vsc __builtin_altivec_vand_v16qi (vsc, vsc); | |
502 | VAND_V16QI andv16qi3 {} | |
503 | ||
504 | const vuc __builtin_altivec_vand_v16qi_uns (vuc, vuc); | |
505 | VAND_V16QI_UNS andv16qi3 {} | |
506 | ||
507 | const vf __builtin_altivec_vand_v4sf (vf, vf); | |
508 | VAND_V4SF andv4sf3 {} | |
509 | ||
510 | const vsi __builtin_altivec_vand_v4si (vsi, vsi); | |
511 | VAND_V4SI andv4si3 {} | |
512 | ||
513 | const vui __builtin_altivec_vand_v4si_uns (vui, vui); | |
514 | VAND_V4SI_UNS andv4si3 {} | |
515 | ||
516 | const vss __builtin_altivec_vand_v8hi (vss, vss); | |
517 | VAND_V8HI andv8hi3 {} | |
518 | ||
519 | const vus __builtin_altivec_vand_v8hi_uns (vus, vus); | |
520 | VAND_V8HI_UNS andv8hi3 {} | |
521 | ||
522 | const vsc __builtin_altivec_vandc_v16qi (vsc, vsc); | |
523 | VANDC_V16QI andcv16qi3 {} | |
524 | ||
525 | const vuc __builtin_altivec_vandc_v16qi_uns (vuc, vuc); | |
526 | VANDC_V16QI_UNS andcv16qi3 {} | |
527 | ||
528 | const vf __builtin_altivec_vandc_v4sf (vf, vf); | |
529 | VANDC_V4SF andcv4sf3 {} | |
530 | ||
531 | const vsi __builtin_altivec_vandc_v4si (vsi, vsi); | |
532 | VANDC_V4SI andcv4si3 {} | |
533 | ||
534 | const vui __builtin_altivec_vandc_v4si_uns (vui, vui); | |
535 | VANDC_V4SI_UNS andcv4si3 {} | |
536 | ||
537 | const vss __builtin_altivec_vandc_v8hi (vss, vss); | |
538 | VANDC_V8HI andcv8hi3 {} | |
539 | ||
540 | const vus __builtin_altivec_vandc_v8hi_uns (vus, vus); | |
541 | VANDC_V8HI_UNS andcv8hi3 {} | |
542 | ||
543 | const vsc __builtin_altivec_vavgsb (vsc, vsc); | |
544 | VAVGSB avgv16qi3_ceil {} | |
545 | ||
546 | const vss __builtin_altivec_vavgsh (vss, vss); | |
547 | VAVGSH avgv8hi3_ceil {} | |
548 | ||
549 | const vsi __builtin_altivec_vavgsw (vsi, vsi); | |
550 | VAVGSW avgv4si3_ceil {} | |
551 | ||
552 | const vuc __builtin_altivec_vavgub (vuc, vuc); | |
553 | VAVGUB uavgv16qi3_ceil {} | |
554 | ||
555 | const vus __builtin_altivec_vavguh (vus, vus); | |
556 | VAVGUH uavgv8hi3_ceil {} | |
557 | ||
558 | const vui __builtin_altivec_vavguw (vui, vui); | |
559 | VAVGUW uavgv4si3_ceil {} | |
560 | ||
561 | const vf __builtin_altivec_vcfsx (vsi, const int<5>); | |
562 | VCFSX altivec_vcfsx {} | |
563 | ||
564 | const vf __builtin_altivec_vcfux (vui, const int<5>); | |
565 | VCFUX altivec_vcfux {} | |
566 | ||
567 | const vsi __builtin_altivec_vcmpbfp (vf, vf); | |
568 | VCMPBFP altivec_vcmpbfp {} | |
569 | ||
570 | const int __builtin_altivec_vcmpbfp_p (int, vf, vf); | |
571 | VCMPBFP_P altivec_vcmpbfp_p {pred} | |
572 | ||
573 | const vf __builtin_altivec_vcmpeqfp (vf, vf); | |
574 | VCMPEQFP vector_eqv4sf {} | |
575 | ||
576 | const int __builtin_altivec_vcmpeqfp_p (int, vf, vf); | |
577 | VCMPEQFP_P vector_eq_v4sf_p {pred} | |
578 | ||
579 | const vsc __builtin_altivec_vcmpequb (vuc, vuc); | |
580 | VCMPEQUB vector_eqv16qi {} | |
581 | ||
582 | const int __builtin_altivec_vcmpequb_p (int, vsc, vsc); | |
583 | VCMPEQUB_P vector_eq_v16qi_p {pred} | |
584 | ||
585 | const vss __builtin_altivec_vcmpequh (vus, vus); | |
586 | VCMPEQUH vector_eqv8hi {} | |
587 | ||
588 | const int __builtin_altivec_vcmpequh_p (int, vss, vss); | |
589 | VCMPEQUH_P vector_eq_v8hi_p {pred} | |
590 | ||
591 | const vsi __builtin_altivec_vcmpequw (vui, vui); | |
592 | VCMPEQUW vector_eqv4si {} | |
593 | ||
594 | const int __builtin_altivec_vcmpequw_p (int, vsi, vsi); | |
595 | VCMPEQUW_P vector_eq_v4si_p {pred} | |
596 | ||
597 | const vf __builtin_altivec_vcmpgefp (vf, vf); | |
598 | VCMPGEFP vector_gev4sf {} | |
599 | ||
600 | const int __builtin_altivec_vcmpgefp_p (int, vf, vf); | |
601 | VCMPGEFP_P vector_ge_v4sf_p {pred} | |
602 | ||
603 | const vf __builtin_altivec_vcmpgtfp (vf, vf); | |
604 | VCMPGTFP vector_gtv4sf {} | |
605 | ||
606 | const int __builtin_altivec_vcmpgtfp_p (int, vf, vf); | |
607 | VCMPGTFP_P vector_gt_v4sf_p {pred} | |
608 | ||
609 | const vsc __builtin_altivec_vcmpgtsb (vsc, vsc); | |
610 | VCMPGTSB vector_gtv16qi {} | |
611 | ||
612 | const int __builtin_altivec_vcmpgtsb_p (int, vsc, vsc); | |
613 | VCMPGTSB_P vector_gt_v16qi_p {pred} | |
614 | ||
615 | const vss __builtin_altivec_vcmpgtsh (vss, vss); | |
616 | VCMPGTSH vector_gtv8hi {} | |
617 | ||
618 | const int __builtin_altivec_vcmpgtsh_p (int, vss, vss); | |
619 | VCMPGTSH_P vector_gt_v8hi_p {pred} | |
620 | ||
621 | const vsi __builtin_altivec_vcmpgtsw (vsi, vsi); | |
622 | VCMPGTSW vector_gtv4si {} | |
623 | ||
624 | const int __builtin_altivec_vcmpgtsw_p (int, vsi, vsi); | |
625 | VCMPGTSW_P vector_gt_v4si_p {pred} | |
626 | ||
627 | const vsc __builtin_altivec_vcmpgtub (vuc, vuc); | |
628 | VCMPGTUB vector_gtuv16qi {} | |
629 | ||
630 | const int __builtin_altivec_vcmpgtub_p (int, vsc, vsc); | |
631 | VCMPGTUB_P vector_gtu_v16qi_p {pred} | |
632 | ||
633 | const vss __builtin_altivec_vcmpgtuh (vus, vus); | |
634 | VCMPGTUH vector_gtuv8hi {} | |
635 | ||
636 | const int __builtin_altivec_vcmpgtuh_p (int, vss, vss); | |
637 | VCMPGTUH_P vector_gtu_v8hi_p {pred} | |
638 | ||
639 | const vsi __builtin_altivec_vcmpgtuw (vui, vui); | |
640 | VCMPGTUW vector_gtuv4si {} | |
641 | ||
642 | const int __builtin_altivec_vcmpgtuw_p (int, vsi, vsi); | |
643 | VCMPGTUW_P vector_gtu_v4si_p {pred} | |
644 | ||
645 | const vsi __builtin_altivec_vctsxs (vf, const int<5>); | |
646 | VCTSXS altivec_vctsxs {} | |
647 | ||
648 | const vui __builtin_altivec_vctuxs (vf, const int<5>); | |
649 | VCTUXS altivec_vctuxs {} | |
650 | ||
651 | fpmath vf __builtin_altivec_vexptefp (vf); | |
652 | VEXPTEFP altivec_vexptefp {} | |
653 | ||
654 | fpmath vf __builtin_altivec_vlogefp (vf); | |
655 | VLOGEFP altivec_vlogefp {} | |
656 | ||
657 | fpmath vf __builtin_altivec_vmaddfp (vf, vf, vf); | |
658 | VMADDFP fmav4sf4 {} | |
659 | ||
660 | const vf __builtin_altivec_vmaxfp (vf, vf); | |
661 | VMAXFP smaxv4sf3 {} | |
662 | ||
663 | const vsc __builtin_altivec_vmaxsb (vsc, vsc); | |
664 | VMAXSB smaxv16qi3 {} | |
665 | ||
666 | const vuc __builtin_altivec_vmaxub (vuc, vuc); | |
667 | VMAXUB umaxv16qi3 {} | |
668 | ||
669 | const vss __builtin_altivec_vmaxsh (vss, vss); | |
670 | VMAXSH smaxv8hi3 {} | |
671 | ||
672 | const vsi __builtin_altivec_vmaxsw (vsi, vsi); | |
673 | VMAXSW smaxv4si3 {} | |
674 | ||
675 | const vus __builtin_altivec_vmaxuh (vus, vus); | |
676 | VMAXUH umaxv8hi3 {} | |
677 | ||
678 | const vui __builtin_altivec_vmaxuw (vui, vui); | |
679 | VMAXUW umaxv4si3 {} | |
680 | ||
681 | vss __builtin_altivec_vmhaddshs (vss, vss, vss); | |
682 | VMHADDSHS altivec_vmhaddshs {} | |
683 | ||
684 | vss __builtin_altivec_vmhraddshs (vss, vss, vss); | |
685 | VMHRADDSHS altivec_vmhraddshs {} | |
686 | ||
687 | const vf __builtin_altivec_vminfp (vf, vf); | |
688 | VMINFP sminv4sf3 {} | |
689 | ||
690 | const vsc __builtin_altivec_vminsb (vsc, vsc); | |
691 | VMINSB sminv16qi3 {} | |
692 | ||
693 | const vss __builtin_altivec_vminsh (vss, vss); | |
694 | VMINSH sminv8hi3 {} | |
695 | ||
696 | const vsi __builtin_altivec_vminsw (vsi, vsi); | |
697 | VMINSW sminv4si3 {} | |
698 | ||
699 | const vuc __builtin_altivec_vminub (vuc, vuc); | |
700 | VMINUB uminv16qi3 {} | |
701 | ||
702 | const vus __builtin_altivec_vminuh (vus, vus); | |
703 | VMINUH uminv8hi3 {} | |
704 | ||
705 | const vui __builtin_altivec_vminuw (vui, vui); | |
706 | VMINUW uminv4si3 {} | |
707 | ||
708 | const vss __builtin_altivec_vmladduhm (vss, vss, vss); | |
709 | VMLADDUHM fmav8hi4 {} | |
710 | ||
711 | const vsc __builtin_altivec_vmrghb (vsc, vsc); | |
712 | VMRGHB altivec_vmrghb {} | |
713 | ||
714 | const vss __builtin_altivec_vmrghh (vss, vss); | |
715 | VMRGHH altivec_vmrghh {} | |
716 | ||
717 | const vsi __builtin_altivec_vmrghw (vsi, vsi); | |
718 | VMRGHW altivec_vmrghw {} | |
719 | ||
720 | const vsc __builtin_altivec_vmrglb (vsc, vsc); | |
721 | VMRGLB altivec_vmrglb {} | |
722 | ||
723 | const vss __builtin_altivec_vmrglh (vss, vss); | |
724 | VMRGLH altivec_vmrglh {} | |
725 | ||
726 | const vsi __builtin_altivec_vmrglw (vsi, vsi); | |
727 | VMRGLW altivec_vmrglw {} | |
728 | ||
729 | const vsi __builtin_altivec_vmsummbm (vsc, vuc, vsi); | |
730 | VMSUMMBM altivec_vmsummbm {} | |
731 | ||
732 | const vsi __builtin_altivec_vmsumshm (vss, vss, vsi); | |
733 | VMSUMSHM altivec_vmsumshm {} | |
734 | ||
735 | vsi __builtin_altivec_vmsumshs (vss, vss, vsi); | |
736 | VMSUMSHS altivec_vmsumshs {} | |
737 | ||
738 | const vui __builtin_altivec_vmsumubm (vuc, vuc, vui); | |
739 | VMSUMUBM altivec_vmsumubm {} | |
740 | ||
741 | const vui __builtin_altivec_vmsumuhm (vus, vus, vui); | |
742 | VMSUMUHM altivec_vmsumuhm {} | |
743 | ||
744 | vui __builtin_altivec_vmsumuhs (vus, vus, vui); | |
745 | VMSUMUHS altivec_vmsumuhs {} | |
746 | ||
747 | const vss __builtin_altivec_vmulesb (vsc, vsc); | |
748 | VMULESB vec_widen_smult_even_v16qi {} | |
749 | ||
750 | const vsi __builtin_altivec_vmulesh (vss, vss); | |
751 | VMULESH vec_widen_smult_even_v8hi {} | |
752 | ||
753 | const vus __builtin_altivec_vmuleub (vuc, vuc); | |
754 | VMULEUB vec_widen_umult_even_v16qi {} | |
755 | ||
756 | const vui __builtin_altivec_vmuleuh (vus, vus); | |
757 | VMULEUH vec_widen_umult_even_v8hi {} | |
758 | ||
759 | const vss __builtin_altivec_vmulosb (vsc, vsc); | |
760 | VMULOSB vec_widen_smult_odd_v16qi {} | |
761 | ||
762 | const vus __builtin_altivec_vmuloub (vuc, vuc); | |
763 | VMULOUB vec_widen_umult_odd_v16qi {} | |
764 | ||
765 | const vsi __builtin_altivec_vmulosh (vss, vss); | |
766 | VMULOSH vec_widen_smult_odd_v8hi {} | |
767 | ||
768 | const vui __builtin_altivec_vmulouh (vus, vus); | |
769 | VMULOUH vec_widen_umult_odd_v8hi {} | |
770 | ||
771 | fpmath vf __builtin_altivec_vnmsubfp (vf, vf, vf); | |
772 | VNMSUBFP nfmsv4sf4 {} | |
773 | ||
774 | const vsc __builtin_altivec_vnor_v16qi (vsc, vsc); | |
775 | VNOR_V16QI norv16qi3 {} | |
776 | ||
777 | const vuc __builtin_altivec_vnor_v16qi_uns (vuc, vuc); | |
778 | VNOR_V16QI_UNS norv16qi3 {} | |
779 | ||
780 | const vf __builtin_altivec_vnor_v4sf (vf, vf); | |
781 | VNOR_V4SF norv4sf3 {} | |
782 | ||
783 | const vsi __builtin_altivec_vnor_v4si (vsi, vsi); | |
784 | VNOR_V4SI norv4si3 {} | |
785 | ||
786 | const vui __builtin_altivec_vnor_v4si_uns (vui, vui); | |
787 | VNOR_V4SI_UNS norv4si3 {} | |
788 | ||
789 | const vss __builtin_altivec_vnor_v8hi (vss, vss); | |
790 | VNOR_V8HI norv8hi3 {} | |
791 | ||
792 | const vus __builtin_altivec_vnor_v8hi_uns (vus, vus); | |
793 | VNOR_V8HI_UNS norv8hi3 {} | |
794 | ||
795 | const vsc __builtin_altivec_vor_v16qi (vsc, vsc); | |
796 | VOR_V16QI iorv16qi3 {} | |
797 | ||
798 | const vuc __builtin_altivec_vor_v16qi_uns (vuc, vuc); | |
799 | VOR_V16QI_UNS iorv16qi3 {} | |
800 | ||
801 | const vf __builtin_altivec_vor_v4sf (vf, vf); | |
802 | VOR_V4SF iorv4sf3 {} | |
803 | ||
804 | const vsi __builtin_altivec_vor_v4si (vsi, vsi); | |
805 | VOR_V4SI iorv4si3 {} | |
806 | ||
807 | const vui __builtin_altivec_vor_v4si_uns (vui, vui); | |
808 | VOR_V4SI_UNS iorv4si3 {} | |
809 | ||
810 | const vss __builtin_altivec_vor_v8hi (vss, vss); | |
811 | VOR_V8HI iorv8hi3 {} | |
812 | ||
813 | const vus __builtin_altivec_vor_v8hi_uns (vus, vus); | |
814 | VOR_V8HI_UNS iorv8hi3 {} | |
815 | ||
816 | const vsc __builtin_altivec_vperm_16qi (vsc, vsc, vuc); | |
817 | VPERM_16QI altivec_vperm_v16qi {} | |
818 | ||
819 | const vuc __builtin_altivec_vperm_16qi_uns (vuc, vuc, vuc); | |
820 | VPERM_16QI_UNS altivec_vperm_v16qi_uns {} | |
821 | ||
822 | const vsq __builtin_altivec_vperm_1ti (vsq, vsq, vuc); | |
823 | VPERM_1TI altivec_vperm_v1ti {} | |
824 | ||
825 | const vuq __builtin_altivec_vperm_1ti_uns (vuq, vuq, vuc); | |
826 | VPERM_1TI_UNS altivec_vperm_v1ti_uns {} | |
827 | ||
828 | const vf __builtin_altivec_vperm_4sf (vf, vf, vuc); | |
829 | VPERM_4SF altivec_vperm_v4sf {} | |
830 | ||
831 | const vsi __builtin_altivec_vperm_4si (vsi, vsi, vuc); | |
832 | VPERM_4SI altivec_vperm_v4si {} | |
833 | ||
834 | const vui __builtin_altivec_vperm_4si_uns (vui, vui, vuc); | |
835 | VPERM_4SI_UNS altivec_vperm_v4si_uns {} | |
836 | ||
837 | const vss __builtin_altivec_vperm_8hi (vss, vss, vuc); | |
838 | VPERM_8HI altivec_vperm_v8hi {} | |
839 | ||
840 | const vus __builtin_altivec_vperm_8hi_uns (vus, vus, vuc); | |
841 | VPERM_8HI_UNS altivec_vperm_v8hi_uns {} | |
842 | ||
843 | const vp __builtin_altivec_vpkpx (vui, vui); | |
844 | VPKPX altivec_vpkpx {} | |
845 | ||
846 | const vsc __builtin_altivec_vpkshss (vss, vss); | |
847 | VPKSHSS altivec_vpkshss {} | |
848 | ||
849 | const vuc __builtin_altivec_vpkshus (vss, vss); | |
850 | VPKSHUS altivec_vpkshus {} | |
851 | ||
852 | const vss __builtin_altivec_vpkswss (vsi, vsi); | |
853 | VPKSWSS altivec_vpkswss {} | |
854 | ||
855 | const vus __builtin_altivec_vpkswus (vsi, vsi); | |
856 | VPKSWUS altivec_vpkswus {} | |
857 | ||
858 | const vsc __builtin_altivec_vpkuhum (vss, vss); | |
859 | VPKUHUM altivec_vpkuhum {} | |
860 | ||
861 | const vuc __builtin_altivec_vpkuhus (vus, vus); | |
862 | VPKUHUS altivec_vpkuhus {} | |
863 | ||
864 | const vss __builtin_altivec_vpkuwum (vsi, vsi); | |
865 | VPKUWUM altivec_vpkuwum {} | |
866 | ||
867 | const vus __builtin_altivec_vpkuwus (vui, vui); | |
868 | VPKUWUS altivec_vpkuwus {} | |
869 | ||
870 | const vf __builtin_altivec_vrecipdivfp (vf, vf); | |
871 | VRECIPFP recipv4sf3 {} | |
872 | ||
873 | fpmath vf __builtin_altivec_vrefp (vf); | |
874 | VREFP rev4sf2 {} | |
875 | ||
876 | const vsc __builtin_altivec_vreve_v16qi (vsc); | |
877 | VREVE_V16QI altivec_vrevev16qi2 {} | |
878 | ||
879 | const vf __builtin_altivec_vreve_v4sf (vf); | |
880 | VREVE_V4SF altivec_vrevev4sf2 {} | |
881 | ||
882 | const vsi __builtin_altivec_vreve_v4si (vsi); | |
883 | VREVE_V4SI altivec_vrevev4si2 {} | |
884 | ||
885 | const vss __builtin_altivec_vreve_v8hi (vss); | |
886 | VREVE_V8HI altivec_vrevev8hi2 {} | |
887 | ||
888 | fpmath vf __builtin_altivec_vrfim (vf); | |
889 | VRFIM vector_floorv4sf2 {} | |
890 | ||
891 | fpmath vf __builtin_altivec_vrfin (vf); | |
892 | VRFIN altivec_vrfin {} | |
893 | ||
894 | fpmath vf __builtin_altivec_vrfip (vf); | |
895 | VRFIP vector_ceilv4sf2 {} | |
896 | ||
897 | fpmath vf __builtin_altivec_vrfiz (vf); | |
898 | VRFIZ vector_btruncv4sf2 {} | |
899 | ||
900 | const vsc __builtin_altivec_vrlb (vsc, vsc); | |
901 | VRLB vrotlv16qi3 {} | |
902 | ||
903 | const vss __builtin_altivec_vrlh (vss, vss); | |
904 | VRLH vrotlv8hi3 {} | |
905 | ||
906 | const vsi __builtin_altivec_vrlw (vsi, vsi); | |
907 | VRLW vrotlv4si3 {} | |
908 | ||
909 | fpmath vf __builtin_altivec_vrsqrtefp (vf); | |
910 | VRSQRTEFP rsqrtev4sf2 {} | |
911 | ||
912 | fpmath vf __builtin_altivec_vrsqrtfp (vf); | |
913 | VRSQRTFP rsqrtv4sf2 {} | |
914 | ||
915 | const vsc __builtin_altivec_vsel_16qi (vsc, vsc, vuc); | |
916 | VSEL_16QI vector_select_v16qi {} | |
917 | ||
918 | const vuc __builtin_altivec_vsel_16qi_uns (vuc, vuc, vuc); | |
919 | VSEL_16QI_UNS vector_select_v16qi_uns {} | |
920 | ||
921 | const vsq __builtin_altivec_vsel_1ti (vsq, vsq, vuq); | |
922 | VSEL_1TI vector_select_v1ti {} | |
923 | ||
924 | const vuq __builtin_altivec_vsel_1ti_uns (vuq, vuq, vuq); | |
925 | VSEL_1TI_UNS vector_select_v1ti_uns {} | |
926 | ||
927 | const vf __builtin_altivec_vsel_4sf (vf, vf, vf); | |
928 | VSEL_4SF vector_select_v4sf {} | |
929 | ||
930 | const vsi __builtin_altivec_vsel_4si (vsi, vsi, vui); | |
931 | VSEL_4SI vector_select_v4si {} | |
932 | ||
933 | const vui __builtin_altivec_vsel_4si_uns (vui, vui, vui); | |
934 | VSEL_4SI_UNS vector_select_v4si_uns {} | |
935 | ||
936 | const vss __builtin_altivec_vsel_8hi (vss, vss, vus); | |
937 | VSEL_8HI vector_select_v8hi {} | |
938 | ||
939 | const vus __builtin_altivec_vsel_8hi_uns (vus, vus, vus); | |
940 | VSEL_8HI_UNS vector_select_v8hi_uns {} | |
941 | ||
942 | const vsi __builtin_altivec_vsl (vsi, vsi); | |
943 | VSL altivec_vsl {} | |
944 | ||
945 | const vsc __builtin_altivec_vslb (vsc, vuc); | |
946 | VSLB vashlv16qi3 {} | |
947 | ||
948 | const vsc __builtin_altivec_vsldoi_16qi (vsc, vsc, const int<4>); | |
949 | VSLDOI_16QI altivec_vsldoi_v16qi {} | |
950 | ||
951 | const vf __builtin_altivec_vsldoi_4sf (vf, vf, const int<4>); | |
952 | VSLDOI_4SF altivec_vsldoi_v4sf {} | |
953 | ||
954 | const vsi __builtin_altivec_vsldoi_4si (vsi, vsi, const int<4>); | |
955 | VSLDOI_4SI altivec_vsldoi_v4si {} | |
956 | ||
957 | const vss __builtin_altivec_vsldoi_8hi (vss, vss, const int<4>); | |
958 | VSLDOI_8HI altivec_vsldoi_v8hi {} | |
959 | ||
960 | const vss __builtin_altivec_vslh (vss, vus); | |
961 | VSLH vashlv8hi3 {} | |
962 | ||
963 | const vsi __builtin_altivec_vslo (vsi, vsi); | |
964 | VSLO altivec_vslo {} | |
965 | ||
966 | const vsi __builtin_altivec_vslw (vsi, vui); | |
967 | VSLW vashlv4si3 {} | |
968 | ||
969 | const vsc __builtin_altivec_vspltb (vsc, const int<4>); | |
970 | VSPLTB altivec_vspltb {} | |
971 | ||
972 | const vss __builtin_altivec_vsplth (vss, const int<3>); | |
973 | VSPLTH altivec_vsplth {} | |
974 | ||
975 | const vsc __builtin_altivec_vspltisb (const int<-16,15>); | |
976 | VSPLTISB altivec_vspltisb {} | |
977 | ||
978 | const vss __builtin_altivec_vspltish (const int<-16,15>); | |
979 | VSPLTISH altivec_vspltish {} | |
980 | ||
981 | const vsi __builtin_altivec_vspltisw (const int<-16,15>); | |
982 | VSPLTISW altivec_vspltisw {} | |
983 | ||
984 | const vsi __builtin_altivec_vspltw (vsi, const int<2>); | |
985 | VSPLTW altivec_vspltw {} | |
986 | ||
987 | const vsi __builtin_altivec_vsr (vsi, vsi); | |
988 | VSR altivec_vsr {} | |
989 | ||
990 | const vsc __builtin_altivec_vsrab (vsc, vuc); | |
991 | VSRAB vashrv16qi3 {} | |
992 | ||
993 | const vss __builtin_altivec_vsrah (vss, vus); | |
994 | VSRAH vashrv8hi3 {} | |
995 | ||
996 | const vsi __builtin_altivec_vsraw (vsi, vui); | |
997 | VSRAW vashrv4si3 {} | |
998 | ||
999 | const vsc __builtin_altivec_vsrb (vsc, vuc); | |
1000 | VSRB vlshrv16qi3 {} | |
1001 | ||
1002 | const vss __builtin_altivec_vsrh (vss, vus); | |
1003 | VSRH vlshrv8hi3 {} | |
1004 | ||
1005 | const vsi __builtin_altivec_vsro (vsi, vsi); | |
1006 | VSRO altivec_vsro {} | |
1007 | ||
1008 | const vsi __builtin_altivec_vsrw (vsi, vui); | |
1009 | VSRW vlshrv4si3 {} | |
1010 | ||
1011 | const vsi __builtin_altivec_vsubcuw (vsi, vsi); | |
1012 | VSUBCUW altivec_vsubcuw {} | |
1013 | ||
1014 | const vf __builtin_altivec_vsubfp (vf, vf); | |
1015 | VSUBFP subv4sf3 {} | |
1016 | ||
1017 | const vsc __builtin_altivec_vsubsbs (vsc, vsc); | |
1018 | VSUBSBS altivec_vsubsbs {} | |
1019 | ||
1020 | const vss __builtin_altivec_vsubshs (vss, vss); | |
1021 | VSUBSHS altivec_vsubshs {} | |
1022 | ||
1023 | const vsi __builtin_altivec_vsubsws (vsi, vsi); | |
1024 | VSUBSWS altivec_vsubsws {} | |
1025 | ||
1026 | const vuc __builtin_altivec_vsububm (vuc, vuc); | |
1027 | VSUBUBM subv16qi3 {} | |
1028 | ||
1029 | const vuc __builtin_altivec_vsububs (vuc, vuc); | |
1030 | VSUBUBS altivec_vsububs {} | |
1031 | ||
1032 | const vus __builtin_altivec_vsubuhm (vus, vus); | |
1033 | VSUBUHM subv8hi3 {} | |
1034 | ||
1035 | const vus __builtin_altivec_vsubuhs (vus, vus); | |
1036 | VSUBUHS altivec_vsubuhs {} | |
1037 | ||
1038 | const vui __builtin_altivec_vsubuwm (vui, vui); | |
1039 | VSUBUWM subv4si3 {} | |
1040 | ||
1041 | const vui __builtin_altivec_vsubuws (vui, vui); | |
1042 | VSUBUWS altivec_vsubuws {} | |
1043 | ||
1044 | const vsi __builtin_altivec_vsum2sws (vsi, vsi); | |
1045 | VSUM2SWS altivec_vsum2sws {} | |
1046 | ||
1047 | const vsi __builtin_altivec_vsum4sbs (vsc, vsi); | |
1048 | VSUM4SBS altivec_vsum4sbs {} | |
1049 | ||
1050 | const vsi __builtin_altivec_vsum4shs (vss, vsi); | |
1051 | VSUM4SHS altivec_vsum4shs {} | |
1052 | ||
1053 | const vui __builtin_altivec_vsum4ubs (vuc, vui); | |
1054 | VSUM4UBS altivec_vsum4ubs {} | |
1055 | ||
1056 | const vsi __builtin_altivec_vsumsws (vsi, vsi); | |
1057 | VSUMSWS altivec_vsumsws {} | |
1058 | ||
1059 | const vsi __builtin_altivec_vsumsws_be (vsi, vsi); | |
1060 | VSUMSWS_BE altivec_vsumsws_direct {} | |
1061 | ||
1062 | const vui __builtin_altivec_vupkhpx (vp); | |
1063 | VUPKHPX altivec_vupkhpx {} | |
1064 | ||
1065 | const vss __builtin_altivec_vupkhsb (vsc); | |
1066 | VUPKHSB altivec_vupkhsb {} | |
1067 | ||
1068 | const vsi __builtin_altivec_vupkhsh (vss); | |
1069 | VUPKHSH altivec_vupkhsh {} | |
1070 | ||
1071 | const vui __builtin_altivec_vupklpx (vp); | |
1072 | VUPKLPX altivec_vupklpx {} | |
1073 | ||
1074 | const vss __builtin_altivec_vupklsb (vsc); | |
1075 | VUPKLSB altivec_vupklsb {} | |
1076 | ||
1077 | const vsi __builtin_altivec_vupklsh (vss); | |
1078 | VUPKLSH altivec_vupklsh {} | |
1079 | ||
1080 | const vsc __builtin_altivec_vxor_v16qi (vsc, vsc); | |
1081 | VXOR_V16QI xorv16qi3 {} | |
1082 | ||
1083 | const vuc __builtin_altivec_vxor_v16qi_uns (vuc, vuc); | |
1084 | VXOR_V16QI_UNS xorv16qi3 {} | |
1085 | ||
1086 | const vf __builtin_altivec_vxor_v4sf (vf, vf); | |
1087 | VXOR_V4SF xorv4sf3 {} | |
1088 | ||
1089 | const vsi __builtin_altivec_vxor_v4si (vsi, vsi); | |
1090 | VXOR_V4SI xorv4si3 {} | |
1091 | ||
1092 | const vui __builtin_altivec_vxor_v4si_uns (vui, vui); | |
1093 | VXOR_V4SI_UNS xorv4si3 {} | |
1094 | ||
1095 | const vss __builtin_altivec_vxor_v8hi (vss, vss); | |
1096 | VXOR_V8HI xorv8hi3 {} | |
1097 | ||
1098 | const vus __builtin_altivec_vxor_v8hi_uns (vus, vus); | |
1099 | VXOR_V8HI_UNS xorv8hi3 {} | |
1100 | ||
1101 | const signed char __builtin_vec_ext_v16qi (vsc, signed int); | |
1102 | VEC_EXT_V16QI nothing {extract} | |
1103 | ||
1104 | const float __builtin_vec_ext_v4sf (vf, signed int); | |
1105 | VEC_EXT_V4SF nothing {extract} | |
1106 | ||
1107 | const signed int __builtin_vec_ext_v4si (vsi, signed int); | |
1108 | VEC_EXT_V4SI nothing {extract} | |
1109 | ||
1110 | const signed short __builtin_vec_ext_v8hi (vss, signed int); | |
1111 | VEC_EXT_V8HI nothing {extract} | |
1112 | ||
206c08ce BS |
1113 | const vsc __builtin_vec_init_v16qi (signed char, signed char, signed char, \ |
1114 | signed char, signed char, signed char, signed char, signed char, \ | |
1115 | signed char, signed char, signed char, signed char, signed char, \ | |
1116 | signed char, signed char, signed char); | |
6cc92e94 BS |
1117 | VEC_INIT_V16QI nothing {init} |
1118 | ||
1119 | const vf __builtin_vec_init_v4sf (float, float, float, float); | |
1120 | VEC_INIT_V4SF nothing {init} | |
1121 | ||
206c08ce BS |
1122 | const vsi __builtin_vec_init_v4si (signed int, signed int, signed int, \ |
1123 | signed int); | |
6cc92e94 BS |
1124 | VEC_INIT_V4SI nothing {init} |
1125 | ||
206c08ce BS |
1126 | const vss __builtin_vec_init_v8hi (signed short, signed short, signed short,\ |
1127 | signed short, signed short, signed short, signed short, \ | |
1128 | signed short); | |
6cc92e94 BS |
1129 | VEC_INIT_V8HI nothing {init} |
1130 | ||
1131 | const vsc __builtin_vec_set_v16qi (vsc, signed char, const int<4>); | |
1132 | VEC_SET_V16QI nothing {set} | |
1133 | ||
1134 | const vf __builtin_vec_set_v4sf (vf, float, const int<2>); | |
1135 | VEC_SET_V4SF nothing {set} | |
1136 | ||
1137 | const vsi __builtin_vec_set_v4si (vsi, signed int, const int<2>); | |
1138 | VEC_SET_V4SI nothing {set} | |
1139 | ||
1140 | const vss __builtin_vec_set_v8hi (vss, signed short, const int<3>); | |
1141 | VEC_SET_V8HI nothing {set} | |
ba6aa474 BS |
1142 | |
1143 | ||
a7f13a51 BS |
1144 | ; Cell builtins. |
1145 | [cell] | |
1146 | pure vsc __builtin_altivec_lvlx (signed long, const void *); | |
1147 | LVLX altivec_lvlx {ldvec} | |
1148 | ||
1149 | pure vsc __builtin_altivec_lvlxl (signed long, const void *); | |
1150 | LVLXL altivec_lvlxl {ldvec} | |
1151 | ||
1152 | pure vsc __builtin_altivec_lvrx (signed long, const void *); | |
1153 | LVRX altivec_lvrx {ldvec} | |
1154 | ||
1155 | pure vsc __builtin_altivec_lvrxl (signed long, const void *); | |
1156 | LVRXL altivec_lvrxl {ldvec} | |
1157 | ||
1158 | void __builtin_altivec_stvlx (vsc, signed long, void *); | |
1159 | STVLX altivec_stvlx {stvec} | |
1160 | ||
1161 | void __builtin_altivec_stvlxl (vsc, signed long, void *); | |
1162 | STVLXL altivec_stvlxl {stvec} | |
1163 | ||
1164 | void __builtin_altivec_stvrx (vsc, signed long, void *); | |
1165 | STVRX altivec_stvrx {stvec} | |
1166 | ||
1167 | void __builtin_altivec_stvrxl (vsc, signed long, void *); | |
1168 | STVRXL altivec_stvrxl {stvec} | |
1169 | ||
1170 | ||
ba6aa474 BS |
1171 | ; VSX builtins. |
1172 | [vsx] | |
1173 | pure vd __builtin_altivec_lvx_v2df (signed long, const void *); | |
1174 | LVX_V2DF altivec_lvx_v2df {ldvec} | |
1175 | ||
1176 | pure vsll __builtin_altivec_lvx_v2di (signed long, const void *); | |
1177 | LVX_V2DI altivec_lvx_v2di {ldvec} | |
1178 | ||
1179 | pure vd __builtin_altivec_lvxl_v2df (signed long, const void *); | |
1180 | LVXL_V2DF altivec_lvxl_v2df {ldvec} | |
1181 | ||
1182 | pure vsll __builtin_altivec_lvxl_v2di (signed long, const void *); | |
1183 | LVXL_V2DI altivec_lvxl_v2di {ldvec} | |
1184 | ||
1185 | const vd __builtin_altivec_nabs_v2df (vd); | |
1186 | NABS_V2DF vsx_nabsv2df2 {} | |
1187 | ||
1188 | const vsll __builtin_altivec_nabs_v2di (vsll); | |
1189 | NABS_V2DI nabsv2di2 {} | |
1190 | ||
d32a5f4b BS |
1191 | const vd __builtin_altivec_neg_v2df (vd); |
1192 | NEG_V2DF negv2df2 {} | |
1193 | ||
ba6aa474 BS |
1194 | void __builtin_altivec_stvx_v2df (vd, signed long, void *); |
1195 | STVX_V2DF altivec_stvx_v2df {stvec} | |
1196 | ||
1197 | void __builtin_altivec_stvx_v2di (vsll, signed long, void *); | |
1198 | STVX_V2DI altivec_stvx_v2di {stvec} | |
1199 | ||
1200 | void __builtin_altivec_stvxl_v2df (vd, signed long, void *); | |
1201 | STVXL_V2DF altivec_stvxl_v2df {stvec} | |
1202 | ||
1203 | void __builtin_altivec_stvxl_v2di (vsll, signed long, void *); | |
1204 | STVXL_V2DI altivec_stvxl_v2di {stvec} | |
1205 | ||
1206 | const vd __builtin_altivec_vand_v2df (vd, vd); | |
1207 | VAND_V2DF andv2df3 {} | |
1208 | ||
1209 | const vsll __builtin_altivec_vand_v2di (vsll, vsll); | |
1210 | VAND_V2DI andv2di3 {} | |
1211 | ||
1212 | const vull __builtin_altivec_vand_v2di_uns (vull, vull); | |
1213 | VAND_V2DI_UNS andv2di3 {} | |
1214 | ||
1215 | const vd __builtin_altivec_vandc_v2df (vd, vd); | |
1216 | VANDC_V2DF andcv2df3 {} | |
1217 | ||
1218 | const vsll __builtin_altivec_vandc_v2di (vsll, vsll); | |
1219 | VANDC_V2DI andcv2di3 {} | |
1220 | ||
1221 | const vull __builtin_altivec_vandc_v2di_uns (vull, vull); | |
1222 | VANDC_V2DI_UNS andcv2di3 {} | |
1223 | ||
ba6aa474 BS |
1224 | const vd __builtin_altivec_vnor_v2df (vd, vd); |
1225 | VNOR_V2DF norv2df3 {} | |
1226 | ||
1227 | const vsll __builtin_altivec_vnor_v2di (vsll, vsll); | |
1228 | VNOR_V2DI norv2di3 {} | |
1229 | ||
1230 | const vull __builtin_altivec_vnor_v2di_uns (vull, vull); | |
1231 | VNOR_V2DI_UNS norv2di3 {} | |
1232 | ||
1233 | const vd __builtin_altivec_vor_v2df (vd, vd); | |
1234 | VOR_V2DF iorv2df3 {} | |
1235 | ||
1236 | const vsll __builtin_altivec_vor_v2di (vsll, vsll); | |
1237 | VOR_V2DI iorv2di3 {} | |
1238 | ||
1239 | const vull __builtin_altivec_vor_v2di_uns (vull, vull); | |
1240 | VOR_V2DI_UNS iorv2di3 {} | |
1241 | ||
1242 | const vd __builtin_altivec_vperm_2df (vd, vd, vuc); | |
1243 | VPERM_2DF altivec_vperm_v2df {} | |
1244 | ||
1245 | const vsll __builtin_altivec_vperm_2di (vsll, vsll, vuc); | |
1246 | VPERM_2DI altivec_vperm_v2di {} | |
1247 | ||
1248 | const vull __builtin_altivec_vperm_2di_uns (vull, vull, vuc); | |
1249 | VPERM_2DI_UNS altivec_vperm_v2di_uns {} | |
1250 | ||
1251 | const vd __builtin_altivec_vreve_v2df (vd); | |
1252 | VREVE_V2DF altivec_vrevev2df2 {} | |
1253 | ||
1254 | const vsll __builtin_altivec_vreve_v2di (vsll); | |
1255 | VREVE_V2DI altivec_vrevev2di2 {} | |
1256 | ||
1257 | const vd __builtin_altivec_vsel_2df (vd, vd, vd); | |
1258 | VSEL_2DF vector_select_v2df {} | |
1259 | ||
1260 | const vsll __builtin_altivec_vsel_2di (vsll, vsll, vsll); | |
1261 | VSEL_2DI_B vector_select_v2di {} | |
1262 | ||
1263 | const vull __builtin_altivec_vsel_2di_uns (vull, vull, vull); | |
1264 | VSEL_2DI_UNS vector_select_v2di_uns {} | |
1265 | ||
1266 | const vd __builtin_altivec_vsldoi_2df (vd, vd, const int<4>); | |
1267 | VSLDOI_2DF altivec_vsldoi_v2df {} | |
1268 | ||
1269 | const vsll __builtin_altivec_vsldoi_2di (vsll, vsll, const int<4>); | |
1270 | VSLDOI_2DI altivec_vsldoi_v2di {} | |
1271 | ||
1272 | const vd __builtin_altivec_vxor_v2df (vd, vd); | |
1273 | VXOR_V2DF xorv2df3 {} | |
1274 | ||
1275 | const vsll __builtin_altivec_vxor_v2di (vsll, vsll); | |
1276 | VXOR_V2DI xorv2di3 {} | |
1277 | ||
1278 | const vull __builtin_altivec_vxor_v2di_uns (vull, vull); | |
1279 | VXOR_V2DI_UNS xorv2di3 {} | |
1280 | ||
1281 | const signed __int128 __builtin_vec_ext_v1ti (vsq, signed int); | |
1282 | VEC_EXT_V1TI nothing {extract} | |
1283 | ||
1284 | const double __builtin_vec_ext_v2df (vd, signed int); | |
1285 | VEC_EXT_V2DF nothing {extract} | |
1286 | ||
1287 | const signed long long __builtin_vec_ext_v2di (vsll, signed int); | |
1288 | VEC_EXT_V2DI nothing {extract} | |
1289 | ||
1290 | const vsq __builtin_vec_init_v1ti (signed __int128); | |
1291 | VEC_INIT_V1TI nothing {init} | |
1292 | ||
1293 | const vd __builtin_vec_init_v2df (double, double); | |
1294 | VEC_INIT_V2DF nothing {init} | |
1295 | ||
1296 | const vsll __builtin_vec_init_v2di (signed long long, signed long long); | |
1297 | VEC_INIT_V2DI nothing {init} | |
1298 | ||
1299 | const vsq __builtin_vec_set_v1ti (vsq, signed __int128, const int<0,0>); | |
1300 | VEC_SET_V1TI nothing {set} | |
1301 | ||
1302 | const vd __builtin_vec_set_v2df (vd, double, const int<1>); | |
1303 | VEC_SET_V2DF nothing {set} | |
1304 | ||
1305 | const vsll __builtin_vec_set_v2di (vsll, signed long long, const int<1>); | |
1306 | VEC_SET_V2DI nothing {set} | |
1307 | ||
1308 | const vsc __builtin_vsx_cmpge_16qi (vsc, vsc); | |
1309 | CMPGE_16QI vector_nltv16qi {} | |
1310 | ||
1311 | const vsll __builtin_vsx_cmpge_2di (vsll, vsll); | |
1312 | CMPGE_2DI vector_nltv2di {} | |
1313 | ||
1314 | const vsi __builtin_vsx_cmpge_4si (vsi, vsi); | |
1315 | CMPGE_4SI vector_nltv4si {} | |
1316 | ||
1317 | const vss __builtin_vsx_cmpge_8hi (vss, vss); | |
1318 | CMPGE_8HI vector_nltv8hi {} | |
1319 | ||
1320 | const vsc __builtin_vsx_cmpge_u16qi (vuc, vuc); | |
1321 | CMPGE_U16QI vector_nltuv16qi {} | |
1322 | ||
1323 | const vsll __builtin_vsx_cmpge_u2di (vull, vull); | |
1324 | CMPGE_U2DI vector_nltuv2di {} | |
1325 | ||
1326 | const vsi __builtin_vsx_cmpge_u4si (vui, vui); | |
1327 | CMPGE_U4SI vector_nltuv4si {} | |
1328 | ||
1329 | const vss __builtin_vsx_cmpge_u8hi (vus, vus); | |
1330 | CMPGE_U8HI vector_nltuv8hi {} | |
1331 | ||
1332 | const vsc __builtin_vsx_cmple_16qi (vsc, vsc); | |
1333 | CMPLE_16QI vector_ngtv16qi {} | |
1334 | ||
1335 | const vsll __builtin_vsx_cmple_2di (vsll, vsll); | |
1336 | CMPLE_2DI vector_ngtv2di {} | |
1337 | ||
1338 | const vsi __builtin_vsx_cmple_4si (vsi, vsi); | |
1339 | CMPLE_4SI vector_ngtv4si {} | |
1340 | ||
1341 | const vss __builtin_vsx_cmple_8hi (vss, vss); | |
1342 | CMPLE_8HI vector_ngtv8hi {} | |
1343 | ||
1344 | const vsc __builtin_vsx_cmple_u16qi (vsc, vsc); | |
1345 | CMPLE_U16QI vector_ngtuv16qi {} | |
1346 | ||
1347 | const vsll __builtin_vsx_cmple_u2di (vsll, vsll); | |
1348 | CMPLE_U2DI vector_ngtuv2di {} | |
1349 | ||
1350 | const vsi __builtin_vsx_cmple_u4si (vsi, vsi); | |
1351 | CMPLE_U4SI vector_ngtuv4si {} | |
1352 | ||
1353 | const vss __builtin_vsx_cmple_u8hi (vss, vss); | |
1354 | CMPLE_U8HI vector_ngtuv8hi {} | |
1355 | ||
1356 | const vd __builtin_vsx_concat_2df (double, double); | |
1357 | CONCAT_2DF vsx_concat_v2df {} | |
1358 | ||
1359 | const vsll __builtin_vsx_concat_2di (signed long long, signed long long); | |
1360 | CONCAT_2DI vsx_concat_v2di {} | |
1361 | ||
1362 | const vd __builtin_vsx_cpsgndp (vd, vd); | |
1363 | CPSGNDP vector_copysignv2df3 {} | |
1364 | ||
1365 | const vf __builtin_vsx_cpsgnsp (vf, vf); | |
1366 | CPSGNSP vector_copysignv4sf3 {} | |
1367 | ||
1368 | const vsll __builtin_vsx_div_2di (vsll, vsll); | |
1369 | DIV_V2DI vsx_div_v2di {} | |
1370 | ||
1371 | const vd __builtin_vsx_doublee_v4sf (vf); | |
1372 | DOUBLEE_V4SF doubleev4sf2 {} | |
1373 | ||
1374 | const vd __builtin_vsx_doublee_v4si (vsi); | |
1375 | DOUBLEE_V4SI doubleev4si2 {} | |
1376 | ||
1377 | const vd __builtin_vsx_doubleh_v4sf (vf); | |
1378 | DOUBLEH_V4SF doublehv4sf2 {} | |
1379 | ||
1380 | const vd __builtin_vsx_doubleh_v4si (vsi); | |
1381 | DOUBLEH_V4SI doublehv4si2 {} | |
1382 | ||
1383 | const vd __builtin_vsx_doublel_v4sf (vf); | |
1384 | DOUBLEL_V4SF doublelv4sf2 {} | |
1385 | ||
1386 | const vd __builtin_vsx_doublel_v4si (vsi); | |
1387 | DOUBLEL_V4SI doublelv4si2 {} | |
1388 | ||
1389 | const vd __builtin_vsx_doubleo_v4sf (vf); | |
1390 | DOUBLEO_V4SF doubleov4sf2 {} | |
1391 | ||
1392 | const vd __builtin_vsx_doubleo_v4si (vsi); | |
1393 | DOUBLEO_V4SI doubleov4si2 {} | |
1394 | ||
1395 | const vf __builtin_vsx_floate_v2df (vd); | |
1396 | FLOATE_V2DF floatev2df {} | |
1397 | ||
1398 | const vf __builtin_vsx_floate_v2di (vsll); | |
1399 | FLOATE_V2DI floatev2di {} | |
1400 | ||
1401 | const vf __builtin_vsx_floato_v2df (vd); | |
1402 | FLOATO_V2DF floatov2df {} | |
1403 | ||
1404 | const vf __builtin_vsx_floato_v2di (vsll); | |
1405 | FLOATO_V2DI floatov2di {} | |
1406 | ||
1407 | pure vsq __builtin_vsx_ld_elemrev_v1ti (signed long, const void *); | |
1408 | LD_ELEMREV_V1TI vsx_ld_elemrev_v1ti {ldvec,endian} | |
1409 | ||
1410 | pure vd __builtin_vsx_ld_elemrev_v2df (signed long, const void *); | |
1411 | LD_ELEMREV_V2DF vsx_ld_elemrev_v2df {ldvec,endian} | |
1412 | ||
1413 | pure vsll __builtin_vsx_ld_elemrev_v2di (signed long, const void *); | |
1414 | LD_ELEMREV_V2DI vsx_ld_elemrev_v2di {ldvec,endian} | |
1415 | ||
1416 | pure vf __builtin_vsx_ld_elemrev_v4sf (signed long, const void *); | |
1417 | LD_ELEMREV_V4SF vsx_ld_elemrev_v4sf {ldvec,endian} | |
1418 | ||
1419 | pure vsi __builtin_vsx_ld_elemrev_v4si (signed long, const void *); | |
1420 | LD_ELEMREV_V4SI vsx_ld_elemrev_v4si {ldvec,endian} | |
1421 | ||
1422 | pure vss __builtin_vsx_ld_elemrev_v8hi (signed long, const void *); | |
1423 | LD_ELEMREV_V8HI vsx_ld_elemrev_v8hi {ldvec,endian} | |
1424 | ||
1425 | pure vsc __builtin_vsx_ld_elemrev_v16qi (signed long, const void *); | |
1426 | LD_ELEMREV_V16QI vsx_ld_elemrev_v16qi {ldvec,endian} | |
1427 | ||
cd427e17 WS |
1428 | ; TODO: There was apparent intent in the rs6000-builtin.def to |
1429 | ; have SPECIAL processing for LXSDX, LXVDSX, and STXSDX, but there are | |
1430 | ; no def_builtin calls for any of them. That file was removed as part | |
1431 | ; of the BIF rewrite, but at some point, we may want to add a | |
ba6aa474 BS |
1432 | ; set of built-ins for whichever vector types make sense for these. |
1433 | ||
1434 | pure vsq __builtin_vsx_lxvd2x_v1ti (signed long, const void *); | |
1435 | LXVD2X_V1TI vsx_load_v1ti {ldvec} | |
1436 | ||
1437 | pure vd __builtin_vsx_lxvd2x_v2df (signed long, const void *); | |
1438 | LXVD2X_V2DF vsx_load_v2df {ldvec} | |
1439 | ||
1440 | pure vsll __builtin_vsx_lxvd2x_v2di (signed long, const void *); | |
1441 | LXVD2X_V2DI vsx_load_v2di {ldvec} | |
1442 | ||
1443 | pure vsc __builtin_vsx_lxvw4x_v16qi (signed long, const void *); | |
1444 | LXVW4X_V16QI vsx_load_v16qi {ldvec} | |
1445 | ||
1446 | pure vf __builtin_vsx_lxvw4x_v4sf (signed long, const void *); | |
1447 | LXVW4X_V4SF vsx_load_v4sf {ldvec} | |
1448 | ||
1449 | pure vsi __builtin_vsx_lxvw4x_v4si (signed long, const void *); | |
1450 | LXVW4X_V4SI vsx_load_v4si {ldvec} | |
1451 | ||
1452 | pure vss __builtin_vsx_lxvw4x_v8hi (signed long, const void *); | |
1453 | LXVW4X_V8HI vsx_load_v8hi {ldvec} | |
1454 | ||
1455 | const vd __builtin_vsx_mergeh_2df (vd, vd); | |
1456 | VEC_MERGEH_V2DF vsx_mergeh_v2df {} | |
1457 | ||
1458 | const vsll __builtin_vsx_mergeh_2di (vsll, vsll); | |
1459 | VEC_MERGEH_V2DI vsx_mergeh_v2di {} | |
1460 | ||
1461 | const vd __builtin_vsx_mergel_2df (vd, vd); | |
1462 | VEC_MERGEL_V2DF vsx_mergel_v2df {} | |
1463 | ||
1464 | const vsll __builtin_vsx_mergel_2di (vsll, vsll); | |
1465 | VEC_MERGEL_V2DI vsx_mergel_v2di {} | |
1466 | ||
1467 | const vsll __builtin_vsx_mul_2di (vsll, vsll); | |
1468 | MUL_V2DI vsx_mul_v2di {} | |
1469 | ||
1470 | const vsq __builtin_vsx_set_1ti (vsq, signed __int128, const int<0,0>); | |
1471 | SET_1TI vsx_set_v1ti {set} | |
1472 | ||
1473 | const vd __builtin_vsx_set_2df (vd, double, const int<0,1>); | |
1474 | SET_2DF vsx_set_v2df {set} | |
1475 | ||
1476 | const vsll __builtin_vsx_set_2di (vsll, signed long long, const int<0,1>); | |
1477 | SET_2DI vsx_set_v2di {set} | |
1478 | ||
1479 | const vd __builtin_vsx_splat_2df (double); | |
1480 | SPLAT_2DF vsx_splat_v2df {} | |
1481 | ||
1482 | const vsll __builtin_vsx_splat_2di (signed long long); | |
1483 | SPLAT_2DI vsx_splat_v2di {} | |
1484 | ||
1485 | void __builtin_vsx_st_elemrev_v1ti (vsq, signed long, void *); | |
1486 | ST_ELEMREV_V1TI vsx_st_elemrev_v1ti {stvec,endian} | |
1487 | ||
1488 | void __builtin_vsx_st_elemrev_v2df (vd, signed long, void *); | |
1489 | ST_ELEMREV_V2DF vsx_st_elemrev_v2df {stvec,endian} | |
1490 | ||
1491 | void __builtin_vsx_st_elemrev_v2di (vsll, signed long, void *); | |
1492 | ST_ELEMREV_V2DI vsx_st_elemrev_v2di {stvec,endian} | |
1493 | ||
1494 | void __builtin_vsx_st_elemrev_v4sf (vf, signed long, void *); | |
1495 | ST_ELEMREV_V4SF vsx_st_elemrev_v4sf {stvec,endian} | |
1496 | ||
1497 | void __builtin_vsx_st_elemrev_v4si (vsi, signed long, void *); | |
1498 | ST_ELEMREV_V4SI vsx_st_elemrev_v4si {stvec,endian} | |
1499 | ||
1500 | void __builtin_vsx_st_elemrev_v8hi (vss, signed long, void *); | |
1501 | ST_ELEMREV_V8HI vsx_st_elemrev_v8hi {stvec,endian} | |
1502 | ||
1503 | void __builtin_vsx_st_elemrev_v16qi (vsc, signed long, void *); | |
1504 | ST_ELEMREV_V16QI vsx_st_elemrev_v16qi {stvec,endian} | |
1505 | ||
1506 | void __builtin_vsx_stxvd2x_v1ti (vsq, signed long, void *); | |
1507 | STXVD2X_V1TI vsx_store_v1ti {stvec} | |
1508 | ||
1509 | void __builtin_vsx_stxvd2x_v2df (vd, signed long, void *); | |
1510 | STXVD2X_V2DF vsx_store_v2df {stvec} | |
1511 | ||
1512 | void __builtin_vsx_stxvd2x_v2di (vsll, signed long, void *); | |
1513 | STXVD2X_V2DI vsx_store_v2di {stvec} | |
1514 | ||
1515 | void __builtin_vsx_stxvw4x_v4sf (vf, signed long, void *); | |
1516 | STXVW4X_V4SF vsx_store_v4sf {stvec} | |
1517 | ||
1518 | void __builtin_vsx_stxvw4x_v4si (vsi, signed long, void *); | |
1519 | STXVW4X_V4SI vsx_store_v4si {stvec} | |
1520 | ||
1521 | void __builtin_vsx_stxvw4x_v8hi (vss, signed long, void *); | |
1522 | STXVW4X_V8HI vsx_store_v8hi {stvec} | |
1523 | ||
1524 | void __builtin_vsx_stxvw4x_v16qi (vsc, signed long, void *); | |
1525 | STXVW4X_V16QI vsx_store_v16qi {stvec} | |
1526 | ||
1527 | const vull __builtin_vsx_udiv_2di (vull, vull); | |
1528 | UDIV_V2DI vsx_udiv_v2di {} | |
1529 | ||
1530 | const vd __builtin_vsx_uns_doublee_v4si (vsi); | |
1531 | UNS_DOUBLEE_V4SI unsdoubleev4si2 {} | |
1532 | ||
1533 | const vd __builtin_vsx_uns_doubleh_v4si (vsi); | |
1534 | UNS_DOUBLEH_V4SI unsdoublehv4si2 {} | |
1535 | ||
1536 | const vd __builtin_vsx_uns_doublel_v4si (vsi); | |
1537 | UNS_DOUBLEL_V4SI unsdoublelv4si2 {} | |
1538 | ||
1539 | const vd __builtin_vsx_uns_doubleo_v4si (vsi); | |
1540 | UNS_DOUBLEO_V4SI unsdoubleov4si2 {} | |
1541 | ||
1542 | const vf __builtin_vsx_uns_floate_v2di (vsll); | |
1543 | UNS_FLOATE_V2DI unsfloatev2di {} | |
1544 | ||
1545 | const vf __builtin_vsx_uns_floato_v2di (vsll); | |
1546 | UNS_FLOATO_V2DI unsfloatov2di {} | |
1547 | ||
1548 | ; These are duplicates of __builtin_altivec_* counterparts, and are being | |
1549 | ; kept for backwards compatibility. The reason for their existence is | |
1550 | ; unclear. TODO: Consider deprecation/removal at some point. | |
1551 | const vsc __builtin_vsx_vperm_16qi (vsc, vsc, vuc); | |
1552 | VPERM_16QI_X altivec_vperm_v16qi {} | |
1553 | ||
1554 | const vuc __builtin_vsx_vperm_16qi_uns (vuc, vuc, vuc); | |
1555 | VPERM_16QI_UNS_X altivec_vperm_v16qi_uns {} | |
1556 | ||
1557 | const vsq __builtin_vsx_vperm_1ti (vsq, vsq, vsc); | |
1558 | VPERM_1TI_X altivec_vperm_v1ti {} | |
1559 | ||
1560 | const vsq __builtin_vsx_vperm_1ti_uns (vsq, vsq, vsc); | |
1561 | VPERM_1TI_UNS_X altivec_vperm_v1ti_uns {} | |
1562 | ||
1563 | const vd __builtin_vsx_vperm_2df (vd, vd, vuc); | |
1564 | VPERM_2DF_X altivec_vperm_v2df {} | |
1565 | ||
1566 | const vsll __builtin_vsx_vperm_2di (vsll, vsll, vuc); | |
1567 | VPERM_2DI_X altivec_vperm_v2di {} | |
1568 | ||
1569 | const vull __builtin_vsx_vperm_2di_uns (vull, vull, vuc); | |
1570 | VPERM_2DI_UNS_X altivec_vperm_v2di_uns {} | |
1571 | ||
1572 | const vf __builtin_vsx_vperm_4sf (vf, vf, vuc); | |
1573 | VPERM_4SF_X altivec_vperm_v4sf {} | |
1574 | ||
1575 | const vsi __builtin_vsx_vperm_4si (vsi, vsi, vuc); | |
1576 | VPERM_4SI_X altivec_vperm_v4si {} | |
1577 | ||
1578 | const vui __builtin_vsx_vperm_4si_uns (vui, vui, vuc); | |
1579 | VPERM_4SI_UNS_X altivec_vperm_v4si_uns {} | |
1580 | ||
1581 | const vss __builtin_vsx_vperm_8hi (vss, vss, vuc); | |
1582 | VPERM_8HI_X altivec_vperm_v8hi {} | |
1583 | ||
1584 | const vus __builtin_vsx_vperm_8hi_uns (vus, vus, vuc); | |
1585 | VPERM_8HI_UNS_X altivec_vperm_v8hi_uns {} | |
1586 | ||
1587 | const vsll __builtin_vsx_vsigned_v2df (vd); | |
1588 | VEC_VSIGNED_V2DF vsx_xvcvdpsxds {} | |
1589 | ||
1590 | const vsi __builtin_vsx_vsigned_v4sf (vf); | |
1591 | VEC_VSIGNED_V4SF vsx_xvcvspsxws {} | |
1592 | ||
1593 | const vsi __builtin_vsx_vsignede_v2df (vd); | |
1594 | VEC_VSIGNEDE_V2DF vsignede_v2df {} | |
1595 | ||
1596 | const vsi __builtin_vsx_vsignedo_v2df (vd); | |
1597 | VEC_VSIGNEDO_V2DF vsignedo_v2df {} | |
1598 | ||
1599 | const vsll __builtin_vsx_vunsigned_v2df (vd); | |
1600 | VEC_VUNSIGNED_V2DF vsx_xvcvdpsxds {} | |
1601 | ||
1602 | const vsi __builtin_vsx_vunsigned_v4sf (vf); | |
1603 | VEC_VUNSIGNED_V4SF vsx_xvcvspsxws {} | |
1604 | ||
1605 | const vsi __builtin_vsx_vunsignede_v2df (vd); | |
1606 | VEC_VUNSIGNEDE_V2DF vunsignede_v2df {} | |
1607 | ||
1608 | const vsi __builtin_vsx_vunsignedo_v2df (vd); | |
1609 | VEC_VUNSIGNEDO_V2DF vunsignedo_v2df {} | |
1610 | ||
1611 | const vf __builtin_vsx_xscvdpsp (double); | |
1612 | XSCVDPSP vsx_xscvdpsp {} | |
1613 | ||
1614 | const double __builtin_vsx_xscvspdp (vf); | |
1615 | XSCVSPDP vsx_xscvspdp {} | |
1616 | ||
1617 | const double __builtin_vsx_xsmaxdp (double, double); | |
1618 | XSMAXDP smaxdf3 {} | |
1619 | ||
1620 | const double __builtin_vsx_xsmindp (double, double); | |
1621 | XSMINDP smindf3 {} | |
1622 | ||
1623 | const double __builtin_vsx_xsrdpi (double); | |
1624 | XSRDPI vsx_xsrdpi {} | |
1625 | ||
1626 | const double __builtin_vsx_xsrdpic (double); | |
1627 | XSRDPIC vsx_xsrdpic {} | |
1628 | ||
1629 | const double __builtin_vsx_xsrdpim (double); | |
1630 | XSRDPIM floordf2 {} | |
1631 | ||
1632 | const double __builtin_vsx_xsrdpip (double); | |
1633 | XSRDPIP ceildf2 {} | |
1634 | ||
1635 | const double __builtin_vsx_xsrdpiz (double); | |
1636 | XSRDPIZ btruncdf2 {} | |
1637 | ||
1638 | const signed int __builtin_vsx_xstdivdp_fe (double, double); | |
1639 | XSTDIVDP_FE vsx_tdivdf3_fe {} | |
1640 | ||
1641 | const signed int __builtin_vsx_xstdivdp_fg (double, double); | |
1642 | XSTDIVDP_FG vsx_tdivdf3_fg {} | |
1643 | ||
1644 | const signed int __builtin_vsx_xstsqrtdp_fe (double); | |
1645 | XSTSQRTDP_FE vsx_tsqrtdf2_fe {} | |
1646 | ||
1647 | const signed int __builtin_vsx_xstsqrtdp_fg (double); | |
1648 | XSTSQRTDP_FG vsx_tsqrtdf2_fg {} | |
1649 | ||
1650 | const vd __builtin_vsx_xvabsdp (vd); | |
1651 | XVABSDP absv2df2 {} | |
1652 | ||
1653 | const vf __builtin_vsx_xvabssp (vf); | |
1654 | XVABSSP absv4sf2 {} | |
1655 | ||
1656 | fpmath vd __builtin_vsx_xvadddp (vd, vd); | |
1657 | XVADDDP addv2df3 {} | |
1658 | ||
1659 | fpmath vf __builtin_vsx_xvaddsp (vf, vf); | |
1660 | XVADDSP addv4sf3 {} | |
1661 | ||
1662 | const vd __builtin_vsx_xvcmpeqdp (vd, vd); | |
1663 | XVCMPEQDP vector_eqv2df {} | |
1664 | ||
1665 | const signed int __builtin_vsx_xvcmpeqdp_p (signed int, vd, vd); | |
1666 | XVCMPEQDP_P vector_eq_v2df_p {pred} | |
1667 | ||
1668 | const vf __builtin_vsx_xvcmpeqsp (vf, vf); | |
1669 | XVCMPEQSP vector_eqv4sf {} | |
1670 | ||
1671 | const signed int __builtin_vsx_xvcmpeqsp_p (signed int, vf, vf); | |
1672 | XVCMPEQSP_P vector_eq_v4sf_p {pred} | |
1673 | ||
1674 | const vd __builtin_vsx_xvcmpgedp (vd, vd); | |
1675 | XVCMPGEDP vector_gev2df {} | |
1676 | ||
1677 | const signed int __builtin_vsx_xvcmpgedp_p (signed int, vd, vd); | |
1678 | XVCMPGEDP_P vector_ge_v2df_p {pred} | |
1679 | ||
1680 | const vf __builtin_vsx_xvcmpgesp (vf, vf); | |
1681 | XVCMPGESP vector_gev4sf {} | |
1682 | ||
1683 | const signed int __builtin_vsx_xvcmpgesp_p (signed int, vf, vf); | |
1684 | XVCMPGESP_P vector_ge_v4sf_p {pred} | |
1685 | ||
1686 | const vd __builtin_vsx_xvcmpgtdp (vd, vd); | |
1687 | XVCMPGTDP vector_gtv2df {} | |
1688 | ||
1689 | const signed int __builtin_vsx_xvcmpgtdp_p (signed int, vd, vd); | |
1690 | XVCMPGTDP_P vector_gt_v2df_p {pred} | |
1691 | ||
1692 | const vf __builtin_vsx_xvcmpgtsp (vf, vf); | |
1693 | XVCMPGTSP vector_gtv4sf {} | |
1694 | ||
1695 | const signed int __builtin_vsx_xvcmpgtsp_p (signed int, vf, vf); | |
1696 | XVCMPGTSP_P vector_gt_v4sf_p {pred} | |
1697 | ||
1698 | const vf __builtin_vsx_xvcvdpsp (vd); | |
1699 | XVCVDPSP vsx_xvcvdpsp {} | |
1700 | ||
1701 | const vsll __builtin_vsx_xvcvdpsxds (vd); | |
1702 | XVCVDPSXDS vsx_fix_truncv2dfv2di2 {} | |
1703 | ||
1704 | const vsll __builtin_vsx_xvcvdpsxds_scale (vd, const int); | |
1705 | XVCVDPSXDS_SCALE vsx_xvcvdpsxds_scale {} | |
1706 | ||
1707 | const vsi __builtin_vsx_xvcvdpsxws (vd); | |
1708 | XVCVDPSXWS vsx_xvcvdpsxws {} | |
1709 | ||
1710 | const vsll __builtin_vsx_xvcvdpuxds (vd); | |
1711 | XVCVDPUXDS vsx_fixuns_truncv2dfv2di2 {} | |
1712 | ||
1713 | const vsll __builtin_vsx_xvcvdpuxds_scale (vd, const int); | |
1714 | XVCVDPUXDS_SCALE vsx_xvcvdpuxds_scale {} | |
1715 | ||
1716 | const vull __builtin_vsx_xvcvdpuxds_uns (vd); | |
1717 | XVCVDPUXDS_UNS vsx_fixuns_truncv2dfv2di2 {} | |
1718 | ||
1719 | const vsi __builtin_vsx_xvcvdpuxws (vd); | |
1720 | XVCVDPUXWS vsx_xvcvdpuxws {} | |
1721 | ||
1722 | const vd __builtin_vsx_xvcvspdp (vf); | |
1723 | XVCVSPDP vsx_xvcvspdp {} | |
1724 | ||
1725 | const vsll __builtin_vsx_xvcvspsxds (vf); | |
1726 | XVCVSPSXDS vsx_xvcvspsxds {} | |
1727 | ||
1728 | const vsi __builtin_vsx_xvcvspsxws (vf); | |
1729 | XVCVSPSXWS vsx_fix_truncv4sfv4si2 {} | |
1730 | ||
1731 | const vsll __builtin_vsx_xvcvspuxds (vf); | |
1732 | XVCVSPUXDS vsx_xvcvspuxds {} | |
1733 | ||
1734 | const vsi __builtin_vsx_xvcvspuxws (vf); | |
1735 | XVCVSPUXWS vsx_fixuns_truncv4sfv4si2 {} | |
1736 | ||
1737 | const vd __builtin_vsx_xvcvsxddp (vsll); | |
1738 | XVCVSXDDP vsx_floatv2div2df2 {} | |
1739 | ||
1740 | const vd __builtin_vsx_xvcvsxddp_scale (vsll, const int<5>); | |
1741 | XVCVSXDDP_SCALE vsx_xvcvsxddp_scale {} | |
1742 | ||
1743 | const vf __builtin_vsx_xvcvsxdsp (vsll); | |
1744 | XVCVSXDSP vsx_xvcvsxdsp {} | |
1745 | ||
1746 | const vd __builtin_vsx_xvcvsxwdp (vsi); | |
1747 | XVCVSXWDP vsx_xvcvsxwdp {} | |
1748 | ||
1749 | const vf __builtin_vsx_xvcvsxwsp (vsi); | |
1750 | XVCVSXWSP vsx_floatv4siv4sf2 {} | |
1751 | ||
1752 | const vd __builtin_vsx_xvcvuxddp (vsll); | |
1753 | XVCVUXDDP vsx_floatunsv2div2df2 {} | |
1754 | ||
1755 | const vd __builtin_vsx_xvcvuxddp_scale (vsll, const int<5>); | |
1756 | XVCVUXDDP_SCALE vsx_xvcvuxddp_scale {} | |
1757 | ||
1758 | const vd __builtin_vsx_xvcvuxddp_uns (vull); | |
1759 | XVCVUXDDP_UNS vsx_floatunsv2div2df2 {} | |
1760 | ||
1761 | const vf __builtin_vsx_xvcvuxdsp (vull); | |
1762 | XVCVUXDSP vsx_xvcvuxdsp {} | |
1763 | ||
1764 | const vd __builtin_vsx_xvcvuxwdp (vsi); | |
1765 | XVCVUXWDP vsx_xvcvuxwdp {} | |
1766 | ||
1767 | const vf __builtin_vsx_xvcvuxwsp (vsi); | |
1768 | XVCVUXWSP vsx_floatunsv4siv4sf2 {} | |
1769 | ||
1770 | fpmath vd __builtin_vsx_xvdivdp (vd, vd); | |
1771 | XVDIVDP divv2df3 {} | |
1772 | ||
1773 | fpmath vf __builtin_vsx_xvdivsp (vf, vf); | |
1774 | XVDIVSP divv4sf3 {} | |
1775 | ||
1776 | const vd __builtin_vsx_xvmadddp (vd, vd, vd); | |
1777 | XVMADDDP fmav2df4 {} | |
1778 | ||
1779 | const vf __builtin_vsx_xvmaddsp (vf, vf, vf); | |
1780 | XVMADDSP fmav4sf4 {} | |
1781 | ||
1782 | const vd __builtin_vsx_xvmaxdp (vd, vd); | |
1783 | XVMAXDP smaxv2df3 {} | |
1784 | ||
1785 | const vf __builtin_vsx_xvmaxsp (vf, vf); | |
1786 | XVMAXSP smaxv4sf3 {} | |
1787 | ||
1788 | const vd __builtin_vsx_xvmindp (vd, vd); | |
1789 | XVMINDP sminv2df3 {} | |
1790 | ||
1791 | const vf __builtin_vsx_xvminsp (vf, vf); | |
1792 | XVMINSP sminv4sf3 {} | |
1793 | ||
1794 | const vd __builtin_vsx_xvmsubdp (vd, vd, vd); | |
1795 | XVMSUBDP fmsv2df4 {} | |
1796 | ||
1797 | const vf __builtin_vsx_xvmsubsp (vf, vf, vf); | |
1798 | XVMSUBSP fmsv4sf4 {} | |
1799 | ||
1800 | fpmath vd __builtin_vsx_xvmuldp (vd, vd); | |
1801 | XVMULDP mulv2df3 {} | |
1802 | ||
1803 | fpmath vf __builtin_vsx_xvmulsp (vf, vf); | |
1804 | XVMULSP mulv4sf3 {} | |
1805 | ||
1806 | const vd __builtin_vsx_xvnabsdp (vd); | |
1807 | XVNABSDP vsx_nabsv2df2 {} | |
1808 | ||
1809 | const vf __builtin_vsx_xvnabssp (vf); | |
1810 | XVNABSSP vsx_nabsv4sf2 {} | |
1811 | ||
1812 | const vd __builtin_vsx_xvnegdp (vd); | |
1813 | XVNEGDP negv2df2 {} | |
1814 | ||
1815 | const vf __builtin_vsx_xvnegsp (vf); | |
1816 | XVNEGSP negv4sf2 {} | |
1817 | ||
1818 | const vd __builtin_vsx_xvnmadddp (vd, vd, vd); | |
1819 | XVNMADDDP nfmav2df4 {} | |
1820 | ||
1821 | const vf __builtin_vsx_xvnmaddsp (vf, vf, vf); | |
1822 | XVNMADDSP nfmav4sf4 {} | |
1823 | ||
1824 | const vd __builtin_vsx_xvnmsubdp (vd, vd, vd); | |
1825 | XVNMSUBDP nfmsv2df4 {} | |
1826 | ||
1827 | const vf __builtin_vsx_xvnmsubsp (vf, vf, vf); | |
1828 | XVNMSUBSP nfmsv4sf4 {} | |
1829 | ||
1830 | const vd __builtin_vsx_xvrdpi (vd); | |
1831 | XVRDPI vsx_xvrdpi {} | |
1832 | ||
1833 | const vd __builtin_vsx_xvrdpic (vd); | |
1834 | XVRDPIC vsx_xvrdpic {} | |
1835 | ||
1836 | const vd __builtin_vsx_xvrdpim (vd); | |
1837 | XVRDPIM vsx_floorv2df2 {} | |
1838 | ||
1839 | const vd __builtin_vsx_xvrdpip (vd); | |
1840 | XVRDPIP vsx_ceilv2df2 {} | |
1841 | ||
1842 | const vd __builtin_vsx_xvrdpiz (vd); | |
1843 | XVRDPIZ vsx_btruncv2df2 {} | |
1844 | ||
1845 | fpmath vd __builtin_vsx_xvrecipdivdp (vd, vd); | |
1846 | RECIP_V2DF recipv2df3 {} | |
1847 | ||
1848 | fpmath vf __builtin_vsx_xvrecipdivsp (vf, vf); | |
1849 | RECIP_V4SF recipv4sf3 {} | |
1850 | ||
1851 | const vd __builtin_vsx_xvredp (vd); | |
1852 | XVREDP vsx_frev2df2 {} | |
1853 | ||
1854 | const vf __builtin_vsx_xvresp (vf); | |
1855 | XVRESP vsx_frev4sf2 {} | |
1856 | ||
1857 | const vf __builtin_vsx_xvrspi (vf); | |
1858 | XVRSPI vsx_xvrspi {} | |
1859 | ||
1860 | const vf __builtin_vsx_xvrspic (vf); | |
1861 | XVRSPIC vsx_xvrspic {} | |
1862 | ||
1863 | const vf __builtin_vsx_xvrspim (vf); | |
1864 | XVRSPIM vsx_floorv4sf2 {} | |
1865 | ||
1866 | const vf __builtin_vsx_xvrspip (vf); | |
1867 | XVRSPIP vsx_ceilv4sf2 {} | |
1868 | ||
1869 | const vf __builtin_vsx_xvrspiz (vf); | |
1870 | XVRSPIZ vsx_btruncv4sf2 {} | |
1871 | ||
1872 | const vd __builtin_vsx_xvrsqrtdp (vd); | |
1873 | RSQRT_2DF rsqrtv2df2 {} | |
1874 | ||
1875 | const vf __builtin_vsx_xvrsqrtsp (vf); | |
1876 | RSQRT_4SF rsqrtv4sf2 {} | |
1877 | ||
1878 | const vd __builtin_vsx_xvrsqrtedp (vd); | |
1879 | XVRSQRTEDP rsqrtev2df2 {} | |
1880 | ||
1881 | const vf __builtin_vsx_xvrsqrtesp (vf); | |
1882 | XVRSQRTESP rsqrtev4sf2 {} | |
1883 | ||
1884 | const vd __builtin_vsx_xvsqrtdp (vd); | |
1885 | XVSQRTDP sqrtv2df2 {} | |
1886 | ||
1887 | const vf __builtin_vsx_xvsqrtsp (vf); | |
1888 | XVSQRTSP sqrtv4sf2 {} | |
1889 | ||
1890 | fpmath vd __builtin_vsx_xvsubdp (vd, vd); | |
1891 | XVSUBDP subv2df3 {} | |
1892 | ||
1893 | fpmath vf __builtin_vsx_xvsubsp (vf, vf); | |
1894 | XVSUBSP subv4sf3 {} | |
1895 | ||
1896 | const signed int __builtin_vsx_xvtdivdp_fe (vd, vd); | |
1897 | XVTDIVDP_FE vsx_tdivv2df3_fe {} | |
1898 | ||
1899 | const signed int __builtin_vsx_xvtdivdp_fg (vd, vd); | |
1900 | XVTDIVDP_FG vsx_tdivv2df3_fg {} | |
1901 | ||
1902 | const signed int __builtin_vsx_xvtdivsp_fe (vf, vf); | |
1903 | XVTDIVSP_FE vsx_tdivv4sf3_fe {} | |
1904 | ||
1905 | const signed int __builtin_vsx_xvtdivsp_fg (vf, vf); | |
1906 | XVTDIVSP_FG vsx_tdivv4sf3_fg {} | |
1907 | ||
1908 | const signed int __builtin_vsx_xvtsqrtdp_fe (vd); | |
1909 | XVTSQRTDP_FE vsx_tsqrtv2df2_fe {} | |
1910 | ||
1911 | const signed int __builtin_vsx_xvtsqrtdp_fg (vd); | |
1912 | XVTSQRTDP_FG vsx_tsqrtv2df2_fg {} | |
1913 | ||
1914 | const signed int __builtin_vsx_xvtsqrtsp_fe (vf); | |
1915 | XVTSQRTSP_FE vsx_tsqrtv4sf2_fe {} | |
1916 | ||
1917 | const signed int __builtin_vsx_xvtsqrtsp_fg (vf); | |
1918 | XVTSQRTSP_FG vsx_tsqrtv4sf2_fg {} | |
1919 | ||
1920 | const vf __builtin_vsx_xxmrghw (vf, vf); | |
1921 | XXMRGHW_4SF vsx_xxmrghw_v4sf {} | |
1922 | ||
1923 | const vsi __builtin_vsx_xxmrghw_4si (vsi, vsi); | |
1924 | XXMRGHW_4SI vsx_xxmrghw_v4si {} | |
1925 | ||
1926 | const vf __builtin_vsx_xxmrglw (vf, vf); | |
1927 | XXMRGLW_4SF vsx_xxmrglw_v4sf {} | |
1928 | ||
1929 | const vsi __builtin_vsx_xxmrglw_4si (vsi, vsi); | |
1930 | XXMRGLW_4SI vsx_xxmrglw_v4si {} | |
1931 | ||
1932 | const vsc __builtin_vsx_xxpermdi_16qi (vsc, vsc, const int<2>); | |
1933 | XXPERMDI_16QI vsx_xxpermdi_v16qi {} | |
1934 | ||
1935 | const vsq __builtin_vsx_xxpermdi_1ti (vsq, vsq, const int<2>); | |
1936 | XXPERMDI_1TI vsx_xxpermdi_v1ti {} | |
1937 | ||
1938 | const vd __builtin_vsx_xxpermdi_2df (vd, vd, const int<2>); | |
1939 | XXPERMDI_2DF vsx_xxpermdi_v2df {} | |
1940 | ||
1941 | const vsll __builtin_vsx_xxpermdi_2di (vsll, vsll, const int<2>); | |
1942 | XXPERMDI_2DI vsx_xxpermdi_v2di {} | |
1943 | ||
1944 | const vf __builtin_vsx_xxpermdi_4sf (vf, vf, const int<2>); | |
1945 | XXPERMDI_4SF vsx_xxpermdi_v4sf {} | |
1946 | ||
1947 | const vsi __builtin_vsx_xxpermdi_4si (vsi, vsi, const int<2>); | |
1948 | XXPERMDI_4SI vsx_xxpermdi_v4si {} | |
1949 | ||
1950 | const vss __builtin_vsx_xxpermdi_8hi (vss, vss, const int<2>); | |
1951 | XXPERMDI_8HI vsx_xxpermdi_v8hi {} | |
1952 | ||
1953 | const vsc __builtin_vsx_xxsel_16qi (vsc, vsc, vsc); | |
1954 | XXSEL_16QI vector_select_v16qi {} | |
1955 | ||
1956 | const vuc __builtin_vsx_xxsel_16qi_uns (vuc, vuc, vuc); | |
1957 | XXSEL_16QI_UNS vector_select_v16qi_uns {} | |
1958 | ||
1959 | const vsq __builtin_vsx_xxsel_1ti (vsq, vsq, vsq); | |
1960 | XXSEL_1TI vector_select_v1ti {} | |
1961 | ||
1962 | const vsq __builtin_vsx_xxsel_1ti_uns (vsq, vsq, vsq); | |
1963 | XXSEL_1TI_UNS vector_select_v1ti_uns {} | |
1964 | ||
1965 | const vd __builtin_vsx_xxsel_2df (vd, vd, vd); | |
1966 | XXSEL_2DF vector_select_v2df {} | |
1967 | ||
1968 | const vsll __builtin_vsx_xxsel_2di (vsll, vsll, vsll); | |
1969 | XXSEL_2DI vector_select_v2di {} | |
1970 | ||
1971 | const vull __builtin_vsx_xxsel_2di_uns (vull, vull, vull); | |
1972 | XXSEL_2DI_UNS vector_select_v2di_uns {} | |
1973 | ||
1974 | const vf __builtin_vsx_xxsel_4sf (vf, vf, vf); | |
1975 | XXSEL_4SF vector_select_v4sf {} | |
1976 | ||
1977 | const vsi __builtin_vsx_xxsel_4si (vsi, vsi, vsi); | |
1978 | XXSEL_4SI vector_select_v4si {} | |
1979 | ||
1980 | const vui __builtin_vsx_xxsel_4si_uns (vui, vui, vui); | |
1981 | XXSEL_4SI_UNS vector_select_v4si_uns {} | |
1982 | ||
1983 | const vss __builtin_vsx_xxsel_8hi (vss, vss, vss); | |
1984 | XXSEL_8HI vector_select_v8hi {} | |
1985 | ||
1986 | const vus __builtin_vsx_xxsel_8hi_uns (vus, vus, vus); | |
1987 | XXSEL_8HI_UNS vector_select_v8hi_uns {} | |
1988 | ||
1989 | const vsc __builtin_vsx_xxsldwi_16qi (vsc, vsc, const int<2>); | |
1990 | XXSLDWI_16QI vsx_xxsldwi_v16qi {} | |
1991 | ||
1992 | const vd __builtin_vsx_xxsldwi_2df (vd, vd, const int<2>); | |
1993 | XXSLDWI_2DF vsx_xxsldwi_v2df {} | |
1994 | ||
1995 | const vsll __builtin_vsx_xxsldwi_2di (vsll, vsll, const int<2>); | |
1996 | XXSLDWI_2DI vsx_xxsldwi_v2di {} | |
1997 | ||
1998 | const vf __builtin_vsx_xxsldwi_4sf (vf, vf, const int<2>); | |
1999 | XXSLDWI_4SF vsx_xxsldwi_v4sf {} | |
2000 | ||
2001 | const vsi __builtin_vsx_xxsldwi_4si (vsi, vsi, const int<2>); | |
2002 | XXSLDWI_4SI vsx_xxsldwi_v4si {} | |
2003 | ||
2004 | const vss __builtin_vsx_xxsldwi_8hi (vss, vss, const int<2>); | |
2005 | XXSLDWI_8HI vsx_xxsldwi_v8hi {} | |
2006 | ||
2007 | const vd __builtin_vsx_xxspltd_2df (vd, const int<1>); | |
2008 | XXSPLTD_V2DF vsx_xxspltd_v2df {} | |
2009 | ||
2010 | const vsll __builtin_vsx_xxspltd_2di (vsll, const int<1>); | |
2011 | XXSPLTD_V2DI vsx_xxspltd_v2di {} | |
fce8a52d BS |
2012 | |
2013 | ||
2014 | ; Power7 builtins (ISA 2.06). | |
2015 | [power7] | |
2016 | const unsigned int __builtin_addg6s (unsigned int, unsigned int); | |
2017 | ADDG6S addg6s {} | |
2018 | ||
2019 | const signed long __builtin_bpermd (signed long, signed long); | |
d0823635 | 2020 | BPERMD bpermd_di {32bit} |
fce8a52d BS |
2021 | |
2022 | const unsigned int __builtin_cbcdtd (unsigned int); | |
2023 | CBCDTD cbcdtd {} | |
2024 | ||
2025 | const unsigned int __builtin_cdtbcd (unsigned int); | |
2026 | CDTBCD cdtbcd {} | |
2027 | ||
2028 | const signed int __builtin_divwe (signed int, signed int); | |
2029 | DIVWE dive_si {} | |
2030 | ||
2031 | const unsigned int __builtin_divweu (unsigned int, unsigned int); | |
2032 | DIVWEU diveu_si {} | |
2033 | ||
206c08ce BS |
2034 | const vsq __builtin_pack_vector_int128 (unsigned long long, \ |
2035 | unsigned long long); | |
fce8a52d BS |
2036 | PACK_V1TI packv1ti {} |
2037 | ||
2038 | void __builtin_ppc_speculation_barrier (); | |
2039 | SPECBARR speculation_barrier {} | |
2040 | ||
2041 | const unsigned long __builtin_unpack_vector_int128 (vsq, const int<1>); | |
2042 | UNPACK_V1TI unpackv1ti {} | |
2043 | ||
2044 | ||
2045 | ; Power7 builtins requiring 64-bit GPRs (even with 32-bit addressing). | |
2046 | [power7-64] | |
2047 | const signed long long __builtin_divde (signed long long, signed long long); | |
2048 | DIVDE dive_di {} | |
2049 | ||
206c08ce BS |
2050 | const unsigned long long __builtin_divdeu (unsigned long long, \ |
2051 | unsigned long long); | |
fce8a52d | 2052 | DIVDEU diveu_di {} |
8ce18a29 BS |
2053 | |
2054 | ||
2055 | ; Power8 vector built-ins. | |
2056 | [power8-vector] | |
2057 | const vsll __builtin_altivec_abs_v2di (vsll); | |
2058 | ABS_V2DI absv2di2 {} | |
2059 | ||
2060 | const vsc __builtin_altivec_bcddiv10_v16qi (vsc); | |
2061 | BCDDIV10_V16QI bcddiv10_v16qi {} | |
2062 | ||
2063 | const vsc __builtin_altivec_bcdmul10_v16qi (vsc); | |
2064 | BCDMUL10_V16QI bcdmul10_v16qi {} | |
2065 | ||
2066 | const vsc __builtin_altivec_eqv_v16qi (vsc, vsc); | |
2067 | EQV_V16QI eqvv16qi3 {} | |
2068 | ||
2069 | const vuc __builtin_altivec_eqv_v16qi_uns (vuc, vuc); | |
2070 | EQV_V16QI_UNS eqvv16qi3 {} | |
2071 | ||
2072 | const vsq __builtin_altivec_eqv_v1ti (vsq, vsq); | |
2073 | EQV_V1TI eqvv1ti3 {} | |
2074 | ||
2075 | const vuq __builtin_altivec_eqv_v1ti_uns (vuq, vuq); | |
2076 | EQV_V1TI_UNS eqvv1ti3 {} | |
2077 | ||
2078 | const vd __builtin_altivec_eqv_v2df (vd, vd); | |
2079 | EQV_V2DF eqvv2df3 {} | |
2080 | ||
2081 | const vsll __builtin_altivec_eqv_v2di (vsll, vsll); | |
2082 | EQV_V2DI eqvv2di3 {} | |
2083 | ||
2084 | const vull __builtin_altivec_eqv_v2di_uns (vull, vull); | |
2085 | EQV_V2DI_UNS eqvv2di3 {} | |
2086 | ||
2087 | const vf __builtin_altivec_eqv_v4sf (vf, vf); | |
2088 | EQV_V4SF eqvv4sf3 {} | |
2089 | ||
2090 | const vsi __builtin_altivec_eqv_v4si (vsi, vsi); | |
2091 | EQV_V4SI eqvv4si3 {} | |
2092 | ||
2093 | const vui __builtin_altivec_eqv_v4si_uns (vui, vui); | |
2094 | EQV_V4SI_UNS eqvv4si3 {} | |
2095 | ||
2096 | const vss __builtin_altivec_eqv_v8hi (vss, vss); | |
2097 | EQV_V8HI eqvv8hi3 {} | |
2098 | ||
2099 | const vus __builtin_altivec_eqv_v8hi_uns (vus, vus); | |
2100 | EQV_V8HI_UNS eqvv8hi3 {} | |
2101 | ||
2102 | const vsc __builtin_altivec_nand_v16qi (vsc, vsc); | |
2103 | NAND_V16QI nandv16qi3 {} | |
2104 | ||
2105 | const vuc __builtin_altivec_nand_v16qi_uns (vuc, vuc); | |
2106 | NAND_V16QI_UNS nandv16qi3 {} | |
2107 | ||
2108 | const vsq __builtin_altivec_nand_v1ti (vsq, vsq); | |
2109 | NAND_V1TI nandv1ti3 {} | |
2110 | ||
2111 | const vuq __builtin_altivec_nand_v1ti_uns (vuq, vuq); | |
2112 | NAND_V1TI_UNS nandv1ti3 {} | |
2113 | ||
2114 | const vd __builtin_altivec_nand_v2df (vd, vd); | |
2115 | NAND_V2DF nandv2df3 {} | |
2116 | ||
2117 | const vsll __builtin_altivec_nand_v2di (vsll, vsll); | |
2118 | NAND_V2DI nandv2di3 {} | |
2119 | ||
2120 | const vull __builtin_altivec_nand_v2di_uns (vull, vull); | |
2121 | NAND_V2DI_UNS nandv2di3 {} | |
2122 | ||
2123 | const vf __builtin_altivec_nand_v4sf (vf, vf); | |
2124 | NAND_V4SF nandv4sf3 {} | |
2125 | ||
2126 | const vsi __builtin_altivec_nand_v4si (vsi, vsi); | |
2127 | NAND_V4SI nandv4si3 {} | |
2128 | ||
2129 | const vui __builtin_altivec_nand_v4si_uns (vui, vui); | |
2130 | NAND_V4SI_UNS nandv4si3 {} | |
2131 | ||
2132 | const vss __builtin_altivec_nand_v8hi (vss, vss); | |
2133 | NAND_V8HI nandv8hi3 {} | |
2134 | ||
2135 | const vus __builtin_altivec_nand_v8hi_uns (vus, vus); | |
2136 | NAND_V8HI_UNS nandv8hi3 {} | |
2137 | ||
39d2411c KL |
2138 | const vsll __builtin_altivec_neg_v2di (vsll); |
2139 | NEG_V2DI negv2di2 {} | |
2140 | ||
8ce18a29 BS |
2141 | const vsc __builtin_altivec_orc_v16qi (vsc, vsc); |
2142 | ORC_V16QI orcv16qi3 {} | |
2143 | ||
2144 | const vuc __builtin_altivec_orc_v16qi_uns (vuc, vuc); | |
2145 | ORC_V16QI_UNS orcv16qi3 {} | |
2146 | ||
2147 | const vsq __builtin_altivec_orc_v1ti (vsq, vsq); | |
2148 | ORC_V1TI orcv1ti3 {} | |
2149 | ||
2150 | const vuq __builtin_altivec_orc_v1ti_uns (vuq, vuq); | |
2151 | ORC_V1TI_UNS orcv1ti3 {} | |
2152 | ||
2153 | const vd __builtin_altivec_orc_v2df (vd, vd); | |
2154 | ORC_V2DF orcv2df3 {} | |
2155 | ||
2156 | const vsll __builtin_altivec_orc_v2di (vsll, vsll); | |
2157 | ORC_V2DI orcv2di3 {} | |
2158 | ||
2159 | const vull __builtin_altivec_orc_v2di_uns (vull, vull); | |
2160 | ORC_V2DI_UNS orcv2di3 {} | |
2161 | ||
2162 | const vf __builtin_altivec_orc_v4sf (vf, vf); | |
2163 | ORC_V4SF orcv4sf3 {} | |
2164 | ||
2165 | const vsi __builtin_altivec_orc_v4si (vsi, vsi); | |
2166 | ORC_V4SI orcv4si3 {} | |
2167 | ||
2168 | const vui __builtin_altivec_orc_v4si_uns (vui, vui); | |
2169 | ORC_V4SI_UNS orcv4si3 {} | |
2170 | ||
2171 | const vss __builtin_altivec_orc_v8hi (vss, vss); | |
2172 | ORC_V8HI orcv8hi3 {} | |
2173 | ||
2174 | const vus __builtin_altivec_orc_v8hi_uns (vus, vus); | |
2175 | ORC_V8HI_UNS orcv8hi3 {} | |
2176 | ||
2177 | const vsc __builtin_altivec_vclzb (vsc); | |
2178 | VCLZB clzv16qi2 {} | |
2179 | ||
2180 | const vsll __builtin_altivec_vclzd (vsll); | |
2181 | VCLZD clzv2di2 {} | |
2182 | ||
2183 | const vss __builtin_altivec_vclzh (vss); | |
2184 | VCLZH clzv8hi2 {} | |
2185 | ||
2186 | const vsi __builtin_altivec_vclzw (vsi); | |
2187 | VCLZW clzv4si2 {} | |
2188 | ||
2189 | const vuc __builtin_altivec_vgbbd (vuc); | |
2190 | VGBBD p8v_vgbbd {} | |
2191 | ||
2192 | const vsq __builtin_altivec_vaddcuq (vsq, vsq); | |
2193 | VADDCUQ altivec_vaddcuq {} | |
2194 | ||
2195 | const vsq __builtin_altivec_vaddecuq (vsq, vsq, vsq); | |
2196 | VADDECUQ altivec_vaddecuq {} | |
2197 | ||
2198 | const vsq __builtin_altivec_vaddeuqm (vsq, vsq, vsq); | |
2199 | VADDEUQM altivec_vaddeuqm {} | |
2200 | ||
2201 | const vsll __builtin_altivec_vaddudm (vsll, vsll); | |
2202 | VADDUDM addv2di3 {} | |
2203 | ||
2204 | const vsq __builtin_altivec_vadduqm (vsq, vsq); | |
2205 | VADDUQM altivec_vadduqm {} | |
2206 | ||
2207 | const vsll __builtin_altivec_vbpermq (vsc, vsc); | |
2208 | VBPERMQ altivec_vbpermq {} | |
2209 | ||
2210 | const vsc __builtin_altivec_vbpermq2 (vsc, vsc); | |
2211 | VBPERMQ2 altivec_vbpermq2 {} | |
2212 | ||
936051f9 BS |
2213 | const vsll __builtin_altivec_vcmpequd (vull, vull); |
2214 | VCMPEQUD vector_eqv2di {} | |
2215 | ||
2216 | const int __builtin_altivec_vcmpequd_p (int, vsll, vsll); | |
2217 | VCMPEQUD_P vector_eq_v2di_p {pred} | |
2218 | ||
2219 | const vsll __builtin_altivec_vcmpgtsd (vsll, vsll); | |
2220 | VCMPGTSD vector_gtv2di {} | |
2221 | ||
2222 | const int __builtin_altivec_vcmpgtsd_p (int, vsll, vsll); | |
2223 | VCMPGTSD_P vector_gt_v2di_p {pred} | |
2224 | ||
2225 | const vsll __builtin_altivec_vcmpgtud (vull, vull); | |
2226 | VCMPGTUD vector_gtuv2di {} | |
2227 | ||
2228 | const int __builtin_altivec_vcmpgtud_p (int, vsll, vsll); | |
2229 | VCMPGTUD_P vector_gtu_v2di_p {pred} | |
2230 | ||
8ce18a29 BS |
2231 | const vsll __builtin_altivec_vmaxsd (vsll, vsll); |
2232 | VMAXSD smaxv2di3 {} | |
2233 | ||
2234 | const vull __builtin_altivec_vmaxud (vull, vull); | |
2235 | VMAXUD umaxv2di3 {} | |
2236 | ||
2237 | const vsll __builtin_altivec_vminsd (vsll, vsll); | |
2238 | VMINSD sminv2di3 {} | |
2239 | ||
2240 | const vull __builtin_altivec_vminud (vull, vull); | |
2241 | VMINUD uminv2di3 {} | |
2242 | ||
2243 | const vd __builtin_altivec_vmrgew_v2df (vd, vd); | |
2244 | VMRGEW_V2DF p8_vmrgew_v2df {} | |
2245 | ||
2246 | const vsll __builtin_altivec_vmrgew_v2di (vsll, vsll); | |
2247 | VMRGEW_V2DI p8_vmrgew_v2di {} | |
2248 | ||
2249 | const vf __builtin_altivec_vmrgew_v4sf (vf, vf); | |
2250 | VMRGEW_V4SF p8_vmrgew_v4sf {} | |
2251 | ||
2252 | const vsi __builtin_altivec_vmrgew_v4si (vsi, vsi); | |
2253 | VMRGEW_V4SI p8_vmrgew_v4si {} | |
2254 | ||
2255 | const vd __builtin_altivec_vmrgow_v2df (vd, vd); | |
2256 | VMRGOW_V2DF p8_vmrgow_v2df {} | |
2257 | ||
2258 | const vsll __builtin_altivec_vmrgow_v2di (vsll, vsll); | |
2259 | VMRGOW_V2DI p8_vmrgow_v2di {} | |
2260 | ||
2261 | const vf __builtin_altivec_vmrgow_v4sf (vf, vf); | |
2262 | VMRGOW_V4SF p8_vmrgow_v4sf {} | |
2263 | ||
2264 | const vsi __builtin_altivec_vmrgow_v4si (vsi, vsi); | |
2265 | VMRGOW_V4SI p8_vmrgow_v4si {} | |
2266 | ||
2267 | const vsc __builtin_altivec_vpermxor (vsc, vsc, vsc); | |
2268 | VPERMXOR altivec_vpermxor {} | |
2269 | ||
2270 | const vsi __builtin_altivec_vpksdss (vsll, vsll); | |
2271 | VPKSDSS altivec_vpksdss {} | |
2272 | ||
2273 | const vsi __builtin_altivec_vpksdus (vsll, vsll); | |
2274 | VPKSDUS altivec_vpksdus {} | |
2275 | ||
2276 | const vsi __builtin_altivec_vpkudum (vsll, vsll); | |
2277 | VPKUDUM altivec_vpkudum {} | |
2278 | ||
2279 | const vsi __builtin_altivec_vpkudus (vsll, vsll); | |
2280 | VPKUDUS altivec_vpkudus {} | |
2281 | ||
2282 | const vsc __builtin_altivec_vpmsumb (vsc, vsc); | |
2283 | VPMSUMB_A crypto_vpmsumb {} | |
2284 | ||
2285 | const vsll __builtin_altivec_vpmsumd (vsll, vsll); | |
2286 | VPMSUMD_A crypto_vpmsumd {} | |
2287 | ||
2288 | const vss __builtin_altivec_vpmsumh (vss, vss); | |
2289 | VPMSUMH_A crypto_vpmsumh {} | |
2290 | ||
2291 | const vsi __builtin_altivec_vpmsumw (vsi, vsi); | |
2292 | VPMSUMW_A crypto_vpmsumw {} | |
2293 | ||
2294 | const vsc __builtin_altivec_vpopcntb (vsc); | |
2295 | VPOPCNTB popcountv16qi2 {} | |
2296 | ||
2297 | const vsll __builtin_altivec_vpopcntd (vsll); | |
2298 | VPOPCNTD popcountv2di2 {} | |
2299 | ||
2300 | const vss __builtin_altivec_vpopcnth (vss); | |
2301 | VPOPCNTH popcountv8hi2 {} | |
2302 | ||
2303 | const vsc __builtin_altivec_vpopcntub (vsc); | |
2304 | VPOPCNTUB popcountv16qi2 {} | |
2305 | ||
2306 | const vsll __builtin_altivec_vpopcntud (vsll); | |
2307 | VPOPCNTUD popcountv2di2 {} | |
2308 | ||
2309 | const vss __builtin_altivec_vpopcntuh (vss); | |
2310 | VPOPCNTUH popcountv8hi2 {} | |
2311 | ||
2312 | const vsi __builtin_altivec_vpopcntuw (vsi); | |
2313 | VPOPCNTUW popcountv4si2 {} | |
2314 | ||
2315 | const vsi __builtin_altivec_vpopcntw (vsi); | |
2316 | VPOPCNTW popcountv4si2 {} | |
2317 | ||
2318 | const vsll __builtin_altivec_vrld (vsll, vsll); | |
2319 | VRLD vrotlv2di3 {} | |
2320 | ||
2321 | const vsll __builtin_altivec_vsld (vsll, vsll); | |
2322 | VSLD vashlv2di3 {} | |
2323 | ||
2324 | const vsll __builtin_altivec_vsrad (vsll, vsll); | |
2325 | VSRAD vashrv2di3 {} | |
2326 | ||
2327 | const vsll __builtin_altivec_vsrd (vsll, vull); | |
2328 | VSRD vlshrv2di3 {} | |
2329 | ||
2330 | const vsq __builtin_altivec_vsubcuq (vsq, vsq); | |
2331 | VSUBCUQ altivec_vsubcuq {} | |
2332 | ||
2333 | const vsq __builtin_altivec_vsubecuq (vsq, vsq, vsq); | |
2334 | VSUBECUQ altivec_vsubecuq {} | |
2335 | ||
2336 | const vsq __builtin_altivec_vsubeuqm (vsq, vsq, vsq); | |
2337 | VSUBEUQM altivec_vsubeuqm {} | |
2338 | ||
2339 | const vsll __builtin_altivec_vsubudm (vsll, vsll); | |
2340 | VSUBUDM subv2di3 {} | |
2341 | ||
2342 | const vsq __builtin_altivec_vsubuqm (vsq, vsq); | |
2343 | VSUBUQM altivec_vsubuqm {} | |
2344 | ||
2345 | const vsll __builtin_altivec_vupkhsw (vsi); | |
2346 | VUPKHSW altivec_vupkhsw {} | |
2347 | ||
2348 | const vsll __builtin_altivec_vupklsw (vsi); | |
2349 | VUPKLSW altivec_vupklsw {} | |
2350 | ||
2351 | const vsq __builtin_bcdadd_v1ti (vsq, vsq, const int<1>); | |
2352 | BCDADD_V1TI bcdadd_v1ti {} | |
2353 | ||
2354 | const vsc __builtin_bcdadd_v16qi (vsc, vsc, const int<1>); | |
2355 | BCDADD_V16QI bcdadd_v16qi {} | |
2356 | ||
2357 | const signed int __builtin_bcdadd_eq_v1ti (vsq, vsq, const int<1>); | |
2358 | BCDADD_EQ_V1TI bcdadd_eq_v1ti {} | |
2359 | ||
2360 | const signed int __builtin_bcdadd_eq_v16qi (vsc, vsc, const int<1>); | |
2361 | BCDADD_EQ_V16QI bcdadd_eq_v16qi {} | |
2362 | ||
2363 | const signed int __builtin_bcdadd_gt_v1ti (vsq, vsq, const int<1>); | |
2364 | BCDADD_GT_V1TI bcdadd_gt_v1ti {} | |
2365 | ||
2366 | const signed int __builtin_bcdadd_gt_v16qi (vsc, vsc, const int<1>); | |
2367 | BCDADD_GT_V16QI bcdadd_gt_v16qi {} | |
2368 | ||
2369 | const signed int __builtin_bcdadd_lt_v1ti (vsq, vsq, const int<1>); | |
2370 | BCDADD_LT_V1TI bcdadd_lt_v1ti {} | |
2371 | ||
2372 | const signed int __builtin_bcdadd_lt_v16qi (vsc, vsc, const int<1>); | |
2373 | BCDADD_LT_V16QI bcdadd_lt_v16qi {} | |
2374 | ||
2375 | const signed int __builtin_bcdadd_ov_v1ti (vsq, vsq, const int<1>); | |
2376 | BCDADD_OV_V1TI bcdadd_unordered_v1ti {} | |
2377 | ||
2378 | const signed int __builtin_bcdadd_ov_v16qi (vsc, vsc, const int<1>); | |
2379 | BCDADD_OV_V16QI bcdadd_unordered_v16qi {} | |
2380 | ||
2381 | const signed int __builtin_bcdinvalid_v1ti (vsq); | |
2382 | BCDINVALID_V1TI bcdinvalid_v1ti {} | |
2383 | ||
2384 | const signed int __builtin_bcdinvalid_v16qi (vsc); | |
2385 | BCDINVALID_V16QI bcdinvalid_v16qi {} | |
2386 | ||
2387 | const vsq __builtin_bcdsub_v1ti (vsq, vsq, const int<1>); | |
2388 | BCDSUB_V1TI bcdsub_v1ti {} | |
2389 | ||
2390 | const vsc __builtin_bcdsub_v16qi (vsc, vsc, const int<1>); | |
2391 | BCDSUB_V16QI bcdsub_v16qi {} | |
2392 | ||
2393 | const signed int __builtin_bcdsub_eq_v1ti (vsq, vsq, const int<1>); | |
2394 | BCDSUB_EQ_V1TI bcdsub_eq_v1ti {} | |
2395 | ||
2396 | const signed int __builtin_bcdsub_eq_v16qi (vsc, vsc, const int<1>); | |
2397 | BCDSUB_EQ_V16QI bcdsub_eq_v16qi {} | |
2398 | ||
2399 | const signed int __builtin_bcdsub_ge_v1ti (vsq, vsq, const int<1>); | |
2400 | BCDSUB_GE_V1TI bcdsub_ge_v1ti {} | |
2401 | ||
2402 | const signed int __builtin_bcdsub_ge_v16qi (vsc, vsc, const int<1>); | |
2403 | BCDSUB_GE_V16QI bcdsub_ge_v16qi {} | |
2404 | ||
2405 | const signed int __builtin_bcdsub_gt_v1ti (vsq, vsq, const int<1>); | |
2406 | BCDSUB_GT_V1TI bcdsub_gt_v1ti {} | |
2407 | ||
2408 | const signed int __builtin_bcdsub_gt_v16qi (vsc, vsc, const int<1>); | |
2409 | BCDSUB_GT_V16QI bcdsub_gt_v16qi {} | |
2410 | ||
2411 | const signed int __builtin_bcdsub_le_v1ti (vsq, vsq, const int<1>); | |
2412 | BCDSUB_LE_V1TI bcdsub_le_v1ti {} | |
2413 | ||
2414 | const signed int __builtin_bcdsub_le_v16qi (vsc, vsc, const int<1>); | |
2415 | BCDSUB_LE_V16QI bcdsub_le_v16qi {} | |
2416 | ||
2417 | const signed int __builtin_bcdsub_lt_v1ti (vsq, vsq, const int<1>); | |
2418 | BCDSUB_LT_V1TI bcdsub_lt_v1ti {} | |
2419 | ||
2420 | const signed int __builtin_bcdsub_lt_v16qi (vsc, vsc, const int<1>); | |
2421 | BCDSUB_LT_V16QI bcdsub_lt_v16qi {} | |
2422 | ||
2423 | const signed int __builtin_bcdsub_ov_v1ti (vsq, vsq, const int<1>); | |
2424 | BCDSUB_OV_V1TI bcdsub_unordered_v1ti {} | |
2425 | ||
2426 | const signed int __builtin_bcdsub_ov_v16qi (vsc, vsc, const int<1>); | |
2427 | BCDSUB_OV_V16QI bcdsub_unordered_v16qi {} | |
2428 | ||
2429 | const vuc __builtin_crypto_vpermxor_v16qi (vuc, vuc, vuc); | |
2430 | VPERMXOR_V16QI crypto_vpermxor_v16qi {} | |
2431 | ||
2432 | const vull __builtin_crypto_vpermxor_v2di (vull, vull, vull); | |
2433 | VPERMXOR_V2DI crypto_vpermxor_v2di {} | |
2434 | ||
2435 | const vui __builtin_crypto_vpermxor_v4si (vui, vui, vui); | |
2436 | VPERMXOR_V4SI crypto_vpermxor_v4si {} | |
2437 | ||
2438 | const vus __builtin_crypto_vpermxor_v8hi (vus, vus, vus); | |
2439 | VPERMXOR_V8HI crypto_vpermxor_v8hi {} | |
2440 | ||
2441 | const vuc __builtin_crypto_vpmsumb (vuc, vuc); | |
2442 | VPMSUMB crypto_vpmsumb {} | |
2443 | ||
2444 | const vull __builtin_crypto_vpmsumd (vull, vull); | |
2445 | VPMSUMD crypto_vpmsumd {} | |
2446 | ||
2447 | const vus __builtin_crypto_vpmsumh (vus, vus); | |
2448 | VPMSUMH crypto_vpmsumh {} | |
2449 | ||
2450 | const vui __builtin_crypto_vpmsumw (vui, vui); | |
2451 | VPMSUMW crypto_vpmsumw {} | |
2452 | ||
2453 | const vf __builtin_vsx_float2_v2df (vd, vd); | |
2454 | FLOAT2_V2DF float2_v2df {} | |
2455 | ||
2456 | const vf __builtin_vsx_float2_v2di (vsll, vsll); | |
2457 | FLOAT2_V2DI float2_v2di {} | |
2458 | ||
2459 | const vsc __builtin_vsx_revb_v16qi (vsc); | |
2460 | REVB_V16QI revb_v16qi {} | |
2461 | ||
2462 | const vsq __builtin_vsx_revb_v1ti (vsq); | |
2463 | REVB_V1TI revb_v1ti {} | |
2464 | ||
2465 | const vd __builtin_vsx_revb_v2df (vd); | |
2466 | REVB_V2DF revb_v2df {} | |
2467 | ||
2468 | const vsll __builtin_vsx_revb_v2di (vsll); | |
2469 | REVB_V2DI revb_v2di {} | |
2470 | ||
2471 | const vf __builtin_vsx_revb_v4sf (vf); | |
2472 | REVB_V4SF revb_v4sf {} | |
2473 | ||
2474 | const vsi __builtin_vsx_revb_v4si (vsi); | |
2475 | REVB_V4SI revb_v4si {} | |
2476 | ||
2477 | const vss __builtin_vsx_revb_v8hi (vss); | |
2478 | REVB_V8HI revb_v8hi {} | |
2479 | ||
2480 | const vf __builtin_vsx_uns_float2_v2di (vsll, vsll); | |
2481 | UNS_FLOAT2_V2DI uns_float2_v2di {} | |
2482 | ||
2483 | const vsi __builtin_vsx_vsigned2_v2df (vd, vd); | |
2484 | VEC_VSIGNED2_V2DF vsigned2_v2df {} | |
2485 | ||
2486 | const vsi __builtin_vsx_vunsigned2_v2df (vd, vd); | |
2487 | VEC_VUNSIGNED2_V2DF vunsigned2_v2df {} | |
2488 | ||
2489 | const vf __builtin_vsx_xscvdpspn (double); | |
2490 | XSCVDPSPN vsx_xscvdpspn {} | |
2491 | ||
2492 | const double __builtin_vsx_xscvspdpn (vf); | |
2493 | XSCVSPDPN vsx_xscvspdpn {} | |
2ed356a4 BS |
2494 | |
2495 | ||
2496 | ; Power9 vector builtins. | |
2497 | [power9-vector] | |
2498 | const vss __builtin_altivec_convert_4f32_8f16 (vf, vf); | |
2499 | CONVERT_4F32_8F16 convert_4f32_8f16 {} | |
2500 | ||
2501 | const vss __builtin_altivec_convert_4f32_8i16 (vf, vf); | |
2502 | CONVERT_4F32_8I16 convert_4f32_8i16 {} | |
2503 | ||
2504 | const signed int __builtin_altivec_first_match_index_v16qi (vsc, vsc); | |
2505 | VFIRSTMATCHINDEX_V16QI first_match_index_v16qi {} | |
2506 | ||
2507 | const signed int __builtin_altivec_first_match_index_v8hi (vss, vss); | |
2508 | VFIRSTMATCHINDEX_V8HI first_match_index_v8hi {} | |
2509 | ||
2510 | const signed int __builtin_altivec_first_match_index_v4si (vsi, vsi); | |
2511 | VFIRSTMATCHINDEX_V4SI first_match_index_v4si {} | |
2512 | ||
2513 | const signed int __builtin_altivec_first_match_or_eos_index_v16qi (vsc, vsc); | |
2514 | VFIRSTMATCHOREOSINDEX_V16QI first_match_or_eos_index_v16qi {} | |
2515 | ||
2516 | const signed int __builtin_altivec_first_match_or_eos_index_v8hi (vss, vss); | |
2517 | VFIRSTMATCHOREOSINDEX_V8HI first_match_or_eos_index_v8hi {} | |
2518 | ||
2519 | const signed int __builtin_altivec_first_match_or_eos_index_v4si (vsi, vsi); | |
2520 | VFIRSTMATCHOREOSINDEX_V4SI first_match_or_eos_index_v4si {} | |
2521 | ||
2522 | const signed int __builtin_altivec_first_mismatch_index_v16qi (vsc, vsc); | |
2523 | VFIRSTMISMATCHINDEX_V16QI first_mismatch_index_v16qi {} | |
2524 | ||
2525 | const signed int __builtin_altivec_first_mismatch_index_v8hi (vss, vss); | |
2526 | VFIRSTMISMATCHINDEX_V8HI first_mismatch_index_v8hi {} | |
2527 | ||
2528 | const signed int __builtin_altivec_first_mismatch_index_v4si (vsi, vsi); | |
2529 | VFIRSTMISMATCHINDEX_V4SI first_mismatch_index_v4si {} | |
2530 | ||
206c08ce BS |
2531 | const signed int \ |
2532 | __builtin_altivec_first_mismatch_or_eos_index_v16qi (vsc, vsc); | |
2ed356a4 BS |
2533 | VFIRSTMISMATCHOREOSINDEX_V16QI first_mismatch_or_eos_index_v16qi {} |
2534 | ||
206c08ce BS |
2535 | const signed int \ |
2536 | __builtin_altivec_first_mismatch_or_eos_index_v8hi (vss, vss); | |
2ed356a4 BS |
2537 | VFIRSTMISMATCHOREOSINDEX_V8HI first_mismatch_or_eos_index_v8hi {} |
2538 | ||
206c08ce BS |
2539 | const signed int \ |
2540 | __builtin_altivec_first_mismatch_or_eos_index_v4si (vsi, vsi); | |
2ed356a4 BS |
2541 | VFIRSTMISMATCHOREOSINDEX_V4SI first_mismatch_or_eos_index_v4si {} |
2542 | ||
2543 | const vsc __builtin_altivec_vadub (vsc, vsc); | |
2544 | VADUB vaduv16qi3 {} | |
2545 | ||
2546 | const vss __builtin_altivec_vaduh (vss, vss); | |
2547 | VADUH vaduv8hi3 {} | |
2548 | ||
2549 | const vsi __builtin_altivec_vaduw (vsi, vsi); | |
2550 | VADUW vaduv4si3 {} | |
2551 | ||
2552 | const vsll __builtin_altivec_vbpermd (vsll, vsc); | |
2553 | VBPERMD altivec_vbpermd {} | |
2554 | ||
2555 | const signed int __builtin_altivec_vclzlsbb_v16qi (vsc); | |
3f30f2d1 | 2556 | VCLZLSBB_V16QI vctzlsbb_v16qi {endian} |
2ed356a4 BS |
2557 | |
2558 | const signed int __builtin_altivec_vclzlsbb_v4si (vsi); | |
3f30f2d1 | 2559 | VCLZLSBB_V4SI vctzlsbb_v4si {endian} |
2ed356a4 BS |
2560 | |
2561 | const signed int __builtin_altivec_vclzlsbb_v8hi (vss); | |
3f30f2d1 | 2562 | VCLZLSBB_V8HI vctzlsbb_v8hi {endian} |
2ed356a4 BS |
2563 | |
2564 | const vsc __builtin_altivec_vctzb (vsc); | |
2565 | VCTZB ctzv16qi2 {} | |
2566 | ||
2567 | const vsll __builtin_altivec_vctzd (vsll); | |
2568 | VCTZD ctzv2di2 {} | |
2569 | ||
2570 | const vss __builtin_altivec_vctzh (vss); | |
2571 | VCTZH ctzv8hi2 {} | |
2572 | ||
2573 | const vsi __builtin_altivec_vctzw (vsi); | |
2574 | VCTZW ctzv4si2 {} | |
2575 | ||
2576 | const signed int __builtin_altivec_vctzlsbb_v16qi (vsc); | |
3f30f2d1 | 2577 | VCTZLSBB_V16QI vclzlsbb_v16qi {endian} |
2ed356a4 BS |
2578 | |
2579 | const signed int __builtin_altivec_vctzlsbb_v4si (vsi); | |
3f30f2d1 | 2580 | VCTZLSBB_V4SI vclzlsbb_v4si {endian} |
2ed356a4 BS |
2581 | |
2582 | const signed int __builtin_altivec_vctzlsbb_v8hi (vss); | |
3f30f2d1 | 2583 | VCTZLSBB_V8HI vclzlsbb_v8hi {endian} |
2ed356a4 BS |
2584 | |
2585 | const signed int __builtin_altivec_vcmpaeb_p (vsc, vsc); | |
2586 | VCMPAEB_P vector_ae_v16qi_p {} | |
2587 | ||
2588 | const signed int __builtin_altivec_vcmpaed_p (vsll, vsll); | |
2589 | VCMPAED_P vector_ae_v2di_p {} | |
2590 | ||
2591 | const signed int __builtin_altivec_vcmpaedp_p (vd, vd); | |
2592 | VCMPAEDP_P vector_ae_v2df_p {} | |
2593 | ||
2594 | const signed int __builtin_altivec_vcmpaefp_p (vf, vf); | |
2595 | VCMPAEFP_P vector_ae_v4sf_p {} | |
2596 | ||
2597 | const signed int __builtin_altivec_vcmpaeh_p (vss, vss); | |
2598 | VCMPAEH_P vector_ae_v8hi_p {} | |
2599 | ||
2600 | const signed int __builtin_altivec_vcmpaew_p (vsi, vsi); | |
2601 | VCMPAEW_P vector_ae_v4si_p {} | |
2602 | ||
2603 | const vsc __builtin_altivec_vcmpneb (vsc, vsc); | |
2604 | VCMPNEB vcmpneb {} | |
2605 | ||
2606 | const signed int __builtin_altivec_vcmpneb_p (vsc, vsc); | |
2607 | VCMPNEB_P vector_ne_v16qi_p {} | |
2608 | ||
2609 | const signed int __builtin_altivec_vcmpned_p (vsll, vsll); | |
2610 | VCMPNED_P vector_ne_v2di_p {} | |
2611 | ||
2612 | const signed int __builtin_altivec_vcmpnedp_p (vd, vd); | |
2613 | VCMPNEDP_P vector_ne_v2df_p {} | |
2614 | ||
2615 | const signed int __builtin_altivec_vcmpnefp_p (vf, vf); | |
2616 | VCMPNEFP_P vector_ne_v4sf_p {} | |
2617 | ||
2618 | const vss __builtin_altivec_vcmpneh (vss, vss); | |
2619 | VCMPNEH vcmpneh {} | |
2620 | ||
2621 | const signed int __builtin_altivec_vcmpneh_p (vss, vss); | |
2622 | VCMPNEH_P vector_ne_v8hi_p {} | |
2623 | ||
2624 | const vsi __builtin_altivec_vcmpnew (vsi, vsi); | |
2625 | VCMPNEW vcmpnew {} | |
2626 | ||
2627 | const signed int __builtin_altivec_vcmpnew_p (vsi, vsi); | |
2628 | VCMPNEW_P vector_ne_v4si_p {} | |
2629 | ||
2630 | const vsc __builtin_altivec_vcmpnezb (vsc, vsc); | |
2631 | CMPNEZB vcmpnezb {} | |
2632 | ||
2633 | const signed int __builtin_altivec_vcmpnezb_p (signed int, vsc, vsc); | |
2634 | VCMPNEZB_P vector_nez_v16qi_p {pred} | |
2635 | ||
2636 | const vss __builtin_altivec_vcmpnezh (vss, vss); | |
2637 | CMPNEZH vcmpnezh {} | |
2638 | ||
2639 | const signed int __builtin_altivec_vcmpnezh_p (signed int, vss, vss); | |
2640 | VCMPNEZH_P vector_nez_v8hi_p {pred} | |
2641 | ||
2642 | const vsi __builtin_altivec_vcmpnezw (vsi, vsi); | |
2643 | CMPNEZW vcmpnezw {} | |
2644 | ||
2645 | const signed int __builtin_altivec_vcmpnezw_p (signed int, vsi, vsi); | |
2646 | VCMPNEZW_P vector_nez_v4si_p {pred} | |
2647 | ||
2648 | const signed int __builtin_altivec_vextublx (signed int, vsc); | |
2649 | VEXTUBLX vextublx {} | |
2650 | ||
2651 | const signed int __builtin_altivec_vextubrx (signed int, vsc); | |
2652 | VEXTUBRX vextubrx {} | |
2653 | ||
2654 | const signed int __builtin_altivec_vextuhlx (signed int, vss); | |
2655 | VEXTUHLX vextuhlx {} | |
2656 | ||
2657 | const signed int __builtin_altivec_vextuhrx (signed int, vss); | |
2658 | VEXTUHRX vextuhrx {} | |
2659 | ||
2660 | const signed int __builtin_altivec_vextuwlx (signed int, vsi); | |
2661 | VEXTUWLX vextuwlx {} | |
2662 | ||
2663 | const signed int __builtin_altivec_vextuwrx (signed int, vsi); | |
2664 | VEXTUWRX vextuwrx {} | |
2665 | ||
2666 | const vsq __builtin_altivec_vmsumudm (vsll, vsll, vsq); | |
2667 | VMSUMUDM altivec_vmsumudm {} | |
2668 | ||
2669 | const vsll __builtin_altivec_vprtybd (vsll); | |
2670 | VPRTYBD parityv2di2 {} | |
2671 | ||
2672 | const vsq __builtin_altivec_vprtybq (vsq); | |
2673 | VPRTYBQ parityv1ti2 {} | |
2674 | ||
2675 | const vsi __builtin_altivec_vprtybw (vsi); | |
2676 | VPRTYBW parityv4si2 {} | |
2677 | ||
2678 | const vsll __builtin_altivec_vrldmi (vsll, vsll, vsll); | |
2679 | VRLDMI altivec_vrldmi {} | |
2680 | ||
2681 | const vsll __builtin_altivec_vrldnm (vsll, vsll); | |
2682 | VRLDNM altivec_vrldnm {} | |
2683 | ||
2684 | const vsi __builtin_altivec_vrlwmi (vsi, vsi, vsi); | |
2685 | VRLWMI altivec_vrlwmi {} | |
2686 | ||
2687 | const vsi __builtin_altivec_vrlwnm (vsi, vsi); | |
2688 | VRLWNM altivec_vrlwnm {} | |
2689 | ||
2690 | const vsll __builtin_altivec_vsignextsb2d (vsc); | |
2691 | VSIGNEXTSB2D vsignextend_qi_v2di {} | |
2692 | ||
2693 | const vsi __builtin_altivec_vsignextsb2w (vsc); | |
2694 | VSIGNEXTSB2W vsignextend_qi_v4si {} | |
2695 | ||
2696 | const vsll __builtin_altivec_visgnextsh2d (vss); | |
2697 | VSIGNEXTSH2D vsignextend_hi_v2di {} | |
2698 | ||
2699 | const vsi __builtin_altivec_vsignextsh2w (vss); | |
2700 | VSIGNEXTSH2W vsignextend_hi_v4si {} | |
2701 | ||
2702 | const vsll __builtin_altivec_vsignextsw2d (vsi); | |
2703 | VSIGNEXTSW2D vsignextend_si_v2di {} | |
2704 | ||
2705 | const vsc __builtin_altivec_vslv (vsc, vsc); | |
2706 | VSLV vslv {} | |
2707 | ||
2708 | const vsc __builtin_altivec_vsrv (vsc, vsc); | |
2709 | VSRV vsrv {} | |
2710 | ||
2711 | const signed int __builtin_scalar_byte_in_range (signed int, signed int); | |
2712 | CMPRB cmprb {} | |
2713 | ||
206c08ce BS |
2714 | const signed int \ |
2715 | __builtin_scalar_byte_in_either_range (signed int, signed int); | |
2ed356a4 BS |
2716 | CMPRB2 cmprb2 {} |
2717 | ||
2718 | const vsll __builtin_vsx_extract4b (vsc, const int[0,12]); | |
2719 | EXTRACT4B extract4b {} | |
2720 | ||
2721 | const vd __builtin_vsx_extract_exp_dp (vd); | |
2722 | VEEDP xvxexpdp {} | |
2723 | ||
2724 | const vf __builtin_vsx_extract_exp_sp (vf); | |
2725 | VEESP xvxexpsp {} | |
2726 | ||
2727 | const vd __builtin_vsx_extract_sig_dp (vd); | |
2728 | VESDP xvxsigdp {} | |
2729 | ||
2730 | const vf __builtin_vsx_extract_sig_sp (vf); | |
2731 | VESSP xvxsigsp {} | |
2732 | ||
2733 | const vsc __builtin_vsx_insert4b (vsi, vsc, const int[0,12]); | |
2734 | INSERT4B insert4b {} | |
2735 | ||
2736 | const vd __builtin_vsx_insert_exp_dp (vd, vd); | |
2737 | VIEDP xviexpdp {} | |
2738 | ||
2739 | const vf __builtin_vsx_insert_exp_sp (vf, vf); | |
2740 | VIESP xviexpsp {} | |
2741 | ||
2742 | const signed int __builtin_vsx_scalar_cmp_exp_dp_eq (double, double); | |
2743 | VSCEDPEQ xscmpexpdp_eq {} | |
2744 | ||
2745 | const signed int __builtin_vsx_scalar_cmp_exp_dp_gt (double, double); | |
2746 | VSCEDPGT xscmpexpdp_gt {} | |
2747 | ||
2748 | const signed int __builtin_vsx_scalar_cmp_exp_dp_lt (double, double); | |
2749 | VSCEDPLT xscmpexpdp_lt {} | |
2750 | ||
2751 | const signed int __builtin_vsx_scalar_cmp_exp_dp_unordered (double, double); | |
2752 | VSCEDPUO xscmpexpdp_unordered {} | |
2753 | ||
206c08ce BS |
2754 | const signed int \ |
2755 | __builtin_vsx_scalar_test_data_class_dp (double, const int<7>); | |
2ed356a4 BS |
2756 | VSTDCDP xststdcdp {} |
2757 | ||
206c08ce BS |
2758 | const signed int \ |
2759 | __builtin_vsx_scalar_test_data_class_sp (float, const int<7>); | |
2ed356a4 BS |
2760 | VSTDCSP xststdcsp {} |
2761 | ||
2762 | const signed int __builtin_vsx_scalar_test_neg_dp (double); | |
2763 | VSTDCNDP xststdcnegdp {} | |
2764 | ||
2765 | const signed int __builtin_vsx_scalar_test_neg_sp (float); | |
2766 | VSTDCNSP xststdcnegsp {} | |
2767 | ||
2768 | const vsll __builtin_vsx_test_data_class_dp (vd, const int<7>); | |
2769 | VTDCDP xvtstdcdp {} | |
2770 | ||
2771 | const vsi __builtin_vsx_test_data_class_sp (vf, const int<7>); | |
2772 | VTDCSP xvtstdcsp {} | |
2773 | ||
2774 | const vf __builtin_vsx_vextract_fp_from_shorth (vss); | |
2775 | VEXTRACT_FP_FROM_SHORTH vextract_fp_from_shorth {} | |
2776 | ||
2777 | const vf __builtin_vsx_vextract_fp_from_shortl (vss); | |
2778 | VEXTRACT_FP_FROM_SHORTL vextract_fp_from_shortl {} | |
2779 | ||
2780 | const vd __builtin_vsx_xxbrd_v2df (vd); | |
2781 | XXBRD_V2DF p9_xxbrd_v2df {} | |
2782 | ||
2783 | const vsll __builtin_vsx_xxbrd_v2di (vsll); | |
2784 | XXBRD_V2DI p9_xxbrd_v2di {} | |
2785 | ||
2786 | const vss __builtin_vsx_xxbrh_v8hi (vss); | |
2787 | XXBRH_V8HI p9_xxbrh_v8hi {} | |
2788 | ||
2789 | const vsc __builtin_vsx_xxbrq_v16qi (vsc); | |
2790 | XXBRQ_V16QI p9_xxbrq_v16qi {} | |
2791 | ||
2792 | const vsq __builtin_vsx_xxbrq_v1ti (vsq); | |
2793 | XXBRQ_V1TI p9_xxbrq_v1ti {} | |
2794 | ||
2795 | const vf __builtin_vsx_xxbrw_v4sf (vf); | |
2796 | XXBRW_V4SF p9_xxbrw_v4sf {} | |
2797 | ||
2798 | const vsi __builtin_vsx_xxbrw_v4si (vsi); | |
2799 | XXBRW_V4SI p9_xxbrw_v4si {} | |
2800 | ||
2801 | ||
2802 | ; Miscellaneous P9 functions | |
2803 | [power9] | |
71943979 SB |
2804 | signed long __builtin_darn (); |
2805 | DARN darn_64_di {32bit} | |
2ed356a4 | 2806 | |
71943979 SB |
2807 | signed long __builtin_darn_32 (); |
2808 | DARN_32 darn_32_di {32bit} | |
2ed356a4 | 2809 | |
71943979 SB |
2810 | signed long __builtin_darn_raw (); |
2811 | DARN_RAW darn_raw_di {32bit} | |
2ed356a4 | 2812 | |
2ed356a4 BS |
2813 | const signed int __builtin_dtstsfi_eq_dd (const int<6>, _Decimal64); |
2814 | TSTSFI_EQ_DD dfptstsfi_eq_dd {} | |
2815 | ||
2816 | const signed int __builtin_dtstsfi_eq_td (const int<6>, _Decimal128); | |
2817 | TSTSFI_EQ_TD dfptstsfi_eq_td {} | |
2818 | ||
2819 | const signed int __builtin_dtstsfi_gt_dd (const int<6>, _Decimal64); | |
2820 | TSTSFI_GT_DD dfptstsfi_gt_dd {} | |
2821 | ||
2822 | const signed int __builtin_dtstsfi_gt_td (const int<6>, _Decimal128); | |
2823 | TSTSFI_GT_TD dfptstsfi_gt_td {} | |
2824 | ||
2825 | const signed int __builtin_dtstsfi_lt_dd (const int<6>, _Decimal64); | |
2826 | TSTSFI_LT_DD dfptstsfi_lt_dd {} | |
2827 | ||
2828 | const signed int __builtin_dtstsfi_lt_td (const int<6>, _Decimal128); | |
2829 | TSTSFI_LT_TD dfptstsfi_lt_td {} | |
2830 | ||
2831 | const signed int __builtin_dtstsfi_ov_dd (const int<6>, _Decimal64); | |
2832 | TSTSFI_OV_DD dfptstsfi_unordered_dd {} | |
2833 | ||
2834 | const signed int __builtin_dtstsfi_ov_td (const int<6>, _Decimal128); | |
2835 | TSTSFI_OV_TD dfptstsfi_unordered_td {} | |
2836 | ||
2837 | ||
2838 | [power9-64] | |
2839 | void __builtin_altivec_xst_len_r (vsc, void *, long); | |
2840 | XST_LEN_R xst_len_r {} | |
2841 | ||
2842 | void __builtin_altivec_stxvl (vsc, void *, long); | |
2843 | STXVL stxvl {} | |
2844 | ||
2845 | const signed int __builtin_scalar_byte_in_set (signed int, signed long long); | |
2846 | CMPEQB cmpeqb {} | |
2847 | ||
2848 | pure vsc __builtin_vsx_lxvl (const void *, signed long); | |
2849 | LXVL lxvl {} | |
2850 | ||
2851 | const signed long __builtin_vsx_scalar_extract_exp (double); | |
2852 | VSEEDP xsxexpdp {} | |
2853 | ||
2854 | const signed long __builtin_vsx_scalar_extract_sig (double); | |
2855 | VSESDP xsxsigdp {} | |
2856 | ||
206c08ce BS |
2857 | const double __builtin_vsx_scalar_insert_exp (unsigned long long, \ |
2858 | unsigned long long); | |
2ed356a4 BS |
2859 | VSIEDP xsiexpdp {} |
2860 | ||
2861 | const double __builtin_vsx_scalar_insert_exp_dp (double, unsigned long long); | |
2862 | VSIEDPF xsiexpdpf {} | |
2863 | ||
2864 | pure vsc __builtin_vsx_xl_len_r (void *, signed long); | |
2865 | XL_LEN_R xl_len_r {} | |
50cb8300 BS |
2866 | |
2867 | ||
2f9489a1 BS |
2868 | ; Builtins requiring hardware support for IEEE-128 floating-point. |
2869 | [ieee128-hw] | |
4be82f7f MM |
2870 | fpmath _Float128 __builtin_addf128_round_to_odd_kf (_Float128, _Float128); |
2871 | ADDF128_ODD_KF addkf3_odd {} | |
2f9489a1 | 2872 | |
4be82f7f MM |
2873 | fpmath _Float128 __builtin_divf128_round_to_odd_kf (_Float128, _Float128); |
2874 | DIVF128_ODD_KF divkf3_odd {} | |
2f9489a1 | 2875 | |
4be82f7f MM |
2876 | fpmath _Float128 __builtin_fmaf128_round_to_odd_kf (_Float128, _Float128, \ |
2877 | _Float128); | |
2878 | FMAF128_ODD_KF fmakf4_odd {} | |
2f9489a1 | 2879 | |
4be82f7f MM |
2880 | fpmath _Float128 __builtin_mulf128_round_to_odd_kf (_Float128, _Float128); |
2881 | MULF128_ODD_KF mulkf3_odd {} | |
2f9489a1 | 2882 | |
ebfe2f40 MM |
2883 | const signed int __builtin_vsx_scalar_cmp_exp_qp_eq_kf (_Float128, _Float128); |
2884 | VSCEQPEQ_KF xscmpexpqp_eq_kf {} | |
2f9489a1 | 2885 | |
ebfe2f40 MM |
2886 | const signed int __builtin_vsx_scalar_cmp_exp_qp_gt_kf (_Float128, _Float128); |
2887 | VSCEQPGT_KF xscmpexpqp_gt_kf {} | |
2f9489a1 | 2888 | |
ebfe2f40 MM |
2889 | const signed int __builtin_vsx_scalar_cmp_exp_qp_lt_kf (_Float128, _Float128); |
2890 | VSCEQPLT_KF xscmpexpqp_lt_kf {} | |
2f9489a1 | 2891 | |
206c08ce | 2892 | const signed int \ |
ebfe2f40 MM |
2893 | __builtin_vsx_scalar_cmp_exp_qp_unordered_kf (_Float128, _Float128); |
2894 | VSCEQPUO_KF xscmpexpqp_unordered_kf {} | |
2f9489a1 | 2895 | |
4be82f7f MM |
2896 | fpmath _Float128 __builtin_sqrtf128_round_to_odd_kf (_Float128); |
2897 | SQRTF128_ODD_KF sqrtkf2_odd {} | |
2f9489a1 | 2898 | |
4be82f7f MM |
2899 | fpmath _Float128 __builtin_subf128_round_to_odd_kf (_Float128, _Float128); |
2900 | SUBF128_ODD_KF subkf3_odd {} | |
2f9489a1 | 2901 | |
4be82f7f MM |
2902 | fpmath double __builtin_truncf128_round_to_odd_kf (_Float128); |
2903 | TRUNCF128_ODD_KF trunckfdf2_odd {} | |
2f9489a1 BS |
2904 | |
2905 | const signed long long __builtin_vsx_scalar_extract_expq (_Float128); | |
2906 | VSEEQP xsxexpqp_kf {} | |
2907 | ||
2908 | const signed __int128 __builtin_vsx_scalar_extract_sigq (_Float128); | |
2909 | VSESQP xsxsigqp_kf {} | |
2910 | ||
206c08ce BS |
2911 | const _Float128 __builtin_vsx_scalar_insert_exp_q (unsigned __int128, \ |
2912 | unsigned long long); | |
2f9489a1 BS |
2913 | VSIEQP xsiexpqp_kf {} |
2914 | ||
206c08ce BS |
2915 | const _Float128 __builtin_vsx_scalar_insert_exp_qp (_Float128, \ |
2916 | unsigned long long); | |
2f9489a1 BS |
2917 | VSIEQPF xsiexpqpf_kf {} |
2918 | ||
206c08ce BS |
2919 | const signed int __builtin_vsx_scalar_test_data_class_qp (_Float128, \ |
2920 | const int<7>); | |
2f9489a1 BS |
2921 | VSTDCQP xststdcqp_kf {} |
2922 | ||
2923 | const signed int __builtin_vsx_scalar_test_neg_qp (_Float128); | |
2924 | VSTDCNQP xststdcnegqp_kf {} | |
2925 | ||
2926 | ||
4be82f7f MM |
2927 | ; Builtins requiring hardware support for IEEE-128 floating-point. Long double |
2928 | ; must use the IEEE 128-bit encoding. | |
2929 | [ieee128-hw-ld] | |
2930 | fpmath long double __builtin_addf128_round_to_odd_tf (long double, long double); | |
2931 | ADDF128_ODD_TF addtf3_odd {ieeeld} | |
2932 | ||
2933 | fpmath long double __builtin_divf128_round_to_odd_tf (long double,long double); | |
2934 | DIVF128_ODD_TF divtf3_odd {ieeeld} | |
2935 | ||
2936 | fpmath long double __builtin_fmaf128_round_to_odd_tf (long double, \ | |
2937 | long double, \ | |
2938 | long double); | |
2939 | FMAF128_ODD_TF fmatf4_odd {ieeeld} | |
2940 | ||
2941 | fpmath long double __builtin_mulf128_round_to_odd_tf (long double, \ | |
2942 | long double); | |
2943 | MULF128_ODD_TF multf3_odd {ieeeld} | |
2944 | ||
ebfe2f40 MM |
2945 | const signed int __builtin_vsx_scalar_cmp_exp_qp_eq_tf (long double, \ |
2946 | long double); | |
2947 | VSCEQPEQ_TF xscmpexpqp_eq_tf {ieeeld} | |
2948 | ||
2949 | const signed int __builtin_vsx_scalar_cmp_exp_qp_gt_tf (long double, \ | |
2950 | long double); | |
2951 | VSCEQPGT_TF xscmpexpqp_gt_kf {ieeeld} | |
2952 | ||
2953 | const signed int __builtin_vsx_scalar_cmp_exp_qp_lt_tf (long double, \ | |
2954 | long double); | |
2955 | VSCEQPLT_TF xscmpexpqp_lt_tf {ieeeld} | |
2956 | ||
2957 | const signed int \ | |
2958 | __builtin_vsx_scalar_cmp_exp_qp_unordered_tf (long double, long double); | |
2959 | VSCEQPUO_TF xscmpexpqp_unordered_tf {ieeeld} | |
2960 | ||
4be82f7f MM |
2961 | fpmath long double __builtin_sqrtf128_round_to_odd_tf (long double); |
2962 | SQRTF128_ODD_TF sqrttf2_odd {ieeeld} | |
2963 | ||
2964 | fpmath long double __builtin_subf128_round_to_odd_tf (long double, \ | |
2965 | long double); | |
2966 | SUBF128_ODD_TF subtf3_odd {ieeeld} | |
2967 | ||
2968 | fpmath double __builtin_truncf128_round_to_odd_tf (long double); | |
2969 | TRUNCF128_ODD_TF trunctfdf2_odd {ieeeld} | |
2970 | ||
2f9489a1 BS |
2971 | |
2972 | ; Decimal floating-point builtins. | |
2973 | [dfp] | |
2974 | const _Decimal64 __builtin_ddedpd (const int<2>, _Decimal64); | |
2975 | DDEDPD dfp_ddedpd_dd {} | |
2976 | ||
2977 | const _Decimal128 __builtin_ddedpdq (const int<2>, _Decimal128); | |
2978 | DDEDPDQ dfp_ddedpd_td {} | |
2979 | ||
2980 | const _Decimal64 __builtin_denbcd (const int<1>, _Decimal64); | |
2981 | DENBCD dfp_denbcd_dd {} | |
2982 | ||
2983 | const _Decimal128 __builtin_denbcdq (const int<1>, _Decimal128); | |
2984 | DENBCDQ dfp_denbcd_td {} | |
2985 | ||
2986 | const _Decimal128 __builtin_denb2dfp_v16qi (vsc); | |
2987 | DENB2DFP_V16QI dfp_denbcd_v16qi {} | |
2988 | ||
2989 | const _Decimal64 __builtin_diex (signed long long, _Decimal64); | |
2990 | DIEX dfp_diex_dd {} | |
2991 | ||
2992 | const _Decimal128 __builtin_diexq (signed long long, _Decimal128); | |
2993 | DIEXQ dfp_diex_td {} | |
2994 | ||
2995 | const _Decimal64 __builtin_dscli (_Decimal64, const int<6>); | |
2996 | DSCLI dfp_dscli_dd {} | |
2997 | ||
2998 | const _Decimal128 __builtin_dscliq (_Decimal128, const int<6>); | |
2999 | DSCLIQ dfp_dscli_td {} | |
3000 | ||
3001 | const _Decimal64 __builtin_dscri (_Decimal64, const int<6>); | |
3002 | DSCRI dfp_dscri_dd {} | |
3003 | ||
3004 | const _Decimal128 __builtin_dscriq (_Decimal128, const int<6>); | |
3005 | DSCRIQ dfp_dscri_td {} | |
3006 | ||
3007 | const signed long long __builtin_dxex (_Decimal64); | |
3008 | DXEX dfp_dxex_dd {} | |
3009 | ||
3010 | const signed long long __builtin_dxexq (_Decimal128); | |
3011 | DXEXQ dfp_dxex_td {} | |
3012 | ||
206c08ce BS |
3013 | const _Decimal128 __builtin_pack_dec128 (unsigned long long, \ |
3014 | unsigned long long); | |
2f9489a1 BS |
3015 | PACK_TD packtd {} |
3016 | ||
3017 | void __builtin_set_fpscr_drn (const int[0,7]); | |
aaf3a599 | 3018 | SET_FPSCR_DRN rs6000_set_fpscr_drn {nosoft,no32bit} |
2f9489a1 | 3019 | |
d0823635 | 3020 | const unsigned long long __builtin_unpack_dec128 (_Decimal128, const int<1>); |
2f9489a1 BS |
3021 | UNPACK_TD unpacktd {} |
3022 | ||
3023 | ||
3024 | [crypto] | |
3025 | const vull __builtin_crypto_vcipher (vull, vull); | |
3026 | VCIPHER crypto_vcipher_v2di {} | |
3027 | ||
3028 | const vuc __builtin_crypto_vcipher_be (vuc, vuc); | |
3029 | VCIPHER_BE crypto_vcipher_v16qi {} | |
3030 | ||
3031 | const vull __builtin_crypto_vcipherlast (vull, vull); | |
3032 | VCIPHERLAST crypto_vcipherlast_v2di {} | |
3033 | ||
3034 | const vuc __builtin_crypto_vcipherlast_be (vuc, vuc); | |
3035 | VCIPHERLAST_BE crypto_vcipherlast_v16qi {} | |
3036 | ||
3037 | const vull __builtin_crypto_vncipher (vull, vull); | |
3038 | VNCIPHER crypto_vncipher_v2di {} | |
3039 | ||
3040 | const vuc __builtin_crypto_vncipher_be (vuc, vuc); | |
3041 | VNCIPHER_BE crypto_vncipher_v16qi {} | |
3042 | ||
3043 | const vull __builtin_crypto_vncipherlast (vull, vull); | |
3044 | VNCIPHERLAST crypto_vncipherlast_v2di {} | |
3045 | ||
3046 | const vuc __builtin_crypto_vncipherlast_be (vuc, vuc); | |
3047 | VNCIPHERLAST_BE crypto_vncipherlast_v16qi {} | |
3048 | ||
3049 | const vull __builtin_crypto_vsbox (vull); | |
3050 | VSBOX crypto_vsbox_v2di {} | |
3051 | ||
3052 | const vuc __builtin_crypto_vsbox_be (vuc); | |
3053 | VSBOX_BE crypto_vsbox_v16qi {} | |
3054 | ||
3055 | const vull __builtin_crypto_vshasigmad (vull, const int<1>, const int<4>); | |
3056 | VSHASIGMAD crypto_vshasigmad {} | |
3057 | ||
3058 | const vui __builtin_crypto_vshasigmaw (vui, const int<1>, const int<4>); | |
3059 | VSHASIGMAW crypto_vshasigmaw {} | |
3060 | ||
3061 | ||
3062 | [htm] | |
d0823635 | 3063 | unsigned long __builtin_get_texasr (); |
2f9489a1 BS |
3064 | GET_TEXASR nothing {htm,htmspr} |
3065 | ||
d0823635 | 3066 | unsigned long __builtin_get_texasru (); |
2f9489a1 BS |
3067 | GET_TEXASRU nothing {htm,htmspr} |
3068 | ||
d0823635 | 3069 | unsigned long __builtin_get_tfhar (); |
2f9489a1 BS |
3070 | GET_TFHAR nothing {htm,htmspr} |
3071 | ||
d0823635 | 3072 | unsigned long __builtin_get_tfiar (); |
2f9489a1 BS |
3073 | GET_TFIAR nothing {htm,htmspr} |
3074 | ||
d0823635 | 3075 | void __builtin_set_texasr (unsigned long); |
2f9489a1 BS |
3076 | SET_TEXASR nothing {htm,htmspr} |
3077 | ||
d0823635 | 3078 | void __builtin_set_texasru (unsigned long); |
2f9489a1 BS |
3079 | SET_TEXASRU nothing {htm,htmspr} |
3080 | ||
d0823635 | 3081 | void __builtin_set_tfhar (unsigned long); |
2f9489a1 BS |
3082 | SET_TFHAR nothing {htm,htmspr} |
3083 | ||
d0823635 | 3084 | void __builtin_set_tfiar (unsigned long); |
2f9489a1 BS |
3085 | SET_TFIAR nothing {htm,htmspr} |
3086 | ||
3087 | unsigned int __builtin_tabort (unsigned int); | |
3088 | TABORT tabort {htm,htmcr} | |
3089 | ||
d0823635 BS |
3090 | unsigned int __builtin_tabortdc (unsigned long, unsigned long, \ |
3091 | unsigned long); | |
2f9489a1 BS |
3092 | TABORTDC tabortdc {htm,htmcr} |
3093 | ||
d0823635 BS |
3094 | unsigned int __builtin_tabortdci (unsigned long, unsigned long, \ |
3095 | unsigned long); | |
2f9489a1 BS |
3096 | TABORTDCI tabortdci {htm,htmcr} |
3097 | ||
3098 | unsigned int __builtin_tabortwc (unsigned int, unsigned int, unsigned int); | |
3099 | TABORTWC tabortwc {htm,htmcr} | |
3100 | ||
3101 | unsigned int __builtin_tabortwci (unsigned int, unsigned int, unsigned int); | |
3102 | TABORTWCI tabortwci {htm,htmcr} | |
3103 | ||
3104 | unsigned int __builtin_tbegin (unsigned int); | |
3105 | TBEGIN tbegin {htm,htmcr} | |
3106 | ||
3107 | unsigned int __builtin_tcheck (); | |
3108 | TCHECK tcheck {htm,htmcr} | |
3109 | ||
3110 | unsigned int __builtin_tend (unsigned int); | |
3111 | TEND tend {htm,htmcr} | |
3112 | ||
3113 | unsigned int __builtin_tendall (); | |
3114 | TENDALL tend {htm,htmcr} | |
3115 | ||
3116 | unsigned int __builtin_trechkpt (); | |
3117 | TRECHKPT trechkpt {htm,htmcr} | |
3118 | ||
3119 | unsigned int __builtin_treclaim (unsigned int); | |
3120 | TRECLAIM treclaim {htm,htmcr} | |
3121 | ||
3122 | unsigned int __builtin_tresume (); | |
3123 | TRESUME tsr {htm,htmcr} | |
3124 | ||
3125 | unsigned int __builtin_tsr (unsigned int); | |
3126 | TSR tsr {htm,htmcr} | |
3127 | ||
3128 | unsigned int __builtin_tsuspend (); | |
3129 | TSUSPEND tsr {htm,htmcr} | |
3130 | ||
3131 | unsigned int __builtin_ttest (); | |
3132 | TTEST ttest {htm,htmcr} | |
3133 | ||
3134 | ||
50cb8300 BS |
3135 | [power10] |
3136 | const vbq __builtin_altivec_cmpge_1ti (vsq, vsq); | |
3137 | CMPGE_1TI vector_nltv1ti {} | |
3138 | ||
3139 | const vbq __builtin_altivec_cmpge_u1ti (vuq, vuq); | |
3140 | CMPGE_U1TI vector_nltuv1ti {} | |
3141 | ||
3142 | const vbq __builtin_altivec_cmple_1ti (vsq, vsq); | |
3143 | CMPLE_1TI vector_ngtv1ti {} | |
3144 | ||
3145 | const vbq __builtin_altivec_cmple_u1ti (vuq, vuq); | |
3146 | CMPLE_U1TI vector_ngtuv1ti {} | |
3147 | ||
3148 | const unsigned long long __builtin_altivec_cntmbb (vuc, const int<1>); | |
3149 | VCNTMBB vec_cntmb_v16qi {} | |
3150 | ||
3151 | const unsigned long long __builtin_altivec_cntmbd (vull, const int<1>); | |
3152 | VCNTMBD vec_cntmb_v2di {} | |
3153 | ||
3154 | const unsigned long long __builtin_altivec_cntmbh (vus, const int<1>); | |
3155 | VCNTMBH vec_cntmb_v8hi {} | |
3156 | ||
3157 | const unsigned long long __builtin_altivec_cntmbw (vui, const int<1>); | |
3158 | VCNTMBW vec_cntmb_v4si {} | |
3159 | ||
3160 | const vsq __builtin_altivec_div_v1ti (vsq, vsq); | |
3161 | DIV_V1TI vsx_div_v1ti {} | |
3162 | ||
3163 | const vsq __builtin_altivec_dives (vsq, vsq); | |
3164 | DIVES_V1TI vsx_dives_v1ti {} | |
3165 | ||
3166 | const vuq __builtin_altivec_diveu (vuq, vuq); | |
3167 | DIVEU_V1TI vsx_diveu_v1ti {} | |
3168 | ||
3169 | const vsq __builtin_altivec_mods (vsq, vsq); | |
3170 | MODS_V1TI vsx_mods_v1ti {} | |
3171 | ||
3172 | const vuq __builtin_altivec_modu (vuq, vuq); | |
3173 | MODU_V1TI vsx_modu_v1ti {} | |
3174 | ||
3175 | const vuc __builtin_altivec_mtvsrbm (unsigned long long); | |
3176 | MTVSRBM vec_mtvsr_v16qi {} | |
3177 | ||
3178 | const vull __builtin_altivec_mtvsrdm (unsigned long long); | |
3179 | MTVSRDM vec_mtvsr_v2di {} | |
3180 | ||
3181 | const vus __builtin_altivec_mtvsrhm (unsigned long long); | |
3182 | MTVSRHM vec_mtvsr_v8hi {} | |
3183 | ||
3184 | const vuq __builtin_altivec_mtvsrqm (unsigned long long); | |
3185 | MTVSRQM vec_mtvsr_v1ti {} | |
3186 | ||
3187 | const vui __builtin_altivec_mtvsrwm (unsigned long long); | |
3188 | MTVSRWM vec_mtvsr_v4si {} | |
3189 | ||
206c08ce BS |
3190 | pure signed __int128 __builtin_altivec_se_lxvrbx (signed long, \ |
3191 | const signed char *); | |
50cb8300 BS |
3192 | SE_LXVRBX vsx_lxvrbx {lxvrse} |
3193 | ||
206c08ce BS |
3194 | pure signed __int128 __builtin_altivec_se_lxvrhx (signed long, \ |
3195 | const signed short *); | |
50cb8300 BS |
3196 | SE_LXVRHX vsx_lxvrhx {lxvrse} |
3197 | ||
206c08ce BS |
3198 | pure signed __int128 __builtin_altivec_se_lxvrwx (signed long, \ |
3199 | const signed int *); | |
50cb8300 BS |
3200 | SE_LXVRWX vsx_lxvrwx {lxvrse} |
3201 | ||
206c08ce BS |
3202 | pure signed __int128 __builtin_altivec_se_lxvrdx (signed long, \ |
3203 | const signed long long *); | |
50cb8300 BS |
3204 | SE_LXVRDX vsx_lxvrdx {lxvrse} |
3205 | ||
3206 | void __builtin_altivec_tr_stxvrbx (vsq, signed long, signed char *); | |
3207 | TR_STXVRBX vsx_stxvrbx {stvec} | |
3208 | ||
3209 | void __builtin_altivec_tr_stxvrhx (vsq, signed long, signed int *); | |
3210 | TR_STXVRHX vsx_stxvrhx {stvec} | |
3211 | ||
3212 | void __builtin_altivec_tr_stxvrwx (vsq, signed long, signed short *); | |
3213 | TR_STXVRWX vsx_stxvrwx {stvec} | |
3214 | ||
3215 | void __builtin_altivec_tr_stxvrdx (vsq, signed long, signed long long *); | |
3216 | TR_STXVRDX vsx_stxvrdx {stvec} | |
3217 | ||
3218 | const vuq __builtin_altivec_udiv_v1ti (vuq, vuq); | |
3219 | UDIV_V1TI vsx_udiv_v1ti {} | |
3220 | ||
3221 | const vull __builtin_altivec_vcfuged (vull, vull); | |
3222 | VCFUGED vcfuged {} | |
3223 | ||
3224 | const vsc __builtin_altivec_vclrlb (vsc, signed int); | |
3225 | VCLRLB vclrlb {} | |
3226 | ||
3227 | const vsc __builtin_altivec_vclrrb (vsc, signed int); | |
3228 | VCLRRB vclrrb {} | |
3229 | ||
3230 | const signed int __builtin_altivec_vcmpaet_p (vsq, vsq); | |
3231 | VCMPAET_P vector_ae_v1ti_p {} | |
3232 | ||
3233 | const vbq __builtin_altivec_vcmpequt (vsq, vsq); | |
3234 | VCMPEQUT vector_eqv1ti {} | |
3235 | ||
3236 | const signed int __builtin_altivec_vcmpequt_p (signed int, vsq, vsq); | |
3237 | VCMPEQUT_P vector_eq_v1ti_p {pred} | |
3238 | ||
3239 | const vbq __builtin_altivec_vcmpgtst (vsq, vsq); | |
3240 | VCMPGTST vector_gtv1ti {} | |
3241 | ||
3242 | const signed int __builtin_altivec_vcmpgtst_p (signed int, vsq, vsq); | |
3243 | VCMPGTST_P vector_gt_v1ti_p {pred} | |
3244 | ||
3245 | const vbq __builtin_altivec_vcmpgtut (vuq, vuq); | |
3246 | VCMPGTUT vector_gtuv1ti {} | |
3247 | ||
3248 | const signed int __builtin_altivec_vcmpgtut_p (signed int, vuq, vuq); | |
3249 | VCMPGTUT_P vector_gtu_v1ti_p {pred} | |
3250 | ||
3251 | const vbq __builtin_altivec_vcmpnet (vsq, vsq); | |
3252 | VCMPNET vcmpnet {} | |
3253 | ||
3254 | const signed int __builtin_altivec_vcmpnet_p (vsq, vsq); | |
3255 | VCMPNET_P vector_ne_v1ti_p {} | |
3256 | ||
3257 | const vull __builtin_altivec_vclzdm (vull, vull); | |
3258 | VCLZDM vclzdm {} | |
3259 | ||
3260 | const vull __builtin_altivec_vctzdm (vull, vull); | |
3261 | VCTZDM vctzdm {} | |
3262 | ||
3263 | const vsll __builtin_altivec_vdivesd (vsll, vsll); | |
3264 | VDIVESD dives_v2di {} | |
3265 | ||
3266 | const vsi __builtin_altivec_vdivesw (vsi, vsi); | |
3267 | VDIVESW dives_v4si {} | |
3268 | ||
3269 | const vull __builtin_altivec_vdiveud (vull, vull); | |
3270 | VDIVEUD diveu_v2di {} | |
3271 | ||
3272 | const vui __builtin_altivec_vdiveuw (vui, vui); | |
3273 | VDIVEUW diveu_v4si {} | |
3274 | ||
3275 | const vsll __builtin_altivec_vdivsd (vsll, vsll); | |
3276 | VDIVSD divv2di3 {} | |
3277 | ||
3278 | const vsi __builtin_altivec_vdivsw (vsi, vsi); | |
3279 | VDIVSW divv4si3 {} | |
3280 | ||
3281 | const vull __builtin_altivec_vdivud (vull, vull); | |
3282 | VDIVUD udivv2di3 {} | |
3283 | ||
3284 | const vui __builtin_altivec_vdivuw (vui, vui); | |
3285 | VDIVUW udivv4si3 {} | |
3286 | ||
3287 | const vuc __builtin_altivec_vexpandmb (vuc); | |
3288 | VEXPANDMB vec_expand_v16qi {} | |
3289 | ||
3290 | const vull __builtin_altivec_vexpandmd (vull); | |
3291 | VEXPANDMD vec_expand_v2di {} | |
3292 | ||
3293 | const vus __builtin_altivec_vexpandmh (vus); | |
3294 | VEXPANDMH vec_expand_v8hi {} | |
3295 | ||
3296 | const vuq __builtin_altivec_vexpandmq (vuq); | |
3297 | VEXPANDMQ vec_expand_v1ti {} | |
3298 | ||
3299 | const vui __builtin_altivec_vexpandmw (vui); | |
3300 | VEXPANDMW vec_expand_v4si {} | |
3301 | ||
3302 | const vull __builtin_altivec_vextddvhx (vull, vull, unsigned int); | |
3303 | VEXTRACTDR vextractrv2di {} | |
3304 | ||
3305 | const vull __builtin_altivec_vextddvlx (vull, vull, unsigned int); | |
3306 | VEXTRACTDL vextractlv2di {} | |
3307 | ||
3308 | const vull __builtin_altivec_vextdubvhx (vuc, vuc, unsigned int); | |
3309 | VEXTRACTBR vextractrv16qi {} | |
3310 | ||
3311 | const vull __builtin_altivec_vextdubvlx (vuc, vuc, unsigned int); | |
3312 | VEXTRACTBL vextractlv16qi {} | |
3313 | ||
3314 | const vull __builtin_altivec_vextduhvhx (vus, vus, unsigned int); | |
3315 | VEXTRACTHR vextractrv8hi {} | |
3316 | ||
3317 | const vull __builtin_altivec_vextduhvlx (vus, vus, unsigned int); | |
3318 | VEXTRACTHL vextractlv8hi {} | |
3319 | ||
3320 | const vull __builtin_altivec_vextduwvhx (vui, vui, unsigned int); | |
3321 | VEXTRACTWR vextractrv4si {} | |
3322 | ||
3323 | const vull __builtin_altivec_vextduwvlx (vui, vui, unsigned int); | |
3324 | VEXTRACTWL vextractlv4si {} | |
3325 | ||
3326 | const signed int __builtin_altivec_vextractmb (vsc); | |
3327 | VEXTRACTMB vec_extract_v16qi {} | |
3328 | ||
3329 | const signed int __builtin_altivec_vextractmd (vsll); | |
3330 | VEXTRACTMD vec_extract_v2di {} | |
3331 | ||
3332 | const signed int __builtin_altivec_vextractmh (vss); | |
3333 | VEXTRACTMH vec_extract_v8hi {} | |
3334 | ||
3335 | const signed int __builtin_altivec_vextractmq (vsq); | |
3336 | VEXTRACTMQ vec_extract_v1ti {} | |
3337 | ||
3338 | const signed int __builtin_altivec_vextractmw (vsi); | |
3339 | VEXTRACTMW vec_extract_v4si {} | |
3340 | ||
3341 | const unsigned long long __builtin_altivec_vgnb (vull, const int <2,7>); | |
3342 | VGNB vgnb {} | |
3343 | ||
3344 | const vuc __builtin_altivec_vinsgubvlx (unsigned int, vuc, unsigned int); | |
3345 | VINSERTGPRBL vinsertgl_v16qi {} | |
3346 | ||
3347 | const vsc __builtin_altivec_vinsgubvrx (signed int, vsc, signed int); | |
3348 | VINSERTGPRBR vinsertgr_v16qi {} | |
3349 | ||
3350 | const vull __builtin_altivec_vinsgudvlx (unsigned int, vull, unsigned int); | |
3351 | VINSERTGPRDL vinsertgl_v2di {} | |
3352 | ||
3353 | const vsll __builtin_altivec_vinsgudvrx (signed int, vsll, signed int); | |
3354 | VINSERTGPRDR vinsertgr_v2di {} | |
3355 | ||
3356 | const vus __builtin_altivec_vinsguhvlx (unsigned int, vus, unsigned int); | |
3357 | VINSERTGPRHL vinsertgl_v8hi {} | |
3358 | ||
3359 | const vss __builtin_altivec_vinsguhvrx (signed int, vss, signed int); | |
3360 | VINSERTGPRHR vinsertgr_v8hi {} | |
3361 | ||
3362 | const vui __builtin_altivec_vinsguwvlx (unsigned int, vui, unsigned int); | |
3363 | VINSERTGPRWL vinsertgl_v4si {} | |
3364 | ||
3365 | const vsi __builtin_altivec_vinsguwvrx (signed int, vsi, signed int); | |
3366 | VINSERTGPRWR vinsertgr_v4si {} | |
3367 | ||
3368 | const vuc __builtin_altivec_vinsvubvlx (vuc, vuc, unsigned int); | |
3369 | VINSERTVPRBL vinsertvl_v16qi {} | |
3370 | ||
3371 | const vsc __builtin_altivec_vinsvubvrx (vsc, vsc, signed int); | |
3372 | VINSERTVPRBR vinsertvr_v16qi {} | |
3373 | ||
3374 | const vus __builtin_altivec_vinsvuhvlx (vus, vus, unsigned int); | |
3375 | VINSERTVPRHL vinsertvl_v8hi {} | |
3376 | ||
3377 | const vss __builtin_altivec_vinsvuhvrx (vss, vss, signed int); | |
3378 | VINSERTVPRHR vinsertvr_v8hi {} | |
3379 | ||
3380 | const vui __builtin_altivec_vinsvuwvlx (vui, vui, unsigned int); | |
3381 | VINSERTVPRWL vinsertvl_v4si {} | |
3382 | ||
3383 | const vsi __builtin_altivec_vinsvuwvrx (vsi, vsi, signed int); | |
3384 | VINSERTVPRWR vinsertvr_v4si {} | |
3385 | ||
3386 | const vsll __builtin_altivec_vmodsd (vsll, vsll); | |
3387 | VMODSD modv2di3 {} | |
3388 | ||
3389 | const vsi __builtin_altivec_vmodsw (vsi, vsi); | |
3390 | VMODSW modv4si3 {} | |
3391 | ||
3392 | const vull __builtin_altivec_vmodud (vull, vull); | |
3393 | VMODUD umodv2di3 {} | |
3394 | ||
3395 | const vui __builtin_altivec_vmoduw (vui, vui); | |
3396 | VMODUW umodv4si3 {} | |
3397 | ||
3398 | const vsq __builtin_altivec_vmulesd (vsll, vsll); | |
3399 | VMULESD vec_widen_smult_even_v2di {} | |
3400 | ||
3401 | const vuq __builtin_altivec_vmuleud (vull, vull); | |
3402 | VMULEUD vec_widen_umult_even_v2di {} | |
3403 | ||
3404 | const vsll __builtin_altivec_vmulhsd (vsll, vsll); | |
3405 | VMULHSD smulv2di3_highpart {} | |
3406 | ||
3407 | const vsi __builtin_altivec_vmulhsw (vsi, vsi); | |
3408 | VMULHSW smulv4si3_highpart {} | |
3409 | ||
3410 | const vull __builtin_altivec_vmulhud (vull, vull); | |
3411 | VMULHUD umulv2di3_highpart {} | |
3412 | ||
3413 | const vui __builtin_altivec_vmulhuw (vui, vui); | |
3414 | VMULHUW umulv4si3_highpart {} | |
3415 | ||
3416 | const vsll __builtin_altivec_vmulld (vsll, vsll); | |
3417 | VMULLD mulv2di3 {} | |
3418 | ||
3419 | const vsq __builtin_altivec_vmulosd (vsll, vsll); | |
3420 | VMULOSD vec_widen_smult_odd_v2di {} | |
3421 | ||
3422 | const vuq __builtin_altivec_vmuloud (vull, vull); | |
3423 | VMULOUD vec_widen_umult_odd_v2di {} | |
3424 | ||
3425 | const vsq __builtin_altivec_vnor_v1ti (vsq, vsq); | |
3426 | VNOR_V1TI norv1ti3 {} | |
3427 | ||
3428 | const vuq __builtin_altivec_vnor_v1ti_uns (vuq, vuq); | |
3429 | VNOR_V1TI_UNS norv1ti3 {} | |
3430 | ||
3431 | const vull __builtin_altivec_vpdepd (vull, vull); | |
3432 | VPDEPD vpdepd {} | |
3433 | ||
3434 | const vull __builtin_altivec_vpextd (vull, vull); | |
3435 | VPEXTD vpextd {} | |
3436 | ||
ed3fea09 BS |
3437 | const vuc __builtin_altivec_vreplace_un_uv2di (vull, unsigned long long, \ |
3438 | const int<4>); | |
50cb8300 BS |
3439 | VREPLACE_UN_UV2DI vreplace_un_v2di {} |
3440 | ||
ed3fea09 | 3441 | const vuc __builtin_altivec_vreplace_un_uv4si (vui, unsigned int, \ |
206c08ce | 3442 | const int<4>); |
50cb8300 BS |
3443 | VREPLACE_UN_UV4SI vreplace_un_v4si {} |
3444 | ||
ed3fea09 | 3445 | const vuc __builtin_altivec_vreplace_un_v2df (vd, double, const int<4>); |
50cb8300 BS |
3446 | VREPLACE_UN_V2DF vreplace_un_v2df {} |
3447 | ||
ed3fea09 BS |
3448 | const vuc __builtin_altivec_vreplace_un_v2di (vsll, signed long long, \ |
3449 | const int<4>); | |
50cb8300 BS |
3450 | VREPLACE_UN_V2DI vreplace_un_v2di {} |
3451 | ||
ed3fea09 | 3452 | const vuc __builtin_altivec_vreplace_un_v4sf (vf, float, const int<4>); |
50cb8300 BS |
3453 | VREPLACE_UN_V4SF vreplace_un_v4sf {} |
3454 | ||
ed3fea09 | 3455 | const vuc __builtin_altivec_vreplace_un_v4si (vsi, signed int, const int<4>); |
50cb8300 BS |
3456 | VREPLACE_UN_V4SI vreplace_un_v4si {} |
3457 | ||
206c08ce BS |
3458 | const vull __builtin_altivec_vreplace_uv2di (vull, unsigned long long, \ |
3459 | const int<1>); | |
50cb8300 BS |
3460 | VREPLACE_ELT_UV2DI vreplace_elt_v2di {} |
3461 | ||
3462 | const vui __builtin_altivec_vreplace_uv4si (vui, unsigned int, const int<2>); | |
3463 | VREPLACE_ELT_UV4SI vreplace_elt_v4si {} | |
3464 | ||
3465 | const vd __builtin_altivec_vreplace_v2df (vd, double, const int<1>); | |
3466 | VREPLACE_ELT_V2DF vreplace_elt_v2df {} | |
3467 | ||
206c08ce BS |
3468 | const vsll __builtin_altivec_vreplace_v2di (vsll, signed long long, \ |
3469 | const int<1>); | |
50cb8300 BS |
3470 | VREPLACE_ELT_V2DI vreplace_elt_v2di {} |
3471 | ||
3472 | const vf __builtin_altivec_vreplace_v4sf (vf, float, const int<2>); | |
3473 | VREPLACE_ELT_V4SF vreplace_elt_v4sf {} | |
3474 | ||
3475 | const vsi __builtin_altivec_vreplace_v4si (vsi, signed int, const int<2>); | |
3476 | VREPLACE_ELT_V4SI vreplace_elt_v4si {} | |
3477 | ||
3478 | const vsq __builtin_altivec_vrlq (vsq, vuq); | |
3479 | VRLQ vrotlv1ti3 {} | |
3480 | ||
3481 | const vsq __builtin_altivec_vrlqmi (vsq, vsq, vuq); | |
3482 | VRLQMI altivec_vrlqmi {} | |
3483 | ||
3484 | const vsq __builtin_altivec_vrlqnm (vsq, vuq); | |
3485 | VRLQNM altivec_vrlqnm {} | |
3486 | ||
3487 | const vsq __builtin_altivec_vsignext (vsll); | |
3488 | VSIGNEXTSD2Q vsignextend_v2di_v1ti {} | |
3489 | ||
3490 | const vsc __builtin_altivec_vsldb_v16qi (vsc, vsc, const int<3>); | |
3491 | VSLDB_V16QI vsldb_v16qi {} | |
3492 | ||
3493 | const vsll __builtin_altivec_vsldb_v2di (vsll, vsll, const int<3>); | |
3494 | VSLDB_V2DI vsldb_v2di {} | |
3495 | ||
3496 | const vsi __builtin_altivec_vsldb_v4si (vsi, vsi, const int<3>); | |
3497 | VSLDB_V4SI vsldb_v4si {} | |
3498 | ||
3499 | const vss __builtin_altivec_vsldb_v8hi (vss, vss, const int<3>); | |
3500 | VSLDB_V8HI vsldb_v8hi {} | |
3501 | ||
3502 | const vsq __builtin_altivec_vslq (vsq, vuq); | |
3503 | VSLQ vashlv1ti3 {} | |
3504 | ||
3505 | const vsq __builtin_altivec_vsraq (vsq, vuq); | |
3506 | VSRAQ vashrv1ti3 {} | |
3507 | ||
3508 | const vsc __builtin_altivec_vsrdb_v16qi (vsc, vsc, const int<3>); | |
3509 | VSRDB_V16QI vsrdb_v16qi {} | |
3510 | ||
3511 | const vsll __builtin_altivec_vsrdb_v2di (vsll, vsll, const int<3>); | |
3512 | VSRDB_V2DI vsrdb_v2di {} | |
3513 | ||
3514 | const vsi __builtin_altivec_vsrdb_v4si (vsi, vsi, const int<3>); | |
3515 | VSRDB_V4SI vsrdb_v4si {} | |
3516 | ||
3517 | const vss __builtin_altivec_vsrdb_v8hi (vss, vss, const int<3>); | |
3518 | VSRDB_V8HI vsrdb_v8hi {} | |
3519 | ||
3520 | const vsq __builtin_altivec_vsrq (vsq, vuq); | |
3521 | VSRQ vlshrv1ti3 {} | |
3522 | ||
3523 | const vsc __builtin_altivec_vstribl (vsc); | |
3524 | VSTRIBL vstril_v16qi {} | |
3525 | ||
3526 | const signed int __builtin_altivec_vstribl_p (vsc); | |
3527 | VSTRIBL_P vstril_p_v16qi {} | |
3528 | ||
3529 | const vsc __builtin_altivec_vstribr (vsc); | |
3530 | VSTRIBR vstrir_v16qi {} | |
3531 | ||
3532 | const signed int __builtin_altivec_vstribr_p (vsc); | |
3533 | VSTRIBR_P vstrir_p_v16qi {} | |
3534 | ||
3535 | const vss __builtin_altivec_vstrihl (vss); | |
3536 | VSTRIHL vstril_v8hi {} | |
3537 | ||
3538 | const signed int __builtin_altivec_vstrihl_p (vss); | |
3539 | VSTRIHL_P vstril_p_v8hi {} | |
3540 | ||
3541 | const vss __builtin_altivec_vstrihr (vss); | |
3542 | VSTRIHR vstrir_v8hi {} | |
3543 | ||
3544 | const signed int __builtin_altivec_vstrihr_p (vss); | |
3545 | VSTRIHR_P vstrir_p_v8hi {} | |
3546 | ||
943d631a BS |
3547 | const vuq __builtin_vsx_vmsumcud (vull, vull, vuq); |
3548 | VMSUMCUD vmsumcud {} | |
3549 | ||
50cb8300 BS |
3550 | const signed int __builtin_vsx_xvtlsbb_all_ones (vsc); |
3551 | XVTLSBB_ONES xvtlsbbo {} | |
3552 | ||
3553 | const signed int __builtin_vsx_xvtlsbb_all_zeros (vsc); | |
3554 | XVTLSBB_ZEROS xvtlsbbz {} | |
3555 | ||
3556 | const vf __builtin_vsx_vxxsplti32dx_v4sf (vf, const int<1>, float); | |
3557 | VXXSPLTI32DX_V4SF xxsplti32dx_v4sf {} | |
3558 | ||
3559 | const vsi __builtin_vsx_vxxsplti32dx_v4si (vsi, const int<1>, signed int); | |
3560 | VXXSPLTI32DX_V4SI xxsplti32dx_v4si {} | |
3561 | ||
3562 | const vd __builtin_vsx_vxxspltidp (float); | |
3563 | VXXSPLTIDP xxspltidp_v2df {} | |
3564 | ||
3565 | const vf __builtin_vsx_vxxspltiw_v4sf (float); | |
3566 | VXXSPLTIW_V4SF xxspltiw_v4sf {} | |
3567 | ||
3568 | const vsi __builtin_vsx_vxxspltiw_v4si (signed int); | |
3569 | VXXSPLTIW_V4SI xxspltiw_v4si {} | |
3570 | ||
3571 | const vuc __builtin_vsx_xvcvbf16spn (vuc); | |
3572 | XVCVBF16SPN vsx_xvcvbf16spn {} | |
3573 | ||
3574 | const vuc __builtin_vsx_xvcvspbf16 (vuc); | |
3575 | XVCVSPBF16 vsx_xvcvspbf16 {} | |
3576 | ||
3577 | const vuc __builtin_vsx_xxblend_v16qi (vuc, vuc, vuc); | |
3578 | VXXBLEND_V16QI xxblend_v16qi {} | |
3579 | ||
3580 | const vd __builtin_vsx_xxblend_v2df (vd, vd, vd); | |
3581 | VXXBLEND_V2DF xxblend_v2df {} | |
3582 | ||
3583 | const vull __builtin_vsx_xxblend_v2di (vull, vull, vull); | |
3584 | VXXBLEND_V2DI xxblend_v2di {} | |
3585 | ||
3586 | const vf __builtin_vsx_xxblend_v4sf (vf, vf, vf); | |
3587 | VXXBLEND_V4SF xxblend_v4sf {} | |
3588 | ||
3589 | const vui __builtin_vsx_xxblend_v4si (vui, vui, vui); | |
3590 | VXXBLEND_V4SI xxblend_v4si {} | |
3591 | ||
3592 | const vus __builtin_vsx_xxblend_v8hi (vus, vus, vus); | |
3593 | VXXBLEND_V8HI xxblend_v8hi {} | |
3594 | ||
3595 | const vull __builtin_vsx_xxeval (vull, vull, vull, const int <8>); | |
3596 | XXEVAL xxeval {} | |
3597 | ||
3598 | const vuc __builtin_vsx_xxgenpcvm_v16qi (vuc, const int <2>); | |
3599 | XXGENPCVM_V16QI xxgenpcvm_v16qi {} | |
3600 | ||
3601 | const vull __builtin_vsx_xxgenpcvm_v2di (vull, const int <2>); | |
3602 | XXGENPCVM_V2DI xxgenpcvm_v2di {} | |
3603 | ||
3604 | const vui __builtin_vsx_xxgenpcvm_v4si (vui, const int <2>); | |
3605 | XXGENPCVM_V4SI xxgenpcvm_v4si {} | |
3606 | ||
3607 | const vus __builtin_vsx_xxgenpcvm_v8hi (vus, const int <2>); | |
3608 | XXGENPCVM_V8HI xxgenpcvm_v8hi {} | |
3609 | ||
3610 | const vuc __builtin_vsx_xxpermx_uv16qi (vuc, vuc, vuc, const int<3>); | |
3611 | XXPERMX_UV16QI xxpermx {} | |
3612 | ||
3613 | const vull __builtin_vsx_xxpermx_uv2di (vull, vull, vuc, const int<3>); | |
3614 | XXPERMX_UV2DI xxpermx {} | |
3615 | ||
3616 | const vui __builtin_vsx_xxpermx_uv4si (vui, vui, vuc, const int<3>); | |
3617 | XXPERMX_UV4SI xxpermx {} | |
3618 | ||
3619 | const vus __builtin_vsx_xxpermx_uv8hi (vus, vus, vuc, const int<3>); | |
3620 | XXPERMX_UV8HI xxpermx {} | |
3621 | ||
3622 | const vsc __builtin_vsx_xxpermx_v16qi (vsc, vsc, vuc, const int<3>); | |
3623 | XXPERMX_V16QI xxpermx {} | |
3624 | ||
3625 | const vd __builtin_vsx_xxpermx_v2df (vd, vd, vuc, const int<3>); | |
3626 | XXPERMX_V2DF xxpermx {} | |
3627 | ||
3628 | const vsll __builtin_vsx_xxpermx_v2di (vsll, vsll, vuc, const int<3>); | |
3629 | XXPERMX_V2DI xxpermx {} | |
3630 | ||
3631 | const vf __builtin_vsx_xxpermx_v4sf (vf, vf, vuc, const int<3>); | |
3632 | XXPERMX_V4SF xxpermx {} | |
3633 | ||
3634 | const vsi __builtin_vsx_xxpermx_v4si (vsi, vsi, vuc, const int<3>); | |
3635 | XXPERMX_V4SI xxpermx {} | |
3636 | ||
3637 | const vss __builtin_vsx_xxpermx_v8hi (vss, vss, vuc, const int<3>); | |
3638 | XXPERMX_V8HI xxpermx {} | |
3639 | ||
206c08ce BS |
3640 | pure unsigned __int128 __builtin_altivec_ze_lxvrbx (signed long, \ |
3641 | const unsigned char *); | |
50cb8300 BS |
3642 | ZE_LXVRBX vsx_lxvrbx {lxvrze} |
3643 | ||
206c08ce BS |
3644 | pure unsigned __int128 __builtin_altivec_ze_lxvrhx (signed long, \ |
3645 | const unsigned short *); | |
50cb8300 BS |
3646 | ZE_LXVRHX vsx_lxvrhx {lxvrze} |
3647 | ||
206c08ce BS |
3648 | pure unsigned __int128 __builtin_altivec_ze_lxvrwx (signed long, \ |
3649 | const unsigned int *); | |
50cb8300 BS |
3650 | ZE_LXVRWX vsx_lxvrwx {lxvrze} |
3651 | ||
206c08ce BS |
3652 | pure unsigned __int128 \ |
3653 | __builtin_altivec_ze_lxvrdx (signed long, const unsigned long long *); | |
50cb8300 BS |
3654 | ZE_LXVRDX vsx_lxvrdx {lxvrze} |
3655 | ||
3656 | ||
3657 | [power10-64] | |
206c08ce BS |
3658 | const unsigned long long __builtin_cfuged (unsigned long long, \ |
3659 | unsigned long long); | |
50cb8300 BS |
3660 | CFUGED cfuged {} |
3661 | ||
206c08ce BS |
3662 | const unsigned long long __builtin_cntlzdm (unsigned long long, \ |
3663 | unsigned long long); | |
50cb8300 BS |
3664 | CNTLZDM cntlzdm {} |
3665 | ||
206c08ce BS |
3666 | const unsigned long long __builtin_cnttzdm (unsigned long long, \ |
3667 | unsigned long long); | |
50cb8300 BS |
3668 | CNTTZDM cnttzdm {} |
3669 | ||
206c08ce BS |
3670 | const unsigned long long __builtin_pdepd (unsigned long long, \ |
3671 | unsigned long long); | |
50cb8300 BS |
3672 | PDEPD pdepd {} |
3673 | ||
206c08ce BS |
3674 | const unsigned long long __builtin_pextd (unsigned long long, \ |
3675 | unsigned long long); | |
50cb8300 | 3676 | PEXTD pextd {} |
344951b6 BS |
3677 | |
3678 | ||
3679 | [mma] | |
3680 | void __builtin_mma_assemble_acc (v512 *, vuc, vuc, vuc, vuc); | |
6cba7d1d | 3681 | ASSEMBLE_ACC nothing {mma,mmaint} |
344951b6 BS |
3682 | |
3683 | v512 __builtin_mma_assemble_acc_internal (vuc, vuc, vuc, vuc); | |
3684 | ASSEMBLE_ACC_INTERNAL mma_assemble_acc {mma} | |
3685 | ||
3686 | void __builtin_mma_assemble_pair (v256 *, vuc, vuc); | |
6cba7d1d | 3687 | ASSEMBLE_PAIR nothing {mma,mmaint} |
344951b6 BS |
3688 | |
3689 | v256 __builtin_mma_assemble_pair_internal (vuc, vuc); | |
3690 | ASSEMBLE_PAIR_INTERNAL vsx_assemble_pair {mma} | |
3691 | ||
3692 | void __builtin_mma_build_acc (v512 *, vuc, vuc, vuc, vuc); | |
6cba7d1d | 3693 | BUILD_ACC nothing {mma,mmaint} |
344951b6 BS |
3694 | |
3695 | v512 __builtin_mma_build_acc_internal (vuc, vuc, vuc, vuc); | |
3696 | BUILD_ACC_INTERNAL mma_assemble_acc {mma} | |
3697 | ||
3698 | void __builtin_mma_disassemble_acc (void *, v512 *); | |
6cba7d1d | 3699 | DISASSEMBLE_ACC nothing {mma,quad,mmaint} |
344951b6 BS |
3700 | |
3701 | vuc __builtin_mma_disassemble_acc_internal (v512, const int<2>); | |
3702 | DISASSEMBLE_ACC_INTERNAL mma_disassemble_acc {mma} | |
3703 | ||
3704 | void __builtin_mma_disassemble_pair (void *, v256 *); | |
6cba7d1d | 3705 | DISASSEMBLE_PAIR nothing {mma,pair,mmaint} |
344951b6 BS |
3706 | |
3707 | vuc __builtin_mma_disassemble_pair_internal (v256, const int<2>); | |
3708 | DISASSEMBLE_PAIR_INTERNAL vsx_disassemble_pair {mma} | |
3709 | ||
206c08ce BS |
3710 | void __builtin_mma_pmxvbf16ger2 (v512 *, vuc, vuc, const int<4>, \ |
3711 | const int<4>, const int<2>); | |
6cba7d1d | 3712 | PMXVBF16GER2 nothing {mma,mmaint} |
344951b6 | 3713 | |
206c08ce BS |
3714 | v512 __builtin_mma_pmxvbf16ger2_internal (vuc, vuc, const int<4>, \ |
3715 | const int<4>, const int<2>); | |
344951b6 BS |
3716 | PMXVBF16GER2_INTERNAL mma_pmxvbf16ger2 {mma} |
3717 | ||
206c08ce BS |
3718 | void __builtin_mma_pmxvbf16ger2nn (v512 *, vuc, vuc, const int<4>, \ |
3719 | const int<4>, const int<2>); | |
6cba7d1d | 3720 | PMXVBF16GER2NN nothing {mma,quad,mmaint} |
344951b6 | 3721 | |
206c08ce BS |
3722 | v512 __builtin_mma_pmxvbf16ger2nn_internal (v512, vuc, vuc, const int<4>, \ |
3723 | const int<4>, const int<2>); | |
344951b6 BS |
3724 | PMXVBF16GER2NN_INTERNAL mma_pmxvbf16ger2nn {mma,quad} |
3725 | ||
206c08ce BS |
3726 | void __builtin_mma_pmxvbf16ger2np (v512 *, vuc, vuc, const int<4>, \ |
3727 | const int<4>, const int<2>); | |
6cba7d1d | 3728 | PMXVBF16GER2NP nothing {mma,quad,mmaint} |
344951b6 | 3729 | |
206c08ce BS |
3730 | v512 __builtin_mma_pmxvbf16ger2np_internal (v512, vuc, vuc, const int<4>, \ |
3731 | const int<4>, const int<2>); | |
344951b6 BS |
3732 | PMXVBF16GER2NP_INTERNAL mma_pmxvbf16ger2np {mma,quad} |
3733 | ||
206c08ce BS |
3734 | void __builtin_mma_pmxvbf16ger2pn (v512 *, vuc, vuc, const int<4>, \ |
3735 | const int<4>, const int<2>); | |
6cba7d1d | 3736 | PMXVBF16GER2PN nothing {mma,quad,mmaint} |
344951b6 | 3737 | |
206c08ce BS |
3738 | v512 __builtin_mma_pmxvbf16ger2pn_internal (v512, vuc, vuc, const int<4>, \ |
3739 | const int<4>, const int<2>); | |
344951b6 BS |
3740 | PMXVBF16GER2PN_INTERNAL mma_pmxvbf16ger2pn {mma,quad} |
3741 | ||
206c08ce BS |
3742 | void __builtin_mma_pmxvbf16ger2pp (v512 *, vuc, vuc, const int<4>, \ |
3743 | const int<4>, const int<2>); | |
6cba7d1d | 3744 | PMXVBF16GER2PP nothing {mma,quad,mmaint} |
344951b6 | 3745 | |
206c08ce BS |
3746 | v512 __builtin_mma_pmxvbf16ger2pp_internal (v512, vuc, vuc, const int<4>, \ |
3747 | const int<4>, const int<2>); | |
344951b6 BS |
3748 | PMXVBF16GER2PP_INTERNAL mma_pmxvbf16ger2pp {mma,quad} |
3749 | ||
206c08ce BS |
3750 | void __builtin_mma_pmxvf16ger2 (v512 *, vuc, vuc, const int<4>, \ |
3751 | const int<4>, const int<2>); | |
6cba7d1d | 3752 | PMXVF16GER2 nothing {mma,mmaint} |
344951b6 | 3753 | |
206c08ce BS |
3754 | v512 __builtin_mma_pmxvf16ger2_internal (vuc, vuc, const int<4>, \ |
3755 | const int<4>, const int<2>); | |
344951b6 BS |
3756 | PMXVF16GER2_INTERNAL mma_pmxvf16ger2 {mma} |
3757 | ||
206c08ce BS |
3758 | void __builtin_mma_pmxvf16ger2nn (v512 *, vuc, vuc, const int<4>, \ |
3759 | const int<4>, const int<2>); | |
6cba7d1d | 3760 | PMXVF16GER2NN nothing {mma,quad,mmaint} |
344951b6 | 3761 | |
206c08ce BS |
3762 | v512 __builtin_mma_pmxvf16ger2nn_internal (v512, vuc, vuc, const int<4>, \ |
3763 | const int<4>, const int<2>); | |
344951b6 BS |
3764 | PMXVF16GER2NN_INTERNAL mma_pmxvf16ger2nn {mma,quad} |
3765 | ||
206c08ce BS |
3766 | void __builtin_mma_pmxvf16ger2np (v512 *, vuc, vuc, const int<4>, \ |
3767 | const int<4>, const int<2>); | |
6cba7d1d | 3768 | PMXVF16GER2NP nothing {mma,quad,mmaint} |
344951b6 | 3769 | |
206c08ce BS |
3770 | v512 __builtin_mma_pmxvf16ger2np_internal (v512, vuc, vuc, const int<4>, \ |
3771 | const int<4>, const int<2>); | |
344951b6 BS |
3772 | PMXVF16GER2NP_INTERNAL mma_pmxvf16ger2np {mma,quad} |
3773 | ||
206c08ce BS |
3774 | void __builtin_mma_pmxvf16ger2pn (v512 *, vuc, vuc, const int<4>, \ |
3775 | const int<4>, const int<2>); | |
6cba7d1d | 3776 | PMXVF16GER2PN nothing {mma,quad,mmaint} |
344951b6 | 3777 | |
206c08ce BS |
3778 | v512 __builtin_mma_pmxvf16ger2pn_internal (v512, vuc, vuc, const int<4>, \ |
3779 | const int<4>, const int<2>); | |
344951b6 BS |
3780 | PMXVF16GER2PN_INTERNAL mma_pmxvf16ger2pn {mma,quad} |
3781 | ||
206c08ce BS |
3782 | void __builtin_mma_pmxvf16ger2pp (v512 *, vuc, vuc, const int<4>, \ |
3783 | const int<4>, const int<2>); | |
6cba7d1d | 3784 | PMXVF16GER2PP nothing {mma,quad,mmaint} |
344951b6 | 3785 | |
206c08ce BS |
3786 | v512 __builtin_mma_pmxvf16ger2pp_internal (v512, vuc, vuc, const int<4>, \ |
3787 | const int<4>, const int<2>); | |
344951b6 BS |
3788 | PMXVF16GER2PP_INTERNAL mma_pmxvf16ger2pp {mma,quad} |
3789 | ||
3790 | void __builtin_mma_pmxvf32ger (v512 *, vuc, vuc, const int<4>, const int<4>); | |
6cba7d1d | 3791 | PMXVF32GER nothing {mma,mmaint} |
344951b6 | 3792 | |
206c08ce BS |
3793 | v512 __builtin_mma_pmxvf32ger_internal (vuc, vuc, const int<4>, \ |
3794 | const int<4>); | |
344951b6 BS |
3795 | PMXVF32GER_INTERNAL mma_pmxvf32ger {mma} |
3796 | ||
206c08ce BS |
3797 | void __builtin_mma_pmxvf32gernn (v512 *, vuc, vuc, const int<4>, \ |
3798 | const int<4>); | |
6cba7d1d | 3799 | PMXVF32GERNN nothing {mma,quad,mmaint} |
344951b6 | 3800 | |
206c08ce BS |
3801 | v512 __builtin_mma_pmxvf32gernn_internal (v512, vuc, vuc, const int<4>, \ |
3802 | const int<4>); | |
344951b6 BS |
3803 | PMXVF32GERNN_INTERNAL mma_pmxvf32gernn {mma,quad} |
3804 | ||
206c08ce BS |
3805 | void __builtin_mma_pmxvf32gernp (v512 *, vuc, vuc, const int<4>, \ |
3806 | const int<4>); | |
6cba7d1d | 3807 | PMXVF32GERNP nothing {mma,quad,mmaint} |
344951b6 | 3808 | |
206c08ce BS |
3809 | v512 __builtin_mma_pmxvf32gernp_internal (v512, vuc, vuc, const int<4>, \ |
3810 | const int<4>); | |
344951b6 BS |
3811 | PMXVF32GERNP_INTERNAL mma_pmxvf32gernp {mma,quad} |
3812 | ||
206c08ce BS |
3813 | void __builtin_mma_pmxvf32gerpn (v512 *, vuc, vuc, const int<4>, \ |
3814 | const int<4>); | |
6cba7d1d | 3815 | PMXVF32GERPN nothing {mma,quad,mmaint} |
344951b6 | 3816 | |
206c08ce BS |
3817 | v512 __builtin_mma_pmxvf32gerpn_internal (v512, vuc, vuc, const int<4>, \ |
3818 | const int<4>); | |
344951b6 BS |
3819 | PMXVF32GERPN_INTERNAL mma_pmxvf32gerpn {mma,quad} |
3820 | ||
206c08ce BS |
3821 | void __builtin_mma_pmxvf32gerpp (v512 *, vuc, vuc, const int<4>, \ |
3822 | const int<4>); | |
6cba7d1d | 3823 | PMXVF32GERPP nothing {mma,quad,mmaint} |
344951b6 | 3824 | |
206c08ce BS |
3825 | v512 __builtin_mma_pmxvf32gerpp_internal (v512, vuc, vuc, const int<4>, \ |
3826 | const int<4>); | |
344951b6 BS |
3827 | PMXVF32GERPP_INTERNAL mma_pmxvf32gerpp {mma,quad} |
3828 | ||
206c08ce BS |
3829 | void __builtin_mma_pmxvf64ger (v512 *, v256, vuc, const int<4>, \ |
3830 | const int<2>); | |
6cba7d1d | 3831 | PMXVF64GER nothing {mma,pair,mmaint} |
344951b6 | 3832 | |
206c08ce BS |
3833 | v512 __builtin_mma_pmxvf64ger_internal (v256, vuc, const int<4>, \ |
3834 | const int<2>); | |
344951b6 BS |
3835 | PMXVF64GER_INTERNAL mma_pmxvf64ger {mma,pair} |
3836 | ||
206c08ce BS |
3837 | void __builtin_mma_pmxvf64gernn (v512 *, v256, vuc, const int<4>, \ |
3838 | const int<2>); | |
6cba7d1d | 3839 | PMXVF64GERNN nothing {mma,pair,quad,mmaint} |
344951b6 | 3840 | |
206c08ce BS |
3841 | v512 __builtin_mma_pmxvf64gernn_internal (v512, v256, vuc, const int<4>, \ |
3842 | const int<2>); | |
344951b6 BS |
3843 | PMXVF64GERNN_INTERNAL mma_pmxvf64gernn {mma,pair,quad} |
3844 | ||
206c08ce BS |
3845 | void __builtin_mma_pmxvf64gernp (v512 *, v256, vuc, const int<4>, \ |
3846 | const int<2>); | |
6cba7d1d | 3847 | PMXVF64GERNP nothing {mma,pair,quad,mmaint} |
344951b6 | 3848 | |
206c08ce BS |
3849 | v512 __builtin_mma_pmxvf64gernp_internal (v512, v256, vuc, const int<4>, \ |
3850 | const int<2>); | |
344951b6 BS |
3851 | PMXVF64GERNP_INTERNAL mma_pmxvf64gernp {mma,pair,quad} |
3852 | ||
206c08ce BS |
3853 | void __builtin_mma_pmxvf64gerpn (v512 *, v256, vuc, const int<4>, \ |
3854 | const int<2>); | |
6cba7d1d | 3855 | PMXVF64GERPN nothing {mma,pair,quad,mmaint} |
344951b6 | 3856 | |
206c08ce BS |
3857 | v512 __builtin_mma_pmxvf64gerpn_internal (v512, v256, vuc, const int<4>, \ |
3858 | const int<2>); | |
344951b6 BS |
3859 | PMXVF64GERPN_INTERNAL mma_pmxvf64gerpn {mma,pair,quad} |
3860 | ||
206c08ce BS |
3861 | void __builtin_mma_pmxvf64gerpp (v512 *, v256, vuc, const int<4>, \ |
3862 | const int<2>); | |
6cba7d1d | 3863 | PMXVF64GERPP nothing {mma,pair,quad,mmaint} |
344951b6 | 3864 | |
206c08ce BS |
3865 | v512 __builtin_mma_pmxvf64gerpp_internal (v512, v256, vuc, const int<4>, \ |
3866 | const int<2>); | |
344951b6 BS |
3867 | PMXVF64GERPP_INTERNAL mma_pmxvf64gerpp {mma,pair,quad} |
3868 | ||
206c08ce BS |
3869 | void __builtin_mma_pmxvi16ger2 (v512 *, vuc, vuc, const int<4>, \ |
3870 | const int<4>, const int<2>); | |
6cba7d1d | 3871 | PMXVI16GER2 nothing {mma,mmaint} |
344951b6 | 3872 | |
206c08ce BS |
3873 | v512 __builtin_mma_pmxvi16ger2_internal (vuc, vuc, const int<4>, \ |
3874 | const int<4>, const int<2>); | |
344951b6 BS |
3875 | PMXVI16GER2_INTERNAL mma_pmxvi16ger2 {mma} |
3876 | ||
206c08ce BS |
3877 | void __builtin_mma_pmxvi16ger2pp (v512 *, vuc, vuc, const int<4>, \ |
3878 | const int<4>, const int<2>); | |
6cba7d1d | 3879 | PMXVI16GER2PP nothing {mma,quad,mmaint} |
344951b6 | 3880 | |
206c08ce BS |
3881 | v512 __builtin_mma_pmxvi16ger2pp_internal (v512, vuc, vuc, const int<4>, \ |
3882 | const int<4>, const int<2>); | |
344951b6 BS |
3883 | PMXVI16GER2PP_INTERNAL mma_pmxvi16ger2pp {mma,quad} |
3884 | ||
206c08ce BS |
3885 | void __builtin_mma_pmxvi16ger2s (v512 *, vuc, vuc, const int<4>, \ |
3886 | const int<4>, const int<2>); | |
6cba7d1d | 3887 | PMXVI16GER2S nothing {mma,mmaint} |
344951b6 | 3888 | |
206c08ce BS |
3889 | v512 __builtin_mma_pmxvi16ger2s_internal (vuc, vuc, const int<4>, \ |
3890 | const int<4>, const int<2>); | |
344951b6 BS |
3891 | PMXVI16GER2S_INTERNAL mma_pmxvi16ger2s {mma} |
3892 | ||
206c08ce BS |
3893 | void __builtin_mma_pmxvi16ger2spp (v512 *, vuc, vuc, const int<4>, \ |
3894 | const int<4>, const int<2>); | |
6cba7d1d | 3895 | PMXVI16GER2SPP nothing {mma,quad,mmaint} |
344951b6 | 3896 | |
206c08ce BS |
3897 | v512 __builtin_mma_pmxvi16ger2spp_internal (v512, vuc, vuc, const int<4>, \ |
3898 | const int<4>, const int<2>); | |
344951b6 BS |
3899 | PMXVI16GER2SPP_INTERNAL mma_pmxvi16ger2spp {mma,quad} |
3900 | ||
206c08ce BS |
3901 | void __builtin_mma_pmxvi4ger8 (v512 *, vuc, vuc, const int<4>, \ |
3902 | const int<4>, const int<8>); | |
6cba7d1d | 3903 | PMXVI4GER8 nothing {mma,mmaint} |
344951b6 | 3904 | |
206c08ce BS |
3905 | v512 __builtin_mma_pmxvi4ger8_internal (vuc, vuc, const int<4>, \ |
3906 | const int<4>, const int<8>); | |
344951b6 BS |
3907 | PMXVI4GER8_INTERNAL mma_pmxvi4ger8 {mma} |
3908 | ||
206c08ce BS |
3909 | void __builtin_mma_pmxvi4ger8pp (v512 *, vuc, vuc, const int<4>, \ |
3910 | const int<4>, const int<4>); | |
6cba7d1d | 3911 | PMXVI4GER8PP nothing {mma,quad,mmaint} |
344951b6 | 3912 | |
206c08ce BS |
3913 | v512 __builtin_mma_pmxvi4ger8pp_internal (v512, vuc, vuc, const int<4>, \ |
3914 | const int<4>, const int<4>); | |
344951b6 BS |
3915 | PMXVI4GER8PP_INTERNAL mma_pmxvi4ger8pp {mma,quad} |
3916 | ||
206c08ce BS |
3917 | void __builtin_mma_pmxvi8ger4 (v512 *, vuc, vuc, const int<4>, \ |
3918 | const int<4>, const int<4>); | |
6cba7d1d | 3919 | PMXVI8GER4 nothing {mma,mmaint} |
344951b6 | 3920 | |
206c08ce BS |
3921 | v512 __builtin_mma_pmxvi8ger4_internal (vuc, vuc, const int<4>, \ |
3922 | const int<4>, const int<4>); | |
344951b6 BS |
3923 | PMXVI8GER4_INTERNAL mma_pmxvi8ger4 {mma} |
3924 | ||
206c08ce BS |
3925 | void __builtin_mma_pmxvi8ger4pp (v512 *, vuc, vuc, const int<4>, \ |
3926 | const int<4>, const int<4>); | |
6cba7d1d | 3927 | PMXVI8GER4PP nothing {mma,quad,mmaint} |
344951b6 | 3928 | |
206c08ce BS |
3929 | v512 __builtin_mma_pmxvi8ger4pp_internal (v512, vuc, vuc, const int<4>, \ |
3930 | const int<4>, const int<4>); | |
344951b6 BS |
3931 | PMXVI8GER4PP_INTERNAL mma_pmxvi8ger4pp {mma,quad} |
3932 | ||
206c08ce BS |
3933 | void __builtin_mma_pmxvi8ger4spp (v512 *, vuc, vuc, const int<4>, \ |
3934 | const int<4>, const int<4>); | |
6cba7d1d | 3935 | PMXVI8GER4SPP nothing {mma,quad,mmaint} |
344951b6 | 3936 | |
206c08ce BS |
3937 | v512 __builtin_mma_pmxvi8ger4spp_internal (v512, vuc, vuc, const int<4>, \ |
3938 | const int<4>, const int<4>); | |
344951b6 BS |
3939 | PMXVI8GER4SPP_INTERNAL mma_pmxvi8ger4spp {mma,quad} |
3940 | ||
3941 | void __builtin_mma_xvbf16ger2 (v512 *, vuc, vuc); | |
6cba7d1d | 3942 | XVBF16GER2 nothing {mma,mmaint} |
344951b6 BS |
3943 | |
3944 | v512 __builtin_mma_xvbf16ger2_internal (vuc, vuc); | |
3945 | XVBF16GER2_INTERNAL mma_xvbf16ger2 {mma} | |
3946 | ||
3947 | void __builtin_mma_xvbf16ger2nn (v512 *, vuc, vuc); | |
6cba7d1d | 3948 | XVBF16GER2NN nothing {mma,quad,mmaint} |
344951b6 BS |
3949 | |
3950 | v512 __builtin_mma_xvbf16ger2nn_internal (v512, vuc, vuc); | |
3951 | XVBF16GER2NN_INTERNAL mma_xvbf16ger2nn {mma,quad} | |
3952 | ||
3953 | void __builtin_mma_xvbf16ger2np (v512 *, vuc, vuc); | |
6cba7d1d | 3954 | XVBF16GER2NP nothing {mma,quad,mmaint} |
344951b6 BS |
3955 | |
3956 | v512 __builtin_mma_xvbf16ger2np_internal (v512, vuc, vuc); | |
3957 | XVBF16GER2NP_INTERNAL mma_xvbf16ger2np {mma,quad} | |
3958 | ||
3959 | void __builtin_mma_xvbf16ger2pn (v512 *, vuc, vuc); | |
6cba7d1d | 3960 | XVBF16GER2PN nothing {mma,quad,mmaint} |
344951b6 BS |
3961 | |
3962 | v512 __builtin_mma_xvbf16ger2pn_internal (v512, vuc, vuc); | |
3963 | XVBF16GER2PN_INTERNAL mma_xvbf16ger2pn {mma,quad} | |
3964 | ||
3965 | void __builtin_mma_xvbf16ger2pp (v512 *, vuc, vuc); | |
6cba7d1d | 3966 | XVBF16GER2PP nothing {mma,quad,mmaint} |
344951b6 BS |
3967 | |
3968 | v512 __builtin_mma_xvbf16ger2pp_internal (v512, vuc, vuc); | |
3969 | XVBF16GER2PP_INTERNAL mma_xvbf16ger2pp {mma,quad} | |
3970 | ||
3971 | void __builtin_mma_xvf16ger2 (v512 *, vuc, vuc); | |
6cba7d1d | 3972 | XVF16GER2 nothing {mma,mmaint} |
344951b6 BS |
3973 | |
3974 | v512 __builtin_mma_xvf16ger2_internal (vuc, vuc); | |
3975 | XVF16GER2_INTERNAL mma_xvf16ger2 {mma} | |
3976 | ||
3977 | void __builtin_mma_xvf16ger2nn (v512 *, vuc, vuc); | |
6cba7d1d | 3978 | XVF16GER2NN nothing {mma,quad,mmaint} |
344951b6 BS |
3979 | |
3980 | v512 __builtin_mma_xvf16ger2nn_internal (v512, vuc, vuc); | |
3981 | XVF16GER2NN_INTERNAL mma_xvf16ger2nn {mma,quad} | |
3982 | ||
3983 | void __builtin_mma_xvf16ger2np (v512 *, vuc, vuc); | |
6cba7d1d | 3984 | XVF16GER2NP nothing {mma,quad,mmaint} |
344951b6 BS |
3985 | |
3986 | v512 __builtin_mma_xvf16ger2np_internal (v512, vuc, vuc); | |
3987 | XVF16GER2NP_INTERNAL mma_xvf16ger2np {mma,quad} | |
3988 | ||
3989 | void __builtin_mma_xvf16ger2pn (v512 *, vuc, vuc); | |
6cba7d1d | 3990 | XVF16GER2PN nothing {mma,quad,mmaint} |
344951b6 BS |
3991 | |
3992 | v512 __builtin_mma_xvf16ger2pn_internal (v512, vuc, vuc); | |
3993 | XVF16GER2PN_INTERNAL mma_xvf16ger2pn {mma,quad} | |
3994 | ||
3995 | void __builtin_mma_xvf16ger2pp (v512 *, vuc, vuc); | |
6cba7d1d | 3996 | XVF16GER2PP nothing {mma,quad,mmaint} |
344951b6 BS |
3997 | |
3998 | v512 __builtin_mma_xvf16ger2pp_internal (v512, vuc, vuc); | |
3999 | XVF16GER2PP_INTERNAL mma_xvf16ger2pp {mma,quad} | |
4000 | ||
4001 | void __builtin_mma_xvf32ger (v512 *, vuc, vuc); | |
6cba7d1d | 4002 | XVF32GER nothing {mma,mmaint} |
344951b6 BS |
4003 | |
4004 | v512 __builtin_mma_xvf32ger_internal (vuc, vuc); | |
4005 | XVF32GER_INTERNAL mma_xvf32ger {mma} | |
4006 | ||
4007 | void __builtin_mma_xvf32gernn (v512 *, vuc, vuc); | |
6cba7d1d | 4008 | XVF32GERNN nothing {mma,quad,mmaint} |
344951b6 BS |
4009 | |
4010 | v512 __builtin_mma_xvf32gernn_internal (v512, vuc, vuc); | |
4011 | XVF32GERNN_INTERNAL mma_xvf32gernn {mma,quad} | |
4012 | ||
4013 | void __builtin_mma_xvf32gernp (v512 *, vuc, vuc); | |
6cba7d1d | 4014 | XVF32GERNP nothing {mma,quad,mmaint} |
344951b6 BS |
4015 | |
4016 | v512 __builtin_mma_xvf32gernp_internal (v512, vuc, vuc); | |
4017 | XVF32GERNP_INTERNAL mma_xvf32gernp {mma,quad} | |
4018 | ||
4019 | void __builtin_mma_xvf32gerpn (v512 *, vuc, vuc); | |
6cba7d1d | 4020 | XVF32GERPN nothing {mma,quad,mmaint} |
344951b6 BS |
4021 | |
4022 | v512 __builtin_mma_xvf32gerpn_internal (v512, vuc, vuc); | |
4023 | XVF32GERPN_INTERNAL mma_xvf32gerpn {mma,quad} | |
4024 | ||
4025 | void __builtin_mma_xvf32gerpp (v512 *, vuc, vuc); | |
6cba7d1d | 4026 | XVF32GERPP nothing {mma,quad,mmaint} |
344951b6 BS |
4027 | |
4028 | v512 __builtin_mma_xvf32gerpp_internal (v512, vuc, vuc); | |
4029 | XVF32GERPP_INTERNAL mma_xvf32gerpp {mma,quad} | |
4030 | ||
4031 | void __builtin_mma_xvf64ger (v512 *, v256, vuc); | |
6cba7d1d | 4032 | XVF64GER nothing {mma,pair,mmaint} |
344951b6 BS |
4033 | |
4034 | v512 __builtin_mma_xvf64ger_internal (v256, vuc); | |
4035 | XVF64GER_INTERNAL mma_xvf64ger {mma,pair} | |
4036 | ||
4037 | void __builtin_mma_xvf64gernn (v512 *, v256, vuc); | |
6cba7d1d | 4038 | XVF64GERNN nothing {mma,pair,quad,mmaint} |
344951b6 BS |
4039 | |
4040 | v512 __builtin_mma_xvf64gernn_internal (v512, v256, vuc); | |
4041 | XVF64GERNN_INTERNAL mma_xvf64gernn {mma,pair,quad} | |
4042 | ||
4043 | void __builtin_mma_xvf64gernp (v512 *, v256, vuc); | |
6cba7d1d | 4044 | XVF64GERNP nothing {mma,pair,quad,mmaint} |
344951b6 BS |
4045 | |
4046 | v512 __builtin_mma_xvf64gernp_internal (v512, v256, vuc); | |
4047 | XVF64GERNP_INTERNAL mma_xvf64gernp {mma,pair,quad} | |
4048 | ||
4049 | void __builtin_mma_xvf64gerpn (v512 *, v256, vuc); | |
6cba7d1d | 4050 | XVF64GERPN nothing {mma,pair,quad,mmaint} |
344951b6 BS |
4051 | |
4052 | v512 __builtin_mma_xvf64gerpn_internal (v512, v256, vuc); | |
4053 | XVF64GERPN_INTERNAL mma_xvf64gerpn {mma,pair,quad} | |
4054 | ||
4055 | void __builtin_mma_xvf64gerpp (v512 *, v256, vuc); | |
6cba7d1d | 4056 | XVF64GERPP nothing {mma,pair,quad,mmaint} |
344951b6 BS |
4057 | |
4058 | v512 __builtin_mma_xvf64gerpp_internal (v512, v256, vuc); | |
4059 | XVF64GERPP_INTERNAL mma_xvf64gerpp {mma,pair,quad} | |
4060 | ||
4061 | void __builtin_mma_xvi16ger2 (v512 *, vuc, vuc); | |
6cba7d1d | 4062 | XVI16GER2 nothing {mma,mmaint} |
344951b6 BS |
4063 | |
4064 | v512 __builtin_mma_xvi16ger2_internal (vuc, vuc); | |
4065 | XVI16GER2_INTERNAL mma_xvi16ger2 {mma} | |
4066 | ||
4067 | void __builtin_mma_xvi16ger2pp (v512 *, vuc, vuc); | |
6cba7d1d | 4068 | XVI16GER2PP nothing {mma,quad,mmaint} |
344951b6 BS |
4069 | |
4070 | v512 __builtin_mma_xvi16ger2pp_internal (v512, vuc, vuc); | |
4071 | XVI16GER2PP_INTERNAL mma_xvi16ger2pp {mma,quad} | |
4072 | ||
4073 | void __builtin_mma_xvi16ger2s (v512 *, vuc, vuc); | |
6cba7d1d | 4074 | XVI16GER2S nothing {mma,mmaint} |
344951b6 BS |
4075 | |
4076 | v512 __builtin_mma_xvi16ger2s_internal (vuc, vuc); | |
4077 | XVI16GER2S_INTERNAL mma_xvi16ger2s {mma} | |
4078 | ||
4079 | void __builtin_mma_xvi16ger2spp (v512 *, vuc, vuc); | |
6cba7d1d | 4080 | XVI16GER2SPP nothing {mma,quad,mmaint} |
344951b6 BS |
4081 | |
4082 | v512 __builtin_mma_xvi16ger2spp_internal (v512, vuc, vuc); | |
4083 | XVI16GER2SPP_INTERNAL mma_xvi16ger2spp {mma,quad} | |
4084 | ||
4085 | void __builtin_mma_xvi4ger8 (v512 *, vuc, vuc); | |
6cba7d1d | 4086 | XVI4GER8 nothing {mma,mmaint} |
344951b6 BS |
4087 | |
4088 | v512 __builtin_mma_xvi4ger8_internal (vuc, vuc); | |
4089 | XVI4GER8_INTERNAL mma_xvi4ger8 {mma} | |
4090 | ||
4091 | void __builtin_mma_xvi4ger8pp (v512 *, vuc, vuc); | |
6cba7d1d | 4092 | XVI4GER8PP nothing {mma,quad,mmaint} |
344951b6 BS |
4093 | |
4094 | v512 __builtin_mma_xvi4ger8pp_internal (v512, vuc, vuc); | |
4095 | XVI4GER8PP_INTERNAL mma_xvi4ger8pp {mma,quad} | |
4096 | ||
4097 | void __builtin_mma_xvi8ger4 (v512 *, vuc, vuc); | |
6cba7d1d | 4098 | XVI8GER4 nothing {mma,mmaint} |
344951b6 BS |
4099 | |
4100 | v512 __builtin_mma_xvi8ger4_internal (vuc, vuc); | |
4101 | XVI8GER4_INTERNAL mma_xvi8ger4 {mma} | |
4102 | ||
4103 | void __builtin_mma_xvi8ger4pp (v512 *, vuc, vuc); | |
6cba7d1d | 4104 | XVI8GER4PP nothing {mma,quad,mmaint} |
344951b6 BS |
4105 | |
4106 | v512 __builtin_mma_xvi8ger4pp_internal (v512, vuc, vuc); | |
4107 | XVI8GER4PP_INTERNAL mma_xvi8ger4pp {mma,quad} | |
4108 | ||
4109 | void __builtin_mma_xvi8ger4spp (v512 *, vuc, vuc); | |
6cba7d1d | 4110 | XVI8GER4SPP nothing {mma,quad,mmaint} |
344951b6 BS |
4111 | |
4112 | v512 __builtin_mma_xvi8ger4spp_internal (v512, vuc, vuc); | |
4113 | XVI8GER4SPP_INTERNAL mma_xvi8ger4spp {mma,quad} | |
4114 | ||
4115 | void __builtin_mma_xxmfacc (v512 *); | |
6cba7d1d | 4116 | XXMFACC nothing {mma,quad,mmaint} |
344951b6 BS |
4117 | |
4118 | v512 __builtin_mma_xxmfacc_internal (v512); | |
4119 | XXMFACC_INTERNAL mma_xxmfacc {mma,quad} | |
4120 | ||
4121 | void __builtin_mma_xxmtacc (v512 *); | |
6cba7d1d | 4122 | XXMTACC nothing {mma,quad,mmaint} |
344951b6 BS |
4123 | |
4124 | v512 __builtin_mma_xxmtacc_internal (v512); | |
4125 | XXMTACC_INTERNAL mma_xxmtacc {mma,quad} | |
4126 | ||
4127 | void __builtin_mma_xxsetaccz (v512 *); | |
6cba7d1d | 4128 | XXSETACCZ nothing {mma,mmaint} |
344951b6 BS |
4129 | |
4130 | v512 __builtin_mma_xxsetaccz_internal (); | |
4131 | XXSETACCZ_INTERNAL mma_xxsetaccz {mma} | |
4132 | ||
4133 | void __builtin_vsx_assemble_pair (v256 *, vuc, vuc); | |
6cba7d1d | 4134 | ASSEMBLE_PAIR_V nothing {mma,mmaint} |
344951b6 BS |
4135 | |
4136 | v256 __builtin_vsx_assemble_pair_internal (vuc, vuc); | |
4137 | ASSEMBLE_PAIR_V_INTERNAL vsx_assemble_pair {mma} | |
4138 | ||
4139 | void __builtin_vsx_build_pair (v256 *, vuc, vuc); | |
6cba7d1d | 4140 | BUILD_PAIR nothing {mma,mmaint} |
344951b6 BS |
4141 | |
4142 | v256 __builtin_vsx_build_pair_internal (vuc, vuc); | |
4143 | BUILD_PAIR_INTERNAL vsx_assemble_pair {mma} | |
4144 | ||
4145 | void __builtin_vsx_disassemble_pair (void *, v256 *); | |
6cba7d1d | 4146 | DISASSEMBLE_PAIR_V nothing {mma,pair,mmaint} |
344951b6 BS |
4147 | |
4148 | vuc __builtin_vsx_disassemble_pair_internal (v256, const int<2>); | |
4149 | DISASSEMBLE_PAIR_V_INTERNAL vsx_disassemble_pair {mma} | |
6cba7d1d BS |
4150 | |
4151 | v256 __builtin_vsx_lxvp (unsigned long, const v256 *); | |
4152 | LXVP nothing {mma} | |
4153 | ||
4154 | void __builtin_vsx_stxvp (v256, unsigned long, const v256 *); | |
4155 | STXVP nothing {mma,pair} |