1 /* Subroutines for the C front end on the PowerPC architecture.
2 Copyright (C) 2002-2018 Free Software Foundation, Inc.
4 Contributed by Zack Weinberg <zack@codesourcery.com>
5 and Paolo Bonzini <bonzini@gnu.org>
7 This file is part of GCC.
9 GCC is free software; you can redistribute it and/or modify it
10 under the terms of the GNU General Public License as published
11 by the Free Software Foundation; either version 3, or (at your
12 option) any later version.
14 GCC is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
19 You should have received a copy of the GNU General Public License
20 along with GCC; see the file COPYING3. If not see
21 <http://www.gnu.org/licenses/>. */
23 #define IN_TARGET_CODE 1
27 #include "coretypes.h"
29 #include "c-family/c-common.h"
32 #include "stringpool.h"
33 #include "stor-layout.h"
34 #include "c-family/c-pragma.h"
35 #include "langhooks.h"
40 /* Handle the machine specific pragma longcall. Its syntax is
42 # pragma longcall ( TOGGLE )
44 where TOGGLE is either 0 or 1.
46 rs6000_default_long_calls is set to the value of TOGGLE, changing
47 whether or not new function declarations receive a longcall
48 attribute by default. */
50 #define SYNTAX_ERROR(gmsgid) do { \
51 warning (OPT_Wpragmas, gmsgid); \
52 warning (OPT_Wpragmas, "ignoring malformed #pragma longcall"); \
57 rs6000_pragma_longcall (cpp_reader
*pfile ATTRIBUTE_UNUSED
)
61 /* If we get here, generic code has already scanned the directive
62 leader and the word "longcall". */
64 if (pragma_lex (&x
) != CPP_OPEN_PAREN
)
65 SYNTAX_ERROR ("missing open paren");
66 if (pragma_lex (&n
) != CPP_NUMBER
)
67 SYNTAX_ERROR ("missing number");
68 if (pragma_lex (&x
) != CPP_CLOSE_PAREN
)
69 SYNTAX_ERROR ("missing close paren");
71 if (n
!= integer_zero_node
&& n
!= integer_one_node
)
72 SYNTAX_ERROR ("number must be 0 or 1");
74 if (pragma_lex (&x
) != CPP_EOF
)
75 warning (OPT_Wpragmas
, "junk at end of #pragma longcall");
77 rs6000_default_long_calls
= (n
== integer_one_node
);
80 /* Handle defining many CPP flags based on TARGET_xxx. As a general
81 policy, rather than trying to guess what flags a user might want a
82 #define for, it's better to define a flag for everything. */
84 #define builtin_define(TXT) cpp_define (pfile, TXT)
85 #define builtin_assert(TXT) cpp_assert (pfile, TXT)
87 /* Keep the AltiVec keywords handy for fast comparisons. */
88 static GTY(()) tree __vector_keyword
;
89 static GTY(()) tree vector_keyword
;
90 static GTY(()) tree __pixel_keyword
;
91 static GTY(()) tree pixel_keyword
;
92 static GTY(()) tree __bool_keyword
;
93 static GTY(()) tree bool_keyword
;
94 static GTY(()) tree _Bool_keyword
;
95 static GTY(()) tree __int128_type
;
96 static GTY(()) tree __uint128_type
;
98 /* Preserved across calls. */
99 static tree expand_bool_pixel
;
101 static cpp_hashnode
*
102 altivec_categorize_keyword (const cpp_token
*tok
)
104 if (tok
->type
== CPP_NAME
)
106 cpp_hashnode
*ident
= tok
->val
.node
.node
;
108 if (ident
== C_CPP_HASHNODE (vector_keyword
))
109 return C_CPP_HASHNODE (__vector_keyword
);
111 if (ident
== C_CPP_HASHNODE (pixel_keyword
))
112 return C_CPP_HASHNODE (__pixel_keyword
);
114 if (ident
== C_CPP_HASHNODE (bool_keyword
))
115 return C_CPP_HASHNODE (__bool_keyword
);
117 if (ident
== C_CPP_HASHNODE (_Bool_keyword
))
118 return C_CPP_HASHNODE (__bool_keyword
);
127 init_vector_keywords (void)
129 /* Keywords without two leading underscores are context-sensitive, and hence
130 implemented as conditional macros, controlled by the
131 rs6000_macro_to_expand() function below. If we have ISA 2.07 64-bit
132 support, record the __int128_t and __uint128_t types. */
134 __vector_keyword
= get_identifier ("__vector");
135 C_CPP_HASHNODE (__vector_keyword
)->flags
|= NODE_CONDITIONAL
;
137 __pixel_keyword
= get_identifier ("__pixel");
138 C_CPP_HASHNODE (__pixel_keyword
)->flags
|= NODE_CONDITIONAL
;
140 __bool_keyword
= get_identifier ("__bool");
141 C_CPP_HASHNODE (__bool_keyword
)->flags
|= NODE_CONDITIONAL
;
143 vector_keyword
= get_identifier ("vector");
144 C_CPP_HASHNODE (vector_keyword
)->flags
|= NODE_CONDITIONAL
;
146 pixel_keyword
= get_identifier ("pixel");
147 C_CPP_HASHNODE (pixel_keyword
)->flags
|= NODE_CONDITIONAL
;
149 bool_keyword
= get_identifier ("bool");
150 C_CPP_HASHNODE (bool_keyword
)->flags
|= NODE_CONDITIONAL
;
152 _Bool_keyword
= get_identifier ("_Bool");
153 C_CPP_HASHNODE (_Bool_keyword
)->flags
|= NODE_CONDITIONAL
;
157 __int128_type
= get_identifier ("__int128_t");
158 __uint128_type
= get_identifier ("__uint128_t");
162 /* Helper function to find out which RID_INT_N_* code is the one for
163 __int128, if any. Returns RID_MAX+1 if none apply, which is safe
164 (for our purposes, since we always expect to have __int128) to
171 for (i
= 0; i
< NUM_INT_N_ENTS
; i
++)
172 if (int_n_enabled_p
[i
]
173 && int_n_data
[i
].bitsize
== 128)
174 return RID_INT_N_0
+ i
;
179 /* Called to decide whether a conditional macro should be expanded.
180 Since we have exactly one such macro (i.e, 'vector'), we do not
181 need to examine the 'tok' parameter. */
183 static cpp_hashnode
*
184 rs6000_macro_to_expand (cpp_reader
*pfile
, const cpp_token
*tok
)
186 cpp_hashnode
*expand_this
= tok
->val
.node
.node
;
189 /* If the current machine does not have altivec, don't look for the
194 ident
= altivec_categorize_keyword (tok
);
196 if (ident
!= expand_this
)
199 if (ident
== C_CPP_HASHNODE (__vector_keyword
))
203 tok
= cpp_peek_token (pfile
, idx
++);
204 while (tok
->type
== CPP_PADDING
);
205 ident
= altivec_categorize_keyword (tok
);
207 if (ident
== C_CPP_HASHNODE (__pixel_keyword
))
209 expand_this
= C_CPP_HASHNODE (__vector_keyword
);
210 expand_bool_pixel
= __pixel_keyword
;
212 else if (ident
== C_CPP_HASHNODE (__bool_keyword
))
214 expand_this
= C_CPP_HASHNODE (__vector_keyword
);
215 expand_bool_pixel
= __bool_keyword
;
217 /* The boost libraries have code with Iterator::vector vector in it. If
218 we allow the normal handling, this module will be called recursively,
219 and the vector will be skipped.; */
220 else if (ident
&& (ident
!= C_CPP_HASHNODE (__vector_keyword
)))
222 enum rid rid_code
= (enum rid
)(ident
->rid_code
);
223 enum node_type itype
= ident
->type
;
224 /* If there is a function-like macro, check if it is going to be
225 invoked with or without arguments. Without following ( treat
226 it like non-macro, otherwise the following cpp_get_token eats
227 what should be preserved. */
228 if (itype
== NT_MACRO
&& cpp_fun_like_macro_p (ident
))
232 tok
= cpp_peek_token (pfile
, idx2
++);
233 while (tok
->type
== CPP_PADDING
);
234 if (tok
->type
!= CPP_OPEN_PAREN
)
237 if (itype
== NT_MACRO
)
240 (void) cpp_get_token (pfile
);
243 tok
= cpp_peek_token (pfile
, idx
++);
244 while (tok
->type
== CPP_PADDING
);
245 ident
= altivec_categorize_keyword (tok
);
246 if (ident
== C_CPP_HASHNODE (__pixel_keyword
))
248 expand_this
= C_CPP_HASHNODE (__vector_keyword
);
249 expand_bool_pixel
= __pixel_keyword
;
252 else if (ident
== C_CPP_HASHNODE (__bool_keyword
))
254 expand_this
= C_CPP_HASHNODE (__vector_keyword
);
255 expand_bool_pixel
= __bool_keyword
;
259 rid_code
= (enum rid
)(ident
->rid_code
);
262 if (rid_code
== RID_UNSIGNED
|| rid_code
== RID_LONG
263 || rid_code
== RID_SHORT
|| rid_code
== RID_SIGNED
264 || rid_code
== RID_INT
|| rid_code
== RID_CHAR
265 || rid_code
== RID_FLOAT
266 || (rid_code
== RID_DOUBLE
&& TARGET_VSX
)
267 || (rid_code
== rid_int128 () && TARGET_VADDUQM
))
269 expand_this
= C_CPP_HASHNODE (__vector_keyword
);
270 /* If the next keyword is bool or pixel, it
271 will need to be expanded as well. */
273 tok
= cpp_peek_token (pfile
, idx
++);
274 while (tok
->type
== CPP_PADDING
);
275 ident
= altivec_categorize_keyword (tok
);
277 if (ident
== C_CPP_HASHNODE (__pixel_keyword
))
278 expand_bool_pixel
= __pixel_keyword
;
279 else if (ident
== C_CPP_HASHNODE (__bool_keyword
))
280 expand_bool_pixel
= __bool_keyword
;
283 /* Try two tokens down, too. */
285 tok
= cpp_peek_token (pfile
, idx
++);
286 while (tok
->type
== CPP_PADDING
);
287 ident
= altivec_categorize_keyword (tok
);
288 if (ident
== C_CPP_HASHNODE (__pixel_keyword
))
289 expand_bool_pixel
= __pixel_keyword
;
290 else if (ident
== C_CPP_HASHNODE (__bool_keyword
))
291 expand_bool_pixel
= __bool_keyword
;
295 /* Support vector __int128_t, but we don't need to worry about bool
296 or pixel on this type. */
297 else if (TARGET_VADDUQM
298 && (ident
== C_CPP_HASHNODE (__int128_type
)
299 || ident
== C_CPP_HASHNODE (__uint128_type
)))
300 expand_this
= C_CPP_HASHNODE (__vector_keyword
);
303 else if (expand_bool_pixel
&& ident
== C_CPP_HASHNODE (__pixel_keyword
))
305 expand_this
= C_CPP_HASHNODE (__pixel_keyword
);
306 expand_bool_pixel
= 0;
308 else if (expand_bool_pixel
&& ident
== C_CPP_HASHNODE (__bool_keyword
))
310 expand_this
= C_CPP_HASHNODE (__bool_keyword
);
311 expand_bool_pixel
= 0;
318 /* Define or undefine a single macro. */
321 rs6000_define_or_undefine_macro (bool define_p
, const char *name
)
323 if (TARGET_DEBUG_BUILTIN
|| TARGET_DEBUG_TARGET
)
324 fprintf (stderr
, "#%s %s\n", (define_p
) ? "define" : "undef", name
);
327 cpp_define (parse_in
, name
);
329 cpp_undef (parse_in
, name
);
332 /* Define or undefine macros based on the current target. If the user does
333 #pragma GCC target, we need to adjust the macros dynamically. Note, some of
334 the options needed for builtins have been moved to separate variables, so
335 have both the target flags and the builtin flags as arguments. */
338 rs6000_target_modify_macros (bool define_p
, HOST_WIDE_INT flags
,
339 HOST_WIDE_INT bu_mask
)
341 if (TARGET_DEBUG_BUILTIN
|| TARGET_DEBUG_TARGET
)
343 "rs6000_target_modify_macros (%s, " HOST_WIDE_INT_PRINT_HEX
344 ", " HOST_WIDE_INT_PRINT_HEX
")\n",
345 (define_p
) ? "define" : "undef",
348 /* Each of the flags mentioned below controls whether certain
349 preprocessor macros will be automatically defined when
350 preprocessing source files for compilation by this compiler.
351 While most of these flags can be enabled or disabled
352 explicitly by specifying certain command-line options when
353 invoking the compiler, there are also many ways in which these
354 flags are enabled or disabled implicitly, based on compiler
355 defaults, configuration choices, and on the presence of certain
356 related command-line options. Many, but not all, of these
357 implicit behaviors can be found in file "rs6000.c", the
358 rs6000_option_override_internal() function.
360 In general, each of the flags may be automatically enabled in
361 any of the following conditions:
363 1. If no -mcpu target is specified on the command line and no
364 --with-cpu target is specified to the configure command line
365 and the TARGET_DEFAULT macro for this default cpu host
366 includes the flag, and the flag has not been explicitly disabled
367 by command-line options.
369 2. If the target specified with -mcpu=target on the command line, or
370 in the absence of a -mcpu=target command-line option, if the
371 target specified using --with-cpu=target on the configure
372 command line, is disqualified because the associated binary
373 tools (e.g. the assembler) lack support for the requested cpu,
374 and the TARGET_DEFAULT macro for this default cpu host
375 includes the flag, and the flag has not been explicitly disabled
376 by command-line options.
378 3. If either of the above two conditions apply except that the
379 TARGET_DEFAULT macro is defined to equal zero, and
381 a) BYTES_BIG_ENDIAN and the flag to be enabled is either
382 MASK_PPC_GFXOPT or MASK_POWERPC64 (flags for "powerpc64"
384 b) !BYTES_BIG_ENDIAN and the flag to be enabled is either
385 MASK_POWERPC64 or it is one of the flags included in
386 ISA_2_7_MASKS_SERVER (flags for "powerpc64le" target).
388 4. If a cpu has been requested with a -mcpu=target command-line option
389 and this cpu has not been disqualified due to shortcomings of the
390 binary tools, and the set of flags associated with the requested cpu
391 include the flag to be enabled. See rs6000-cpus.def for macro
392 definitions that represent various ABI standards
393 (e.g. ISA_2_1_MASKS, ISA_3_0_MASKS_SERVER) and for a list of
394 the specific flags that are associated with each of the cpu
395 choices that can be specified as the target of a -mcpu=target
396 compile option, or as the the target of a --with-cpu=target
397 configure option. Target flags that are specified in either
398 of these two ways are considered "implicit" since the flags
399 are not mentioned specifically by name.
401 Additional documentation describing behavior specific to
402 particular flags is provided below, immediately preceding the
403 use of each relevant flag.
405 5. If there is no -mcpu=target command-line option, and the cpu
406 requested by a --with-cpu=target command-line option has not
407 been disqualified due to shortcomings of the binary tools, and
408 the set of flags associated with the specified target include
409 the flag to be enabled. See the notes immediately above for a
410 summary of the flags associated with particular cpu
413 /* rs6000_isa_flags based options. */
414 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PPC");
415 if ((flags
& OPTION_MASK_PPC_GPOPT
) != 0)
416 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PPCSQ");
417 if ((flags
& OPTION_MASK_PPC_GFXOPT
) != 0)
418 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PPCGR");
419 if ((flags
& OPTION_MASK_POWERPC64
) != 0)
420 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PPC64");
421 if ((flags
& OPTION_MASK_MFCRF
) != 0)
422 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR4");
423 if ((flags
& OPTION_MASK_POPCNTB
) != 0)
424 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR5");
425 if ((flags
& OPTION_MASK_FPRND
) != 0)
426 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR5X");
427 if ((flags
& OPTION_MASK_CMPB
) != 0)
428 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR6");
429 if ((flags
& OPTION_MASK_MFPGPR
) != 0)
430 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR6X");
431 if ((flags
& OPTION_MASK_POPCNTD
) != 0)
432 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR7");
433 /* Note that the OPTION_MASK_DIRECT_MOVE flag is automatically
434 turned on in the following condition:
435 1. TARGET_P8_VECTOR is enabled and OPTION_MASK_DIRECT_MOVE is not
437 Hereafter, the OPTION_MASK_DIRECT_MOVE flag is considered to
438 have been turned on explicitly.
439 Note that the OPTION_MASK_DIRECT_MOVE flag is automatically
440 turned off in any of the following conditions:
441 1. TARGET_HARD_FLOAT, TARGET_ALTIVEC, or TARGET_VSX is explicitly
442 disabled and OPTION_MASK_DIRECT_MOVE was not explicitly
444 2. TARGET_VSX is off. */
445 if ((flags
& OPTION_MASK_DIRECT_MOVE
) != 0)
446 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR8");
447 if ((flags
& OPTION_MASK_MODULO
) != 0)
448 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR9");
449 if ((flags
& OPTION_MASK_SOFT_FLOAT
) != 0)
450 rs6000_define_or_undefine_macro (define_p
, "_SOFT_FLOAT");
451 if ((flags
& OPTION_MASK_RECIP_PRECISION
) != 0)
452 rs6000_define_or_undefine_macro (define_p
, "__RECIP_PRECISION__");
453 /* Note that the OPTION_MASK_ALTIVEC flag is automatically turned on
454 in any of the following conditions:
455 1. The command line specifies either -maltivec=le or -maltivec=be.
456 2. The operating system is Darwin and it is configured for 64
457 bit. (See darwin_rs6000_override_options.)
458 3. The operating system is Darwin and the operating system
459 version is 10.5 or higher and the user has not explicitly
460 disabled ALTIVEC by specifying -mcpu=G3 or -mno-altivec and
461 the compiler is not producing code for integration within the
462 kernel. (See darwin_rs6000_override_options.)
463 Note that the OPTION_MASK_ALTIVEC flag is automatically turned
464 off in any of the following conditions:
465 1. The operating system does not support saving of AltiVec
466 registers (OS_MISSING_ALTIVEC).
467 2. If an inner context (as introduced by
468 __attribute__((__target__())) or #pragma GCC target()
469 requests a target that normally enables the
470 OPTION_MASK_ALTIVEC flag but the outer-most "main target"
471 does not support the rs6000_altivec_abi, this flag is
472 turned off for the inner context unless OPTION_MASK_ALTIVEC
473 was explicitly enabled for the inner context. */
474 if ((flags
& OPTION_MASK_ALTIVEC
) != 0)
476 const char *vec_str
= (define_p
) ? "__VEC__=10206" : "__VEC__";
477 rs6000_define_or_undefine_macro (define_p
, "__ALTIVEC__");
478 rs6000_define_or_undefine_macro (define_p
, vec_str
);
480 /* Define this when supporting context-sensitive keywords. */
482 rs6000_define_or_undefine_macro (define_p
, "__APPLE_ALTIVEC__");
484 /* Note that the OPTION_MASK_VSX flag is automatically turned on in
485 the following conditions:
486 1. TARGET_P8_VECTOR is explicitly turned on and the OPTION_MASK_VSX
487 was not explicitly turned off. Hereafter, the OPTION_MASK_VSX
488 flag is considered to have been explicitly turned on.
489 Note that the OPTION_MASK_VSX flag is automatically turned off in
490 the following conditions:
491 1. The operating system does not support saving of AltiVec
492 registers (OS_MISSING_ALTIVEC).
493 2. If any of the options TARGET_HARD_FLOAT, TARGET_SINGLE_FLOAT,
494 or TARGET_DOUBLE_FLOAT are turned off. Hereafter, the
495 OPTION_MASK_VSX flag is considered to have been turned off
497 3. If TARGET_PAIRED_FLOAT was enabled. Hereafter, the
498 OPTION_MASK_VSX flag is considered to have been turned off
500 4. If TARGET_AVOID_XFORM is turned on explicitly at the outermost
501 compilation context, or if it is turned on by any means in an
502 inner compilation context. Hereafter, the OPTION_MASK_VSX
503 flag is considered to have been turned off explicitly.
504 5. If TARGET_ALTIVEC was explicitly disabled. Hereafter, the
505 OPTION_MASK_VSX flag is considered to have been turned off
507 6. If an inner context (as introduced by
508 __attribute__((__target__())) or #pragma GCC target()
509 requests a target that normally enables the
510 OPTION_MASK_VSX flag but the outer-most "main target"
511 does not support the rs6000_altivec_abi, this flag is
512 turned off for the inner context unless OPTION_MASK_VSX
513 was explicitly enabled for the inner context. */
514 if ((flags
& OPTION_MASK_VSX
) != 0)
515 rs6000_define_or_undefine_macro (define_p
, "__VSX__");
516 if ((flags
& OPTION_MASK_HTM
) != 0)
518 rs6000_define_or_undefine_macro (define_p
, "__HTM__");
519 /* Tell the user that our HTM insn patterns act as memory barriers. */
520 rs6000_define_or_undefine_macro (define_p
, "__TM_FENCE__");
522 /* Note that the OPTION_MASK_P8_VECTOR flag is automatically turned
523 on in the following conditions:
524 1. TARGET_P9_VECTOR is explicitly turned on and
525 OPTION_MASK_P8_VECTOR is not explicitly turned off.
526 Hereafter, the OPTION_MASK_P8_VECTOR flag is considered to
527 have been turned off explicitly.
528 Note that the OPTION_MASK_P8_VECTOR flag is automatically turned
529 off in the following conditions:
530 1. If any of TARGET_HARD_FLOAT, TARGET_ALTIVEC, or TARGET_VSX
531 were turned off explicitly and OPTION_MASK_P8_VECTOR flag was
532 not turned on explicitly.
533 2. If TARGET_ALTIVEC is turned off. Hereafter, the
534 OPTION_MASK_P8_VECTOR flag is considered to have been turned off
536 3. If TARGET_VSX is turned off and OPTION_MASK_P8_VECTOR was not
537 explicitly enabled. If TARGET_VSX is explicitly enabled, the
538 OPTION_MASK_P8_VECTOR flag is hereafter also considered to
539 have been turned off explicitly. */
540 if ((flags
& OPTION_MASK_P8_VECTOR
) != 0)
541 rs6000_define_or_undefine_macro (define_p
, "__POWER8_VECTOR__");
542 /* Note that the OPTION_MASK_P9_VECTOR flag is automatically turned
543 off in the following conditions:
544 1. If TARGET_P8_VECTOR is turned off and OPTION_MASK_P9_VECTOR is
545 not turned on explicitly. Hereafter, if OPTION_MASK_P8_VECTOR
546 was turned on explicitly, the OPTION_MASK_P9_VECTOR flag is
547 also considered to have been turned off explicitly.
548 Note that the OPTION_MASK_P9_VECTOR is automatically turned on
549 in the following conditions:
550 1. If TARGET_P9_MINMAX was turned on explicitly.
551 Hereafter, THE OPTION_MASK_P9_VECTOR flag is considered to
552 have been turned on explicitly. */
553 if ((flags
& OPTION_MASK_P9_VECTOR
) != 0)
554 rs6000_define_or_undefine_macro (define_p
, "__POWER9_VECTOR__");
555 /* Note that the OPTION_MASK_QUAD_MEMORY flag is automatically
556 turned off in the following conditions:
557 1. If TARGET_POWERPC64 is turned off.
558 2. If WORDS_BIG_ENDIAN is false (non-atomic quad memory
559 load/store are disabled on little endian). */
560 if ((flags
& OPTION_MASK_QUAD_MEMORY
) != 0)
561 rs6000_define_or_undefine_macro (define_p
, "__QUAD_MEMORY__");
562 /* Note that the OPTION_MASK_QUAD_MEMORY_ATOMIC flag is automatically
563 turned off in the following conditions:
564 1. If TARGET_POWERPC64 is turned off.
565 Note that the OPTION_MASK_QUAD_MEMORY_ATOMIC flag is
566 automatically turned on in the following conditions:
567 1. If TARGET_QUAD_MEMORY and this flag was not explicitly
569 if ((flags
& OPTION_MASK_QUAD_MEMORY_ATOMIC
) != 0)
570 rs6000_define_or_undefine_macro (define_p
, "__QUAD_MEMORY_ATOMIC__");
571 /* Note that the OPTION_MASK_CRYPTO flag is automatically turned off
572 in the following conditions:
573 1. If any of TARGET_HARD_FLOAT or TARGET_ALTIVEC or TARGET_VSX
574 are turned off explicitly and OPTION_MASK_CRYPTO is not turned
576 2. If TARGET_ALTIVEC is turned off. */
577 if ((flags
& OPTION_MASK_CRYPTO
) != 0)
578 rs6000_define_or_undefine_macro (define_p
, "__CRYPTO__");
579 if ((flags
& OPTION_MASK_FLOAT128_KEYWORD
) != 0)
581 rs6000_define_or_undefine_macro (define_p
, "__FLOAT128__");
583 rs6000_define_or_undefine_macro (true, "__float128=__ieee128");
585 rs6000_define_or_undefine_macro (false, "__float128");
587 /* OPTION_MASK_FLOAT128_HARDWARE can be turned on if -mcpu=power9 is used or
588 via the target attribute/pragma. */
589 if ((flags
& OPTION_MASK_FLOAT128_HW
) != 0)
590 rs6000_define_or_undefine_macro (define_p
, "__FLOAT128_HARDWARE__");
592 /* options from the builtin masks. */
593 /* Note that RS6000_BTM_PAIRED is enabled only if
594 TARGET_PAIRED_FLOAT is enabled (e.g. -mpaired). */
595 if ((bu_mask
& RS6000_BTM_PAIRED
) != 0)
596 rs6000_define_or_undefine_macro (define_p
, "__PAIRED__");
597 /* Note that RS6000_BTM_CELL is enabled only if (rs6000_cpu ==
598 PROCESSOR_CELL) (e.g. -mcpu=cell). */
599 if ((bu_mask
& RS6000_BTM_CELL
) != 0)
600 rs6000_define_or_undefine_macro (define_p
, "__PPU__");
604 rs6000_cpu_cpp_builtins (cpp_reader
*pfile
)
606 /* Define all of the common macros. */
607 rs6000_target_modify_macros (true, rs6000_isa_flags
,
608 rs6000_builtin_mask_calculate ());
611 builtin_define ("__RECIP__");
613 builtin_define ("__RECIPF__");
615 builtin_define ("__RSQRTE__");
617 builtin_define ("__RSQRTEF__");
618 if (TARGET_FLOAT128_TYPE
)
619 builtin_define ("__FLOAT128_TYPE__");
620 if (TARGET_LONG_DOUBLE_128
&& FLOAT128_IBM_P (TFmode
))
621 builtin_define ("__ibm128=long double");
622 #ifdef TARGET_LIBC_PROVIDES_HWCAP_IN_TCB
623 builtin_define ("__BUILTIN_CPU_SUPPORTS__");
626 if (TARGET_EXTRA_BUILTINS
&& cpp_get_options (pfile
)->lang
!= CLK_ASM
)
628 /* Define the AltiVec syntactic elements. */
629 builtin_define ("__vector=__attribute__((altivec(vector__)))");
630 builtin_define ("__pixel=__attribute__((altivec(pixel__))) unsigned short");
631 builtin_define ("__bool=__attribute__((altivec(bool__))) unsigned");
635 builtin_define ("vector=vector");
636 builtin_define ("pixel=pixel");
637 builtin_define ("bool=bool");
638 builtin_define ("_Bool=_Bool");
639 init_vector_keywords ();
641 /* Enable context-sensitive macros. */
642 cpp_get_callbacks (pfile
)->macro_to_expand
= rs6000_macro_to_expand
;
645 if (!TARGET_HARD_FLOAT
646 || (TARGET_HARD_FLOAT
&& !TARGET_DOUBLE_FLOAT
))
647 builtin_define ("_SOFT_DOUBLE");
648 /* Used by lwarx/stwcx. errata work-around. */
649 if (rs6000_cpu
== PROCESSOR_PPC405
)
650 builtin_define ("__PPC405__");
651 /* Used by libstdc++. */
652 if (TARGET_NO_LWSYNC
)
653 builtin_define ("__NO_LWSYNC__");
655 if (TARGET_EXTRA_BUILTINS
)
657 /* For the VSX builtin functions identical to Altivec functions, just map
658 the altivec builtin into the vsx version (the altivec functions
659 generate VSX code if -mvsx). */
660 builtin_define ("__builtin_vsx_xxland=__builtin_vec_and");
661 builtin_define ("__builtin_vsx_xxlandc=__builtin_vec_andc");
662 builtin_define ("__builtin_vsx_xxlnor=__builtin_vec_nor");
663 builtin_define ("__builtin_vsx_xxlor=__builtin_vec_or");
664 builtin_define ("__builtin_vsx_xxlxor=__builtin_vec_xor");
665 builtin_define ("__builtin_vsx_xxsel=__builtin_vec_sel");
666 builtin_define ("__builtin_vsx_vperm=__builtin_vec_perm");
668 /* Also map the a and m versions of the multiply/add instructions to the
669 builtin for people blindly going off the instruction manual. */
670 builtin_define ("__builtin_vsx_xvmaddadp=__builtin_vsx_xvmadddp");
671 builtin_define ("__builtin_vsx_xvmaddmdp=__builtin_vsx_xvmadddp");
672 builtin_define ("__builtin_vsx_xvmaddasp=__builtin_vsx_xvmaddsp");
673 builtin_define ("__builtin_vsx_xvmaddmsp=__builtin_vsx_xvmaddsp");
674 builtin_define ("__builtin_vsx_xvmsubadp=__builtin_vsx_xvmsubdp");
675 builtin_define ("__builtin_vsx_xvmsubmdp=__builtin_vsx_xvmsubdp");
676 builtin_define ("__builtin_vsx_xvmsubasp=__builtin_vsx_xvmsubsp");
677 builtin_define ("__builtin_vsx_xvmsubmsp=__builtin_vsx_xvmsubsp");
678 builtin_define ("__builtin_vsx_xvnmaddadp=__builtin_vsx_xvnmadddp");
679 builtin_define ("__builtin_vsx_xvnmaddmdp=__builtin_vsx_xvnmadddp");
680 builtin_define ("__builtin_vsx_xvnmaddasp=__builtin_vsx_xvnmaddsp");
681 builtin_define ("__builtin_vsx_xvnmaddmsp=__builtin_vsx_xvnmaddsp");
682 builtin_define ("__builtin_vsx_xvnmsubadp=__builtin_vsx_xvnmsubdp");
683 builtin_define ("__builtin_vsx_xvnmsubmdp=__builtin_vsx_xvnmsubdp");
684 builtin_define ("__builtin_vsx_xvnmsubasp=__builtin_vsx_xvnmsubsp");
685 builtin_define ("__builtin_vsx_xvnmsubmsp=__builtin_vsx_xvnmsubsp");
688 /* Map the old _Float128 'q' builtins into the new 'f128' builtins. */
689 if (TARGET_FLOAT128_TYPE
)
691 builtin_define ("__builtin_fabsq=__builtin_fabsf128");
692 builtin_define ("__builtin_copysignq=__builtin_copysignf128");
693 builtin_define ("__builtin_nanq=__builtin_nanf128");
694 builtin_define ("__builtin_nansq=__builtin_nansf128");
695 builtin_define ("__builtin_infq=__builtin_inff128");
696 builtin_define ("__builtin_huge_valq=__builtin_huge_valf128");
699 /* Tell users they can use __builtin_bswap{16,64}. */
700 builtin_define ("__HAVE_BSWAP__");
702 /* May be overridden by target configuration. */
703 RS6000_CPU_CPP_ENDIAN_BUILTINS();
705 if (TARGET_LONG_DOUBLE_128
)
707 builtin_define ("__LONG_DOUBLE_128__");
708 builtin_define ("__LONGDOUBLE128");
711 builtin_define ("__LONG_DOUBLE_IEEE128__");
713 builtin_define ("__LONG_DOUBLE_IBM128__");
716 switch (TARGET_CMODEL
)
718 /* Deliberately omit __CMODEL_SMALL__ since that was the default
719 before --mcmodel support was added. */
721 builtin_define ("__CMODEL_MEDIUM__");
724 builtin_define ("__CMODEL_LARGE__");
730 switch (rs6000_current_abi
)
733 builtin_define ("_CALL_SYSV");
736 builtin_define ("_CALL_AIXDESC");
737 builtin_define ("_CALL_AIX");
738 builtin_define ("_CALL_ELF=1");
741 builtin_define ("_CALL_ELF=2");
744 builtin_define ("_CALL_DARWIN");
750 /* Vector element order. */
751 if (BYTES_BIG_ENDIAN
|| (rs6000_altivec_element_order
== 2))
752 builtin_define ("__VEC_ELEMENT_REG_ORDER__=__ORDER_BIG_ENDIAN__");
754 builtin_define ("__VEC_ELEMENT_REG_ORDER__=__ORDER_LITTLE_ENDIAN__");
756 /* Let the compiled code know if 'f' class registers will not be available. */
757 if (TARGET_SOFT_FLOAT
)
758 builtin_define ("__NO_FPRS__");
760 /* Whether aggregates passed by value are aligned to a 16 byte boundary
761 if their alignment is 16 bytes or larger. */
762 if ((TARGET_MACHO
&& rs6000_darwin64_abi
)
763 || DEFAULT_ABI
== ABI_ELFv2
764 || (DEFAULT_ABI
== ABI_AIX
&& !rs6000_compat_align_parm
))
765 builtin_define ("__STRUCT_PARM_ALIGN__=16");
767 /* Generate defines for Xilinx FPU. */
768 if (rs6000_xilinx_fpu
)
770 builtin_define ("_XFPU");
771 if (rs6000_single_float
&& ! rs6000_double_float
)
773 if (rs6000_simple_fpu
)
774 builtin_define ("_XFPU_SP_LITE");
776 builtin_define ("_XFPU_SP_FULL");
778 if (rs6000_double_float
)
780 if (rs6000_simple_fpu
)
781 builtin_define ("_XFPU_DP_LITE");
783 builtin_define ("_XFPU_DP_FULL");
789 struct altivec_builtin_types
791 enum rs6000_builtins code
;
792 enum rs6000_builtins overloaded_code
;
793 signed char ret_type
;
799 const struct altivec_builtin_types altivec_overloaded_builtins
[] = {
800 /* Unary AltiVec/VSX builtins. */
801 { ALTIVEC_BUILTIN_VEC_ABS
, ALTIVEC_BUILTIN_ABS_V16QI
,
802 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
803 { ALTIVEC_BUILTIN_VEC_ABS
, ALTIVEC_BUILTIN_ABS_V8HI
,
804 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
805 { ALTIVEC_BUILTIN_VEC_ABS
, ALTIVEC_BUILTIN_ABS_V4SI
,
806 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
807 { ALTIVEC_BUILTIN_VEC_ABS
, P8V_BUILTIN_ABS_V2DI
,
808 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
809 { ALTIVEC_BUILTIN_VEC_ABS
, ALTIVEC_BUILTIN_ABS_V4SF
,
810 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
811 { ALTIVEC_BUILTIN_VEC_ABS
, VSX_BUILTIN_XVABSDP
,
812 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
813 { ALTIVEC_BUILTIN_VEC_ABSS
, ALTIVEC_BUILTIN_ABSS_V16QI
,
814 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
815 { ALTIVEC_BUILTIN_VEC_ABSS
, ALTIVEC_BUILTIN_ABSS_V8HI
,
816 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
817 { ALTIVEC_BUILTIN_VEC_ABSS
, ALTIVEC_BUILTIN_ABSS_V4SI
,
818 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
819 { ALTIVEC_BUILTIN_VEC_CEIL
, ALTIVEC_BUILTIN_VRFIP
,
820 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
821 { ALTIVEC_BUILTIN_VEC_CEIL
, VSX_BUILTIN_XVRDPIP
,
822 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
823 { ALTIVEC_BUILTIN_VEC_EXPTE
, ALTIVEC_BUILTIN_VEXPTEFP
,
824 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
825 { ALTIVEC_BUILTIN_VEC_FLOOR
, VSX_BUILTIN_XVRDPIM
,
826 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
827 { ALTIVEC_BUILTIN_VEC_FLOOR
, ALTIVEC_BUILTIN_VRFIM
,
828 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
829 { ALTIVEC_BUILTIN_VEC_LOGE
, ALTIVEC_BUILTIN_VLOGEFP
,
830 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
831 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
832 RS6000_BTI_void
, RS6000_BTI_V4SI
, 0, 0 },
833 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
834 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
835 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
836 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, 0, 0 },
837 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
838 RS6000_BTI_void
, RS6000_BTI_V8HI
, 0, 0 },
839 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
840 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
841 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
842 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, 0, 0 },
843 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
844 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, 0, 0 },
845 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
846 RS6000_BTI_void
, RS6000_BTI_V16QI
, 0, 0 },
847 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
848 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
849 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
850 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, 0, 0 },
851 { ALTIVEC_BUILTIN_VEC_RE
, ALTIVEC_BUILTIN_VREFP
,
852 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
853 { ALTIVEC_BUILTIN_VEC_RE
, VSX_BUILTIN_XVREDP
,
854 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
855 { ALTIVEC_BUILTIN_VEC_ROUND
, ALTIVEC_BUILTIN_VRFIN
,
856 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
857 { ALTIVEC_BUILTIN_VEC_ROUND
, VSX_BUILTIN_XVRDPI
,
858 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
859 { ALTIVEC_BUILTIN_VEC_RECIP
, ALTIVEC_BUILTIN_VRECIPFP
,
860 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
861 { ALTIVEC_BUILTIN_VEC_RECIP
, VSX_BUILTIN_RECIP_V2DF
,
862 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
863 { ALTIVEC_BUILTIN_VEC_RSQRT
, ALTIVEC_BUILTIN_VRSQRTFP
,
864 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
865 { ALTIVEC_BUILTIN_VEC_RSQRT
, VSX_BUILTIN_RSQRT_2DF
,
866 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
867 { ALTIVEC_BUILTIN_VEC_RSQRTE
, ALTIVEC_BUILTIN_VRSQRTEFP
,
868 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
869 { ALTIVEC_BUILTIN_VEC_RSQRTE
, VSX_BUILTIN_XVRSQRTEDP
,
870 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
871 { ALTIVEC_BUILTIN_VEC_TRUNC
, ALTIVEC_BUILTIN_VRFIZ
,
872 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
873 { ALTIVEC_BUILTIN_VEC_TRUNC
, VSX_BUILTIN_XVRDPIZ
,
874 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
875 { ALTIVEC_BUILTIN_VEC_UNPACKH
, ALTIVEC_BUILTIN_VUPKHSB
,
876 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, 0, 0 },
877 { ALTIVEC_BUILTIN_VEC_UNPACKH
, ALTIVEC_BUILTIN_VUPKHSB
,
878 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V16QI
, 0, 0 },
879 { ALTIVEC_BUILTIN_VEC_UNPACKH
, ALTIVEC_BUILTIN_VUPKHSH
,
880 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, 0, 0 },
881 { ALTIVEC_BUILTIN_VEC_UNPACKH
, ALTIVEC_BUILTIN_VUPKHSH
,
882 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V8HI
, 0, 0 },
883 { ALTIVEC_BUILTIN_VEC_UNPACKH
, P8V_BUILTIN_VUPKHSW
,
884 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, 0, 0 },
885 { ALTIVEC_BUILTIN_VEC_UNPACKH
, P8V_BUILTIN_VUPKHSW
,
886 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V4SI
, 0, 0 },
887 { ALTIVEC_BUILTIN_VEC_UNPACKH
, ALTIVEC_BUILTIN_VUPKHPX
,
888 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_pixel_V8HI
, 0, 0 },
889 { ALTIVEC_BUILTIN_VEC_UNPACKH
, ALTIVEC_BUILTIN_VUPKHPX
,
890 RS6000_BTI_V2DF
, RS6000_BTI_V4SF
, 0, 0 },
891 { ALTIVEC_BUILTIN_VEC_VUPKHSH
, ALTIVEC_BUILTIN_VUPKHSH
,
892 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, 0, 0 },
893 { ALTIVEC_BUILTIN_VEC_VUPKHSH
, ALTIVEC_BUILTIN_VUPKHSH
,
894 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V8HI
, 0, 0 },
895 { ALTIVEC_BUILTIN_VEC_VUPKHSH
, P8V_BUILTIN_VUPKHSW
,
896 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, 0, 0 },
897 { ALTIVEC_BUILTIN_VEC_VUPKHSH
, P8V_BUILTIN_VUPKHSW
,
898 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V4SI
, 0, 0 },
899 { ALTIVEC_BUILTIN_VEC_VUPKHPX
, ALTIVEC_BUILTIN_VUPKHPX
,
900 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
901 { ALTIVEC_BUILTIN_VEC_VUPKHPX
, ALTIVEC_BUILTIN_VUPKHPX
,
902 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_pixel_V8HI
, 0, 0 },
903 { ALTIVEC_BUILTIN_VEC_VUPKHSB
, ALTIVEC_BUILTIN_VUPKHSB
,
904 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, 0, 0 },
905 { ALTIVEC_BUILTIN_VEC_VUPKHSB
, ALTIVEC_BUILTIN_VUPKHSB
,
906 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V16QI
, 0, 0 },
907 { ALTIVEC_BUILTIN_VEC_UNPACKL
, ALTIVEC_BUILTIN_VUPKLSB
,
908 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, 0, 0 },
909 { ALTIVEC_BUILTIN_VEC_UNPACKL
, ALTIVEC_BUILTIN_VUPKLSB
,
910 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V16QI
, 0, 0 },
911 { ALTIVEC_BUILTIN_VEC_UNPACKL
, ALTIVEC_BUILTIN_VUPKLPX
,
912 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_pixel_V8HI
, 0, 0 },
913 { ALTIVEC_BUILTIN_VEC_UNPACKL
, ALTIVEC_BUILTIN_VUPKLSH
,
914 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, 0, 0 },
915 { ALTIVEC_BUILTIN_VEC_UNPACKL
, ALTIVEC_BUILTIN_VUPKLSH
,
916 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V8HI
, 0, 0 },
917 { ALTIVEC_BUILTIN_VEC_UNPACKL
, P8V_BUILTIN_VUPKLSW
,
918 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, 0, 0 },
919 { ALTIVEC_BUILTIN_VEC_UNPACKL
, P8V_BUILTIN_VUPKLSW
,
920 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V4SI
, 0, 0 },
921 { ALTIVEC_BUILTIN_VEC_UNPACKL
, ALTIVEC_BUILTIN_VUPKLPX
,
922 RS6000_BTI_V2DF
, RS6000_BTI_V4SF
, 0, 0 },
923 { ALTIVEC_BUILTIN_VEC_VUPKLPX
, ALTIVEC_BUILTIN_VUPKLPX
,
924 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
925 { ALTIVEC_BUILTIN_VEC_VUPKLPX
, ALTIVEC_BUILTIN_VUPKLPX
,
926 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_pixel_V8HI
, 0, 0 },
927 { ALTIVEC_BUILTIN_VEC_VUPKLSH
, ALTIVEC_BUILTIN_VUPKLSH
,
928 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, 0, 0 },
929 { ALTIVEC_BUILTIN_VEC_VUPKLSH
, ALTIVEC_BUILTIN_VUPKLSH
,
930 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V8HI
, 0, 0 },
931 { ALTIVEC_BUILTIN_VEC_VUPKLSB
, ALTIVEC_BUILTIN_VUPKLSB
,
932 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, 0, 0 },
933 { ALTIVEC_BUILTIN_VEC_VUPKLSB
, ALTIVEC_BUILTIN_VUPKLSB
,
934 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V16QI
, 0, 0 },
936 /* Binary AltiVec/VSX builtins. */
937 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUBM
,
938 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
939 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUBM
,
940 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
941 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUBM
,
942 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
943 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUBM
,
944 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
945 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUBM
,
946 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
947 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUBM
,
948 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
949 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUHM
,
950 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
951 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUHM
,
952 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
953 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUHM
,
954 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
955 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUHM
,
956 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
957 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUHM
,
958 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
959 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUHM
,
960 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
961 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUWM
,
962 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
963 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUWM
,
964 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
965 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUWM
,
966 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
967 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUWM
,
968 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
969 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUWM
,
970 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
971 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUWM
,
972 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
973 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUDM
,
974 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
975 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUDM
,
976 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
977 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUDM
,
978 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
979 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUDM
,
980 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
981 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUDM
,
982 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
983 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUDM
,
984 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
985 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDFP
,
986 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
987 { ALTIVEC_BUILTIN_VEC_ADD
, VSX_BUILTIN_XVADDDP
,
988 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
989 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUQM
,
990 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
991 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUQM
,
992 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
993 RS6000_BTI_unsigned_V1TI
, 0 },
994 { ALTIVEC_BUILTIN_VEC_VADDFP
, ALTIVEC_BUILTIN_VADDFP
,
995 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
996 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
997 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
998 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
999 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1000 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
1001 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0 },
1002 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
1003 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1004 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
1005 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
1006 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
1007 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1008 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
1009 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1010 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
1011 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1012 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
1013 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1014 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
1015 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1016 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
1017 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, 0 },
1018 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
1019 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1020 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
1021 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
1022 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
1023 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1024 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
1025 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1026 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
1027 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1028 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
1029 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1030 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
1031 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1032 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
1033 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
1034 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
1035 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1036 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
1037 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
1038 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
1039 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1040 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
1041 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1042 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
1043 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1044 { ALTIVEC_BUILTIN_VEC_ADDC
, ALTIVEC_BUILTIN_VADDCUW
,
1045 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1046 { ALTIVEC_BUILTIN_VEC_ADDC
, ALTIVEC_BUILTIN_VADDCUW
,
1047 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
1048 RS6000_BTI_unsigned_V4SI
, 0 },
1049 { ALTIVEC_BUILTIN_VEC_ADDC
, P8V_BUILTIN_VADDCUQ
,
1050 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
1051 RS6000_BTI_unsigned_V1TI
, 0 },
1052 { ALTIVEC_BUILTIN_VEC_ADDC
, P8V_BUILTIN_VADDCUQ
,
1053 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
1054 { ALTIVEC_BUILTIN_VEC_ADDEC
, P8V_BUILTIN_VADDECUQ
,
1055 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
1056 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
},
1057 { ALTIVEC_BUILTIN_VEC_ADDEC
, P8V_BUILTIN_VADDECUQ
,
1058 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
},
1059 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUBS
,
1060 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1061 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUBS
,
1062 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1063 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUBS
,
1064 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1065 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSBS
,
1066 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
1067 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSBS
,
1068 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1069 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSBS
,
1070 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1071 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUHS
,
1072 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1073 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUHS
,
1074 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1075 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUHS
,
1076 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1077 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSHS
,
1078 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
1079 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSHS
,
1080 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1081 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSHS
,
1082 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1083 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUWS
,
1084 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1085 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUWS
,
1086 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1087 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUWS
,
1088 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1089 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSWS
,
1090 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
1091 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSWS
,
1092 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1093 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSWS
,
1094 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1095 { ALTIVEC_BUILTIN_VEC_VADDSWS
, ALTIVEC_BUILTIN_VADDSWS
,
1096 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1097 { ALTIVEC_BUILTIN_VEC_VADDSWS
, ALTIVEC_BUILTIN_VADDSWS
,
1098 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
1099 { ALTIVEC_BUILTIN_VEC_VADDSWS
, ALTIVEC_BUILTIN_VADDSWS
,
1100 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1101 { ALTIVEC_BUILTIN_VEC_VADDUWS
, ALTIVEC_BUILTIN_VADDUWS
,
1102 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1103 { ALTIVEC_BUILTIN_VEC_VADDUWS
, ALTIVEC_BUILTIN_VADDUWS
,
1104 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0 },
1105 { ALTIVEC_BUILTIN_VEC_VADDUWS
, ALTIVEC_BUILTIN_VADDUWS
,
1106 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1107 { ALTIVEC_BUILTIN_VEC_VADDUWS
, ALTIVEC_BUILTIN_VADDUWS
,
1108 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1109 { ALTIVEC_BUILTIN_VEC_VADDUWS
, ALTIVEC_BUILTIN_VADDUWS
,
1110 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1111 { ALTIVEC_BUILTIN_VEC_VADDSHS
, ALTIVEC_BUILTIN_VADDSHS
,
1112 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1113 { ALTIVEC_BUILTIN_VEC_VADDSHS
, ALTIVEC_BUILTIN_VADDSHS
,
1114 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
1115 { ALTIVEC_BUILTIN_VEC_VADDSHS
, ALTIVEC_BUILTIN_VADDSHS
,
1116 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1117 { ALTIVEC_BUILTIN_VEC_VADDUHS
, ALTIVEC_BUILTIN_VADDUHS
,
1118 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1119 { ALTIVEC_BUILTIN_VEC_VADDUHS
, ALTIVEC_BUILTIN_VADDUHS
,
1120 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, 0 },
1121 { ALTIVEC_BUILTIN_VEC_VADDUHS
, ALTIVEC_BUILTIN_VADDUHS
,
1122 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1123 { ALTIVEC_BUILTIN_VEC_VADDUHS
, ALTIVEC_BUILTIN_VADDUHS
,
1124 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1125 { ALTIVEC_BUILTIN_VEC_VADDUHS
, ALTIVEC_BUILTIN_VADDUHS
,
1126 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1127 { ALTIVEC_BUILTIN_VEC_VADDSBS
, ALTIVEC_BUILTIN_VADDSBS
,
1128 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1129 { ALTIVEC_BUILTIN_VEC_VADDSBS
, ALTIVEC_BUILTIN_VADDSBS
,
1130 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
1131 { ALTIVEC_BUILTIN_VEC_VADDSBS
, ALTIVEC_BUILTIN_VADDSBS
,
1132 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1133 { ALTIVEC_BUILTIN_VEC_VADDUBS
, ALTIVEC_BUILTIN_VADDUBS
,
1134 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1135 { ALTIVEC_BUILTIN_VEC_VADDUBS
, ALTIVEC_BUILTIN_VADDUBS
,
1136 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
1137 { ALTIVEC_BUILTIN_VEC_VADDUBS
, ALTIVEC_BUILTIN_VADDUBS
,
1138 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1139 { ALTIVEC_BUILTIN_VEC_VADDUBS
, ALTIVEC_BUILTIN_VADDUBS
,
1140 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1141 { ALTIVEC_BUILTIN_VEC_VADDUBS
, ALTIVEC_BUILTIN_VADDUBS
,
1142 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1143 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1144 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1145 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1146 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, 0 },
1147 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1148 RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, 0 },
1149 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1150 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1151 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1152 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, 0 },
1153 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1154 RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, 0 },
1155 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1156 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1157 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1158 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1159 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1160 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
1161 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1162 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1163 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1164 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1165 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1166 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1167 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1168 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1169 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1170 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1171 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1172 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
1173 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1174 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1175 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1176 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1177 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1178 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1179 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1180 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1181 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1182 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1183 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1184 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1185 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1186 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
1187 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1188 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1189 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1190 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1191 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1192 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1193 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1194 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1195 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1196 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1197 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1198 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
1199 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1200 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1201 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1202 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1203 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1204 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1205 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1206 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1207 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1208 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1209 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
1210 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1211 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1212 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1213 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1214 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, 0 },
1215 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1216 RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, 0 },
1217 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1218 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1219 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1220 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, 0 },
1221 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1222 RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, 0 },
1223 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1224 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1225 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1226 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1227 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1228 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
1229 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1230 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1231 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1232 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1233 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1234 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1235 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1236 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1237 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1238 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1239 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1240 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
1241 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1242 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1243 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1244 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1245 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1246 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1247 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1248 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1249 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1250 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1251 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1252 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1253 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1254 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
1255 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1256 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1257 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1258 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1259 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1260 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1261 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1262 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1263 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1264 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1265 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1266 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
1267 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1268 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1269 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1270 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1271 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1272 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1273 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1274 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1275 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1276 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1277 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1278 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1279 { ALTIVEC_BUILTIN_VEC_AVG
, ALTIVEC_BUILTIN_VAVGUB
,
1280 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1281 { ALTIVEC_BUILTIN_VEC_AVG
, ALTIVEC_BUILTIN_VAVGSB
,
1282 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1283 { ALTIVEC_BUILTIN_VEC_AVG
, ALTIVEC_BUILTIN_VAVGUH
,
1284 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1285 { ALTIVEC_BUILTIN_VEC_AVG
, ALTIVEC_BUILTIN_VAVGSH
,
1286 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1287 { ALTIVEC_BUILTIN_VEC_AVG
, ALTIVEC_BUILTIN_VAVGUW
,
1288 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1289 { ALTIVEC_BUILTIN_VEC_AVG
, ALTIVEC_BUILTIN_VAVGSW
,
1290 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1291 { ALTIVEC_BUILTIN_VEC_VAVGSW
, ALTIVEC_BUILTIN_VAVGSW
,
1292 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1293 { ALTIVEC_BUILTIN_VEC_VAVGUW
, ALTIVEC_BUILTIN_VAVGUW
,
1294 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1295 { ALTIVEC_BUILTIN_VEC_VAVGSH
, ALTIVEC_BUILTIN_VAVGSH
,
1296 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1297 { ALTIVEC_BUILTIN_VEC_VAVGUH
, ALTIVEC_BUILTIN_VAVGUH
,
1298 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1299 { ALTIVEC_BUILTIN_VEC_VAVGSB
, ALTIVEC_BUILTIN_VAVGSB
,
1300 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1301 { ALTIVEC_BUILTIN_VEC_VAVGUB
, ALTIVEC_BUILTIN_VAVGUB
,
1302 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1303 { ALTIVEC_BUILTIN_VEC_CMPB
, ALTIVEC_BUILTIN_VCMPBFP
,
1304 RS6000_BTI_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1305 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUB
,
1306 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1307 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUB
,
1308 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1309 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUB
,
1310 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1311 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUH
,
1312 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1313 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUH
,
1314 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1315 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUH
,
1316 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1317 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUW
,
1318 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1319 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUW
,
1320 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1321 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUW
,
1322 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1323 { ALTIVEC_BUILTIN_VEC_CMPEQ
, P8V_BUILTIN_VCMPEQUD
,
1324 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1325 { ALTIVEC_BUILTIN_VEC_CMPEQ
, P8V_BUILTIN_VCMPEQUD
,
1326 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1327 { ALTIVEC_BUILTIN_VEC_CMPEQ
, P8V_BUILTIN_VCMPEQUD
,
1328 RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1329 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQFP
,
1330 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1331 { ALTIVEC_BUILTIN_VEC_CMPEQ
, VSX_BUILTIN_XVCMPEQDP
,
1332 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1333 { ALTIVEC_BUILTIN_VEC_VCMPEQFP
, ALTIVEC_BUILTIN_VCMPEQFP
,
1334 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1336 { ALTIVEC_BUILTIN_VEC_VCMPEQUW
, ALTIVEC_BUILTIN_VCMPEQUW
,
1337 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1338 { ALTIVEC_BUILTIN_VEC_VCMPEQUW
, ALTIVEC_BUILTIN_VCMPEQUW
,
1339 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1341 { ALTIVEC_BUILTIN_VEC_VCMPEQUH
, ALTIVEC_BUILTIN_VCMPEQUH
,
1342 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1343 { ALTIVEC_BUILTIN_VEC_VCMPEQUH
, ALTIVEC_BUILTIN_VCMPEQUH
,
1344 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1346 { ALTIVEC_BUILTIN_VEC_VCMPEQUB
, ALTIVEC_BUILTIN_VCMPEQUB
,
1347 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1348 { ALTIVEC_BUILTIN_VEC_VCMPEQUB
, ALTIVEC_BUILTIN_VCMPEQUB
,
1349 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1351 { ALTIVEC_BUILTIN_VEC_CMPGE
, ALTIVEC_BUILTIN_VCMPGEFP
,
1352 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1353 { ALTIVEC_BUILTIN_VEC_CMPGE
, VSX_BUILTIN_XVCMPGEDP
,
1354 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1355 { ALTIVEC_BUILTIN_VEC_CMPGE
, VSX_BUILTIN_CMPGE_16QI
,
1356 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0},
1357 { ALTIVEC_BUILTIN_VEC_CMPGE
, VSX_BUILTIN_CMPGE_U16QI
,
1358 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
,
1359 RS6000_BTI_unsigned_V16QI
, 0},
1360 { ALTIVEC_BUILTIN_VEC_CMPGE
, VSX_BUILTIN_CMPGE_8HI
,
1361 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0},
1362 { ALTIVEC_BUILTIN_VEC_CMPGE
, VSX_BUILTIN_CMPGE_U8HI
,
1363 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
,
1364 RS6000_BTI_unsigned_V8HI
, 0},
1365 { ALTIVEC_BUILTIN_VEC_CMPGE
, VSX_BUILTIN_CMPGE_4SI
,
1366 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0},
1367 { ALTIVEC_BUILTIN_VEC_CMPGE
, VSX_BUILTIN_CMPGE_U4SI
,
1368 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
,
1369 RS6000_BTI_unsigned_V4SI
, 0},
1370 { ALTIVEC_BUILTIN_VEC_CMPGE
, VSX_BUILTIN_CMPGE_2DI
,
1371 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0},
1372 { ALTIVEC_BUILTIN_VEC_CMPGE
, VSX_BUILTIN_CMPGE_U2DI
,
1373 RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
,
1374 RS6000_BTI_unsigned_V2DI
, 0},
1375 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTUB
,
1376 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1377 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTSB
,
1378 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1379 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTUH
,
1380 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1381 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTSH
,
1382 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1383 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTUW
,
1384 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1385 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTSW
,
1386 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1387 { ALTIVEC_BUILTIN_VEC_CMPGT
, P8V_BUILTIN_VCMPGTUD
,
1388 RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1389 { ALTIVEC_BUILTIN_VEC_CMPGT
, P8V_BUILTIN_VCMPGTSD
,
1390 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1391 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTFP
,
1392 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1393 { ALTIVEC_BUILTIN_VEC_CMPGT
, VSX_BUILTIN_XVCMPGTDP
,
1394 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1395 { ALTIVEC_BUILTIN_VEC_VCMPGTFP
, ALTIVEC_BUILTIN_VCMPGTFP
,
1396 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1397 { ALTIVEC_BUILTIN_VEC_VCMPGTSW
, ALTIVEC_BUILTIN_VCMPGTSW
,
1398 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1399 { ALTIVEC_BUILTIN_VEC_VCMPGTSW
, ALTIVEC_BUILTIN_VCMPGTSW
,
1400 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1401 { ALTIVEC_BUILTIN_VEC_VCMPGTUW
, ALTIVEC_BUILTIN_VCMPGTUW
,
1402 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1403 { ALTIVEC_BUILTIN_VEC_VCMPGTUW
, ALTIVEC_BUILTIN_VCMPGTUW
,
1404 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1405 { ALTIVEC_BUILTIN_VEC_VCMPGTSH
, ALTIVEC_BUILTIN_VCMPGTSH
,
1406 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1407 { ALTIVEC_BUILTIN_VEC_VCMPGTSH
, ALTIVEC_BUILTIN_VCMPGTSH
,
1408 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1409 { ALTIVEC_BUILTIN_VEC_VCMPGTUH
, ALTIVEC_BUILTIN_VCMPGTUH
,
1410 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1411 { ALTIVEC_BUILTIN_VEC_VCMPGTUH
, ALTIVEC_BUILTIN_VCMPGTUH
,
1412 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1413 { ALTIVEC_BUILTIN_VEC_VCMPGTSB
, ALTIVEC_BUILTIN_VCMPGTSB
,
1414 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1415 { ALTIVEC_BUILTIN_VEC_VCMPGTSB
, ALTIVEC_BUILTIN_VCMPGTSB
,
1416 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1417 { ALTIVEC_BUILTIN_VEC_VCMPGTUB
, ALTIVEC_BUILTIN_VCMPGTUB
,
1418 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1419 { ALTIVEC_BUILTIN_VEC_VCMPGTUB
, ALTIVEC_BUILTIN_VCMPGTUB
,
1420 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1421 { ALTIVEC_BUILTIN_VEC_CMPLE
, ALTIVEC_BUILTIN_VCMPGEFP
,
1422 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1423 { ALTIVEC_BUILTIN_VEC_CMPLE
, VSX_BUILTIN_XVCMPGEDP
,
1424 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1425 { ALTIVEC_BUILTIN_VEC_CMPLE
, VSX_BUILTIN_CMPLE_16QI
,
1426 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0},
1427 { ALTIVEC_BUILTIN_VEC_CMPLE
, VSX_BUILTIN_CMPLE_U16QI
,
1428 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
,
1429 RS6000_BTI_unsigned_V16QI
, 0},
1430 { ALTIVEC_BUILTIN_VEC_CMPLE
, VSX_BUILTIN_CMPLE_8HI
,
1431 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0},
1432 { ALTIVEC_BUILTIN_VEC_CMPLE
, VSX_BUILTIN_CMPLE_U8HI
,
1433 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
,
1434 RS6000_BTI_unsigned_V8HI
, 0},
1435 { ALTIVEC_BUILTIN_VEC_CMPLE
, VSX_BUILTIN_CMPLE_4SI
,
1436 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0},
1437 { ALTIVEC_BUILTIN_VEC_CMPLE
, VSX_BUILTIN_CMPLE_U4SI
,
1438 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
,
1439 RS6000_BTI_unsigned_V4SI
, 0},
1440 { ALTIVEC_BUILTIN_VEC_CMPLE
, VSX_BUILTIN_CMPLE_2DI
,
1441 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0},
1442 { ALTIVEC_BUILTIN_VEC_CMPLE
, VSX_BUILTIN_CMPLE_U2DI
,
1443 RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
,
1444 RS6000_BTI_unsigned_V2DI
, 0},
1445 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTUB
,
1446 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1447 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTSB
,
1448 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1449 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTUH
,
1450 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1451 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTSH
,
1452 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1453 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTUW
,
1454 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1455 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTSW
,
1456 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1457 { ALTIVEC_BUILTIN_VEC_CMPLT
, P8V_BUILTIN_VCMPGTUD
,
1458 RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1459 { ALTIVEC_BUILTIN_VEC_CMPLT
, P8V_BUILTIN_VCMPGTSD
,
1460 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1461 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTFP
,
1462 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1463 { ALTIVEC_BUILTIN_VEC_CMPLT
, VSX_BUILTIN_XVCMPGTDP
,
1464 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1465 { ALTIVEC_BUILTIN_VEC_COPYSIGN
, VSX_BUILTIN_CPSGNDP
,
1466 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1467 { ALTIVEC_BUILTIN_VEC_COPYSIGN
, ALTIVEC_BUILTIN_COPYSIGN_V4SF
,
1468 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1469 { ALTIVEC_BUILTIN_VEC_CTF
, ALTIVEC_BUILTIN_VCFUX
,
1470 RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, 0 },
1471 { ALTIVEC_BUILTIN_VEC_CTF
, ALTIVEC_BUILTIN_VCFSX
,
1472 RS6000_BTI_V4SF
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, 0 },
1473 { ALTIVEC_BUILTIN_VEC_CTF
, VSX_BUILTIN_XVCVSXDDP_SCALE
,
1474 RS6000_BTI_V2DF
, RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, 0},
1475 { ALTIVEC_BUILTIN_VEC_CTF
, VSX_BUILTIN_XVCVUXDDP_SCALE
,
1476 RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
, 0},
1477 { ALTIVEC_BUILTIN_VEC_VCFSX
, ALTIVEC_BUILTIN_VCFSX
,
1478 RS6000_BTI_V4SF
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, 0 },
1479 { ALTIVEC_BUILTIN_VEC_VCFUX
, ALTIVEC_BUILTIN_VCFUX
,
1480 RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, 0 },
1481 { ALTIVEC_BUILTIN_VEC_CTS
, ALTIVEC_BUILTIN_VCTSXS
,
1482 RS6000_BTI_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, 0 },
1483 { ALTIVEC_BUILTIN_VEC_CTS
, VSX_BUILTIN_XVCVDPSXDS_SCALE
,
1484 RS6000_BTI_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, 0 },
1485 { ALTIVEC_BUILTIN_VEC_CTU
, ALTIVEC_BUILTIN_VCTUXS
,
1486 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, 0 },
1487 { ALTIVEC_BUILTIN_VEC_CTU
, VSX_BUILTIN_XVCVDPUXDS_SCALE
,
1488 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, 0 },
1489 { VSX_BUILTIN_VEC_DIV
, VSX_BUILTIN_XVDIVSP
,
1490 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1491 { VSX_BUILTIN_VEC_DIV
, VSX_BUILTIN_XVDIVDP
,
1492 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1493 { VSX_BUILTIN_VEC_DIV
, VSX_BUILTIN_DIV_V2DI
,
1494 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1495 { VSX_BUILTIN_VEC_DIV
, VSX_BUILTIN_UDIV_V2DI
,
1496 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1497 { VSX_BUILTIN_VEC_DOUBLE
, VSX_BUILTIN_XVCVSXDDP
,
1498 RS6000_BTI_V2DF
, RS6000_BTI_V2DI
, 0, 0 },
1499 { VSX_BUILTIN_VEC_DOUBLE
, VSX_BUILTIN_XVCVUXDDP
,
1500 RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
1502 { VSX_BUILTIN_VEC_DOUBLEE
, VSX_BUILTIN_DOUBLEE_V4SI
,
1503 RS6000_BTI_V2DF
, RS6000_BTI_V4SI
, 0, 0 },
1504 { VSX_BUILTIN_VEC_DOUBLEE
, VSX_BUILTIN_UNS_DOUBLEE_V4SI
,
1505 RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
1506 { VSX_BUILTIN_VEC_DOUBLEE
, VSX_BUILTIN_DOUBLEE_V4SF
,
1507 RS6000_BTI_V2DF
, RS6000_BTI_V4SF
, 0, 0 },
1509 { VSX_BUILTIN_VEC_DOUBLEO
, VSX_BUILTIN_DOUBLEO_V4SI
,
1510 RS6000_BTI_V2DF
, RS6000_BTI_V4SI
, 0, 0 },
1511 { VSX_BUILTIN_VEC_DOUBLEO
, VSX_BUILTIN_UNS_DOUBLEO_V4SI
,
1512 RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
1513 { VSX_BUILTIN_VEC_DOUBLEO
, VSX_BUILTIN_DOUBLEO_V4SF
,
1514 RS6000_BTI_V2DF
, RS6000_BTI_V4SF
, 0, 0 },
1516 { VSX_BUILTIN_VEC_DOUBLEH
, VSX_BUILTIN_DOUBLEH_V4SI
,
1517 RS6000_BTI_V2DF
, RS6000_BTI_V4SI
, 0, 0 },
1518 { VSX_BUILTIN_VEC_DOUBLEH
, VSX_BUILTIN_UNS_DOUBLEH_V4SI
,
1519 RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
1520 { VSX_BUILTIN_VEC_DOUBLEH
, VSX_BUILTIN_DOUBLEH_V4SF
,
1521 RS6000_BTI_V2DF
, RS6000_BTI_V4SF
, 0, 0 },
1523 { VSX_BUILTIN_VEC_DOUBLEL
, VSX_BUILTIN_DOUBLEL_V4SI
,
1524 RS6000_BTI_V2DF
, RS6000_BTI_V4SI
, 0, 0 },
1525 { VSX_BUILTIN_VEC_DOUBLEL
, VSX_BUILTIN_UNS_DOUBLEL_V4SI
,
1526 RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
1527 { VSX_BUILTIN_VEC_DOUBLEL
, VSX_BUILTIN_DOUBLEL_V4SF
,
1528 RS6000_BTI_V2DF
, RS6000_BTI_V4SF
, 0, 0 },
1530 { VSX_BUILTIN_VEC_FLOAT
, VSX_BUILTIN_XVCVSXWSP_V4SF
,
1531 RS6000_BTI_V4SF
, RS6000_BTI_V4SI
, 0, 0 },
1532 { VSX_BUILTIN_VEC_FLOAT
, VSX_BUILTIN_XVCVUXWSP_V4SF
,
1533 RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
1534 { VSX_BUILTIN_VEC_FLOAT2
, VSX_BUILTIN_FLOAT2_V2DI
,
1535 RS6000_BTI_V4SF
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1536 { VSX_BUILTIN_VEC_FLOAT2
, VSX_BUILTIN_UNS_FLOAT2_V2DI
,
1537 RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V2DI
,
1538 RS6000_BTI_unsigned_V2DI
, 0 },
1539 { VSX_BUILTIN_VEC_FLOATE
, VSX_BUILTIN_FLOATE_V2DF
,
1540 RS6000_BTI_V4SF
, RS6000_BTI_V2DF
, 0, 0 },
1541 { VSX_BUILTIN_VEC_FLOATE
, VSX_BUILTIN_FLOATE_V2DI
,
1542 RS6000_BTI_V4SF
, RS6000_BTI_V2DI
, 0, 0 },
1543 { VSX_BUILTIN_VEC_FLOATE
, VSX_BUILTIN_UNS_FLOATE_V2DI
,
1544 RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
1545 { VSX_BUILTIN_VEC_FLOATO
, VSX_BUILTIN_FLOATO_V2DF
,
1546 RS6000_BTI_V4SF
, RS6000_BTI_V2DF
, 0, 0 },
1547 { VSX_BUILTIN_VEC_FLOATO
, VSX_BUILTIN_FLOATO_V2DI
,
1548 RS6000_BTI_V4SF
, RS6000_BTI_V2DI
, 0, 0 },
1549 { VSX_BUILTIN_VEC_FLOATO
, VSX_BUILTIN_UNS_FLOATO_V2DI
,
1550 RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
1552 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V2DF
,
1553 RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
, 0 },
1554 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V2DI
,
1555 RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
, 0 },
1556 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V2DI
,
1557 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
1558 ~RS6000_BTI_unsigned_V2DI
, 0 },
1559 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V2DI
,
1560 RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V2DI
, 0 },
1561 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SF
,
1562 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
1563 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SF
,
1564 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1565 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1566 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
1567 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1568 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
1569 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1570 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1571 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1572 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
1573 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1574 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
1575 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1576 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1577 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1578 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_long
, 0 },
1579 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V8HI
,
1580 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
1581 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V8HI
,
1582 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
1583 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V8HI
,
1584 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
1585 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V8HI
,
1586 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1587 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V8HI
,
1588 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
1589 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V8HI
,
1590 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1591 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V16QI
,
1592 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
1593 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V16QI
,
1594 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
1595 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V16QI
,
1596 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1597 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V16QI
,
1598 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
, 0 },
1599 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V16QI
,
1600 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1601 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEBX
,
1602 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1603 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEBX
,
1604 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1605 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEHX
,
1606 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1607 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEHX
,
1608 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1609 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEWX
,
1610 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1611 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEWX
,
1612 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1613 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEWX
,
1614 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1615 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEWX
,
1616 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
1617 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEWX
,
1618 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_long
, 0 },
1619 { ALTIVEC_BUILTIN_VEC_LVEWX
, ALTIVEC_BUILTIN_LVEWX
,
1620 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1621 { ALTIVEC_BUILTIN_VEC_LVEWX
, ALTIVEC_BUILTIN_LVEWX
,
1622 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1623 { ALTIVEC_BUILTIN_VEC_LVEWX
, ALTIVEC_BUILTIN_LVEWX
,
1624 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1625 { ALTIVEC_BUILTIN_VEC_LVEWX
, ALTIVEC_BUILTIN_LVEWX
,
1626 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
1627 { ALTIVEC_BUILTIN_VEC_LVEWX
, ALTIVEC_BUILTIN_LVEWX
,
1628 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_long
, 0 },
1629 { ALTIVEC_BUILTIN_VEC_LVEHX
, ALTIVEC_BUILTIN_LVEHX
,
1630 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1631 { ALTIVEC_BUILTIN_VEC_LVEHX
, ALTIVEC_BUILTIN_LVEHX
,
1632 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1633 { ALTIVEC_BUILTIN_VEC_LVEBX
, ALTIVEC_BUILTIN_LVEBX
,
1634 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1635 { ALTIVEC_BUILTIN_VEC_LVEBX
, ALTIVEC_BUILTIN_LVEBX
,
1636 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1637 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SF
,
1638 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
1639 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SF
,
1640 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1641 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1642 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
1643 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1644 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
1645 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1646 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1647 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1648 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
1649 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1650 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
1651 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1652 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1653 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1654 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_long
, 0 },
1655 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V8HI
,
1656 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
1657 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V8HI
,
1658 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
1659 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V8HI
,
1660 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
1661 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V8HI
,
1662 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1663 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V8HI
,
1664 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
1665 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V8HI
,
1666 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1667 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V16QI
,
1668 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
1669 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V16QI
,
1670 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
1671 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V16QI
,
1672 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1673 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V16QI
,
1674 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
1675 ~RS6000_BTI_unsigned_V16QI
, 0 },
1676 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V16QI
,
1677 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1678 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V2DF
,
1679 RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
, 0 },
1680 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V2DI
,
1681 RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
, 0 },
1682 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V2DI
,
1683 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
1684 ~RS6000_BTI_unsigned_V2DI
, 0 },
1685 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V2DI
,
1686 RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V2DI
, 0 },
1687 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1688 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1689 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1690 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1691 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1692 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1693 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1694 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1695 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1696 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1697 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1698 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1699 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1700 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_long
, 0 },
1701 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1702 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
1703 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1704 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1705 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1706 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_double
, 0 },
1707 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1708 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTDI
, 0 },
1709 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1710 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTDI
, 0 },
1711 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1712 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long_long
, 0 },
1713 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1714 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
1715 ~RS6000_BTI_unsigned_long_long
, 0 },
1716 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1717 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1718 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1719 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1720 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1721 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1722 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1723 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1724 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1725 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1726 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1727 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1728 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1729 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_long
, 0 },
1730 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1731 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
1732 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1733 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1734 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1735 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_double
, 0 },
1736 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1737 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTDI
, 0 },
1738 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1739 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTDI
, 0 },
1740 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1741 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long_long
, 0 },
1742 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1743 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
1744 ~RS6000_BTI_unsigned_long_long
, 0 },
1745 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1746 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
1747 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1748 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1749 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1750 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
1751 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1752 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
1753 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1754 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1755 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1756 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
1757 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1758 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1759 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1760 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
1761 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1762 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
1763 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1764 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
1765 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1766 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1767 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1768 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
1769 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1770 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1771 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1772 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
1773 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1774 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
1775 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1776 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1777 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1778 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
, 0 },
1779 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1780 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1781 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1782 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
1783 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1784 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1785 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1786 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
1787 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1788 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
1789 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1790 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1791 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1792 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
1793 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1794 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1795 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1796 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
1797 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1798 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
1799 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1800 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
1801 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1802 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1803 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1804 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
1805 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1806 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1807 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1808 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
1809 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1810 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
1811 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1812 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1813 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1814 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
, 0 },
1815 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1816 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1817 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1818 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
1819 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1820 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1821 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1822 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
1823 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1824 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
1825 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1826 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1827 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1828 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
1829 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1830 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1831 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1832 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
1833 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1834 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
1835 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1836 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
1837 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1838 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1839 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1840 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
1841 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1842 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1843 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1844 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
1845 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1846 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
1847 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1848 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1849 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1850 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
, 0 },
1851 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1852 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1853 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1854 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
1855 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1856 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1857 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1858 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
1859 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1860 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
1861 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1862 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1863 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1864 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
1865 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1866 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1867 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1868 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
1869 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1870 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
1871 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1872 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
1873 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1874 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1875 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1876 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
1877 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1878 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1879 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1880 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
1881 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1882 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
1883 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1884 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1885 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1886 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
, 0 },
1887 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1888 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1889 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUB
,
1890 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1891 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUB
,
1892 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1893 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUB
,
1894 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1895 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSB
,
1896 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
1897 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSB
,
1898 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1899 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSB
,
1900 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1901 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUH
,
1902 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1903 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUH
,
1904 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1905 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUH
,
1906 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1907 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSH
,
1908 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
1909 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSH
,
1910 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1911 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSH
,
1912 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1913 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUW
,
1914 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1915 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUW
,
1916 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1917 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUW
,
1918 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1919 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSW
,
1920 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
1921 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSW
,
1922 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1923 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSW
,
1924 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1925 { ALTIVEC_BUILTIN_VEC_MAX
, P8V_BUILTIN_VMAXUD
,
1926 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1927 { ALTIVEC_BUILTIN_VEC_MAX
, P8V_BUILTIN_VMAXUD
,
1928 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1929 { ALTIVEC_BUILTIN_VEC_MAX
, P8V_BUILTIN_VMAXUD
,
1930 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1931 { ALTIVEC_BUILTIN_VEC_MAX
, P8V_BUILTIN_VMAXSD
,
1932 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
1933 { ALTIVEC_BUILTIN_VEC_MAX
, P8V_BUILTIN_VMAXSD
,
1934 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1935 { ALTIVEC_BUILTIN_VEC_MAX
, P8V_BUILTIN_VMAXSD
,
1936 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1937 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXFP
,
1938 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1939 { ALTIVEC_BUILTIN_VEC_MAX
, VSX_BUILTIN_XVMAXDP
,
1940 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1941 { ALTIVEC_BUILTIN_VEC_VMAXFP
, ALTIVEC_BUILTIN_VMAXFP
,
1942 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1943 { ALTIVEC_BUILTIN_VEC_VMAXSW
, ALTIVEC_BUILTIN_VMAXSW
,
1944 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1945 { ALTIVEC_BUILTIN_VEC_VMAXSW
, ALTIVEC_BUILTIN_VMAXSW
,
1946 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
1947 { ALTIVEC_BUILTIN_VEC_VMAXSW
, ALTIVEC_BUILTIN_VMAXSW
,
1948 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1949 { ALTIVEC_BUILTIN_VEC_VMAXUW
, ALTIVEC_BUILTIN_VMAXUW
,
1950 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1951 { ALTIVEC_BUILTIN_VEC_VMAXUW
, ALTIVEC_BUILTIN_VMAXUW
,
1952 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0 },
1953 { ALTIVEC_BUILTIN_VEC_VMAXUW
, ALTIVEC_BUILTIN_VMAXUW
,
1954 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1955 { ALTIVEC_BUILTIN_VEC_VMAXUW
, ALTIVEC_BUILTIN_VMAXUW
,
1956 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1957 { ALTIVEC_BUILTIN_VEC_VMAXUW
, ALTIVEC_BUILTIN_VMAXUW
,
1958 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1959 { ALTIVEC_BUILTIN_VEC_VMAXSH
, ALTIVEC_BUILTIN_VMAXSH
,
1960 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1961 { ALTIVEC_BUILTIN_VEC_VMAXSH
, ALTIVEC_BUILTIN_VMAXSH
,
1962 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
1963 { ALTIVEC_BUILTIN_VEC_VMAXSH
, ALTIVEC_BUILTIN_VMAXSH
,
1964 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1965 { ALTIVEC_BUILTIN_VEC_VMAXUH
, ALTIVEC_BUILTIN_VMAXUH
,
1966 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1967 { ALTIVEC_BUILTIN_VEC_VMAXUH
, ALTIVEC_BUILTIN_VMAXUH
,
1968 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, 0 },
1969 { ALTIVEC_BUILTIN_VEC_VMAXUH
, ALTIVEC_BUILTIN_VMAXUH
,
1970 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1971 { ALTIVEC_BUILTIN_VEC_VMAXUH
, ALTIVEC_BUILTIN_VMAXUH
,
1972 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1973 { ALTIVEC_BUILTIN_VEC_VMAXUH
, ALTIVEC_BUILTIN_VMAXUH
,
1974 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1975 { ALTIVEC_BUILTIN_VEC_VMAXSB
, ALTIVEC_BUILTIN_VMAXSB
,
1976 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1977 { ALTIVEC_BUILTIN_VEC_VMAXSB
, ALTIVEC_BUILTIN_VMAXSB
,
1978 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
1979 { ALTIVEC_BUILTIN_VEC_VMAXSB
, ALTIVEC_BUILTIN_VMAXSB
,
1980 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1981 { ALTIVEC_BUILTIN_VEC_VMAXUB
, ALTIVEC_BUILTIN_VMAXUB
,
1982 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1983 { ALTIVEC_BUILTIN_VEC_VMAXUB
, ALTIVEC_BUILTIN_VMAXUB
,
1984 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
1985 { ALTIVEC_BUILTIN_VEC_VMAXUB
, ALTIVEC_BUILTIN_VMAXUB
,
1986 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1987 { ALTIVEC_BUILTIN_VEC_VMAXUB
, ALTIVEC_BUILTIN_VMAXUB
,
1988 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1989 { ALTIVEC_BUILTIN_VEC_VMAXUB
, ALTIVEC_BUILTIN_VMAXUB
,
1990 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1991 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHB
,
1992 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1993 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHB
,
1994 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1995 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHB
,
1996 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1997 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHH
,
1998 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1999 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHH
,
2000 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, 0 },
2001 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHH
,
2002 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2003 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHH
,
2004 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2005 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHW
,
2006 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2007 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHW
,
2008 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2009 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHW
,
2010 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2011 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHW
,
2012 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2013 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DF
,
2014 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
2015 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DI
,
2016 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2017 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DI
,
2018 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2019 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DI
,
2020 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
2021 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DI
,
2022 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2023 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DI
,
2024 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2025 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DI
,
2026 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2027 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DI
,
2028 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2029 { ALTIVEC_BUILTIN_VEC_VMRGHW
, ALTIVEC_BUILTIN_VMRGHW
,
2030 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2031 { ALTIVEC_BUILTIN_VEC_VMRGHW
, ALTIVEC_BUILTIN_VMRGHW
,
2032 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2033 { ALTIVEC_BUILTIN_VEC_VMRGHW
, ALTIVEC_BUILTIN_VMRGHW
,
2034 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2035 { ALTIVEC_BUILTIN_VEC_VMRGHW
, ALTIVEC_BUILTIN_VMRGHW
,
2036 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2037 { ALTIVEC_BUILTIN_VEC_VMRGHH
, ALTIVEC_BUILTIN_VMRGHH
,
2038 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2039 { ALTIVEC_BUILTIN_VEC_VMRGHH
, ALTIVEC_BUILTIN_VMRGHH
,
2040 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, 0 },
2041 { ALTIVEC_BUILTIN_VEC_VMRGHH
, ALTIVEC_BUILTIN_VMRGHH
,
2042 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2043 { ALTIVEC_BUILTIN_VEC_VMRGHH
, ALTIVEC_BUILTIN_VMRGHH
,
2044 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2045 { ALTIVEC_BUILTIN_VEC_VMRGHB
, ALTIVEC_BUILTIN_VMRGHB
,
2046 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2047 { ALTIVEC_BUILTIN_VEC_VMRGHB
, ALTIVEC_BUILTIN_VMRGHB
,
2048 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2049 { ALTIVEC_BUILTIN_VEC_VMRGHB
, ALTIVEC_BUILTIN_VMRGHB
,
2050 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2051 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLB
,
2052 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2053 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLB
,
2054 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2055 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLB
,
2056 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2057 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLH
,
2058 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2059 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLH
,
2060 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, 0 },
2061 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLH
,
2062 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2063 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLH
,
2064 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2065 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLW
,
2066 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2067 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLW
,
2068 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2069 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLW
,
2070 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2071 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLW
,
2072 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2073 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DF
,
2074 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
2075 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DI
,
2076 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2077 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DI
,
2078 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2079 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DI
,
2080 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
2081 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DI
,
2082 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2083 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DI
,
2084 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2085 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DI
,
2086 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2087 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DI
,
2088 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2089 { ALTIVEC_BUILTIN_VEC_VMRGLW
, ALTIVEC_BUILTIN_VMRGLW
,
2090 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2091 { ALTIVEC_BUILTIN_VEC_VMRGLW
, ALTIVEC_BUILTIN_VMRGLW
,
2092 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2093 { ALTIVEC_BUILTIN_VEC_VMRGLW
, ALTIVEC_BUILTIN_VMRGLW
,
2094 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2095 { ALTIVEC_BUILTIN_VEC_VMRGLW
, ALTIVEC_BUILTIN_VMRGLW
,
2096 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2097 { ALTIVEC_BUILTIN_VEC_VMRGLH
, ALTIVEC_BUILTIN_VMRGLH
,
2098 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2099 { ALTIVEC_BUILTIN_VEC_VMRGLH
, ALTIVEC_BUILTIN_VMRGLH
,
2100 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, 0 },
2101 { ALTIVEC_BUILTIN_VEC_VMRGLH
, ALTIVEC_BUILTIN_VMRGLH
,
2102 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2103 { ALTIVEC_BUILTIN_VEC_VMRGLH
, ALTIVEC_BUILTIN_VMRGLH
,
2104 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2105 { ALTIVEC_BUILTIN_VEC_VMRGLB
, ALTIVEC_BUILTIN_VMRGLB
,
2106 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2107 { ALTIVEC_BUILTIN_VEC_VMRGLB
, ALTIVEC_BUILTIN_VMRGLB
,
2108 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2109 { ALTIVEC_BUILTIN_VEC_VMRGLB
, ALTIVEC_BUILTIN_VMRGLB
,
2110 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2111 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUB
,
2112 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2113 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUB
,
2114 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2115 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUB
,
2116 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2117 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSB
,
2118 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
2119 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSB
,
2120 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2121 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSB
,
2122 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2123 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUH
,
2124 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2125 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUH
,
2126 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2127 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUH
,
2128 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2129 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSH
,
2130 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
2131 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSH
,
2132 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2133 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSH
,
2134 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2135 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUW
,
2136 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2137 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUW
,
2138 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2139 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUW
,
2140 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2141 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSW
,
2142 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
2143 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSW
,
2144 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2145 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSW
,
2146 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2147 { ALTIVEC_BUILTIN_VEC_MIN
, P8V_BUILTIN_VMINUD
,
2148 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2149 { ALTIVEC_BUILTIN_VEC_MIN
, P8V_BUILTIN_VMINUD
,
2150 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2151 { ALTIVEC_BUILTIN_VEC_MIN
, P8V_BUILTIN_VMINUD
,
2152 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2153 { ALTIVEC_BUILTIN_VEC_MIN
, P8V_BUILTIN_VMINSD
,
2154 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
2155 { ALTIVEC_BUILTIN_VEC_MIN
, P8V_BUILTIN_VMINSD
,
2156 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2157 { ALTIVEC_BUILTIN_VEC_MIN
, P8V_BUILTIN_VMINSD
,
2158 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2159 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINFP
,
2160 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2161 { ALTIVEC_BUILTIN_VEC_MIN
, VSX_BUILTIN_XVMINDP
,
2162 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
2163 { ALTIVEC_BUILTIN_VEC_VMINFP
, ALTIVEC_BUILTIN_VMINFP
,
2164 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2165 { ALTIVEC_BUILTIN_VEC_VMINSW
, ALTIVEC_BUILTIN_VMINSW
,
2166 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2167 { ALTIVEC_BUILTIN_VEC_VMINSW
, ALTIVEC_BUILTIN_VMINSW
,
2168 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
2169 { ALTIVEC_BUILTIN_VEC_VMINSW
, ALTIVEC_BUILTIN_VMINSW
,
2170 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2171 { ALTIVEC_BUILTIN_VEC_VMINUW
, ALTIVEC_BUILTIN_VMINUW
,
2172 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2173 { ALTIVEC_BUILTIN_VEC_VMINUW
, ALTIVEC_BUILTIN_VMINUW
,
2174 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0 },
2175 { ALTIVEC_BUILTIN_VEC_VMINUW
, ALTIVEC_BUILTIN_VMINUW
,
2176 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2177 { ALTIVEC_BUILTIN_VEC_VMINUW
, ALTIVEC_BUILTIN_VMINUW
,
2178 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2179 { ALTIVEC_BUILTIN_VEC_VMINUW
, ALTIVEC_BUILTIN_VMINUW
,
2180 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2181 { ALTIVEC_BUILTIN_VEC_VMINSH
, ALTIVEC_BUILTIN_VMINSH
,
2182 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2183 { ALTIVEC_BUILTIN_VEC_VMINSH
, ALTIVEC_BUILTIN_VMINSH
,
2184 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
2185 { ALTIVEC_BUILTIN_VEC_VMINSH
, ALTIVEC_BUILTIN_VMINSH
,
2186 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2187 { ALTIVEC_BUILTIN_VEC_VMINSB
, ALTIVEC_BUILTIN_VMINSB
,
2188 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
2189 { ALTIVEC_BUILTIN_VEC_VMINSB
, ALTIVEC_BUILTIN_VMINSB
,
2190 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2191 { ALTIVEC_BUILTIN_VEC_VMINSB
, ALTIVEC_BUILTIN_VMINSB
,
2192 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2193 { ALTIVEC_BUILTIN_VEC_VMINUH
, ALTIVEC_BUILTIN_VMINUH
,
2194 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2195 { ALTIVEC_BUILTIN_VEC_VMINUH
, ALTIVEC_BUILTIN_VMINUH
,
2196 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, 0 },
2197 { ALTIVEC_BUILTIN_VEC_VMINUH
, ALTIVEC_BUILTIN_VMINUH
,
2198 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2199 { ALTIVEC_BUILTIN_VEC_VMINUH
, ALTIVEC_BUILTIN_VMINUH
,
2200 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2201 { ALTIVEC_BUILTIN_VEC_VMINUH
, ALTIVEC_BUILTIN_VMINUH
,
2202 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2203 { ALTIVEC_BUILTIN_VEC_VMINUB
, ALTIVEC_BUILTIN_VMINUB
,
2204 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2205 { ALTIVEC_BUILTIN_VEC_VMINUB
, ALTIVEC_BUILTIN_VMINUB
,
2206 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
2207 { ALTIVEC_BUILTIN_VEC_VMINUB
, ALTIVEC_BUILTIN_VMINUB
,
2208 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2209 { ALTIVEC_BUILTIN_VEC_VMINUB
, ALTIVEC_BUILTIN_VMINUB
,
2210 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2211 { ALTIVEC_BUILTIN_VEC_VMINUB
, ALTIVEC_BUILTIN_VMINUB
,
2212 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2213 { ALTIVEC_BUILTIN_VEC_MULE
, ALTIVEC_BUILTIN_VMULEUB
,
2214 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2215 { ALTIVEC_BUILTIN_VEC_MULE
, ALTIVEC_BUILTIN_VMULESB
,
2216 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2217 { ALTIVEC_BUILTIN_VEC_MULE
, ALTIVEC_BUILTIN_VMULEUH
,
2218 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2219 { ALTIVEC_BUILTIN_VEC_MULE
, ALTIVEC_BUILTIN_VMULESH
,
2220 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2221 { ALTIVEC_BUILTIN_VEC_MULE
, ALTIVEC_BUILTIN_VMULESW
,
2222 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2223 { ALTIVEC_BUILTIN_VEC_MULE
, ALTIVEC_BUILTIN_VMULEUW
,
2224 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V4SI
,
2225 RS6000_BTI_unsigned_V4SI
, 0 },
2226 { ALTIVEC_BUILTIN_VEC_VMULEUB
, ALTIVEC_BUILTIN_VMULEUB
,
2227 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2228 { ALTIVEC_BUILTIN_VEC_VMULESB
, ALTIVEC_BUILTIN_VMULESB
,
2229 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2230 { ALTIVEC_BUILTIN_VEC_VMULEUH
, ALTIVEC_BUILTIN_VMULEUH
,
2231 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2232 { ALTIVEC_BUILTIN_VEC_VMULESH
, ALTIVEC_BUILTIN_VMULESH
,
2233 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2234 { ALTIVEC_BUILTIN_VEC_VMULEUW
, ALTIVEC_BUILTIN_VMULEUW
,
2235 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2236 { ALTIVEC_BUILTIN_VEC_VMULESW
, ALTIVEC_BUILTIN_VMULESW
,
2237 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2238 { ALTIVEC_BUILTIN_VEC_MULO
, ALTIVEC_BUILTIN_VMULOUB
,
2239 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2240 { ALTIVEC_BUILTIN_VEC_MULO
, ALTIVEC_BUILTIN_VMULOSB
,
2241 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2242 { ALTIVEC_BUILTIN_VEC_MULO
, ALTIVEC_BUILTIN_VMULOUH
,
2243 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2244 { ALTIVEC_BUILTIN_VEC_MULO
, ALTIVEC_BUILTIN_VMULOSW
,
2245 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2246 { ALTIVEC_BUILTIN_VEC_MULO
, ALTIVEC_BUILTIN_VMULOUW
,
2247 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V4SI
,
2248 RS6000_BTI_unsigned_V4SI
, 0 },
2249 { ALTIVEC_BUILTIN_VEC_MULO
, ALTIVEC_BUILTIN_VMULOSH
,
2250 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2251 { ALTIVEC_BUILTIN_VEC_VMULOSH
, ALTIVEC_BUILTIN_VMULOSH
,
2252 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2253 { ALTIVEC_BUILTIN_VEC_VMULOUH
, ALTIVEC_BUILTIN_VMULOUH
,
2254 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2255 { ALTIVEC_BUILTIN_VEC_VMULOSB
, ALTIVEC_BUILTIN_VMULOSB
,
2256 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2257 { ALTIVEC_BUILTIN_VEC_VMULOUB
, ALTIVEC_BUILTIN_VMULOUB
,
2258 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2259 { ALTIVEC_BUILTIN_VEC_VMULOUW
, ALTIVEC_BUILTIN_VMULOUW
,
2260 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2261 { ALTIVEC_BUILTIN_VEC_VMULOSW
, ALTIVEC_BUILTIN_VMULOSW
,
2262 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2264 { ALTIVEC_BUILTIN_VEC_NABS
, ALTIVEC_BUILTIN_NABS_V16QI
,
2265 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
2266 { ALTIVEC_BUILTIN_VEC_NABS
, ALTIVEC_BUILTIN_NABS_V8HI
,
2267 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
2268 { ALTIVEC_BUILTIN_VEC_NABS
, ALTIVEC_BUILTIN_NABS_V4SI
,
2269 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
2270 { ALTIVEC_BUILTIN_VEC_NABS
, ALTIVEC_BUILTIN_NABS_V2DI
,
2271 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
2272 { ALTIVEC_BUILTIN_VEC_NABS
, ALTIVEC_BUILTIN_NABS_V4SF
,
2273 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
2274 { ALTIVEC_BUILTIN_VEC_NABS
, VSX_BUILTIN_XVNABSDP
,
2275 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
2276 { ALTIVEC_BUILTIN_VEC_NEARBYINT
, VSX_BUILTIN_XVRDPI
,
2277 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
2278 { ALTIVEC_BUILTIN_VEC_NEARBYINT
, VSX_BUILTIN_XVRSPI
,
2279 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
2281 { ALTIVEC_BUILTIN_VEC_NEG
, ALTIVEC_BUILTIN_NEG_V16QI
,
2282 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
2283 { ALTIVEC_BUILTIN_VEC_NEG
, ALTIVEC_BUILTIN_NEG_V8HI
,
2284 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
2285 { ALTIVEC_BUILTIN_VEC_NEG
, ALTIVEC_BUILTIN_NEG_V4SI
,
2286 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
2287 { ALTIVEC_BUILTIN_VEC_NEG
, ALTIVEC_BUILTIN_NEG_V2DI
,
2288 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
2289 { ALTIVEC_BUILTIN_VEC_NEG
, ALTIVEC_BUILTIN_NEG_V4SF
,
2290 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
2291 { ALTIVEC_BUILTIN_VEC_NEG
, ALTIVEC_BUILTIN_NEG_V2DF
,
2292 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
2294 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2295 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2296 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2297 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
2298 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2299 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2300 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2301 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2302 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2303 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
2304 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2305 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2306 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2307 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2308 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2309 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2310 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2311 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2312 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2313 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2314 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2315 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2316 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2317 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2318 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2319 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2320 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2321 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2322 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2323 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2324 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2325 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2326 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2327 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2328 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
2329 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2330 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2331 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2332 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2333 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, 0 },
2334 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2335 RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, 0 },
2336 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2337 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
2338 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2339 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, 0 },
2340 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2341 RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, 0 },
2342 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2343 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2344 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2345 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2346 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2347 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
2348 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2349 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2350 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2351 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2352 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2353 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2354 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2355 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2356 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2357 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2358 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2359 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
2360 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2361 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2362 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2363 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2364 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2365 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2366 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2367 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2368 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2369 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2370 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2371 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2372 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2373 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
2374 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2375 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2376 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2377 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2378 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2379 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2380 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2381 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2382 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2383 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2384 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2385 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
2386 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2387 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2388 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2389 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2390 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2391 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2392 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2393 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2394 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2395 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2396 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2397 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2398 { ALTIVEC_BUILTIN_VEC_PACK
, ALTIVEC_BUILTIN_VPKUHUM
,
2399 RS6000_BTI_V16QI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2400 { ALTIVEC_BUILTIN_VEC_PACK
, ALTIVEC_BUILTIN_VPKUHUM
,
2401 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2402 { ALTIVEC_BUILTIN_VEC_PACK
, ALTIVEC_BUILTIN_VPKUHUM
,
2403 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2404 { ALTIVEC_BUILTIN_VEC_PACK
, ALTIVEC_BUILTIN_VPKUWUM
,
2405 RS6000_BTI_V8HI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2406 { ALTIVEC_BUILTIN_VEC_PACK
, ALTIVEC_BUILTIN_VPKUWUM
,
2407 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2408 { ALTIVEC_BUILTIN_VEC_PACK
, ALTIVEC_BUILTIN_VPKUWUM
,
2409 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2410 { ALTIVEC_BUILTIN_VEC_PACK
, P8V_BUILTIN_VPKUDUM
,
2411 RS6000_BTI_V4SI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2412 { ALTIVEC_BUILTIN_VEC_PACK
, P8V_BUILTIN_VPKUDUM
,
2413 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2414 { ALTIVEC_BUILTIN_VEC_PACK
, P8V_BUILTIN_VPKUDUM
,
2415 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2416 { ALTIVEC_BUILTIN_VEC_PACK
, P8V_BUILTIN_VPKUDUM
,
2417 RS6000_BTI_V4SF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
2419 { P9V_BUILTIN_VEC_CONVERT_4F32_8I16
, P9V_BUILTIN_CONVERT_4F32_8I16
,
2420 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2422 { P9V_BUILTIN_VEC_VFIRSTMATCHINDEX
, P9V_BUILTIN_VFIRSTMATCHINDEX_V16QI
,
2423 RS6000_BTI_UINTSI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2424 { P9V_BUILTIN_VEC_VFIRSTMATCHINDEX
, P9V_BUILTIN_VFIRSTMATCHINDEX_V16QI
,
2425 RS6000_BTI_UINTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2426 { P9V_BUILTIN_VEC_VFIRSTMATCHINDEX
, P9V_BUILTIN_VFIRSTMATCHINDEX_V8HI
,
2427 RS6000_BTI_UINTSI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2428 { P9V_BUILTIN_VEC_VFIRSTMATCHINDEX
, P9V_BUILTIN_VFIRSTMATCHINDEX_V8HI
,
2429 RS6000_BTI_UINTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2430 { P9V_BUILTIN_VEC_VFIRSTMATCHINDEX
, P9V_BUILTIN_VFIRSTMATCHINDEX_V4SI
,
2431 RS6000_BTI_UINTSI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2432 { P9V_BUILTIN_VEC_VFIRSTMATCHINDEX
, P9V_BUILTIN_VFIRSTMATCHINDEX_V4SI
,
2433 RS6000_BTI_UINTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2434 { P9V_BUILTIN_VEC_VFIRSTMATCHOREOSINDEX
, P9V_BUILTIN_VFIRSTMATCHOREOSINDEX_V16QI
,
2435 RS6000_BTI_UINTSI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2436 { P9V_BUILTIN_VEC_VFIRSTMATCHOREOSINDEX
, P9V_BUILTIN_VFIRSTMATCHOREOSINDEX_V16QI
,
2437 RS6000_BTI_UINTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2438 { P9V_BUILTIN_VEC_VFIRSTMATCHOREOSINDEX
, P9V_BUILTIN_VFIRSTMATCHOREOSINDEX_V8HI
,
2439 RS6000_BTI_UINTSI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2440 { P9V_BUILTIN_VEC_VFIRSTMATCHOREOSINDEX
, P9V_BUILTIN_VFIRSTMATCHOREOSINDEX_V8HI
,
2441 RS6000_BTI_UINTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2442 { P9V_BUILTIN_VEC_VFIRSTMATCHOREOSINDEX
, P9V_BUILTIN_VFIRSTMATCHOREOSINDEX_V4SI
,
2443 RS6000_BTI_UINTSI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2444 { P9V_BUILTIN_VEC_VFIRSTMATCHOREOSINDEX
, P9V_BUILTIN_VFIRSTMATCHOREOSINDEX_V4SI
,
2445 RS6000_BTI_UINTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2446 { P9V_BUILTIN_VEC_VFIRSTMISMATCHINDEX
, P9V_BUILTIN_VFIRSTMISMATCHINDEX_V16QI
,
2447 RS6000_BTI_UINTSI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2448 { P9V_BUILTIN_VEC_VFIRSTMISMATCHINDEX
, P9V_BUILTIN_VFIRSTMISMATCHINDEX_V16QI
,
2449 RS6000_BTI_UINTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2450 { P9V_BUILTIN_VEC_VFIRSTMISMATCHINDEX
, P9V_BUILTIN_VFIRSTMISMATCHINDEX_V8HI
,
2451 RS6000_BTI_UINTSI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2452 { P9V_BUILTIN_VEC_VFIRSTMISMATCHINDEX
, P9V_BUILTIN_VFIRSTMISMATCHINDEX_V8HI
,
2453 RS6000_BTI_UINTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2454 { P9V_BUILTIN_VEC_VFIRSTMISMATCHINDEX
, P9V_BUILTIN_VFIRSTMISMATCHINDEX_V4SI
,
2455 RS6000_BTI_UINTSI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2456 { P9V_BUILTIN_VEC_VFIRSTMISMATCHINDEX
, P9V_BUILTIN_VFIRSTMISMATCHINDEX_V4SI
,
2457 RS6000_BTI_UINTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2459 { P9V_BUILTIN_VEC_VFIRSTMISMATCHOREOSINDEX
,
2460 P9V_BUILTIN_VFIRSTMISMATCHOREOSINDEX_V16QI
,
2461 RS6000_BTI_UINTSI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2462 { P9V_BUILTIN_VEC_VFIRSTMISMATCHOREOSINDEX
,
2463 P9V_BUILTIN_VFIRSTMISMATCHOREOSINDEX_V16QI
, RS6000_BTI_UINTSI
,
2464 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2465 { P9V_BUILTIN_VEC_VFIRSTMISMATCHOREOSINDEX
,
2466 P9V_BUILTIN_VFIRSTMISMATCHOREOSINDEX_V8HI
,
2467 RS6000_BTI_UINTSI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2468 { P9V_BUILTIN_VEC_VFIRSTMISMATCHOREOSINDEX
,
2469 P9V_BUILTIN_VFIRSTMISMATCHOREOSINDEX_V8HI
,
2470 RS6000_BTI_UINTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2471 { P9V_BUILTIN_VEC_VFIRSTMISMATCHOREOSINDEX
,
2472 P9V_BUILTIN_VFIRSTMISMATCHOREOSINDEX_V4SI
,
2473 RS6000_BTI_UINTSI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2474 { P9V_BUILTIN_VEC_VFIRSTMISMATCHOREOSINDEX
,
2475 P9V_BUILTIN_VFIRSTMISMATCHOREOSINDEX_V4SI
,
2476 RS6000_BTI_UINTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2478 { ALTIVEC_BUILTIN_VEC_VPKUWUM
, ALTIVEC_BUILTIN_VPKUWUM
,
2479 RS6000_BTI_V8HI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2480 { ALTIVEC_BUILTIN_VEC_VPKUWUM
, ALTIVEC_BUILTIN_VPKUWUM
,
2481 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2482 { ALTIVEC_BUILTIN_VEC_VPKUWUM
, ALTIVEC_BUILTIN_VPKUWUM
,
2483 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2484 { ALTIVEC_BUILTIN_VEC_VPKUHUM
, ALTIVEC_BUILTIN_VPKUHUM
,
2485 RS6000_BTI_V16QI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2486 { ALTIVEC_BUILTIN_VEC_VPKUHUM
, ALTIVEC_BUILTIN_VPKUHUM
,
2487 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2488 { ALTIVEC_BUILTIN_VEC_VPKUHUM
, ALTIVEC_BUILTIN_VPKUHUM
,
2489 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2490 { ALTIVEC_BUILTIN_VEC_PACKPX
, ALTIVEC_BUILTIN_VPKPX
,
2491 RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2492 { ALTIVEC_BUILTIN_VEC_PACKS
, ALTIVEC_BUILTIN_VPKUHUS
,
2493 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2494 { ALTIVEC_BUILTIN_VEC_PACKS
, ALTIVEC_BUILTIN_VPKSHSS
,
2495 RS6000_BTI_V16QI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2496 { ALTIVEC_BUILTIN_VEC_PACKS
, ALTIVEC_BUILTIN_VPKUWUS
,
2497 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2498 { ALTIVEC_BUILTIN_VEC_PACKS
, ALTIVEC_BUILTIN_VPKSWSS
,
2499 RS6000_BTI_V8HI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2500 { ALTIVEC_BUILTIN_VEC_PACKS
, P8V_BUILTIN_VPKUDUS
,
2501 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2502 { ALTIVEC_BUILTIN_VEC_PACKS
, P8V_BUILTIN_VPKSDSS
,
2503 RS6000_BTI_V4SI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2504 { ALTIVEC_BUILTIN_VEC_VPKSWSS
, ALTIVEC_BUILTIN_VPKSWSS
,
2505 RS6000_BTI_V8HI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2506 { ALTIVEC_BUILTIN_VEC_VPKUWUS
, ALTIVEC_BUILTIN_VPKUWUS
,
2507 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2508 { ALTIVEC_BUILTIN_VEC_VPKSHSS
, ALTIVEC_BUILTIN_VPKSHSS
,
2509 RS6000_BTI_V16QI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2510 { ALTIVEC_BUILTIN_VEC_VPKUHUS
, ALTIVEC_BUILTIN_VPKUHUS
,
2511 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2512 { ALTIVEC_BUILTIN_VEC_PACKSU
, ALTIVEC_BUILTIN_VPKUHUS
,
2513 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2514 { ALTIVEC_BUILTIN_VEC_PACKSU
, ALTIVEC_BUILTIN_VPKSHUS
,
2515 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2516 { ALTIVEC_BUILTIN_VEC_PACKSU
, ALTIVEC_BUILTIN_VPKUWUS
,
2517 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2518 { ALTIVEC_BUILTIN_VEC_PACKSU
, ALTIVEC_BUILTIN_VPKSWUS
,
2519 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2520 { ALTIVEC_BUILTIN_VEC_PACKSU
, P8V_BUILTIN_VPKSDUS
,
2521 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2522 { ALTIVEC_BUILTIN_VEC_PACKSU
, P8V_BUILTIN_VPKSDUS
,
2523 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2524 { ALTIVEC_BUILTIN_VEC_VPKSWUS
, ALTIVEC_BUILTIN_VPKSWUS
,
2525 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2526 { ALTIVEC_BUILTIN_VEC_VPKSHUS
, ALTIVEC_BUILTIN_VPKSHUS
,
2527 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2528 { ALTIVEC_BUILTIN_VEC_RINT
, VSX_BUILTIN_XVRDPIC
,
2529 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
2530 { ALTIVEC_BUILTIN_VEC_RINT
, VSX_BUILTIN_XVRSPIC
,
2531 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
2532 { ALTIVEC_BUILTIN_VEC_RL
, ALTIVEC_BUILTIN_VRLB
,
2533 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2534 { ALTIVEC_BUILTIN_VEC_RL
, ALTIVEC_BUILTIN_VRLB
,
2535 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2536 { ALTIVEC_BUILTIN_VEC_RL
, ALTIVEC_BUILTIN_VRLH
,
2537 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2538 { ALTIVEC_BUILTIN_VEC_RL
, ALTIVEC_BUILTIN_VRLH
,
2539 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2540 { ALTIVEC_BUILTIN_VEC_RL
, ALTIVEC_BUILTIN_VRLW
,
2541 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2542 { ALTIVEC_BUILTIN_VEC_RL
, ALTIVEC_BUILTIN_VRLW
,
2543 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2544 { ALTIVEC_BUILTIN_VEC_RL
, P8V_BUILTIN_VRLD
,
2545 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2546 { ALTIVEC_BUILTIN_VEC_RL
, P8V_BUILTIN_VRLD
,
2547 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2548 { ALTIVEC_BUILTIN_VEC_VRLW
, ALTIVEC_BUILTIN_VRLW
,
2549 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2550 { ALTIVEC_BUILTIN_VEC_VRLW
, ALTIVEC_BUILTIN_VRLW
,
2551 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2552 { ALTIVEC_BUILTIN_VEC_VRLH
, ALTIVEC_BUILTIN_VRLH
,
2553 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2554 { ALTIVEC_BUILTIN_VEC_VRLH
, ALTIVEC_BUILTIN_VRLH
,
2555 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2556 { ALTIVEC_BUILTIN_VEC_VRLB
, ALTIVEC_BUILTIN_VRLB
,
2557 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2558 { ALTIVEC_BUILTIN_VEC_VRLB
, ALTIVEC_BUILTIN_VRLB
,
2559 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2560 { P9V_BUILTIN_VEC_RLMI
, P9V_BUILTIN_VRLWMI
,
2561 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
2562 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
},
2563 { P9V_BUILTIN_VEC_RLMI
, P9V_BUILTIN_VRLDMI
,
2564 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
2565 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
},
2566 { P9V_BUILTIN_VEC_RLNM
, P9V_BUILTIN_VRLWNM
,
2567 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
2568 RS6000_BTI_unsigned_V4SI
, 0 },
2569 { P9V_BUILTIN_VEC_RLNM
, P9V_BUILTIN_VRLDNM
,
2570 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
2571 RS6000_BTI_unsigned_V2DI
, 0 },
2572 { ALTIVEC_BUILTIN_VEC_SL
, ALTIVEC_BUILTIN_VSLB
,
2573 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2574 { ALTIVEC_BUILTIN_VEC_SL
, ALTIVEC_BUILTIN_VSLB
,
2575 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2576 { ALTIVEC_BUILTIN_VEC_SL
, ALTIVEC_BUILTIN_VSLH
,
2577 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2578 { ALTIVEC_BUILTIN_VEC_SL
, ALTIVEC_BUILTIN_VSLH
,
2579 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2580 { ALTIVEC_BUILTIN_VEC_SL
, ALTIVEC_BUILTIN_VSLW
,
2581 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2582 { ALTIVEC_BUILTIN_VEC_SL
, ALTIVEC_BUILTIN_VSLW
,
2583 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2584 { ALTIVEC_BUILTIN_VEC_SL
, P8V_BUILTIN_VSLD
,
2585 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2586 { ALTIVEC_BUILTIN_VEC_SL
, P8V_BUILTIN_VSLD
,
2587 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2588 { ALTIVEC_BUILTIN_VEC_SQRT
, VSX_BUILTIN_XVSQRTDP
,
2589 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
2590 { ALTIVEC_BUILTIN_VEC_SQRT
, VSX_BUILTIN_XVSQRTSP
,
2591 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
2592 { ALTIVEC_BUILTIN_VEC_VSLW
, ALTIVEC_BUILTIN_VSLW
,
2593 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2594 { ALTIVEC_BUILTIN_VEC_VSLW
, ALTIVEC_BUILTIN_VSLW
,
2595 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2596 { ALTIVEC_BUILTIN_VEC_VSLH
, ALTIVEC_BUILTIN_VSLH
,
2597 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2598 { ALTIVEC_BUILTIN_VEC_VSLH
, ALTIVEC_BUILTIN_VSLH
,
2599 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2600 { ALTIVEC_BUILTIN_VEC_VSLB
, ALTIVEC_BUILTIN_VSLB
,
2601 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2602 { ALTIVEC_BUILTIN_VEC_VSLB
, ALTIVEC_BUILTIN_VSLB
,
2603 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2604 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2605 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2606 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2607 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V8HI
, 0 },
2608 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2609 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2610 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2611 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2612 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2613 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, 0 },
2614 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2615 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2616 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2617 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2618 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2619 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V8HI
, 0 },
2620 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2621 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2622 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2623 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2624 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2625 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2626 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2627 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2628 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2629 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2630 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2631 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2632 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2633 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2634 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2635 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2636 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2637 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2638 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2639 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2640 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2641 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2642 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2643 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2644 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2645 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2646 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2647 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2648 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2649 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V8HI
, 0 },
2650 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2651 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2652 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2653 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2654 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2655 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, 0 },
2656 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2657 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2658 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2659 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2660 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2661 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V8HI
, 0 },
2662 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2663 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2665 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2666 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V16QI
, 0 },
2667 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2668 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V16QI
, 0 },
2669 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2670 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V16QI
, 0 },
2671 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2672 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2673 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2674 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V8HI
, 0 },
2676 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2677 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V16QI
, 0 },
2678 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2679 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V16QI
, 0 },
2680 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2681 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V16QI
, 0 },
2682 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2683 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2684 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2685 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V16QI
, 0 },
2686 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2687 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2688 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2689 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, 0 },
2690 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2691 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2692 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2693 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V16QI
, 0 },
2694 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2695 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2696 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2697 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_V16QI
, 0 },
2698 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2699 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2700 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2701 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2702 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2703 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2704 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2705 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
2706 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2707 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2708 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2709 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V16QI
, 0 },
2710 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2711 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V16QI
, 0 },
2712 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2713 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_V16QI
, 0 },
2714 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2715 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V16QI
, 0 },
2716 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTB
,
2717 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, 0 },
2718 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTB
,
2719 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, 0 },
2720 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTB
,
2721 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, 0 },
2722 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTH
,
2723 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, 0 },
2724 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTH
,
2725 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, 0 },
2726 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTH
,
2727 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, 0 },
2728 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTH
,
2729 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, 0 },
2730 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTW
,
2731 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, 0 },
2732 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTW
,
2733 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, 0 },
2734 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTW
,
2735 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, 0 },
2736 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTW
,
2737 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, 0 },
2738 { ALTIVEC_BUILTIN_VEC_SPLAT
, VSX_BUILTIN_XXSPLTD_V2DF
,
2739 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, 0 },
2740 { ALTIVEC_BUILTIN_VEC_SPLAT
, VSX_BUILTIN_XXSPLTD_V2DI
,
2741 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, 0 },
2742 { ALTIVEC_BUILTIN_VEC_SPLAT
, VSX_BUILTIN_XXSPLTD_V2DI
,
2743 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
, 0 },
2744 { ALTIVEC_BUILTIN_VEC_SPLAT
, VSX_BUILTIN_XXSPLTD_V2DI
,
2745 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
, 0 },
2746 { ALTIVEC_BUILTIN_VEC_VSPLTW
, ALTIVEC_BUILTIN_VSPLTW
,
2747 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, 0 },
2748 { ALTIVEC_BUILTIN_VEC_VSPLTW
, ALTIVEC_BUILTIN_VSPLTW
,
2749 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, 0 },
2750 { ALTIVEC_BUILTIN_VEC_VSPLTW
, ALTIVEC_BUILTIN_VSPLTW
,
2751 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, 0 },
2752 { ALTIVEC_BUILTIN_VEC_VSPLTW
, ALTIVEC_BUILTIN_VSPLTW
,
2753 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, 0 },
2754 { ALTIVEC_BUILTIN_VEC_VSPLTH
, ALTIVEC_BUILTIN_VSPLTH
,
2755 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, 0 },
2756 { ALTIVEC_BUILTIN_VEC_VSPLTH
, ALTIVEC_BUILTIN_VSPLTH
,
2757 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, 0 },
2758 { ALTIVEC_BUILTIN_VEC_VSPLTH
, ALTIVEC_BUILTIN_VSPLTH
,
2759 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, 0 },
2760 { ALTIVEC_BUILTIN_VEC_VSPLTH
, ALTIVEC_BUILTIN_VSPLTH
,
2761 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, 0 },
2762 { ALTIVEC_BUILTIN_VEC_VSPLTB
, ALTIVEC_BUILTIN_VSPLTB
,
2763 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, 0 },
2764 { ALTIVEC_BUILTIN_VEC_VSPLTB
, ALTIVEC_BUILTIN_VSPLTB
,
2765 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, 0 },
2766 { ALTIVEC_BUILTIN_VEC_VSPLTB
, ALTIVEC_BUILTIN_VSPLTB
,
2767 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, 0 },
2768 { ALTIVEC_BUILTIN_VEC_SR
, ALTIVEC_BUILTIN_VSRB
,
2769 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2770 { ALTIVEC_BUILTIN_VEC_SR
, ALTIVEC_BUILTIN_VSRB
,
2771 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2772 { ALTIVEC_BUILTIN_VEC_SR
, ALTIVEC_BUILTIN_VSRH
,
2773 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2774 { ALTIVEC_BUILTIN_VEC_SR
, ALTIVEC_BUILTIN_VSRH
,
2775 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2776 { ALTIVEC_BUILTIN_VEC_SR
, ALTIVEC_BUILTIN_VSRW
,
2777 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2778 { ALTIVEC_BUILTIN_VEC_SR
, ALTIVEC_BUILTIN_VSRW
,
2779 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2780 { ALTIVEC_BUILTIN_VEC_SR
, P8V_BUILTIN_VSRD
,
2781 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2782 { ALTIVEC_BUILTIN_VEC_SR
, P8V_BUILTIN_VSRD
,
2783 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2784 { ALTIVEC_BUILTIN_VEC_VSRW
, ALTIVEC_BUILTIN_VSRW
,
2785 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2786 { ALTIVEC_BUILTIN_VEC_VSRW
, ALTIVEC_BUILTIN_VSRW
,
2787 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2788 { ALTIVEC_BUILTIN_VEC_VSRH
, ALTIVEC_BUILTIN_VSRH
,
2789 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2790 { ALTIVEC_BUILTIN_VEC_VSRH
, ALTIVEC_BUILTIN_VSRH
,
2791 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2792 { ALTIVEC_BUILTIN_VEC_VSRB
, ALTIVEC_BUILTIN_VSRB
,
2793 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2794 { ALTIVEC_BUILTIN_VEC_VSRB
, ALTIVEC_BUILTIN_VSRB
,
2795 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2796 { ALTIVEC_BUILTIN_VEC_SRA
, ALTIVEC_BUILTIN_VSRAB
,
2797 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2798 { ALTIVEC_BUILTIN_VEC_SRA
, ALTIVEC_BUILTIN_VSRAB
,
2799 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2800 { ALTIVEC_BUILTIN_VEC_SRA
, ALTIVEC_BUILTIN_VSRAH
,
2801 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2802 { ALTIVEC_BUILTIN_VEC_SRA
, ALTIVEC_BUILTIN_VSRAH
,
2803 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2804 { ALTIVEC_BUILTIN_VEC_SRA
, ALTIVEC_BUILTIN_VSRAW
,
2805 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2806 { ALTIVEC_BUILTIN_VEC_SRA
, ALTIVEC_BUILTIN_VSRAW
,
2807 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2808 { ALTIVEC_BUILTIN_VEC_SRA
, P8V_BUILTIN_VSRAD
,
2809 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2810 { ALTIVEC_BUILTIN_VEC_SRA
, P8V_BUILTIN_VSRAD
,
2811 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2812 { ALTIVEC_BUILTIN_VEC_VSRAW
, ALTIVEC_BUILTIN_VSRAW
,
2813 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2814 { ALTIVEC_BUILTIN_VEC_VSRAW
, ALTIVEC_BUILTIN_VSRAW
,
2815 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2816 { ALTIVEC_BUILTIN_VEC_VSRAH
, ALTIVEC_BUILTIN_VSRAH
,
2817 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2818 { ALTIVEC_BUILTIN_VEC_VSRAH
, ALTIVEC_BUILTIN_VSRAH
,
2819 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2820 { ALTIVEC_BUILTIN_VEC_VSRAB
, ALTIVEC_BUILTIN_VSRAB
,
2821 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2822 { ALTIVEC_BUILTIN_VEC_VSRAB
, ALTIVEC_BUILTIN_VSRAB
,
2823 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2824 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2825 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2826 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2827 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V8HI
, 0 },
2828 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2829 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2830 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2831 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2832 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2833 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, 0 },
2834 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2835 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2836 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2837 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2838 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2839 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V8HI
, 0 },
2840 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2841 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2842 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2843 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2844 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2845 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2846 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2847 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2848 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2849 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2850 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2851 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2852 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2853 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2854 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2855 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2856 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2857 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2858 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2859 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2860 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2861 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2862 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2863 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2864 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2865 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2866 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2867 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2868 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2869 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V8HI
, 0 },
2870 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2871 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2872 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2873 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2874 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2875 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, 0 },
2876 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2877 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2878 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2879 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2880 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2881 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V8HI
, 0 },
2882 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2883 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2884 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2885 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V16QI
, 0 },
2886 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2887 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V16QI
, 0 },
2888 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2889 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V16QI
, 0 },
2890 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2891 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V16QI
, 0 },
2892 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2893 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V16QI
, 0 },
2894 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2895 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2896 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2897 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V16QI
, 0 },
2898 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2899 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2900 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2901 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, 0 },
2902 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2903 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2904 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2905 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V16QI
, 0 },
2906 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2907 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2908 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2909 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_V16QI
, 0 },
2910 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2911 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2912 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2913 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2914 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2915 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2916 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2917 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
2918 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2919 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2920 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2921 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V16QI
, 0 },
2922 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2923 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V16QI
, 0 },
2924 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2925 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_V16QI
, 0 },
2926 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2927 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V16QI
, 0 },
2929 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUBM
,
2930 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
2931 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUBM
,
2932 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2933 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUBM
,
2934 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2935 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUBM
,
2936 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2937 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUBM
,
2938 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2939 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUBM
,
2940 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2941 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUHM
,
2942 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
2943 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUHM
,
2944 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2945 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUHM
,
2946 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2947 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUHM
,
2948 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2949 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUHM
,
2950 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2951 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUHM
,
2952 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2953 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUWM
,
2954 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
2955 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUWM
,
2956 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2957 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUWM
,
2958 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2959 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUWM
,
2960 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2961 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUWM
,
2962 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2963 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUWM
,
2964 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2965 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUDM
,
2966 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
2967 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUDM
,
2968 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2969 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUDM
,
2970 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2971 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUDM
,
2972 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2973 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUDM
,
2974 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2975 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUDM
,
2976 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2977 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBFP
,
2978 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2979 { ALTIVEC_BUILTIN_VEC_SUB
, VSX_BUILTIN_XVSUBDP
,
2980 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
2981 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUQM
,
2982 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
2983 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUQM
,
2984 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
2985 RS6000_BTI_unsigned_V1TI
, 0 },
2986 { ALTIVEC_BUILTIN_VEC_VSUBFP
, ALTIVEC_BUILTIN_VSUBFP
,
2987 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2988 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2989 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
2990 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2991 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2992 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2993 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2994 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2995 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2996 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2997 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2998 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2999 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
3000 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
3001 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0 },
3002 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
3003 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
3004 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
3005 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
3006 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
3007 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
3008 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
3009 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, 0 },
3010 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
3011 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
3012 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
3013 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
3014 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
3015 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
3016 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
3017 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
3018 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
3019 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
3020 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
3021 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
3022 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
3023 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
3024 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
3025 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
3026 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
3027 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
3028 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
3029 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
3030 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
3031 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
3032 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
3033 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
3034 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
3035 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
3037 { ALTIVEC_BUILTIN_VEC_SUBC
, ALTIVEC_BUILTIN_VSUBCUW
,
3038 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
3039 { ALTIVEC_BUILTIN_VEC_SUBC
, ALTIVEC_BUILTIN_VSUBCUW
,
3040 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
3041 { ALTIVEC_BUILTIN_VEC_SUBC
, P8V_BUILTIN_VSUBCUQ
,
3042 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
3043 RS6000_BTI_unsigned_V1TI
, 0 },
3044 { ALTIVEC_BUILTIN_VEC_SUBC
, P8V_BUILTIN_VSUBCUQ
,
3045 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
3047 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
3048 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
3049 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
3050 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
3051 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
3052 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
3053 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSBS
,
3054 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
3055 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSBS
,
3056 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
3057 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSBS
,
3058 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
3059 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUHS
,
3060 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
3061 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUHS
,
3062 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
3063 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUHS
,
3064 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
3065 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSHS
,
3066 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
3067 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSHS
,
3068 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
3069 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSHS
,
3070 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
3071 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUWS
,
3072 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
3073 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUWS
,
3074 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
3075 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUWS
,
3076 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
3077 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSWS
,
3078 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
3079 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSWS
,
3080 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
3081 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSWS
,
3082 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
3083 { ALTIVEC_BUILTIN_VEC_VSUBSWS
, ALTIVEC_BUILTIN_VSUBSWS
,
3084 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
3085 { ALTIVEC_BUILTIN_VEC_VSUBSWS
, ALTIVEC_BUILTIN_VSUBSWS
,
3086 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
3087 { ALTIVEC_BUILTIN_VEC_VSUBSWS
, ALTIVEC_BUILTIN_VSUBSWS
,
3088 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
3089 { ALTIVEC_BUILTIN_VEC_VSUBUWS
, ALTIVEC_BUILTIN_VSUBUWS
,
3090 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
3091 { ALTIVEC_BUILTIN_VEC_VSUBUWS
, ALTIVEC_BUILTIN_VSUBUWS
,
3092 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0 },
3093 { ALTIVEC_BUILTIN_VEC_VSUBUWS
, ALTIVEC_BUILTIN_VSUBUWS
,
3094 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
3095 { ALTIVEC_BUILTIN_VEC_VSUBUWS
, ALTIVEC_BUILTIN_VSUBUWS
,
3096 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
3097 { ALTIVEC_BUILTIN_VEC_VSUBUWS
, ALTIVEC_BUILTIN_VSUBUWS
,
3098 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
3099 { ALTIVEC_BUILTIN_VEC_VSUBSHS
, ALTIVEC_BUILTIN_VSUBSHS
,
3100 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
3101 { ALTIVEC_BUILTIN_VEC_VSUBSHS
, ALTIVEC_BUILTIN_VSUBSHS
,
3102 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
3103 { ALTIVEC_BUILTIN_VEC_VSUBSHS
, ALTIVEC_BUILTIN_VSUBSHS
,
3104 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
3105 { ALTIVEC_BUILTIN_VEC_VSUBUHS
, ALTIVEC_BUILTIN_VSUBUHS
,
3106 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
3107 { ALTIVEC_BUILTIN_VEC_VSUBUHS
, ALTIVEC_BUILTIN_VSUBUHS
,
3108 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, 0 },
3109 { ALTIVEC_BUILTIN_VEC_VSUBUHS
, ALTIVEC_BUILTIN_VSUBUHS
,
3110 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
3111 { ALTIVEC_BUILTIN_VEC_VSUBUHS
, ALTIVEC_BUILTIN_VSUBUHS
,
3112 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
3113 { ALTIVEC_BUILTIN_VEC_VSUBUHS
, ALTIVEC_BUILTIN_VSUBUHS
,
3114 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
3115 { ALTIVEC_BUILTIN_VEC_VSUBSBS
, ALTIVEC_BUILTIN_VSUBSBS
,
3116 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
3117 { ALTIVEC_BUILTIN_VEC_VSUBSBS
, ALTIVEC_BUILTIN_VSUBSBS
,
3118 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
3119 { ALTIVEC_BUILTIN_VEC_VSUBSBS
, ALTIVEC_BUILTIN_VSUBSBS
,
3120 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
3121 { ALTIVEC_BUILTIN_VEC_VSUBUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
3122 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
3123 { ALTIVEC_BUILTIN_VEC_VSUBUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
3124 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
3125 { ALTIVEC_BUILTIN_VEC_VSUBUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
3126 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
3127 { ALTIVEC_BUILTIN_VEC_VSUBUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
3128 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
3129 { ALTIVEC_BUILTIN_VEC_VSUBUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
3130 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
3131 { ALTIVEC_BUILTIN_VEC_SUM4S
, ALTIVEC_BUILTIN_VSUM4UBS
,
3132 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
3133 { ALTIVEC_BUILTIN_VEC_SUM4S
, ALTIVEC_BUILTIN_VSUM4SBS
,
3134 RS6000_BTI_V4SI
, RS6000_BTI_V16QI
, RS6000_BTI_V4SI
, 0 },
3135 { ALTIVEC_BUILTIN_VEC_SUM4S
, ALTIVEC_BUILTIN_VSUM4SHS
,
3136 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V4SI
, 0 },
3137 { ALTIVEC_BUILTIN_VEC_VSUM4SHS
, ALTIVEC_BUILTIN_VSUM4SHS
,
3138 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V4SI
, 0 },
3139 { ALTIVEC_BUILTIN_VEC_VSUM4SBS
, ALTIVEC_BUILTIN_VSUM4SBS
,
3140 RS6000_BTI_V4SI
, RS6000_BTI_V16QI
, RS6000_BTI_V4SI
, 0 },
3141 { ALTIVEC_BUILTIN_VEC_VSUM4UBS
, ALTIVEC_BUILTIN_VSUM4UBS
,
3142 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
3143 { ALTIVEC_BUILTIN_VEC_SUM2S
, ALTIVEC_BUILTIN_VSUM2SWS
,
3144 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
3145 { ALTIVEC_BUILTIN_VEC_SUMS
, ALTIVEC_BUILTIN_VSUMSWS
,
3146 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
3148 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVD2X_V2DF
,
3149 RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
, 0 },
3150 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVD2X_V2DF
,
3151 RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_double
, 0 },
3152 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVD2X_V2DI
,
3153 RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
, 0 },
3154 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVD2X_V2DI
,
3155 RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long_long
, 0 },
3156 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVD2X_V2DI
,
3157 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
3158 ~RS6000_BTI_unsigned_V2DI
, 0 },
3159 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVD2X_V2DI
,
3160 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
3161 ~RS6000_BTI_unsigned_long_long
, 0 },
3162 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V4SF
,
3163 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
3164 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V4SF
,
3165 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
3166 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V4SI
,
3167 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
3168 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V4SI
,
3169 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
3170 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V4SI
,
3171 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
3172 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V4SI
,
3173 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
3174 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V8HI
,
3175 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
3176 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V8HI
,
3177 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
3178 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V8HI
,
3179 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
3180 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V8HI
,
3181 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
3182 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V16QI
,
3183 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
3184 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V16QI
,
3185 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
3186 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V16QI
,
3187 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
3188 ~RS6000_BTI_unsigned_V16QI
, 0 },
3189 { VSX_BUILTIN_VEC_XL
, VSX_BUILTIN_LXVW4X_V16QI
,
3190 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
3192 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V2DF
,
3193 RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
, 0 },
3194 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V2DF
,
3195 RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_double
, 0 },
3196 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V2DI
,
3197 RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
, 0 },
3198 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V2DI
,
3199 RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long_long
, 0 },
3200 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V2DI
,
3201 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
3202 ~RS6000_BTI_unsigned_V2DI
, 0 },
3203 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V2DI
,
3204 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
3205 ~RS6000_BTI_unsigned_long_long
, 0 },
3206 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V4SF
,
3207 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
3208 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V4SF
,
3209 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
3210 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V4SI
,
3211 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
3212 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V4SI
,
3213 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
3214 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V4SI
,
3215 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
3216 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V4SI
,
3217 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
3218 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V8HI
,
3219 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
3220 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V8HI
,
3221 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
3222 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V8HI
,
3223 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
3224 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V8HI
,
3225 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
3226 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V16QI
,
3227 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
3228 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V16QI
,
3229 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
3230 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V16QI
,
3231 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
3232 ~RS6000_BTI_unsigned_V16QI
, 0 },
3233 { VSX_BUILTIN_VEC_XL_BE
, VSX_BUILTIN_LD_ELEMREV_V16QI
,
3234 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
3235 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3236 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
3237 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3238 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, 0 },
3239 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3240 RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, 0 },
3241 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3242 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
3243 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3244 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, 0 },
3245 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3246 RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, 0 },
3247 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3248 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
3249 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3250 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
3251 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3252 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
3253 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3254 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
3255 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3256 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
3257 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3258 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
3259 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3260 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
3261 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3262 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
3263 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3264 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
3265 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3266 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
3267 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3268 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
3269 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3270 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
3271 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3272 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
3273 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3274 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
3275 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3276 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
3277 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3278 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
3279 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3280 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
3281 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3282 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
3283 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3284 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
3285 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3286 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
3287 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3288 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
3289 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3290 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
3291 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3292 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
3293 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3294 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
3295 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3296 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
3297 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3298 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
3299 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3300 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
3301 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
3302 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
3304 /* Ternary AltiVec/VSX builtins. */
3305 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3306 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3307 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3308 RS6000_BTI_void
, ~RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3309 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3310 RS6000_BTI_void
, ~RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3311 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3312 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3313 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3314 RS6000_BTI_void
, ~RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3315 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3316 RS6000_BTI_void
, ~RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3317 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3318 RS6000_BTI_void
, ~RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3319 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3320 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3321 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3322 RS6000_BTI_void
, ~RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3323 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3324 RS6000_BTI_void
, ~RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3325 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3326 RS6000_BTI_void
, ~RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3327 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3328 RS6000_BTI_void
, ~RS6000_BTI_UINTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3329 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3330 RS6000_BTI_void
, ~RS6000_BTI_INTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3331 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3332 RS6000_BTI_void
, ~RS6000_BTI_UINTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3333 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3334 RS6000_BTI_void
, ~RS6000_BTI_INTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3335 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3336 RS6000_BTI_void
, ~RS6000_BTI_UINTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3337 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3338 RS6000_BTI_void
, ~RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3339 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3340 RS6000_BTI_void
, ~RS6000_BTI_unsigned_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3341 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3342 RS6000_BTI_void
, ~RS6000_BTI_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3343 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
3344 RS6000_BTI_void
, ~RS6000_BTI_float
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3345 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3346 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3347 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3348 RS6000_BTI_void
, ~RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3349 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3350 RS6000_BTI_void
, ~RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3351 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3352 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3353 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3354 RS6000_BTI_void
, ~RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3355 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3356 RS6000_BTI_void
, ~RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3357 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3358 RS6000_BTI_void
, ~RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3359 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3360 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3361 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3362 RS6000_BTI_void
, ~RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3363 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3364 RS6000_BTI_void
, ~RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3365 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3366 RS6000_BTI_void
, ~RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3367 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3368 RS6000_BTI_void
, ~RS6000_BTI_UINTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3369 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3370 RS6000_BTI_void
, ~RS6000_BTI_INTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3371 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3372 RS6000_BTI_void
, ~RS6000_BTI_UINTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3373 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3374 RS6000_BTI_void
, ~RS6000_BTI_INTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3375 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3376 RS6000_BTI_void
, ~RS6000_BTI_UINTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3377 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3378 RS6000_BTI_void
, ~RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3379 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3380 RS6000_BTI_void
, ~RS6000_BTI_unsigned_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3381 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3382 RS6000_BTI_void
, ~RS6000_BTI_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3383 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
3384 RS6000_BTI_void
, ~RS6000_BTI_float
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3385 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3386 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3387 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3388 RS6000_BTI_void
, ~RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3389 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3390 RS6000_BTI_void
, ~RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3391 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3392 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3393 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3394 RS6000_BTI_void
, ~RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3395 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3396 RS6000_BTI_void
, ~RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3397 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3398 RS6000_BTI_void
, ~RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3399 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3400 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3401 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3402 RS6000_BTI_void
, ~RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3403 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3404 RS6000_BTI_void
, ~RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3405 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3406 RS6000_BTI_void
, ~RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3407 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3408 RS6000_BTI_void
, ~RS6000_BTI_UINTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3409 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3410 RS6000_BTI_void
, ~RS6000_BTI_INTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3411 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3412 RS6000_BTI_void
, ~RS6000_BTI_UINTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3413 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3414 RS6000_BTI_void
, ~RS6000_BTI_INTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3415 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3416 RS6000_BTI_void
, ~RS6000_BTI_UINTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3417 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3418 RS6000_BTI_void
, ~RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3419 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3420 RS6000_BTI_void
, ~RS6000_BTI_unsigned_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3421 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3422 RS6000_BTI_void
, ~RS6000_BTI_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3423 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
3424 RS6000_BTI_void
, ~RS6000_BTI_float
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3425 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3426 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3427 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3428 RS6000_BTI_void
, ~RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3429 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3430 RS6000_BTI_void
, ~RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3431 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3432 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3433 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3434 RS6000_BTI_void
, ~RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3435 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3436 RS6000_BTI_void
, ~RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3437 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3438 RS6000_BTI_void
, ~RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3439 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3440 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3441 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3442 RS6000_BTI_void
, ~RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3443 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3444 RS6000_BTI_void
, ~RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3445 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3446 RS6000_BTI_void
, ~RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3447 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3448 RS6000_BTI_void
, ~RS6000_BTI_UINTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3449 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3450 RS6000_BTI_void
, ~RS6000_BTI_INTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3451 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3452 RS6000_BTI_void
, ~RS6000_BTI_UINTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3453 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3454 RS6000_BTI_void
, ~RS6000_BTI_INTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3455 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3456 RS6000_BTI_void
, ~RS6000_BTI_UINTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3457 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3458 RS6000_BTI_void
, ~RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3459 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3460 RS6000_BTI_void
, ~RS6000_BTI_unsigned_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3461 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3462 RS6000_BTI_void
, ~RS6000_BTI_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3463 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
3464 RS6000_BTI_void
, ~RS6000_BTI_float
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
3465 { ALTIVEC_BUILTIN_VEC_MADD
, ALTIVEC_BUILTIN_VMADDFP
,
3466 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
3467 { ALTIVEC_BUILTIN_VEC_MADD
, VSX_BUILTIN_XVMADDDP
,
3468 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
3469 { ALTIVEC_BUILTIN_VEC_MADD
, ALTIVEC_BUILTIN_VMLADDUHM
,
3470 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
3471 { ALTIVEC_BUILTIN_VEC_MADD
, ALTIVEC_BUILTIN_VMLADDUHM
,
3472 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
3473 { ALTIVEC_BUILTIN_VEC_MADD
, ALTIVEC_BUILTIN_VMLADDUHM
,
3474 RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
3475 { ALTIVEC_BUILTIN_VEC_MADD
, ALTIVEC_BUILTIN_VMLADDUHM
,
3476 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
3477 { ALTIVEC_BUILTIN_VEC_MADDS
, ALTIVEC_BUILTIN_VMHADDSHS
,
3478 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
3479 { ALTIVEC_BUILTIN_VEC_MLADD
, ALTIVEC_BUILTIN_VMLADDUHM
,
3480 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
3481 { ALTIVEC_BUILTIN_VEC_MLADD
, ALTIVEC_BUILTIN_VMLADDUHM
,
3482 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
3483 { ALTIVEC_BUILTIN_VEC_MLADD
, ALTIVEC_BUILTIN_VMLADDUHM
,
3484 RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
3485 { ALTIVEC_BUILTIN_VEC_MLADD
, ALTIVEC_BUILTIN_VMLADDUHM
,
3486 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
3487 { ALTIVEC_BUILTIN_VEC_MRADDS
, ALTIVEC_BUILTIN_VMHRADDSHS
,
3488 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
3489 { VSX_BUILTIN_VEC_MSUB
, VSX_BUILTIN_XVMSUBSP
,
3490 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
3491 { VSX_BUILTIN_VEC_MSUB
, VSX_BUILTIN_XVMSUBDP
,
3492 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
3493 { ALTIVEC_BUILTIN_VEC_MSUM
, ALTIVEC_BUILTIN_VMSUMUBM
,
3494 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V4SI
},
3495 { ALTIVEC_BUILTIN_VEC_MSUM
, ALTIVEC_BUILTIN_VMSUMMBM
,
3496 RS6000_BTI_V4SI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V4SI
},
3497 { ALTIVEC_BUILTIN_VEC_MSUM
, ALTIVEC_BUILTIN_VMSUMUHM
,
3498 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
},
3499 { ALTIVEC_BUILTIN_VEC_MSUM
, ALTIVEC_BUILTIN_VMSUMSHM
,
3500 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V4SI
},
3501 { ALTIVEC_BUILTIN_VEC_VMSUMSHM
, ALTIVEC_BUILTIN_VMSUMSHM
,
3502 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V4SI
},
3503 { ALTIVEC_BUILTIN_VEC_VMSUMUHM
, ALTIVEC_BUILTIN_VMSUMUHM
,
3504 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
},
3505 { ALTIVEC_BUILTIN_VEC_VMSUMMBM
, ALTIVEC_BUILTIN_VMSUMMBM
,
3506 RS6000_BTI_V4SI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V4SI
},
3507 { ALTIVEC_BUILTIN_VEC_VMSUMUBM
, ALTIVEC_BUILTIN_VMSUMUBM
,
3508 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V4SI
},
3509 { ALTIVEC_BUILTIN_VEC_MSUMS
, ALTIVEC_BUILTIN_VMSUMUHS
,
3510 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
},
3511 { ALTIVEC_BUILTIN_VEC_MSUMS
, ALTIVEC_BUILTIN_VMSUMSHS
,
3512 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V4SI
},
3513 { ALTIVEC_BUILTIN_VEC_VMSUMSHS
, ALTIVEC_BUILTIN_VMSUMSHS
,
3514 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V4SI
},
3515 { ALTIVEC_BUILTIN_VEC_VMSUMUHS
, ALTIVEC_BUILTIN_VMSUMUHS
,
3516 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
},
3517 { VSX_BUILTIN_VEC_NMADD
, VSX_BUILTIN_XVNMADDSP
,
3518 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
3519 { VSX_BUILTIN_VEC_NMADD
, VSX_BUILTIN_XVNMADDDP
,
3520 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
3521 { ALTIVEC_BUILTIN_VEC_NMSUB
, ALTIVEC_BUILTIN_VNMSUBFP
,
3522 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
3523 { ALTIVEC_BUILTIN_VEC_NMSUB
, VSX_BUILTIN_XVNMSUBDP
,
3524 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
3525 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_2DF
,
3526 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V16QI
},
3527 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_2DI
,
3528 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V16QI
},
3529 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_2DI
,
3530 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V16QI
},
3531 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_2DI
,
3532 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
,
3533 RS6000_BTI_unsigned_V16QI
},
3534 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_4SF
,
3535 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V16QI
},
3536 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_4SI
,
3537 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V16QI
},
3538 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_4SI
,
3539 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
},
3540 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_4SI
,
3541 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V16QI
},
3542 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_8HI
,
3543 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V16QI
},
3544 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_8HI
,
3545 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
},
3546 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_8HI
,
3547 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V16QI
},
3548 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_8HI
,
3549 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V16QI
},
3550 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_16QI
,
3551 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
},
3552 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_16QI
,
3553 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
3554 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_16QI
,
3555 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
3556 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_16QI
,
3557 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
},
3558 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_16QI
,
3559 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
},
3560 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DF
,
3561 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
},
3562 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DF
,
3563 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V2DI
},
3564 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DF
,
3565 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DI
},
3566 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DF
,
3567 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
3568 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
3569 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
},
3570 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
3571 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
},
3572 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
3573 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
},
3574 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
3575 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
},
3576 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
3577 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
},
3578 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
3579 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_V2DI
},
3580 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
3581 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
,
3582 RS6000_BTI_bool_V2DI
},
3583 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
3584 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
,
3585 RS6000_BTI_unsigned_V2DI
},
3586 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SF
,
3587 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
},
3588 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SF
,
3589 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V4SI
},
3590 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
3591 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
3592 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
3593 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SI
},
3594 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
3595 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
},
3596 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
3597 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
},
3598 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
3599 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
},
3600 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
3601 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
},
3602 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
3603 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
},
3604 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
3605 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
},
3606 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_8HI
,
3607 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
},
3608 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_8HI
,
3609 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
},
3610 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_8HI
,
3611 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
},
3612 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_8HI
,
3613 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
3614 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_8HI
,
3615 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
},
3616 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_8HI
,
3617 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
},
3618 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_16QI
,
3619 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
},
3620 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_16QI
,
3621 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
},
3622 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_16QI
,
3623 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
},
3624 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_16QI
,
3625 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
3626 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_16QI
,
3627 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
},
3628 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_16QI
,
3629 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
},
3630 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_4SF
,
3631 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_NOT_OPAQUE
},
3632 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_4SI
,
3633 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_NOT_OPAQUE
},
3634 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_4SI
,
3635 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_NOT_OPAQUE
},
3636 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_4SI
,
3637 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_NOT_OPAQUE
},
3638 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_8HI
,
3639 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_NOT_OPAQUE
},
3640 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_8HI
,
3641 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_NOT_OPAQUE
},
3642 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_8HI
,
3643 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_NOT_OPAQUE
},
3644 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_8HI
,
3645 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_NOT_OPAQUE
},
3646 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_16QI
,
3647 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_NOT_OPAQUE
},
3648 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_16QI
,
3649 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_NOT_OPAQUE
},
3650 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_16QI
,
3651 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_NOT_OPAQUE
},
3652 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_2DF
,
3653 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_NOT_OPAQUE
},
3654 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_2DI
,
3655 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_NOT_OPAQUE
},
3656 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_2DI
,
3657 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_NOT_OPAQUE
},
3658 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_2DI
,
3659 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_NOT_OPAQUE
},
3661 { ALTIVEC_BUILTIN_VEC_SLDW
, VSX_BUILTIN_XXSLDWI_16QI
,
3662 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
,
3663 RS6000_BTI_NOT_OPAQUE
},
3664 { ALTIVEC_BUILTIN_VEC_SLDW
, VSX_BUILTIN_XXSLDWI_16QI
,
3665 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
3666 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_NOT_OPAQUE
},
3667 { ALTIVEC_BUILTIN_VEC_SLDW
, VSX_BUILTIN_XXSLDWI_8HI
,
3668 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
,
3669 RS6000_BTI_NOT_OPAQUE
},
3670 { ALTIVEC_BUILTIN_VEC_SLDW
, VSX_BUILTIN_XXSLDWI_8HI
,
3671 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
3672 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_NOT_OPAQUE
},
3673 { ALTIVEC_BUILTIN_VEC_SLDW
, VSX_BUILTIN_XXSLDWI_4SI
,
3674 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
,
3675 RS6000_BTI_NOT_OPAQUE
},
3676 { ALTIVEC_BUILTIN_VEC_SLDW
, VSX_BUILTIN_XXSLDWI_4SI
,
3677 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
3678 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_NOT_OPAQUE
},
3679 { ALTIVEC_BUILTIN_VEC_SLDW
, VSX_BUILTIN_XXSLDWI_2DI
,
3680 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
,
3681 RS6000_BTI_NOT_OPAQUE
},
3682 { ALTIVEC_BUILTIN_VEC_SLDW
, VSX_BUILTIN_XXSLDWI_2DI
,
3683 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
3684 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_NOT_OPAQUE
},
3685 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V2DF
,
3686 RS6000_BTI_void
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
},
3687 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V2DI
,
3688 RS6000_BTI_void
, RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
},
3689 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V2DI
,
3690 RS6000_BTI_void
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
3691 ~RS6000_BTI_unsigned_V2DI
},
3692 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V2DI
,
3693 RS6000_BTI_void
, RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
,
3694 ~RS6000_BTI_bool_V2DI
},
3695 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SF
,
3696 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
3697 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SF
,
3698 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3699 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3700 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
3701 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3702 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3703 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3704 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
},
3705 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3706 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3707 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3708 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
},
3709 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3710 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3711 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3712 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3713 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3714 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
3715 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3716 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3717 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3718 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
},
3719 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3720 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3721 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3722 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
},
3723 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3724 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3725 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3726 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3727 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3728 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
3729 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3730 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3731 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3732 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
},
3733 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3734 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3735 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3736 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
},
3737 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3738 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3739 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3740 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3741 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3742 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
},
3743 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEBX
,
3744 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3745 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEBX
,
3746 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3747 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEBX
,
3748 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3749 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEBX
,
3750 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3751 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEHX
,
3752 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3753 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEHX
,
3754 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3755 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEHX
,
3756 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3757 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEHX
,
3758 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3759 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEHX
,
3760 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3761 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEHX
,
3762 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3763 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEWX
,
3764 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3765 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEWX
,
3766 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3767 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEWX
,
3768 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3769 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEWX
,
3770 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3771 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEWX
,
3772 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3773 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3774 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3775 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3776 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3777 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3778 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3779 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3780 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3781 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3782 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3783 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3784 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3785 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3786 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3787 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3788 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3789 { ALTIVEC_BUILTIN_VEC_STVEHX
, ALTIVEC_BUILTIN_STVEHX
,
3790 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3791 { ALTIVEC_BUILTIN_VEC_STVEHX
, ALTIVEC_BUILTIN_STVEHX
,
3792 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3793 { ALTIVEC_BUILTIN_VEC_STVEHX
, ALTIVEC_BUILTIN_STVEHX
,
3794 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3795 { ALTIVEC_BUILTIN_VEC_STVEHX
, ALTIVEC_BUILTIN_STVEHX
,
3796 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3797 { ALTIVEC_BUILTIN_VEC_STVEHX
, ALTIVEC_BUILTIN_STVEHX
,
3798 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3799 { ALTIVEC_BUILTIN_VEC_STVEHX
, ALTIVEC_BUILTIN_STVEHX
,
3800 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3801 { ALTIVEC_BUILTIN_VEC_STVEBX
, ALTIVEC_BUILTIN_STVEBX
,
3802 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3803 { ALTIVEC_BUILTIN_VEC_STVEBX
, ALTIVEC_BUILTIN_STVEBX
,
3804 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3805 { ALTIVEC_BUILTIN_VEC_STVEBX
, ALTIVEC_BUILTIN_STVEBX
,
3806 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3807 { ALTIVEC_BUILTIN_VEC_STVEBX
, ALTIVEC_BUILTIN_STVEBX
,
3808 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3809 { ALTIVEC_BUILTIN_VEC_STVEBX
, ALTIVEC_BUILTIN_STVEBX
,
3810 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3811 { ALTIVEC_BUILTIN_VEC_STVEBX
, ALTIVEC_BUILTIN_STVEBX
,
3812 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3813 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SF
,
3814 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
3815 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SF
,
3816 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3817 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3818 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
3819 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3820 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3821 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3822 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
},
3823 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3824 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3825 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3826 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
},
3827 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3828 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3829 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3830 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3831 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3832 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
3833 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3834 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3835 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3836 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
},
3837 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3838 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3839 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3840 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
},
3841 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3842 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3843 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3844 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3845 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3846 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
3847 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3848 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3849 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3850 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
},
3851 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3852 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3853 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3854 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
},
3855 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3856 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3857 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3858 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3859 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3860 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
},
3861 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V2DF
,
3862 RS6000_BTI_void
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
},
3863 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V2DF
,
3864 RS6000_BTI_void
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_double
},
3865 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V2DI
,
3866 RS6000_BTI_void
, RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
},
3867 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V2DI
,
3868 RS6000_BTI_void
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
3869 ~RS6000_BTI_unsigned_V2DI
},
3870 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V2DI
,
3871 RS6000_BTI_void
, RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
,
3872 ~RS6000_BTI_bool_V2DI
},
3873 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3874 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
3875 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3876 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3877 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3878 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
},
3879 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3880 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
3881 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3882 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3883 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3884 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
},
3885 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3886 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3887 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3888 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
},
3889 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3890 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
},
3891 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3892 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
3893 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3894 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3895 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3896 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
},
3897 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3898 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3899 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3900 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
},
3901 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3902 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
3903 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3904 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3905 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3906 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
},
3907 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3908 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3909 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3910 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
3911 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3912 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3913 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3914 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
},
3915 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3916 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
3917 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3918 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3919 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3920 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
},
3921 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3922 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3923 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3924 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
},
3925 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3926 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
},
3927 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3928 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
3929 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3930 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3931 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3932 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
},
3933 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3934 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3935 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3936 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
},
3937 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3938 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
3939 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3940 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3941 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3942 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
},
3943 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3944 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3945 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3946 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
3947 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3948 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3949 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3950 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
},
3951 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3952 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
3953 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3954 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3955 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3956 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
},
3957 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3958 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3959 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3960 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
},
3961 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3962 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
},
3963 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3964 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
3965 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3966 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3967 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3968 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
},
3969 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3970 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3971 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3972 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
},
3973 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3974 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
3975 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3976 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3977 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3978 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
},
3979 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3980 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3981 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3982 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
3983 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3984 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3985 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3986 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
},
3987 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3988 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
3989 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3990 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3991 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3992 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
},
3993 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3994 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3995 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3996 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
},
3997 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3998 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
},
3999 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
4000 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
4001 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
4002 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
4003 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
4004 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
},
4005 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
4006 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
4007 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
4008 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
},
4009 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
4010 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
4011 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
4012 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
4013 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
4014 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
},
4015 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
4016 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
4017 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVD2X_V2DF
,
4018 RS6000_BTI_void
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
},
4019 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVD2X_V2DI
,
4020 RS6000_BTI_void
, RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
},
4021 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVD2X_V2DI
,
4022 RS6000_BTI_void
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
4023 ~RS6000_BTI_unsigned_V2DI
},
4024 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVD2X_V2DI
,
4025 RS6000_BTI_void
, RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
,
4026 ~RS6000_BTI_bool_V2DI
},
4027 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V4SF
,
4028 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
4029 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V4SF
,
4030 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
4031 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V4SI
,
4032 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
4033 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V4SI
,
4034 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
4035 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V4SI
,
4036 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
},
4037 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V4SI
,
4038 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
4039 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V4SI
,
4040 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
},
4041 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V4SI
,
4042 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
4043 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V4SI
,
4044 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
4045 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V8HI
,
4046 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
4047 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V8HI
,
4048 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
4049 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V8HI
,
4050 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
},
4051 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V8HI
,
4052 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
4053 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V8HI
,
4054 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
},
4055 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V8HI
,
4056 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
4057 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V8HI
,
4058 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
4059 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V16QI
,
4060 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
4061 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V16QI
,
4062 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
4063 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V16QI
,
4064 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
},
4065 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V16QI
,
4066 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
4067 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V16QI
,
4068 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
},
4069 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V16QI
,
4070 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
4071 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V16QI
,
4072 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
4073 { VSX_BUILTIN_VEC_XST
, VSX_BUILTIN_STXVW4X_V8HI
,
4074 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
},
4075 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V2DF
,
4076 RS6000_BTI_void
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
},
4077 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V2DF
,
4078 RS6000_BTI_void
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_double
},
4079 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V2DI
,
4080 RS6000_BTI_void
, RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
},
4081 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V2DI
,
4082 RS6000_BTI_void
, RS6000_BTI_V2DI
, RS6000_BTI_INTSI
,
4083 ~RS6000_BTI_long_long
},
4084 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V2DI
,
4085 RS6000_BTI_void
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
4086 ~RS6000_BTI_unsigned_V2DI
},
4087 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V2DI
,
4088 RS6000_BTI_void
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
4089 ~RS6000_BTI_unsigned_long_long
},
4090 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V4SF
,
4091 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
4092 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V4SF
,
4093 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
4094 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V4SI
,
4095 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
4096 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V4SI
,
4097 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
4098 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V4SI
,
4099 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
,
4100 ~RS6000_BTI_unsigned_V4SI
},
4101 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V4SI
,
4102 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
,
4103 ~RS6000_BTI_UINTSI
},
4104 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V8HI
,
4105 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
4106 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V8HI
,
4107 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
4108 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V8HI
,
4109 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
,
4110 ~RS6000_BTI_unsigned_V8HI
},
4111 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V8HI
,
4112 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
,
4113 ~RS6000_BTI_UINTHI
},
4114 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V16QI
,
4115 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
4116 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V16QI
,
4117 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
4118 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V16QI
,
4119 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
4120 ~RS6000_BTI_unsigned_V16QI
},
4121 { VSX_BUILTIN_VEC_XST_BE
, VSX_BUILTIN_ST_ELEMREV_V16QI
,
4122 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
4123 ~RS6000_BTI_UINTQI
},
4124 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_16QI
,
4125 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_NOT_OPAQUE
},
4126 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_16QI
,
4127 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
4128 RS6000_BTI_NOT_OPAQUE
},
4129 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_8HI
,
4130 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_NOT_OPAQUE
},
4131 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_8HI
,
4132 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
4133 RS6000_BTI_NOT_OPAQUE
},
4134 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_4SI
,
4135 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_NOT_OPAQUE
},
4136 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_4SI
,
4137 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4138 RS6000_BTI_NOT_OPAQUE
},
4139 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_2DI
,
4140 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_NOT_OPAQUE
},
4141 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_2DI
,
4142 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4143 RS6000_BTI_NOT_OPAQUE
},
4144 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_4SF
,
4145 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_NOT_OPAQUE
},
4146 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_2DF
,
4147 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_NOT_OPAQUE
},
4148 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_2DF
,
4149 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_NOT_OPAQUE
},
4150 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_2DI
,
4151 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_NOT_OPAQUE
},
4152 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_2DI
,
4153 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4154 RS6000_BTI_NOT_OPAQUE
},
4155 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_4SF
,
4156 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_NOT_OPAQUE
},
4157 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_4SI
,
4158 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_NOT_OPAQUE
},
4159 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_4SI
,
4160 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4161 RS6000_BTI_NOT_OPAQUE
},
4162 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_8HI
,
4163 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_NOT_OPAQUE
},
4164 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_8HI
,
4165 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
4166 RS6000_BTI_NOT_OPAQUE
},
4167 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_16QI
,
4168 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_NOT_OPAQUE
},
4169 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_16QI
,
4170 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
4171 RS6000_BTI_NOT_OPAQUE
},
4173 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVD2X_V2DF
,
4174 RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
, 0 },
4175 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVD2X_V2DF
,
4176 RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_double
, 0 },
4177 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVD2X_V2DI
,
4178 RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
, 0 },
4179 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVD2X_V2DI
,
4180 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
4181 ~RS6000_BTI_unsigned_V2DI
, 0 },
4182 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVD2X_V2DI
,
4183 RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V2DI
, 0 },
4184 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SF
,
4185 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
4186 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SF
,
4187 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
4188 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
4189 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
4190 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
4191 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
4192 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
4193 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
4194 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
4195 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
4196 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
4197 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
,
4198 ~RS6000_BTI_unsigned_V4SI
, 0 },
4199 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
4200 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
4201 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
4202 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
,
4203 ~RS6000_BTI_unsigned_long
, 0 },
4204 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V8HI
,
4205 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
4206 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V8HI
,
4207 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
4208 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V8HI
,
4209 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
4210 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V8HI
,
4211 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
4212 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V8HI
,
4213 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
,
4214 ~RS6000_BTI_unsigned_V8HI
, 0 },
4215 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V8HI
,
4216 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
4217 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V16QI
,
4218 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
4219 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V16QI
,
4220 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
4221 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V16QI
,
4222 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
4223 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V16QI
,
4224 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
4225 ~RS6000_BTI_unsigned_V16QI
, 0 },
4226 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V16QI
,
4227 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
4229 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVD2X_V2DF
,
4230 RS6000_BTI_void
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
},
4231 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVD2X_V2DF
,
4232 RS6000_BTI_void
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_double
},
4233 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVD2X_V2DI
,
4234 RS6000_BTI_void
, RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
},
4235 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVD2X_V2DI
,
4236 RS6000_BTI_void
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
4237 ~RS6000_BTI_unsigned_V2DI
},
4238 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVD2X_V2DI
,
4239 RS6000_BTI_void
, RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
,
4240 ~RS6000_BTI_bool_V2DI
},
4241 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SF
,
4242 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
4243 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SF
,
4244 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
4245 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
4246 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
4247 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
4248 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
4249 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
4250 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
,
4251 ~RS6000_BTI_unsigned_V4SI
},
4252 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
4253 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
,
4254 ~RS6000_BTI_UINTSI
},
4255 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
4256 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
,
4257 ~RS6000_BTI_bool_V4SI
},
4258 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
4259 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
,
4260 ~RS6000_BTI_UINTSI
},
4261 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
4262 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
,
4263 ~RS6000_BTI_INTSI
},
4264 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
4265 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
4266 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
4267 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
4268 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
4269 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
,
4270 ~RS6000_BTI_unsigned_V8HI
},
4271 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
4272 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
,
4273 ~RS6000_BTI_UINTHI
},
4274 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
4275 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
,
4276 ~RS6000_BTI_bool_V8HI
},
4277 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
4278 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
,
4279 ~RS6000_BTI_UINTHI
},
4280 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
4281 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
,
4282 ~RS6000_BTI_INTHI
},
4283 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
4284 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
4285 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
4286 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
4287 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
4288 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
4289 ~RS6000_BTI_unsigned_V16QI
},
4290 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
4291 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
4292 ~RS6000_BTI_UINTQI
},
4293 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
4294 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
,
4295 ~RS6000_BTI_bool_V16QI
},
4296 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
4297 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
,
4298 ~RS6000_BTI_UINTQI
},
4299 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
4300 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
,
4301 ~RS6000_BTI_INTQI
},
4302 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
4303 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
,
4304 ~RS6000_BTI_pixel_V8HI
},
4307 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUB_P
,
4308 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
},
4309 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUB_P
,
4310 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
},
4311 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUB_P
,
4312 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
4313 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSB_P
,
4314 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
},
4315 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSB_P
,
4316 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
},
4317 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSB_P
,
4318 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
},
4319 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUH_P
,
4320 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
},
4321 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUH_P
,
4322 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
},
4323 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUH_P
,
4324 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
4325 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSH_P
,
4326 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
4327 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSH_P
,
4328 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
},
4329 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSH_P
,
4330 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
},
4331 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUW_P
,
4332 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
},
4333 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUW_P
,
4334 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
},
4335 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUW_P
,
4336 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
},
4337 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSW_P
,
4338 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
},
4339 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSW_P
,
4340 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
},
4341 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSW_P
,
4342 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
},
4343 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, P8V_BUILTIN_VCMPGTUD_P
,
4344 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
},
4345 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, P8V_BUILTIN_VCMPGTUD_P
,
4346 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
},
4347 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, P8V_BUILTIN_VCMPGTUD_P
,
4348 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
},
4349 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, P8V_BUILTIN_VCMPGTSD_P
,
4350 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
},
4351 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, P8V_BUILTIN_VCMPGTSD_P
,
4352 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
},
4353 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, P8V_BUILTIN_VCMPGTSD_P
,
4354 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
},
4355 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTFP_P
,
4356 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
4357 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, VSX_BUILTIN_XVCMPGTDP_P
,
4358 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
4361 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
4362 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
},
4363 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
4364 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
},
4365 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
4366 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
4367 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
4368 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
},
4369 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
4370 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
},
4371 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
4372 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
},
4373 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
4374 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
},
4375 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
4376 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
},
4377 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
4378 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
},
4379 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
4380 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
4381 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
4382 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
4383 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
4384 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
},
4385 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
4386 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
},
4387 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
4388 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
},
4389 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
4390 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
},
4391 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
4392 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
},
4393 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
4394 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
},
4395 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
4396 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
},
4397 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
4398 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
},
4399 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
4400 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
},
4401 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
4402 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
},
4403 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
4404 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
},
4405 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
4406 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
},
4407 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
4408 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
},
4409 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
4410 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
},
4411 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
4412 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
},
4413 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
4414 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
},
4415 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
4416 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
},
4417 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
4418 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
},
4419 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQFP_P
,
4420 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
4421 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, VSX_BUILTIN_XVCMPEQDP_P
,
4422 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
4425 /* cmpge is the same as cmpgt for all cases except floating point.
4426 There is further code to deal with this special case in
4427 altivec_build_resolved_builtin. */
4428 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUB_P
,
4429 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
},
4430 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUB_P
,
4431 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
},
4432 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUB_P
,
4433 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
4434 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSB_P
,
4435 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
},
4436 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSB_P
,
4437 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
},
4438 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSB_P
,
4439 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
},
4440 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUH_P
,
4441 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
},
4442 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUH_P
,
4443 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
},
4444 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUH_P
,
4445 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
4446 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSH_P
,
4447 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
4448 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSH_P
,
4449 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
},
4450 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSH_P
,
4451 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
},
4452 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUW_P
,
4453 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
},
4454 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUW_P
,
4455 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
},
4456 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUW_P
,
4457 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
},
4458 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSW_P
,
4459 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
},
4460 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSW_P
,
4461 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
},
4462 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSW_P
,
4463 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
},
4464 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, P8V_BUILTIN_VCMPGTUD_P
,
4465 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
},
4466 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, P8V_BUILTIN_VCMPGTUD_P
,
4467 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
},
4468 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, P8V_BUILTIN_VCMPGTUD_P
,
4469 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
},
4470 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, P8V_BUILTIN_VCMPGTSD_P
,
4471 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
},
4472 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, P8V_BUILTIN_VCMPGTSD_P
,
4473 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
},
4474 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, P8V_BUILTIN_VCMPGTSD_P
,
4475 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
},
4476 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGEFP_P
,
4477 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
4478 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, VSX_BUILTIN_XVCMPGEDP_P
,
4479 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
4481 /* Power8 vector overloaded functions. */
4482 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V16QI
,
4483 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
4484 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V16QI
,
4485 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
4486 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V16QI
,
4487 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
4488 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V16QI
,
4489 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
4490 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V16QI
,
4491 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
,
4492 RS6000_BTI_unsigned_V16QI
, 0 },
4493 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V16QI
,
4494 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
4495 RS6000_BTI_bool_V16QI
, 0 },
4496 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V16QI
,
4497 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
4498 RS6000_BTI_unsigned_V16QI
, 0 },
4499 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V8HI
,
4500 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
4501 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V8HI
,
4502 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
4503 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V8HI
,
4504 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
4505 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V8HI
,
4506 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
4507 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V8HI
,
4508 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
,
4509 RS6000_BTI_unsigned_V8HI
, 0 },
4510 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V8HI
,
4511 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
4512 RS6000_BTI_bool_V8HI
, 0 },
4513 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V8HI
,
4514 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
4515 RS6000_BTI_unsigned_V8HI
, 0 },
4516 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SI
,
4517 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
4518 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SI
,
4519 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
4520 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SI
,
4521 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
4522 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SI
,
4523 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
4524 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SI
,
4525 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
,
4526 RS6000_BTI_unsigned_V4SI
, 0 },
4527 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SI
,
4528 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4529 RS6000_BTI_bool_V4SI
, 0 },
4530 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SI
,
4531 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4532 RS6000_BTI_unsigned_V4SI
, 0 },
4533 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DI
,
4534 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
4535 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DI
,
4536 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
4537 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DI
,
4538 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
4539 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DI
,
4540 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
4541 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DI
,
4542 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
,
4543 RS6000_BTI_unsigned_V2DI
, 0 },
4544 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DI
,
4545 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4546 RS6000_BTI_bool_V2DI
, 0 },
4547 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DI
,
4548 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4549 RS6000_BTI_unsigned_V2DI
, 0 },
4550 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SF
,
4551 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
4552 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DF
,
4553 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
4555 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V16QI
,
4556 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
4557 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V16QI
,
4558 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
4559 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V16QI
,
4560 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
4561 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V16QI
,
4562 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
,
4563 RS6000_BTI_unsigned_V16QI
, 0 },
4564 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V16QI
,
4565 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
4566 RS6000_BTI_bool_V16QI
, 0 },
4567 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V16QI
,
4568 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
4569 RS6000_BTI_unsigned_V16QI
, 0 },
4570 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V16QI
,
4571 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
4572 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V8HI
,
4573 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
4574 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V8HI
,
4575 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
4576 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V8HI
,
4577 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
4578 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V8HI
,
4579 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
,
4580 RS6000_BTI_unsigned_V8HI
, 0 },
4581 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V8HI
,
4582 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
4583 RS6000_BTI_bool_V8HI
, 0 },
4584 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V8HI
,
4585 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
4586 RS6000_BTI_unsigned_V8HI
, 0 },
4587 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V8HI
,
4588 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
4589 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SI
,
4590 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
4591 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SI
,
4592 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
4593 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SI
,
4594 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
4595 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SI
,
4596 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
,
4597 RS6000_BTI_unsigned_V4SI
, 0 },
4598 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SI
,
4599 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4600 RS6000_BTI_bool_V4SI
, 0 },
4601 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SI
,
4602 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4603 RS6000_BTI_unsigned_V4SI
, 0 },
4604 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SI
,
4605 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
4606 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DI
,
4607 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
4608 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DI
,
4609 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
4610 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DI
,
4611 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
4612 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DI
,
4613 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
,
4614 RS6000_BTI_unsigned_V2DI
, 0 },
4615 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DI
,
4616 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4617 RS6000_BTI_bool_V2DI
, 0 },
4618 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DI
,
4619 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4620 RS6000_BTI_unsigned_V2DI
, 0 },
4621 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DI
,
4622 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
4623 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SF
,
4624 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
4625 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DF
,
4626 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
4628 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V16QI
,
4629 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
4630 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V16QI
,
4631 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
4632 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V16QI
,
4633 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
4634 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V16QI
,
4635 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
,
4636 RS6000_BTI_unsigned_V16QI
, 0 },
4637 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V16QI
,
4638 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
4639 RS6000_BTI_bool_V16QI
, 0 },
4640 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V16QI
,
4641 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
4642 RS6000_BTI_unsigned_V16QI
, 0 },
4643 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V16QI
,
4644 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
4645 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V8HI
,
4646 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
4647 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V8HI
,
4648 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
4649 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V8HI
,
4650 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
4651 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V8HI
,
4652 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
,
4653 RS6000_BTI_unsigned_V8HI
, 0 },
4654 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V8HI
,
4655 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
4656 RS6000_BTI_bool_V8HI
, 0 },
4657 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V8HI
,
4658 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
4659 RS6000_BTI_unsigned_V8HI
, 0 },
4660 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V8HI
,
4661 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
4662 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SI
,
4663 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
4664 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SI
,
4665 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
4666 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SI
,
4667 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
4668 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SI
,
4669 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
,
4670 RS6000_BTI_unsigned_V4SI
, 0 },
4671 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SI
,
4672 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4673 RS6000_BTI_bool_V4SI
, 0 },
4674 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SI
,
4675 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4676 RS6000_BTI_unsigned_V4SI
, 0 },
4677 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SI
,
4678 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
4679 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DI
,
4680 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
4681 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DI
,
4682 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
4683 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DI
,
4684 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
4685 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DI
,
4686 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
,
4687 RS6000_BTI_unsigned_V2DI
, 0 },
4688 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DI
,
4689 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4690 RS6000_BTI_bool_V2DI
, 0 },
4691 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DI
,
4692 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4693 RS6000_BTI_unsigned_V2DI
, 0 },
4694 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DI
,
4695 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
4696 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SF
,
4697 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
4698 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DF
,
4699 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
4701 { P8V_BUILTIN_VEC_VADDCUQ
, P8V_BUILTIN_VADDCUQ
,
4702 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
4703 { P8V_BUILTIN_VEC_VADDCUQ
, P8V_BUILTIN_VADDCUQ
,
4704 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
4705 RS6000_BTI_unsigned_V1TI
, 0 },
4707 { P8V_BUILTIN_VEC_VADDUDM
, P8V_BUILTIN_VADDUDM
,
4708 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
4709 { P8V_BUILTIN_VEC_VADDUDM
, P8V_BUILTIN_VADDUDM
,
4710 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
4711 { P8V_BUILTIN_VEC_VADDUDM
, P8V_BUILTIN_VADDUDM
,
4712 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
4713 { P8V_BUILTIN_VEC_VADDUDM
, P8V_BUILTIN_VADDUDM
,
4714 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4715 { P8V_BUILTIN_VEC_VADDUDM
, P8V_BUILTIN_VADDUDM
,
4716 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
4717 { P8V_BUILTIN_VEC_VADDUDM
, P8V_BUILTIN_VADDUDM
,
4718 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4720 { P8V_BUILTIN_VEC_VADDUQM
, P8V_BUILTIN_VADDUQM
,
4721 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
4722 { P8V_BUILTIN_VEC_VADDUQM
, P8V_BUILTIN_VADDUQM
,
4723 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
4724 RS6000_BTI_unsigned_V1TI
, 0 },
4726 { P9V_BUILTIN_VEC_VBPERM
, P9V_BUILTIN_VBPERMD
,
4727 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4728 RS6000_BTI_unsigned_V16QI
, 0 },
4729 { P9V_BUILTIN_VEC_VBPERM
, P8V_BUILTIN_VBPERMQ
,
4730 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V1TI
,
4731 RS6000_BTI_unsigned_V16QI
, 0 },
4732 { P9V_BUILTIN_VEC_VBPERM
, P8V_BUILTIN_VBPERMQ2
,
4733 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
4734 RS6000_BTI_unsigned_V16QI
, 0 },
4736 { P8V_BUILTIN_VEC_VBPERMQ
, P8V_BUILTIN_VBPERMQ
,
4737 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4738 RS6000_BTI_unsigned_V16QI
, 0 },
4739 { P8V_BUILTIN_VEC_VBPERMQ
, P8V_BUILTIN_VBPERMQ
,
4740 RS6000_BTI_V2DI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
4741 { P8V_BUILTIN_VEC_VBPERMQ
, P8V_BUILTIN_VBPERMQ
,
4742 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V16QI
,
4743 RS6000_BTI_unsigned_V16QI
, 0 },
4744 { P8V_BUILTIN_VEC_VBPERMQ
, P8V_BUILTIN_VBPERMQ
,
4745 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V1TI
,
4746 RS6000_BTI_unsigned_V16QI
, 0 },
4748 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZB
,
4749 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
4750 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZB
,
4751 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
4752 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZH
,
4753 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
4754 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZH
,
4755 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
4756 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZW
,
4757 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
4758 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZW
,
4759 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
4760 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZD
,
4761 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
4762 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZD
,
4763 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
4765 { P8V_BUILTIN_VEC_VCLZB
, P8V_BUILTIN_VCLZB
,
4766 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
4767 { P8V_BUILTIN_VEC_VCLZB
, P8V_BUILTIN_VCLZB
,
4768 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
4770 { P8V_BUILTIN_VEC_VCLZH
, P8V_BUILTIN_VCLZH
,
4771 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
4772 { P8V_BUILTIN_VEC_VCLZH
, P8V_BUILTIN_VCLZH
,
4773 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
4775 { P8V_BUILTIN_VEC_VCLZW
, P8V_BUILTIN_VCLZW
,
4776 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
4777 { P8V_BUILTIN_VEC_VCLZW
, P8V_BUILTIN_VCLZW
,
4778 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
4780 { P8V_BUILTIN_VEC_VCLZD
, P8V_BUILTIN_VCLZD
,
4781 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
4782 { P8V_BUILTIN_VEC_VCLZD
, P8V_BUILTIN_VCLZD
,
4783 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
4785 { P9_BUILTIN_DFP_TSTSFI_LT
, MISC_BUILTIN_TSTSFI_LT_TD
,
4786 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat128
, 0 },
4787 { P9_BUILTIN_DFP_TSTSFI_LT
, MISC_BUILTIN_TSTSFI_LT_DD
,
4788 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat64
, 0 },
4790 { P9_BUILTIN_DFP_TSTSFI_LT_TD
, MISC_BUILTIN_TSTSFI_LT_TD
,
4791 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat128
, 0 },
4792 { P9_BUILTIN_DFP_TSTSFI_LT_DD
, MISC_BUILTIN_TSTSFI_LT_DD
,
4793 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat64
, 0 },
4795 { P9_BUILTIN_DFP_TSTSFI_EQ
, MISC_BUILTIN_TSTSFI_EQ_TD
,
4796 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat128
, 0 },
4797 { P9_BUILTIN_DFP_TSTSFI_EQ
, MISC_BUILTIN_TSTSFI_EQ_DD
,
4798 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat64
, 0 },
4800 { P9_BUILTIN_DFP_TSTSFI_EQ_TD
, MISC_BUILTIN_TSTSFI_EQ_TD
,
4801 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat128
, 0 },
4802 { P9_BUILTIN_DFP_TSTSFI_EQ_DD
, MISC_BUILTIN_TSTSFI_EQ_DD
,
4803 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat64
, 0 },
4805 { P9_BUILTIN_DFP_TSTSFI_GT
, MISC_BUILTIN_TSTSFI_GT_TD
,
4806 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat128
, 0 },
4807 { P9_BUILTIN_DFP_TSTSFI_GT
, MISC_BUILTIN_TSTSFI_GT_DD
,
4808 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat64
, 0 },
4810 { P9_BUILTIN_DFP_TSTSFI_GT_TD
, MISC_BUILTIN_TSTSFI_GT_TD
,
4811 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat128
, 0 },
4812 { P9_BUILTIN_DFP_TSTSFI_GT_DD
, MISC_BUILTIN_TSTSFI_GT_DD
,
4813 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat64
, 0 },
4815 { P9_BUILTIN_DFP_TSTSFI_OV
, MISC_BUILTIN_TSTSFI_OV_TD
,
4816 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat128
, 0 },
4817 { P9_BUILTIN_DFP_TSTSFI_OV
, MISC_BUILTIN_TSTSFI_OV_DD
,
4818 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat64
, 0 },
4820 { P9_BUILTIN_DFP_TSTSFI_OV_TD
, MISC_BUILTIN_TSTSFI_OV_TD
,
4821 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat128
, 0 },
4822 { P9_BUILTIN_DFP_TSTSFI_OV_DD
, MISC_BUILTIN_TSTSFI_OV_DD
,
4823 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_dfloat64
, 0 },
4825 { P9V_BUILTIN_VEC_VCTZ
, P9V_BUILTIN_VCTZB
,
4826 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
4827 { P9V_BUILTIN_VEC_VCTZ
, P9V_BUILTIN_VCTZB
,
4828 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
4829 { P9V_BUILTIN_VEC_VCTZ
, P9V_BUILTIN_VCTZH
,
4830 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
4831 { P9V_BUILTIN_VEC_VCTZ
, P9V_BUILTIN_VCTZH
,
4832 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
4833 { P9V_BUILTIN_VEC_VCTZ
, P9V_BUILTIN_VCTZW
,
4834 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
4835 { P9V_BUILTIN_VEC_VCTZ
, P9V_BUILTIN_VCTZW
,
4836 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
4837 { P9V_BUILTIN_VEC_VCTZ
, P9V_BUILTIN_VCTZD
,
4838 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
4839 { P9V_BUILTIN_VEC_VCTZ
, P9V_BUILTIN_VCTZD
,
4840 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
4842 { P9V_BUILTIN_VEC_VCTZB
, P9V_BUILTIN_VCTZB
,
4843 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
4844 { P9V_BUILTIN_VEC_VCTZB
, P9V_BUILTIN_VCTZB
,
4845 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
4847 { P9V_BUILTIN_VEC_VCTZH
, P9V_BUILTIN_VCTZH
,
4848 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
4849 { P9V_BUILTIN_VEC_VCTZH
, P9V_BUILTIN_VCTZH
,
4850 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
4852 { P9V_BUILTIN_VEC_VCTZW
, P9V_BUILTIN_VCTZW
,
4853 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
4854 { P9V_BUILTIN_VEC_VCTZW
, P9V_BUILTIN_VCTZW
,
4855 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
4857 { P9V_BUILTIN_VEC_VCTZD
, P9V_BUILTIN_VCTZD
,
4858 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
4859 { P9V_BUILTIN_VEC_VCTZD
, P9V_BUILTIN_VCTZD
,
4860 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
4862 { P9V_BUILTIN_VEC_VADU
, P9V_BUILTIN_VADUB
,
4863 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
4864 RS6000_BTI_unsigned_V16QI
, 0 },
4865 { P9V_BUILTIN_VEC_VADU
, P9V_BUILTIN_VADUH
,
4866 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
4867 RS6000_BTI_unsigned_V8HI
, 0 },
4868 { P9V_BUILTIN_VEC_VADU
, P9V_BUILTIN_VADUW
,
4869 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4870 RS6000_BTI_unsigned_V4SI
, 0 },
4872 { P9V_BUILTIN_VEC_VADUB
, P9V_BUILTIN_VADUB
,
4873 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
4874 RS6000_BTI_unsigned_V16QI
, 0 },
4876 { P9V_BUILTIN_VEC_VADUH
, P9V_BUILTIN_VADUH
,
4877 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
4878 RS6000_BTI_unsigned_V8HI
, 0 },
4880 { P9V_BUILTIN_VEC_VADUW
, P9V_BUILTIN_VADUW
,
4881 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4882 RS6000_BTI_unsigned_V4SI
, 0 },
4884 { P9V_BUILTIN_VEC_VES
, P9V_BUILTIN_VESSP
,
4885 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SF
, 0, 0 },
4886 { P9V_BUILTIN_VEC_VES
, P9V_BUILTIN_VESDP
,
4887 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_V2DF
, 0, 0 },
4889 { P9V_BUILTIN_VEC_VESSP
, P9V_BUILTIN_VESSP
,
4890 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SF
, 0, 0 },
4891 { P9V_BUILTIN_VEC_VESDP
, P9V_BUILTIN_VESDP
,
4892 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_V2DF
, 0, 0 },
4894 { P9V_BUILTIN_VEC_VEE
, P9V_BUILTIN_VEESP
,
4895 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SF
, 0, 0 },
4896 { P9V_BUILTIN_VEC_VEE
, P9V_BUILTIN_VEEDP
,
4897 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_V2DF
, 0, 0 },
4899 { P9V_BUILTIN_VEC_VEESP
, P9V_BUILTIN_VEESP
,
4900 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SF
, 0, 0 },
4901 { P9V_BUILTIN_VEC_VEEDP
, P9V_BUILTIN_VEEDP
,
4902 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_V2DF
, 0, 0 },
4904 { P9V_BUILTIN_VEC_VTDC
, P9V_BUILTIN_VTDCSP
,
4905 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, 0 },
4906 { P9V_BUILTIN_VEC_VTDC
, P9V_BUILTIN_VTDCDP
,
4907 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, 0 },
4909 { P9V_BUILTIN_VEC_VTDCSP
, P9V_BUILTIN_VTDCSP
,
4910 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, 0 },
4911 { P9V_BUILTIN_VEC_VTDCDP
, P9V_BUILTIN_VTDCDP
,
4912 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, 0 },
4914 { P9V_BUILTIN_VEC_VIE
, P9V_BUILTIN_VIESP
,
4915 RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
4916 { P9V_BUILTIN_VEC_VIE
, P9V_BUILTIN_VIESP
,
4917 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V4SI
, 0 },
4919 { P9V_BUILTIN_VEC_VIE
, P9V_BUILTIN_VIEDP
,
4920 RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4921 { P9V_BUILTIN_VEC_VIE
, P9V_BUILTIN_VIEDP
,
4922 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V2DI
, 0 },
4924 { P9V_BUILTIN_VEC_VIESP
, P9V_BUILTIN_VIESP
,
4925 RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
4926 { P9V_BUILTIN_VEC_VIESP
, P9V_BUILTIN_VIESP
,
4927 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V4SI
, 0 },
4929 { P9V_BUILTIN_VEC_VIEDP
, P9V_BUILTIN_VIEDP
,
4930 RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4931 { P9V_BUILTIN_VEC_VIEDP
, P9V_BUILTIN_VIEDP
,
4932 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V2DI
, 0 },
4934 { P9V_BUILTIN_VEC_VSTDC
, P9V_BUILTIN_VSTDCSP
,
4935 RS6000_BTI_bool_int
, RS6000_BTI_float
, RS6000_BTI_INTSI
, 0 },
4936 { P9V_BUILTIN_VEC_VSTDC
, P9V_BUILTIN_VSTDCDP
,
4937 RS6000_BTI_bool_int
, RS6000_BTI_double
, RS6000_BTI_INTSI
, 0 },
4938 { P9V_BUILTIN_VEC_VSTDC
, P9V_BUILTIN_VSTDCQP
,
4939 RS6000_BTI_bool_int
, RS6000_BTI_ieee128_float
, RS6000_BTI_INTSI
, 0 },
4941 { P9V_BUILTIN_VEC_VSTDCSP
, P9V_BUILTIN_VSTDCSP
,
4942 RS6000_BTI_bool_int
, RS6000_BTI_float
, RS6000_BTI_INTSI
, 0 },
4943 { P9V_BUILTIN_VEC_VSTDCDP
, P9V_BUILTIN_VSTDCDP
,
4944 RS6000_BTI_bool_int
, RS6000_BTI_double
, RS6000_BTI_INTSI
, 0 },
4945 { P9V_BUILTIN_VEC_VSTDCQP
, P9V_BUILTIN_VSTDCQP
,
4946 RS6000_BTI_bool_int
, RS6000_BTI_ieee128_float
, RS6000_BTI_INTSI
, 0 },
4948 { P9V_BUILTIN_VEC_VSTDCN
, P9V_BUILTIN_VSTDCNSP
,
4949 RS6000_BTI_bool_int
, RS6000_BTI_float
, 0, 0 },
4950 { P9V_BUILTIN_VEC_VSTDCN
, P9V_BUILTIN_VSTDCNDP
,
4951 RS6000_BTI_bool_int
, RS6000_BTI_double
, 0, 0 },
4952 { P9V_BUILTIN_VEC_VSTDCN
, P9V_BUILTIN_VSTDCNQP
,
4953 RS6000_BTI_bool_int
, RS6000_BTI_ieee128_float
, 0, 0 },
4955 { P9V_BUILTIN_VEC_VSTDCNSP
, P9V_BUILTIN_VSTDCNSP
,
4956 RS6000_BTI_bool_int
, RS6000_BTI_float
, 0, 0 },
4957 { P9V_BUILTIN_VEC_VSTDCNDP
, P9V_BUILTIN_VSTDCNDP
,
4958 RS6000_BTI_bool_int
, RS6000_BTI_double
, 0, 0 },
4959 { P9V_BUILTIN_VEC_VSTDCNQP
, P9V_BUILTIN_VSTDCNQP
,
4960 RS6000_BTI_bool_int
, RS6000_BTI_ieee128_float
, 0, 0 },
4962 { P9V_BUILTIN_VEC_VSEEDP
, P9V_BUILTIN_VSEEDP
,
4963 RS6000_BTI_UINTSI
, RS6000_BTI_double
, 0, 0 },
4964 { P9V_BUILTIN_VEC_VSEEDP
, P9V_BUILTIN_VSEEQP
,
4965 RS6000_BTI_UINTDI
, RS6000_BTI_ieee128_float
, 0, 0 },
4967 { P9V_BUILTIN_VEC_VSESDP
, P9V_BUILTIN_VSESDP
,
4968 RS6000_BTI_UINTDI
, RS6000_BTI_double
, 0, 0 },
4969 { P9V_BUILTIN_VEC_VSESDP
, P9V_BUILTIN_VSESQP
,
4970 RS6000_BTI_UINTTI
, RS6000_BTI_ieee128_float
, 0, 0 },
4972 { P9V_BUILTIN_VEC_VSIEDP
, P9V_BUILTIN_VSIEDP
,
4973 RS6000_BTI_double
, RS6000_BTI_UINTDI
, RS6000_BTI_UINTDI
, 0 },
4974 { P9V_BUILTIN_VEC_VSIEDP
, P9V_BUILTIN_VSIEDPF
,
4975 RS6000_BTI_double
, RS6000_BTI_double
, RS6000_BTI_UINTDI
, 0 },
4977 { P9V_BUILTIN_VEC_VSIEDP
, P9V_BUILTIN_VSIEQP
,
4978 RS6000_BTI_ieee128_float
, RS6000_BTI_UINTTI
, RS6000_BTI_UINTDI
, 0 },
4979 { P9V_BUILTIN_VEC_VSIEDP
, P9V_BUILTIN_VSIEQPF
,
4980 RS6000_BTI_ieee128_float
, RS6000_BTI_ieee128_float
, RS6000_BTI_UINTDI
, 0 },
4982 { P9V_BUILTIN_VEC_VSCEDPGT
, P9V_BUILTIN_VSCEDPGT
,
4983 RS6000_BTI_INTSI
, RS6000_BTI_double
, RS6000_BTI_double
, 0 },
4984 { P9V_BUILTIN_VEC_VSCEDPLT
, P9V_BUILTIN_VSCEDPLT
,
4985 RS6000_BTI_INTSI
, RS6000_BTI_double
, RS6000_BTI_double
, 0 },
4986 { P9V_BUILTIN_VEC_VSCEDPEQ
, P9V_BUILTIN_VSCEDPEQ
,
4987 RS6000_BTI_INTSI
, RS6000_BTI_double
, RS6000_BTI_double
, 0 },
4988 { P9V_BUILTIN_VEC_VSCEDPUO
, P9V_BUILTIN_VSCEDPUO
,
4989 RS6000_BTI_INTSI
, RS6000_BTI_double
, RS6000_BTI_double
, 0 },
4991 { P9V_BUILTIN_VEC_XL_LEN_R
, P9V_BUILTIN_XL_LEN_R
,
4992 RS6000_BTI_unsigned_V16QI
, ~RS6000_BTI_UINTQI
,
4993 RS6000_BTI_unsigned_long_long
, 0 },
4995 { P9V_BUILTIN_VEC_LXVL
, P9V_BUILTIN_LXVL
,
4996 RS6000_BTI_V16QI
, ~RS6000_BTI_INTQI
,
4997 RS6000_BTI_unsigned_long_long
, 0 },
4998 { P9V_BUILTIN_VEC_LXVL
, P9V_BUILTIN_LXVL
,
4999 RS6000_BTI_unsigned_V16QI
, ~RS6000_BTI_UINTQI
,
5000 RS6000_BTI_unsigned_long_long
, 0 },
5002 { P9V_BUILTIN_VEC_LXVL
, P9V_BUILTIN_LXVL
,
5003 RS6000_BTI_V4SI
, ~RS6000_BTI_INTSI
,
5004 RS6000_BTI_unsigned_long_long
, 0 },
5005 { P9V_BUILTIN_VEC_LXVL
, P9V_BUILTIN_LXVL
,
5006 RS6000_BTI_unsigned_V4SI
, ~RS6000_BTI_UINTSI
,
5007 RS6000_BTI_unsigned_long_long
, 0 },
5009 { P9V_BUILTIN_VEC_LXVL
, P9V_BUILTIN_LXVL
,
5010 RS6000_BTI_V1TI
, ~RS6000_BTI_INTTI
,
5011 RS6000_BTI_unsigned_long_long
, 0 },
5012 { P9V_BUILTIN_VEC_LXVL
, P9V_BUILTIN_LXVL
,
5013 RS6000_BTI_unsigned_V1TI
, ~RS6000_BTI_UINTTI
,
5014 RS6000_BTI_unsigned_long_long
, 0 },
5016 { P9V_BUILTIN_VEC_LXVL
, P9V_BUILTIN_LXVL
,
5017 RS6000_BTI_V2DI
, ~RS6000_BTI_long_long
,
5018 RS6000_BTI_unsigned_long_long
, 0 },
5019 { P9V_BUILTIN_VEC_LXVL
, P9V_BUILTIN_LXVL
,
5020 RS6000_BTI_unsigned_V2DI
, ~RS6000_BTI_unsigned_long_long
,
5021 RS6000_BTI_unsigned_long_long
, 0 },
5023 { P9V_BUILTIN_VEC_LXVL
, P9V_BUILTIN_LXVL
,
5024 RS6000_BTI_V8HI
, ~RS6000_BTI_INTHI
,
5025 RS6000_BTI_unsigned_long_long
, 0 },
5026 { P9V_BUILTIN_VEC_LXVL
, P9V_BUILTIN_LXVL
,
5027 RS6000_BTI_unsigned_V8HI
, ~RS6000_BTI_UINTHI
,
5028 RS6000_BTI_unsigned_long_long
, 0 },
5030 { P9V_BUILTIN_VEC_LXVL
, P9V_BUILTIN_LXVL
,
5031 RS6000_BTI_V2DF
, ~RS6000_BTI_double
,
5032 RS6000_BTI_unsigned_long_long
, 0 },
5033 { P9V_BUILTIN_VEC_LXVL
, P9V_BUILTIN_LXVL
,
5034 RS6000_BTI_V4SF
, ~RS6000_BTI_float
,
5035 RS6000_BTI_unsigned_long_long
, 0 },
5036 /* At an appropriate future time, add support for the
5037 RS6000_BTI_Float16 (exact name to be determined) type here. */
5039 { P9V_BUILTIN_VEC_XST_LEN_R
, P9V_BUILTIN_XST_LEN_R
,
5040 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
,
5041 ~RS6000_BTI_UINTQI
, RS6000_BTI_unsigned_long_long
},
5043 { P9V_BUILTIN_VEC_STXVL
, P9V_BUILTIN_STXVL
,
5044 RS6000_BTI_void
, RS6000_BTI_V16QI
, ~RS6000_BTI_INTQI
,
5045 RS6000_BTI_unsigned_long_long
},
5046 { P9V_BUILTIN_VEC_STXVL
, P9V_BUILTIN_STXVL
,
5047 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, ~RS6000_BTI_UINTQI
,
5048 RS6000_BTI_unsigned_long_long
},
5050 { P9V_BUILTIN_VEC_STXVL
, P9V_BUILTIN_STXVL
,
5051 RS6000_BTI_void
, RS6000_BTI_V4SI
, ~RS6000_BTI_INTSI
,
5052 RS6000_BTI_unsigned_long_long
},
5053 { P9V_BUILTIN_VEC_STXVL
, P9V_BUILTIN_STXVL
,
5054 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, ~RS6000_BTI_UINTSI
,
5055 RS6000_BTI_unsigned_long_long
},
5057 { P9V_BUILTIN_VEC_STXVL
, P9V_BUILTIN_STXVL
,
5058 RS6000_BTI_void
, RS6000_BTI_V1TI
, ~RS6000_BTI_INTTI
,
5059 RS6000_BTI_unsigned_long_long
},
5060 { P9V_BUILTIN_VEC_STXVL
, P9V_BUILTIN_STXVL
,
5061 RS6000_BTI_void
, RS6000_BTI_unsigned_V1TI
, ~RS6000_BTI_UINTTI
,
5062 RS6000_BTI_unsigned_long_long
},
5064 { P9V_BUILTIN_VEC_STXVL
, P9V_BUILTIN_STXVL
,
5065 RS6000_BTI_void
, RS6000_BTI_V2DI
, ~RS6000_BTI_long_long
,
5066 RS6000_BTI_unsigned_long_long
},
5067 { P9V_BUILTIN_VEC_STXVL
, P9V_BUILTIN_STXVL
,
5068 RS6000_BTI_void
, RS6000_BTI_unsigned_V2DI
, ~RS6000_BTI_unsigned_long_long
,
5069 RS6000_BTI_unsigned_long_long
},
5071 { P9V_BUILTIN_VEC_STXVL
, P9V_BUILTIN_STXVL
,
5072 RS6000_BTI_void
, RS6000_BTI_V8HI
, ~RS6000_BTI_INTHI
,
5073 RS6000_BTI_unsigned_long_long
},
5074 { P9V_BUILTIN_VEC_STXVL
, P9V_BUILTIN_STXVL
,
5075 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, ~RS6000_BTI_UINTHI
,
5076 RS6000_BTI_unsigned_long_long
},
5078 { P9V_BUILTIN_VEC_STXVL
, P9V_BUILTIN_STXVL
,
5079 RS6000_BTI_void
, RS6000_BTI_V2DF
, ~RS6000_BTI_double
,
5080 RS6000_BTI_unsigned_long_long
},
5081 { P9V_BUILTIN_VEC_STXVL
, P9V_BUILTIN_STXVL
,
5082 RS6000_BTI_void
, RS6000_BTI_V4SF
, ~RS6000_BTI_float
,
5083 RS6000_BTI_unsigned_long_long
},
5084 /* At an appropriate future time, add support for the
5085 RS6000_BTI_Float16 (exact name to be determined) type here. */
5087 { ALTIVEC_BUILTIN_VEC_CMPNE
, P9V_BUILTIN_CMPNEB
,
5088 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
,
5089 RS6000_BTI_bool_V16QI
, 0 },
5090 { ALTIVEC_BUILTIN_VEC_CMPNE
, P9V_BUILTIN_CMPNEB
,
5091 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
,
5092 RS6000_BTI_V16QI
, 0 },
5093 { ALTIVEC_BUILTIN_VEC_CMPNE
, P9V_BUILTIN_CMPNEB
,
5094 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
,
5095 RS6000_BTI_unsigned_V16QI
, 0 },
5097 { ALTIVEC_BUILTIN_VEC_CMPNE
, P9V_BUILTIN_CMPNEH
,
5098 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
,
5099 RS6000_BTI_bool_V8HI
, 0 },
5100 { ALTIVEC_BUILTIN_VEC_CMPNE
, P9V_BUILTIN_CMPNEH
,
5101 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
,
5102 RS6000_BTI_V8HI
, 0 },
5103 { ALTIVEC_BUILTIN_VEC_CMPNE
, P9V_BUILTIN_CMPNEH
,
5104 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
,
5105 RS6000_BTI_unsigned_V8HI
, 0 },
5107 { ALTIVEC_BUILTIN_VEC_CMPNE
, P9V_BUILTIN_CMPNEW
,
5108 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
,
5109 RS6000_BTI_bool_V4SI
, 0 },
5110 { ALTIVEC_BUILTIN_VEC_CMPNE
, P9V_BUILTIN_CMPNEW
,
5111 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
,
5112 RS6000_BTI_V4SI
, 0 },
5113 { ALTIVEC_BUILTIN_VEC_CMPNE
, P9V_BUILTIN_CMPNEW
,
5114 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
,
5115 RS6000_BTI_unsigned_V4SI
, 0 },
5117 /* The following 2 entries have been deprecated. */
5118 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEB_P
,
5119 RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
,
5120 RS6000_BTI_unsigned_V16QI
, 0 },
5121 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEB_P
,
5122 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
,
5123 RS6000_BTI_bool_V16QI
, 0 },
5124 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEB_P
,
5125 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
,
5126 RS6000_BTI_unsigned_V16QI
, 0 },
5128 /* The following 2 entries have been deprecated. */
5129 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEB_P
,
5130 RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
,
5131 RS6000_BTI_V16QI
, 0 },
5132 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEB_P
,
5133 RS6000_BTI_INTSI
, RS6000_BTI_V16QI
,
5134 RS6000_BTI_bool_V16QI
, 0 },
5135 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEB_P
,
5136 RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
5137 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEB_P
,
5138 RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
,
5139 RS6000_BTI_bool_V16QI
, 0 },
5141 /* The following 2 entries have been deprecated. */
5142 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEH_P
,
5143 RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
,
5144 RS6000_BTI_unsigned_V8HI
, 0 },
5145 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEH_P
,
5146 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
,
5147 RS6000_BTI_bool_V8HI
, 0 },
5148 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEH_P
,
5149 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
,
5150 RS6000_BTI_unsigned_V8HI
, 0 },
5151 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEH_P
,
5152 RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
5154 /* The following 2 entries have been deprecated. */
5155 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEH_P
,
5156 RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
,
5157 RS6000_BTI_V8HI
, 0 },
5158 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEH_P
,
5159 RS6000_BTI_INTSI
, RS6000_BTI_V8HI
,
5160 RS6000_BTI_bool_V8HI
, 0 },
5161 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEH_P
,
5162 RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
,
5163 RS6000_BTI_bool_V8HI
, 0 },
5164 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEH_P
,
5165 RS6000_BTI_INTSI
, RS6000_BTI_pixel_V8HI
,
5166 RS6000_BTI_pixel_V8HI
, 0 },
5168 /* The following 2 entries have been deprecated. */
5169 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEW_P
,
5170 RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
,
5171 RS6000_BTI_unsigned_V4SI
, 0 },
5172 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEW_P
,
5173 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
,
5174 RS6000_BTI_bool_V4SI
, 0 },
5175 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEW_P
,
5176 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
,
5177 RS6000_BTI_unsigned_V4SI
, 0 },
5179 /* The following 2 entries have been deprecated. */
5180 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEW_P
,
5181 RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
,
5182 RS6000_BTI_V4SI
, 0 },
5183 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEW_P
,
5184 RS6000_BTI_INTSI
, RS6000_BTI_V4SI
,
5185 RS6000_BTI_bool_V4SI
, 0 },
5186 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEW_P
,
5187 RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
5188 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEW_P
,
5189 RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
,
5190 RS6000_BTI_bool_V4SI
, 0 },
5192 /* The following 2 entries have been deprecated. */
5193 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNED_P
,
5194 RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
,
5195 RS6000_BTI_unsigned_V2DI
, 0 },
5196 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNED_P
,
5197 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
,
5198 RS6000_BTI_bool_V2DI
, 0 },
5199 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNED_P
,
5200 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
,
5201 RS6000_BTI_unsigned_V2DI
, 0
5204 /* The following 2 entries have been deprecated. */
5205 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNED_P
,
5206 RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
,
5207 RS6000_BTI_V2DI
, 0 },
5208 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNED_P
,
5209 RS6000_BTI_INTSI
, RS6000_BTI_V2DI
,
5210 RS6000_BTI_bool_V2DI
, 0 },
5211 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNED_P
,
5212 RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
5213 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNED_P
,
5214 RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
,
5215 RS6000_BTI_bool_V2DI
, 0 },
5217 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEFP_P
,
5218 RS6000_BTI_INTSI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
5219 { P9V_BUILTIN_VEC_VCMPNE_P
, P9V_BUILTIN_VCMPNEDP_P
,
5220 RS6000_BTI_INTSI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
5222 /* The following 2 entries have been deprecated. */
5223 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEB_P
,
5224 RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
,
5225 RS6000_BTI_unsigned_V16QI
, 0 },
5226 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEB_P
,
5227 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
,
5228 RS6000_BTI_bool_V16QI
, 0 },
5229 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEB_P
,
5230 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
,
5231 RS6000_BTI_unsigned_V16QI
, 0 },
5233 /* The following 2 entries have been deprecated. */
5234 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEB_P
,
5235 RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
,
5236 RS6000_BTI_V16QI
, 0 },
5237 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEB_P
,
5238 RS6000_BTI_INTSI
, RS6000_BTI_V16QI
,
5239 RS6000_BTI_bool_V16QI
, 0 },
5240 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEB_P
,
5241 RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
5242 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEB_P
,
5243 RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
,
5244 RS6000_BTI_bool_V16QI
, 0 },
5246 /* The following 2 entries have been deprecated. */
5247 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEH_P
,
5248 RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
,
5249 RS6000_BTI_unsigned_V8HI
, 0 },
5250 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEH_P
,
5251 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
,
5252 RS6000_BTI_bool_V8HI
, 0 },
5253 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEH_P
,
5254 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
,
5255 RS6000_BTI_unsigned_V8HI
, 0 },
5256 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEH_P
,
5257 RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
5259 /* The following 2 entries have been deprecated. */
5260 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEH_P
,
5261 RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
,
5262 RS6000_BTI_V8HI
, 0 },
5263 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEH_P
,
5264 RS6000_BTI_INTSI
, RS6000_BTI_V8HI
,
5265 RS6000_BTI_bool_V8HI
, 0 },
5266 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEH_P
,
5267 RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
,
5268 RS6000_BTI_bool_V8HI
, 0 },
5269 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEH_P
,
5270 RS6000_BTI_INTSI
, RS6000_BTI_pixel_V8HI
,
5271 RS6000_BTI_pixel_V8HI
, 0 },
5273 /* The following 2 entries have been deprecated. */
5274 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEW_P
,
5275 RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
,
5276 RS6000_BTI_unsigned_V4SI
, 0 },
5277 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEW_P
,
5278 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
,
5279 RS6000_BTI_bool_V4SI
, 0 },
5280 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEW_P
,
5281 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
,
5282 RS6000_BTI_unsigned_V4SI
, 0 },
5284 /* The following 2 entries have been deprecated. */
5285 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEW_P
,
5286 RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
,
5287 RS6000_BTI_V4SI
, 0 },
5288 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEW_P
,
5289 RS6000_BTI_INTSI
, RS6000_BTI_V4SI
,
5290 RS6000_BTI_bool_V4SI
, 0 },
5291 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEW_P
,
5292 RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
5293 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEW_P
,
5294 RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
,
5295 RS6000_BTI_bool_V4SI
, 0 },
5297 /* The following 2 entries have been deprecated. */
5298 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAED_P
,
5299 RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
,
5300 RS6000_BTI_unsigned_V2DI
, 0 },
5301 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAED_P
,
5302 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
,
5303 RS6000_BTI_bool_V2DI
, 0 },
5304 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAED_P
,
5305 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
,
5306 RS6000_BTI_unsigned_V2DI
, 0
5309 /* The following 2 entries have been deprecated. */
5310 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAED_P
,
5311 RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
,
5312 RS6000_BTI_V2DI
, 0 },
5313 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAED_P
,
5314 RS6000_BTI_INTSI
, RS6000_BTI_V2DI
,
5315 RS6000_BTI_bool_V2DI
, 0 },
5316 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAED_P
,
5317 RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
5318 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAED_P
,
5319 RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
,
5320 RS6000_BTI_bool_V2DI
, 0 },
5322 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEFP_P
,
5323 RS6000_BTI_INTSI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
5324 { P9V_BUILTIN_VEC_VCMPAE_P
, P9V_BUILTIN_VCMPAEDP_P
,
5325 RS6000_BTI_INTSI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
5327 { P9V_BUILTIN_VEC_VCMPNEZ_P
, P9V_BUILTIN_VCMPNEZB_P
,
5328 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
,
5329 RS6000_BTI_unsigned_V16QI
},
5330 { P9V_BUILTIN_VEC_VCMPNEZ_P
, P9V_BUILTIN_VCMPNEZB_P
,
5331 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
},
5333 { P9V_BUILTIN_VEC_VCMPNEZ_P
, P9V_BUILTIN_VCMPNEZH_P
,
5334 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
,
5335 RS6000_BTI_unsigned_V8HI
},
5336 { P9V_BUILTIN_VEC_VCMPNEZ_P
, P9V_BUILTIN_VCMPNEZH_P
,
5337 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
5339 { P9V_BUILTIN_VEC_VCMPNEZ_P
, P9V_BUILTIN_VCMPNEZW_P
,
5340 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
,
5341 RS6000_BTI_unsigned_V4SI
},
5342 { P9V_BUILTIN_VEC_VCMPNEZ_P
, P9V_BUILTIN_VCMPNEZW_P
,
5343 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
},
5345 { P9V_BUILTIN_VEC_CMPNEZ
, P9V_BUILTIN_CMPNEZB
,
5346 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
,
5347 RS6000_BTI_V16QI
, 0 },
5348 { P9V_BUILTIN_VEC_CMPNEZ
, P9V_BUILTIN_CMPNEZB
,
5349 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
,
5350 RS6000_BTI_unsigned_V16QI
, 0 },
5352 { P9V_BUILTIN_VEC_CMPNEZ
, P9V_BUILTIN_CMPNEZH
,
5353 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
,
5354 RS6000_BTI_V8HI
, 0 },
5355 { P9V_BUILTIN_VEC_CMPNEZ
, P9V_BUILTIN_CMPNEZH
,
5356 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
,
5357 RS6000_BTI_unsigned_V8HI
, 0 },
5359 { P9V_BUILTIN_VEC_CMPNEZ
, P9V_BUILTIN_CMPNEZW
,
5360 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
,
5361 RS6000_BTI_V4SI
, 0 },
5362 { P9V_BUILTIN_VEC_CMPNEZ
, P9V_BUILTIN_CMPNEZW
,
5363 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
,
5364 RS6000_BTI_unsigned_V4SI
, 0 },
5366 { P9V_BUILTIN_VEC_VCLZLSBB
, P9V_BUILTIN_VCLZLSBB
,
5367 RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, 0, 0 },
5368 { P9V_BUILTIN_VEC_VCLZLSBB
, P9V_BUILTIN_VCLZLSBB
,
5369 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
5371 { P9V_BUILTIN_VEC_VCTZLSBB
, P9V_BUILTIN_VCTZLSBB_V16QI
,
5372 RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, 0, 0 },
5373 { P9V_BUILTIN_VEC_VCTZLSBB
, P9V_BUILTIN_VCTZLSBB_V16QI
,
5374 RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
5375 { P9V_BUILTIN_VEC_VCTZLSBB
, P9V_BUILTIN_VCTZLSBB_V8HI
,
5376 RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, 0, 0 },
5377 { P9V_BUILTIN_VEC_VCTZLSBB
, P9V_BUILTIN_VCTZLSBB_V4SI
,
5378 RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, 0, 0 },
5380 { P9V_BUILTIN_VEC_VEXTRACT4B
, P9V_BUILTIN_VEXTRACT4B
,
5381 RS6000_BTI_INTDI
, RS6000_BTI_V16QI
, RS6000_BTI_UINTSI
, 0 },
5382 { P9V_BUILTIN_VEC_VEXTRACT4B
, P9V_BUILTIN_VEXTRACT4B
,
5383 RS6000_BTI_INTDI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_UINTSI
, 0 },
5385 { P9V_BUILTIN_VEC_VEXTRACT_FP_FROM_SHORTH
, P9V_BUILTIN_VEXTRACT_FP_FROM_SHORTH
,
5386 RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
5387 { P9V_BUILTIN_VEC_VEXTRACT_FP_FROM_SHORTL
, P9V_BUILTIN_VEXTRACT_FP_FROM_SHORTL
,
5388 RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
5390 { P9V_BUILTIN_VEC_VEXTULX
, P9V_BUILTIN_VEXTUBLX
,
5391 RS6000_BTI_INTQI
, RS6000_BTI_UINTSI
,
5392 RS6000_BTI_V16QI
, 0 },
5393 { P9V_BUILTIN_VEC_VEXTULX
, P9V_BUILTIN_VEXTUBLX
,
5394 RS6000_BTI_UINTQI
, RS6000_BTI_UINTSI
,
5395 RS6000_BTI_unsigned_V16QI
, 0 },
5397 { P9V_BUILTIN_VEC_VEXTULX
, P9V_BUILTIN_VEXTUHLX
,
5398 RS6000_BTI_INTHI
, RS6000_BTI_UINTSI
,
5399 RS6000_BTI_V8HI
, 0 },
5400 { P9V_BUILTIN_VEC_VEXTULX
, P9V_BUILTIN_VEXTUHLX
,
5401 RS6000_BTI_UINTHI
, RS6000_BTI_UINTSI
,
5402 RS6000_BTI_unsigned_V8HI
, 0 },
5404 { P9V_BUILTIN_VEC_VEXTULX
, P9V_BUILTIN_VEXTUWLX
,
5405 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
,
5406 RS6000_BTI_V4SI
, 0 },
5407 { P9V_BUILTIN_VEC_VEXTULX
, P9V_BUILTIN_VEXTUWLX
,
5408 RS6000_BTI_UINTSI
, RS6000_BTI_UINTSI
,
5409 RS6000_BTI_unsigned_V4SI
, 0 },
5410 { P9V_BUILTIN_VEC_VEXTULX
, P9V_BUILTIN_VEXTUWLX
,
5411 RS6000_BTI_float
, RS6000_BTI_UINTSI
,
5412 RS6000_BTI_V4SF
, 0 },
5414 { P9V_BUILTIN_VEC_VEXTURX
, P9V_BUILTIN_VEXTUBRX
,
5415 RS6000_BTI_INTQI
, RS6000_BTI_UINTSI
,
5416 RS6000_BTI_V16QI
, 0 },
5417 { P9V_BUILTIN_VEC_VEXTURX
, P9V_BUILTIN_VEXTUBRX
,
5418 RS6000_BTI_UINTQI
, RS6000_BTI_UINTSI
,
5419 RS6000_BTI_unsigned_V16QI
, 0 },
5421 { P9V_BUILTIN_VEC_VEXTURX
, P9V_BUILTIN_VEXTUHRX
,
5422 RS6000_BTI_INTHI
, RS6000_BTI_UINTSI
,
5423 RS6000_BTI_V8HI
, 0 },
5424 { P9V_BUILTIN_VEC_VEXTURX
, P9V_BUILTIN_VEXTUHRX
,
5425 RS6000_BTI_UINTHI
, RS6000_BTI_UINTSI
,
5426 RS6000_BTI_unsigned_V8HI
, 0 },
5428 { P9V_BUILTIN_VEC_VEXTURX
, P9V_BUILTIN_VEXTUWRX
,
5429 RS6000_BTI_INTSI
, RS6000_BTI_UINTSI
,
5430 RS6000_BTI_V4SI
, 0 },
5431 { P9V_BUILTIN_VEC_VEXTURX
, P9V_BUILTIN_VEXTUWRX
,
5432 RS6000_BTI_UINTSI
, RS6000_BTI_UINTSI
,
5433 RS6000_BTI_unsigned_V4SI
, 0 },
5434 { P9V_BUILTIN_VEC_VEXTURX
, P9V_BUILTIN_VEXTUWRX
,
5435 RS6000_BTI_float
, RS6000_BTI_UINTSI
,
5436 RS6000_BTI_V4SF
, 0 },
5438 { P8V_BUILTIN_VEC_VGBBD
, P8V_BUILTIN_VGBBD
,
5439 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
5440 { P8V_BUILTIN_VEC_VGBBD
, P8V_BUILTIN_VGBBD
,
5441 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
5443 { P9V_BUILTIN_VEC_VINSERT4B
, P9V_BUILTIN_VINSERT4B
,
5444 RS6000_BTI_V16QI
, RS6000_BTI_V4SI
,
5445 RS6000_BTI_V16QI
, RS6000_BTI_UINTSI
},
5446 { P9V_BUILTIN_VEC_VINSERT4B
, P9V_BUILTIN_VINSERT4B
,
5447 RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V4SI
,
5448 RS6000_BTI_V16QI
, RS6000_BTI_UINTSI
},
5449 { P9V_BUILTIN_VEC_VINSERT4B
, P9V_BUILTIN_VINSERT4B
,
5450 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V4SI
,
5451 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_UINTSI
},
5452 { P9V_BUILTIN_VEC_VINSERT4B
, P9V_BUILTIN_VINSERT4B_DI
,
5453 RS6000_BTI_V16QI
, RS6000_BTI_INTDI
,
5454 RS6000_BTI_V16QI
, RS6000_BTI_UINTDI
},
5455 { P9V_BUILTIN_VEC_VINSERT4B
, P9V_BUILTIN_VINSERT4B_DI
,
5456 RS6000_BTI_V16QI
, RS6000_BTI_UINTDI
,
5457 RS6000_BTI_V16QI
, RS6000_BTI_UINTDI
},
5458 { P9V_BUILTIN_VEC_VINSERT4B
, P9V_BUILTIN_VINSERT4B_DI
,
5459 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTDI
,
5460 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_UINTDI
},
5461 { P9V_BUILTIN_VEC_VINSERT4B
, P9V_BUILTIN_VINSERT4B_DI
,
5462 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_UINTDI
,
5463 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_UINTDI
},
5465 { P8V_BUILTIN_VEC_VADDECUQ
, P8V_BUILTIN_VADDECUQ
,
5466 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
},
5467 { P8V_BUILTIN_VEC_VADDECUQ
, P8V_BUILTIN_VADDECUQ
,
5468 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
5469 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
},
5471 { P8V_BUILTIN_VEC_VADDEUQM
, P8V_BUILTIN_VADDEUQM
,
5472 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
},
5473 { P8V_BUILTIN_VEC_VADDEUQM
, P8V_BUILTIN_VADDEUQM
,
5474 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
5475 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
},
5477 { P8V_BUILTIN_VEC_VSUBECUQ
, P8V_BUILTIN_VSUBECUQ
,
5478 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
},
5479 { P8V_BUILTIN_VEC_VSUBECUQ
, P8V_BUILTIN_VSUBECUQ
,
5480 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
5481 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
},
5483 { P8V_BUILTIN_VEC_VSUBEUQM
, P8V_BUILTIN_VSUBEUQM
,
5484 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
},
5485 { P8V_BUILTIN_VEC_VSUBEUQM
, P8V_BUILTIN_VSUBEUQM
,
5486 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
5487 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
},
5489 { P8V_BUILTIN_VEC_VMINSD
, P8V_BUILTIN_VMINSD
,
5490 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
5491 { P8V_BUILTIN_VEC_VMINSD
, P8V_BUILTIN_VMINSD
,
5492 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
5493 { P8V_BUILTIN_VEC_VMINSD
, P8V_BUILTIN_VMINSD
,
5494 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
5496 { P8V_BUILTIN_VEC_VMAXSD
, P8V_BUILTIN_VMAXSD
,
5497 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
5498 { P8V_BUILTIN_VEC_VMAXSD
, P8V_BUILTIN_VMAXSD
,
5499 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
5500 { P8V_BUILTIN_VEC_VMAXSD
, P8V_BUILTIN_VMAXSD
,
5501 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
5503 { P8V_BUILTIN_VEC_VMINUD
, P8V_BUILTIN_VMINUD
,
5504 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
,
5505 RS6000_BTI_unsigned_V2DI
, 0 },
5506 { P8V_BUILTIN_VEC_VMINUD
, P8V_BUILTIN_VMINUD
,
5507 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
5508 RS6000_BTI_bool_V2DI
, 0 },
5509 { P8V_BUILTIN_VEC_VMINUD
, P8V_BUILTIN_VMINUD
,
5510 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
5511 RS6000_BTI_unsigned_V2DI
, 0 },
5513 { P8V_BUILTIN_VEC_VMAXUD
, P8V_BUILTIN_VMAXUD
,
5514 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
,
5515 RS6000_BTI_unsigned_V2DI
, 0 },
5516 { P8V_BUILTIN_VEC_VMAXUD
, P8V_BUILTIN_VMAXUD
,
5517 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
5518 RS6000_BTI_bool_V2DI
, 0 },
5519 { P8V_BUILTIN_VEC_VMAXUD
, P8V_BUILTIN_VMAXUD
,
5520 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
5521 RS6000_BTI_unsigned_V2DI
, 0 },
5523 { P8V_BUILTIN_VEC_VMRGEW
, P8V_BUILTIN_VMRGEW_V4SI
,
5524 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
5525 { P8V_BUILTIN_VEC_VMRGEW
, P8V_BUILTIN_VMRGEW_V4SI
,
5526 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
5527 RS6000_BTI_unsigned_V4SI
, 0 },
5528 { P8V_BUILTIN_VEC_VMRGEW
, P8V_BUILTIN_VMRGEW_V4SI
,
5529 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
5531 { P8V_BUILTIN_VEC_VMRGOW
, P8V_BUILTIN_VMRGOW
,
5532 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
5533 { P8V_BUILTIN_VEC_VMRGOW
, P8V_BUILTIN_VMRGOW
,
5534 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
5535 RS6000_BTI_unsigned_V4SI
, 0 },
5536 { P8V_BUILTIN_VEC_VMRGOW
, P8V_BUILTIN_VMRGOW
,
5537 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
5539 { P8V_BUILTIN_VEC_VPMSUM
, P8V_BUILTIN_VPMSUMB
,
5540 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
,
5541 RS6000_BTI_unsigned_V16QI
, 0 },
5542 { P8V_BUILTIN_VEC_VPMSUM
, P8V_BUILTIN_VPMSUMH
,
5543 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
,
5544 RS6000_BTI_unsigned_V8HI
, 0 },
5545 { P8V_BUILTIN_VEC_VPMSUM
, P8V_BUILTIN_VPMSUMW
,
5546 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V4SI
,
5547 RS6000_BTI_unsigned_V4SI
, 0 },
5548 { P8V_BUILTIN_VEC_VPMSUM
, P8V_BUILTIN_VPMSUMD
,
5549 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V2DI
,
5550 RS6000_BTI_unsigned_V2DI
, 0 },
5552 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTB
,
5553 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
5554 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTB
,
5555 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
5556 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTH
,
5557 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
5558 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTH
,
5559 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
5560 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTW
,
5561 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
5562 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTW
,
5563 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
5564 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTD
,
5565 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
5566 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTD
,
5567 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
5569 { P8V_BUILTIN_VEC_VPOPCNTB
, P8V_BUILTIN_VPOPCNTB
,
5570 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
5571 { P8V_BUILTIN_VEC_VPOPCNTB
, P8V_BUILTIN_VPOPCNTB
,
5572 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
5574 { P8V_BUILTIN_VEC_VPOPCNTU
, P8V_BUILTIN_VPOPCNTUB
,
5575 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
5576 { P8V_BUILTIN_VEC_VPOPCNTU
, P8V_BUILTIN_VPOPCNTUB
,
5577 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
5579 { P8V_BUILTIN_VEC_VPOPCNTU
, P8V_BUILTIN_VPOPCNTUH
,
5580 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
5581 { P8V_BUILTIN_VEC_VPOPCNTU
, P8V_BUILTIN_VPOPCNTUH
,
5582 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
5584 { P8V_BUILTIN_VEC_VPOPCNTU
, P8V_BUILTIN_VPOPCNTUW
,
5585 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
5586 { P8V_BUILTIN_VEC_VPOPCNTU
, P8V_BUILTIN_VPOPCNTUW
,
5587 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
5589 { P8V_BUILTIN_VEC_VPOPCNTU
, P8V_BUILTIN_VPOPCNTUD
,
5590 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
5591 { P8V_BUILTIN_VEC_VPOPCNTU
, P8V_BUILTIN_VPOPCNTUD
,
5592 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
5594 { P8V_BUILTIN_VEC_VPOPCNTH
, P8V_BUILTIN_VPOPCNTH
,
5595 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
5596 { P8V_BUILTIN_VEC_VPOPCNTH
, P8V_BUILTIN_VPOPCNTH
,
5597 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
5599 { P8V_BUILTIN_VEC_VPOPCNTW
, P8V_BUILTIN_VPOPCNTW
,
5600 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
5601 { P8V_BUILTIN_VEC_VPOPCNTW
, P8V_BUILTIN_VPOPCNTW
,
5602 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
5604 { P8V_BUILTIN_VEC_VPOPCNTD
, P8V_BUILTIN_VPOPCNTD
,
5605 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
5606 { P8V_BUILTIN_VEC_VPOPCNTD
, P8V_BUILTIN_VPOPCNTD
,
5607 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
5609 { P9V_BUILTIN_VEC_VPRTYB
, P9V_BUILTIN_VPRTYBW
,
5610 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
5611 { P9V_BUILTIN_VEC_VPRTYB
, P9V_BUILTIN_VPRTYBW
,
5612 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
5613 { P9V_BUILTIN_VEC_VPRTYB
, P9V_BUILTIN_VPRTYBD
,
5614 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
5615 { P9V_BUILTIN_VEC_VPRTYB
, P9V_BUILTIN_VPRTYBD
,
5616 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
5617 { P9V_BUILTIN_VEC_VPRTYB
, P9V_BUILTIN_VPRTYBQ
,
5618 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0, 0 },
5619 { P9V_BUILTIN_VEC_VPRTYB
, P9V_BUILTIN_VPRTYBQ
,
5620 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
, 0, 0 },
5621 { P9V_BUILTIN_VEC_VPRTYB
, P9V_BUILTIN_VPRTYBQ
,
5622 RS6000_BTI_INTTI
, RS6000_BTI_INTTI
, 0, 0 },
5623 { P9V_BUILTIN_VEC_VPRTYB
, P9V_BUILTIN_VPRTYBQ
,
5624 RS6000_BTI_UINTTI
, RS6000_BTI_UINTTI
, 0, 0 },
5626 { P9V_BUILTIN_VEC_VPRTYBW
, P9V_BUILTIN_VPRTYBW
,
5627 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
5628 { P9V_BUILTIN_VEC_VPRTYBW
, P9V_BUILTIN_VPRTYBW
,
5629 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
5631 { P9V_BUILTIN_VEC_VPRTYBD
, P9V_BUILTIN_VPRTYBD
,
5632 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
5633 { P9V_BUILTIN_VEC_VPRTYBD
, P9V_BUILTIN_VPRTYBD
,
5634 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
5636 { P9V_BUILTIN_VEC_VPRTYBQ
, P9V_BUILTIN_VPRTYBQ
,
5637 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0, 0 },
5638 { P9V_BUILTIN_VEC_VPRTYBQ
, P9V_BUILTIN_VPRTYBQ
,
5639 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
, 0, 0 },
5640 { P9V_BUILTIN_VEC_VPRTYBQ
, P9V_BUILTIN_VPRTYBQ
,
5641 RS6000_BTI_INTTI
, RS6000_BTI_INTTI
, 0, 0 },
5642 { P9V_BUILTIN_VEC_VPRTYBQ
, P9V_BUILTIN_VPRTYBQ
,
5643 RS6000_BTI_UINTTI
, RS6000_BTI_UINTTI
, 0, 0 },
5645 { P9V_BUILTIN_VEC_VPARITY_LSBB
, P9V_BUILTIN_VPRTYBW
,
5646 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
5647 { P9V_BUILTIN_VEC_VPARITY_LSBB
, P9V_BUILTIN_VPRTYBW
,
5648 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
5649 { P9V_BUILTIN_VEC_VPARITY_LSBB
, P9V_BUILTIN_VPRTYBD
,
5650 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
5651 { P9V_BUILTIN_VEC_VPARITY_LSBB
, P9V_BUILTIN_VPRTYBD
,
5652 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
5653 { P9V_BUILTIN_VEC_VPARITY_LSBB
, P9V_BUILTIN_VPRTYBQ
,
5654 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_V1TI
, 0, 0 },
5655 { P9V_BUILTIN_VEC_VPARITY_LSBB
, P9V_BUILTIN_VPRTYBQ
,
5656 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
, 0, 0 },
5658 { P9_BUILTIN_CMPRB
, P9_BUILTIN_SCALAR_CMPRB
,
5659 RS6000_BTI_INTSI
, RS6000_BTI_UINTQI
, RS6000_BTI_UINTSI
, 0 },
5660 { P9_BUILTIN_CMPRB2
, P9_BUILTIN_SCALAR_CMPRB2
,
5661 RS6000_BTI_INTSI
, RS6000_BTI_UINTQI
, RS6000_BTI_UINTSI
, 0 },
5662 { P9_BUILTIN_CMPEQB
, P9_BUILTIN_SCALAR_CMPEQB
,
5663 RS6000_BTI_INTSI
, RS6000_BTI_UINTQI
, RS6000_BTI_UINTDI
, 0 },
5665 { P8V_BUILTIN_VEC_VPKUDUM
, P8V_BUILTIN_VPKUDUM
,
5666 RS6000_BTI_V4SI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
5667 { P8V_BUILTIN_VEC_VPKUDUM
, P8V_BUILTIN_VPKUDUM
,
5668 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
5669 { P8V_BUILTIN_VEC_VPKUDUM
, P8V_BUILTIN_VPKUDUM
,
5670 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
5672 { P8V_BUILTIN_VEC_VPKSDSS
, P8V_BUILTIN_VPKSDSS
,
5673 RS6000_BTI_V4SI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
5675 { P8V_BUILTIN_VEC_VPKUDUS
, P8V_BUILTIN_VPKUDUS
,
5676 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
5678 { P8V_BUILTIN_VEC_VPKSDUS
, P8V_BUILTIN_VPKSDUS
,
5679 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
5681 { P8V_BUILTIN_VEC_VRLD
, P8V_BUILTIN_VRLD
,
5682 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
5683 { P8V_BUILTIN_VEC_VRLD
, P8V_BUILTIN_VRLD
,
5684 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
5686 { P8V_BUILTIN_VEC_VSLD
, P8V_BUILTIN_VSLD
,
5687 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
5688 { P8V_BUILTIN_VEC_VSLD
, P8V_BUILTIN_VSLD
,
5689 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
5691 { P8V_BUILTIN_VEC_VSRD
, P8V_BUILTIN_VSRD
,
5692 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
5693 { P8V_BUILTIN_VEC_VSRD
, P8V_BUILTIN_VSRD
,
5694 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
5696 { P8V_BUILTIN_VEC_VSRAD
, P8V_BUILTIN_VSRAD
,
5697 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
5698 { P8V_BUILTIN_VEC_VSRAD
, P8V_BUILTIN_VSRAD
,
5699 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
5701 { P8V_BUILTIN_VEC_VSUBCUQ
, P8V_BUILTIN_VSUBCUQ
,
5702 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
5703 { P8V_BUILTIN_VEC_VSUBCUQ
, P8V_BUILTIN_VSUBCUQ
,
5704 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
5705 RS6000_BTI_unsigned_V1TI
, 0 },
5707 { P8V_BUILTIN_VEC_VSUBUDM
, P8V_BUILTIN_VSUBUDM
,
5708 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
5709 { P8V_BUILTIN_VEC_VSUBUDM
, P8V_BUILTIN_VSUBUDM
,
5710 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
5711 { P8V_BUILTIN_VEC_VSUBUDM
, P8V_BUILTIN_VSUBUDM
,
5712 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
5713 { P8V_BUILTIN_VEC_VSUBUDM
, P8V_BUILTIN_VSUBUDM
,
5714 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
5715 { P8V_BUILTIN_VEC_VSUBUDM
, P8V_BUILTIN_VSUBUDM
,
5716 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
5717 { P8V_BUILTIN_VEC_VSUBUDM
, P8V_BUILTIN_VSUBUDM
,
5718 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
5720 { P8V_BUILTIN_VEC_VSUBUQM
, P8V_BUILTIN_VSUBUQM
,
5721 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
5722 { P8V_BUILTIN_VEC_VSUBUQM
, P8V_BUILTIN_VSUBUQM
,
5723 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
5724 RS6000_BTI_unsigned_V1TI
, 0 },
5726 { P6_OV_BUILTIN_CMPB
, P6_BUILTIN_CMPB_32
,
5727 RS6000_BTI_UINTSI
, RS6000_BTI_UINTSI
, RS6000_BTI_UINTSI
, 0 },
5728 { P6_OV_BUILTIN_CMPB
, P6_BUILTIN_CMPB
,
5729 RS6000_BTI_UINTDI
, RS6000_BTI_UINTDI
, RS6000_BTI_UINTDI
, 0 },
5731 { P8V_BUILTIN_VEC_VUPKHSW
, P8V_BUILTIN_VUPKHSW
,
5732 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, 0, 0 },
5733 { P8V_BUILTIN_VEC_VUPKHSW
, P8V_BUILTIN_VUPKHSW
,
5734 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V4SI
, 0, 0 },
5736 { P8V_BUILTIN_VEC_VUPKLSW
, P8V_BUILTIN_VUPKLSW
,
5737 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, 0, 0 },
5738 { P8V_BUILTIN_VEC_VUPKLSW
, P8V_BUILTIN_VUPKLSW
,
5739 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V4SI
, 0, 0 },
5741 { P9V_BUILTIN_VEC_VSLV
, P9V_BUILTIN_VSLV
,
5742 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
5743 RS6000_BTI_unsigned_V16QI
, 0 },
5744 { P9V_BUILTIN_VEC_VSRV
, P9V_BUILTIN_VSRV
,
5745 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
5746 RS6000_BTI_unsigned_V16QI
, 0 },
5748 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V1TI
,
5749 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0, 0 },
5750 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V1TI
,
5751 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
, 0, 0 },
5752 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V2DI
,
5753 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0, 0 },
5754 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V2DI
,
5755 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
5756 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V2DI
,
5757 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
5758 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V4SI
,
5759 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0, 0 },
5760 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V4SI
,
5761 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
5762 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V4SI
,
5763 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
5764 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V8HI
,
5765 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0, 0 },
5766 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V8HI
,
5767 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
5768 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V8HI
,
5769 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
5770 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V16QI
,
5771 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0, 0 },
5772 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V16QI
,
5773 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
5774 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V16QI
,
5775 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
5776 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V2DF
,
5777 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
5778 { P8V_BUILTIN_VEC_REVB
, P8V_BUILTIN_REVB_V4SF
,
5779 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
5781 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V2DI
,
5782 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
5783 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V4SI
,
5784 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
5785 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V8HI
,
5786 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
5787 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V16QI
,
5788 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
5789 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V2DI
,
5790 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0, 0 },
5791 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V4SI
,
5792 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0, 0 },
5793 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V8HI
,
5794 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0, 0 },
5795 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V16QI
,
5796 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0, 0 },
5797 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V2DF
,
5798 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
5799 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V4SF
,
5800 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
5801 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V2DI
,
5802 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
5803 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V4SI
,
5804 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
5805 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V8HI
,
5806 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
5807 { ALTIVEC_BUILTIN_VEC_VREVE
, ALTIVEC_BUILTIN_VREVE_V16QI
,
5808 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
5810 { VSX_BUILTIN_VEC_VSIGNED
, VSX_BUILTIN_VEC_VSIGNED_V4SF
,
5811 RS6000_BTI_V4SI
, RS6000_BTI_V4SF
, 0, 0 },
5812 { VSX_BUILTIN_VEC_VSIGNED
, VSX_BUILTIN_VEC_VSIGNED_V2DF
,
5813 RS6000_BTI_V2DI
, RS6000_BTI_V2DF
, 0, 0 },
5814 { VSX_BUILTIN_VEC_VSIGNEDE
, VSX_BUILTIN_VEC_VSIGNEDE_V2DF
,
5815 RS6000_BTI_V4SI
, RS6000_BTI_V2DF
, 0, 0 },
5816 { VSX_BUILTIN_VEC_VSIGNEDO
, VSX_BUILTIN_VEC_VSIGNEDO_V2DF
,
5817 RS6000_BTI_V4SI
, RS6000_BTI_V2DF
, 0, 0 },
5818 { VSX_BUILTIN_VEC_VSIGNED2
, VSX_BUILTIN_VEC_VSIGNED2_V2DF
,
5819 RS6000_BTI_V4SI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
5821 { VSX_BUILTIN_VEC_VUNSIGNED
, VSX_BUILTIN_VEC_VUNSIGNED_V4SF
,
5822 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SF
, 0, 0 },
5823 { VSX_BUILTIN_VEC_VUNSIGNED
, VSX_BUILTIN_VEC_VUNSIGNED_V2DF
,
5824 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_V2DF
, 0, 0 },
5825 { VSX_BUILTIN_VEC_VUNSIGNEDE
, VSX_BUILTIN_VEC_VUNSIGNEDE_V2DF
,
5826 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V2DF
, 0, 0 },
5827 { VSX_BUILTIN_VEC_VUNSIGNEDO
, VSX_BUILTIN_VEC_VUNSIGNEDO_V2DF
,
5828 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V2DF
, 0, 0 },
5829 { VSX_BUILTIN_VEC_VUNSIGNED2
, VSX_BUILTIN_VEC_VUNSIGNED2_V2DF
,
5830 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V2DF
,
5831 RS6000_BTI_V2DF
, 0 },
5833 /* Crypto builtins. */
5834 { CRYPTO_BUILTIN_VPERMXOR
, CRYPTO_BUILTIN_VPERMXOR_V16QI
,
5835 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
5836 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
5837 { CRYPTO_BUILTIN_VPERMXOR
, CRYPTO_BUILTIN_VPERMXOR_V8HI
,
5838 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
5839 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
5840 { CRYPTO_BUILTIN_VPERMXOR
, CRYPTO_BUILTIN_VPERMXOR_V4SI
,
5841 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
5842 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
},
5843 { CRYPTO_BUILTIN_VPERMXOR
, CRYPTO_BUILTIN_VPERMXOR_V2DI
,
5844 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
5845 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
},
5847 { CRYPTO_BUILTIN_VPMSUM
, CRYPTO_BUILTIN_VPMSUMB
,
5848 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
5849 RS6000_BTI_unsigned_V16QI
, 0 },
5850 { CRYPTO_BUILTIN_VPMSUM
, CRYPTO_BUILTIN_VPMSUMH
,
5851 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
5852 RS6000_BTI_unsigned_V8HI
, 0 },
5853 { CRYPTO_BUILTIN_VPMSUM
, CRYPTO_BUILTIN_VPMSUMW
,
5854 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
5855 RS6000_BTI_unsigned_V4SI
, 0 },
5856 { CRYPTO_BUILTIN_VPMSUM
, CRYPTO_BUILTIN_VPMSUMD
,
5857 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
5858 RS6000_BTI_unsigned_V2DI
, 0 },
5860 { CRYPTO_BUILTIN_VSHASIGMA
, CRYPTO_BUILTIN_VSHASIGMAW
,
5861 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
5862 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
5863 { CRYPTO_BUILTIN_VSHASIGMA
, CRYPTO_BUILTIN_VSHASIGMAD
,
5864 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
5865 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
5867 { (enum rs6000_builtins
) 0, (enum rs6000_builtins
) 0, 0, 0, 0, 0 }
5871 /* Convert a type stored into a struct altivec_builtin_types as ID,
5872 into a tree. The types are in rs6000_builtin_types: negative values
5873 create a pointer type for the type associated to ~ID. Note it is
5874 a logical NOT, rather than a negation, otherwise you cannot represent
5875 a pointer type for ID 0. */
5878 rs6000_builtin_type (int id
)
5881 t
= rs6000_builtin_types
[id
< 0 ? ~id
: id
];
5882 return id
< 0 ? build_pointer_type (t
) : t
;
5885 /* Check whether the type of an argument, T, is compatible with a type ID
5886 stored into a struct altivec_builtin_types. Integer types are considered
5887 compatible; otherwise, the language hook lang_hooks.types_compatible_p makes
5888 the decision. Also allow long double and _Float128 to be compatible if
5889 -mabi=ieeelongdouble. */
5892 is_float128_p (tree t
)
5894 return (t
== float128_type_node
5896 && TARGET_LONG_DOUBLE_128
5897 && t
== long_double_type_node
));
5901 rs6000_builtin_type_compatible (tree t
, int id
)
5904 builtin_type
= rs6000_builtin_type (id
);
5905 if (t
== error_mark_node
)
5907 if (INTEGRAL_TYPE_P (t
) && INTEGRAL_TYPE_P (builtin_type
))
5909 else if (TARGET_IEEEQUAD
&& TARGET_LONG_DOUBLE_128
5910 && is_float128_p (t
) && is_float128_p (builtin_type
))
5913 return lang_hooks
.types_compatible_p (t
, builtin_type
);
5917 /* In addition to calling fold_convert for EXPR of type TYPE, also
5918 call c_fully_fold to remove any C_MAYBE_CONST_EXPRs that could be
5919 hiding there (PR47197). */
5922 fully_fold_convert (tree type
, tree expr
)
5924 tree result
= fold_convert (type
, expr
);
5925 bool maybe_const
= true;
5927 if (!c_dialect_cxx ())
5928 result
= c_fully_fold (result
, false, &maybe_const
);
5933 /* Build a tree for a function call to an Altivec non-overloaded builtin.
5934 The overloaded builtin that matched the types and args is described
5935 by DESC. The N arguments are given in ARGS, respectively.
5937 Actually the only thing it does is calling fold_convert on ARGS, with
5938 a small exception for vec_{all,any}_{ge,le} predicates. */
5941 altivec_build_resolved_builtin (tree
*args
, int n
,
5942 const struct altivec_builtin_types
*desc
)
5944 tree impl_fndecl
= rs6000_builtin_decls
[desc
->overloaded_code
];
5945 tree ret_type
= rs6000_builtin_type (desc
->ret_type
);
5946 tree argtypes
= TYPE_ARG_TYPES (TREE_TYPE (impl_fndecl
));
5951 for (i
= 0; i
< n
; i
++)
5952 arg_type
[i
] = TREE_VALUE (argtypes
), argtypes
= TREE_CHAIN (argtypes
);
5954 /* The AltiVec overloading implementation is overall gross, but this
5955 is particularly disgusting. The vec_{all,any}_{ge,le} builtins
5956 are completely different for floating-point vs. integer vector
5957 types, because the former has vcmpgefp, but the latter should use
5960 In practice, the second and third arguments are swapped, and the
5961 condition (LT vs. EQ, which is recognizable by bit 1 of the first
5962 argument) is reversed. Patch the arguments here before building
5963 the resolved CALL_EXPR. */
5964 if (desc
->code
== ALTIVEC_BUILTIN_VEC_VCMPGE_P
5965 && desc
->overloaded_code
!= ALTIVEC_BUILTIN_VCMPGEFP_P
5966 && desc
->overloaded_code
!= VSX_BUILTIN_XVCMPGEDP_P
)
5969 t
= args
[2], args
[2] = args
[1], args
[1] = t
;
5970 t
= arg_type
[2], arg_type
[2] = arg_type
[1], arg_type
[1] = t
;
5972 args
[0] = fold_build2 (BIT_XOR_EXPR
, TREE_TYPE (args
[0]), args
[0],
5973 build_int_cst (NULL_TREE
, 2));
5979 call
= build_call_expr (impl_fndecl
, 0);
5982 call
= build_call_expr (impl_fndecl
, 1,
5983 fully_fold_convert (arg_type
[0], args
[0]));
5986 call
= build_call_expr (impl_fndecl
, 2,
5987 fully_fold_convert (arg_type
[0], args
[0]),
5988 fully_fold_convert (arg_type
[1], args
[1]));
5991 call
= build_call_expr (impl_fndecl
, 3,
5992 fully_fold_convert (arg_type
[0], args
[0]),
5993 fully_fold_convert (arg_type
[1], args
[1]),
5994 fully_fold_convert (arg_type
[2], args
[2]));
5999 return fold_convert (ret_type
, call
);
6002 /* Implementation of the resolve_overloaded_builtin target hook, to
6003 support Altivec's overloaded builtins. */
6006 altivec_resolve_overloaded_builtin (location_t loc
, tree fndecl
,
6007 void *passed_arglist
)
6009 vec
<tree
, va_gc
> *arglist
= static_cast<vec
<tree
, va_gc
> *> (passed_arglist
);
6010 unsigned int nargs
= vec_safe_length (arglist
);
6011 enum rs6000_builtins fcode
6012 = (enum rs6000_builtins
)DECL_FUNCTION_CODE (fndecl
);
6013 tree fnargs
= TYPE_ARG_TYPES (TREE_TYPE (fndecl
));
6014 tree types
[3], args
[3];
6015 const struct altivec_builtin_types
*desc
;
6018 if (!rs6000_overloaded_builtin_p (fcode
))
6021 if (TARGET_DEBUG_BUILTIN
)
6022 fprintf (stderr
, "altivec_resolve_overloaded_builtin, code = %4d, %s\n",
6023 (int)fcode
, IDENTIFIER_POINTER (DECL_NAME (fndecl
)));
6025 /* vec_lvsl and vec_lvsr are deprecated for use with LE element order. */
6026 if (fcode
== ALTIVEC_BUILTIN_VEC_LVSL
&& !VECTOR_ELT_ORDER_BIG
)
6027 warning (OPT_Wdeprecated
,
6028 "vec_lvsl is deprecated for little endian; use "
6029 "assignment for unaligned loads and stores");
6030 else if (fcode
== ALTIVEC_BUILTIN_VEC_LVSR
&& !VECTOR_ELT_ORDER_BIG
)
6031 warning (OPT_Wdeprecated
,
6032 "vec_lvsr is deprecated for little endian; use "
6033 "assignment for unaligned loads and stores");
6035 if (fcode
== ALTIVEC_BUILTIN_VEC_MUL
)
6037 /* vec_mul needs to be special cased because there are no instructions
6038 for it for the {un}signed char, {un}signed short, and {un}signed int
6042 error ("builtin %qs only accepts 2 arguments", "vec_mul");
6043 return error_mark_node
;
6046 tree arg0
= (*arglist
)[0];
6047 tree arg0_type
= TREE_TYPE (arg0
);
6048 tree arg1
= (*arglist
)[1];
6049 tree arg1_type
= TREE_TYPE (arg1
);
6051 /* Both arguments must be vectors and the types must be compatible. */
6052 if (TREE_CODE (arg0_type
) != VECTOR_TYPE
)
6054 if (!lang_hooks
.types_compatible_p (arg0_type
, arg1_type
))
6057 switch (TYPE_MODE (TREE_TYPE (arg0_type
)))
6065 /* For scalar types just use a multiply expression. */
6066 return fold_build2_loc (loc
, MULT_EXPR
, TREE_TYPE (arg0
), arg0
,
6067 fold_convert (TREE_TYPE (arg0
), arg1
));
6071 /* For floats use the xvmulsp instruction directly. */
6072 tree call
= rs6000_builtin_decls
[VSX_BUILTIN_XVMULSP
];
6073 return build_call_expr (call
, 2, arg0
, arg1
);
6077 /* For doubles use the xvmuldp instruction directly. */
6078 tree call
= rs6000_builtin_decls
[VSX_BUILTIN_XVMULDP
];
6079 return build_call_expr (call
, 2, arg0
, arg1
);
6081 /* Other types are errors. */
6087 if (fcode
== ALTIVEC_BUILTIN_VEC_CMPNE
)
6089 /* vec_cmpne needs to be special cased because there are no instructions
6090 for it (prior to power 9). */
6093 error ("builtin %qs only accepts 2 arguments", "vec_cmpne");
6094 return error_mark_node
;
6097 tree arg0
= (*arglist
)[0];
6098 tree arg0_type
= TREE_TYPE (arg0
);
6099 tree arg1
= (*arglist
)[1];
6100 tree arg1_type
= TREE_TYPE (arg1
);
6102 /* Both arguments must be vectors and the types must be compatible. */
6103 if (TREE_CODE (arg0_type
) != VECTOR_TYPE
)
6105 if (!lang_hooks
.types_compatible_p (arg0_type
, arg1_type
))
6108 /* Power9 instructions provide the most efficient implementation of
6109 ALTIVEC_BUILTIN_VEC_CMPNE if the mode is not DImode or TImode
6110 or SFmode or DFmode. */
6111 if (!TARGET_P9_VECTOR
6112 || (TYPE_MODE (TREE_TYPE (arg0_type
)) == DImode
)
6113 || (TYPE_MODE (TREE_TYPE (arg0_type
)) == TImode
)
6114 || (TYPE_MODE (TREE_TYPE (arg0_type
)) == SFmode
)
6115 || (TYPE_MODE (TREE_TYPE (arg0_type
)) == DFmode
))
6117 switch (TYPE_MODE (TREE_TYPE (arg0_type
)))
6119 /* vec_cmpneq (va, vb) == vec_nor (vec_cmpeq (va, vb),
6120 vec_cmpeq (va, vb)). */
6121 /* Note: vec_nand also works but opt changes vec_nand's
6122 to vec_nor's anyway. */
6131 /* call = vec_cmpeq (va, vb)
6132 result = vec_nor (call, call). */
6133 vec
<tree
, va_gc
> *params
= make_tree_vector ();
6134 vec_safe_push (params
, arg0
);
6135 vec_safe_push (params
, arg1
);
6136 tree call
= altivec_resolve_overloaded_builtin
6137 (loc
, rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_CMPEQ
],
6139 /* Use save_expr to ensure that operands used more than once
6140 that may have side effects (like calls) are only evaluated
6142 call
= save_expr (call
);
6143 params
= make_tree_vector ();
6144 vec_safe_push (params
, call
);
6145 vec_safe_push (params
, call
);
6146 return altivec_resolve_overloaded_builtin
6147 (loc
, rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_NOR
], params
);
6149 /* Other types are errors. */
6154 /* else, fall through and process the Power9 alternative below */
6157 if (fcode
== ALTIVEC_BUILTIN_VEC_ADDE
6158 || fcode
== ALTIVEC_BUILTIN_VEC_SUBE
)
6160 /* vec_adde needs to be special cased because there is no instruction
6161 for the {un}signed int version. */
6164 const char *name
= fcode
== ALTIVEC_BUILTIN_VEC_ADDE
?
6165 "vec_adde": "vec_sube";
6166 error ("builtin %qs only accepts 3 arguments", name
);
6167 return error_mark_node
;
6170 tree arg0
= (*arglist
)[0];
6171 tree arg0_type
= TREE_TYPE (arg0
);
6172 tree arg1
= (*arglist
)[1];
6173 tree arg1_type
= TREE_TYPE (arg1
);
6174 tree arg2
= (*arglist
)[2];
6175 tree arg2_type
= TREE_TYPE (arg2
);
6177 /* All 3 arguments must be vectors of (signed or unsigned) (int or
6178 __int128) and the types must be compatible. */
6179 if (TREE_CODE (arg0_type
) != VECTOR_TYPE
)
6181 if (!lang_hooks
.types_compatible_p (arg0_type
, arg1_type
)
6182 || !lang_hooks
.types_compatible_p (arg1_type
, arg2_type
))
6185 switch (TYPE_MODE (TREE_TYPE (arg0_type
)))
6187 /* For {un}signed ints,
6188 vec_adde (va, vb, carryv) == vec_add (vec_add (va, vb),
6189 vec_and (carryv, 1)).
6190 vec_sube (va, vb, carryv) == vec_sub (vec_sub (va, vb),
6191 vec_and (carryv, 1)). */
6194 tree add_sub_builtin
;
6196 vec
<tree
, va_gc
> *params
= make_tree_vector ();
6197 vec_safe_push (params
, arg0
);
6198 vec_safe_push (params
, arg1
);
6200 if (fcode
== ALTIVEC_BUILTIN_VEC_ADDE
)
6201 add_sub_builtin
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_ADD
];
6203 add_sub_builtin
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_SUB
];
6205 tree call
= altivec_resolve_overloaded_builtin (loc
,
6208 tree const1
= build_int_cstu (TREE_TYPE (arg0_type
), 1);
6209 tree ones_vector
= build_vector_from_val (arg0_type
, const1
);
6210 tree and_expr
= fold_build2_loc (loc
, BIT_AND_EXPR
, arg0_type
,
6212 params
= make_tree_vector ();
6213 vec_safe_push (params
, call
);
6214 vec_safe_push (params
, and_expr
);
6215 return altivec_resolve_overloaded_builtin (loc
, add_sub_builtin
,
6218 /* For {un}signed __int128s use the vaddeuqm instruction
6224 if (fcode
== ALTIVEC_BUILTIN_VEC_ADDE
)
6225 bii
= rs6000_builtin_decls
[P8V_BUILTIN_VEC_VADDEUQM
];
6228 bii
= rs6000_builtin_decls
[P8V_BUILTIN_VEC_VSUBEUQM
];
6230 return altivec_resolve_overloaded_builtin (loc
, bii
, arglist
);
6233 /* Types other than {un}signed int and {un}signed __int128
6240 if (fcode
== ALTIVEC_BUILTIN_VEC_ADDEC
6241 || fcode
== ALTIVEC_BUILTIN_VEC_SUBEC
)
6243 /* vec_addec and vec_subec needs to be special cased because there is
6244 no instruction for the {un}signed int version. */
6247 const char *name
= fcode
== ALTIVEC_BUILTIN_VEC_ADDEC
?
6248 "vec_addec": "vec_subec";
6249 error ("builtin %qs only accepts 3 arguments", name
);
6250 return error_mark_node
;
6253 tree arg0
= (*arglist
)[0];
6254 tree arg0_type
= TREE_TYPE (arg0
);
6255 tree arg1
= (*arglist
)[1];
6256 tree arg1_type
= TREE_TYPE (arg1
);
6257 tree arg2
= (*arglist
)[2];
6258 tree arg2_type
= TREE_TYPE (arg2
);
6260 /* All 3 arguments must be vectors of (signed or unsigned) (int or
6261 __int128) and the types must be compatible. */
6262 if (TREE_CODE (arg0_type
) != VECTOR_TYPE
)
6264 if (!lang_hooks
.types_compatible_p (arg0_type
, arg1_type
)
6265 || !lang_hooks
.types_compatible_p (arg1_type
, arg2_type
))
6268 switch (TYPE_MODE (TREE_TYPE (arg0_type
)))
6270 /* For {un}signed ints,
6271 vec_addec (va, vb, carryv) ==
6272 vec_or (vec_addc (va, vb),
6273 vec_addc (vec_add (va, vb),
6274 vec_and (carryv, 0x1))). */
6277 /* Use save_expr to ensure that operands used more than once
6278 that may have side effects (like calls) are only evaluated
6283 arg0
= save_expr (arg0
);
6284 arg1
= save_expr (arg1
);
6285 vec
<tree
, va_gc
> *params
= make_tree_vector ();
6286 vec_safe_push (params
, arg0
);
6287 vec_safe_push (params
, arg1
);
6289 if (fcode
== ALTIVEC_BUILTIN_VEC_ADDEC
)
6290 as_c_builtin
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_ADDC
];
6292 as_c_builtin
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_SUBC
];
6294 tree call1
= altivec_resolve_overloaded_builtin (loc
, as_c_builtin
,
6296 params
= make_tree_vector ();
6297 vec_safe_push (params
, arg0
);
6298 vec_safe_push (params
, arg1
);
6301 if (fcode
== ALTIVEC_BUILTIN_VEC_ADDEC
)
6302 as_builtin
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_ADD
];
6304 as_builtin
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_SUB
];
6306 tree call2
= altivec_resolve_overloaded_builtin (loc
, as_builtin
,
6308 tree const1
= build_int_cstu (TREE_TYPE (arg0_type
), 1);
6309 tree ones_vector
= build_vector_from_val (arg0_type
, const1
);
6310 tree and_expr
= fold_build2_loc (loc
, BIT_AND_EXPR
, arg0_type
,
6312 params
= make_tree_vector ();
6313 vec_safe_push (params
, call2
);
6314 vec_safe_push (params
, and_expr
);
6315 call2
= altivec_resolve_overloaded_builtin (loc
, as_c_builtin
,
6317 params
= make_tree_vector ();
6318 vec_safe_push (params
, call1
);
6319 vec_safe_push (params
, call2
);
6320 tree or_builtin
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_OR
];
6321 return altivec_resolve_overloaded_builtin (loc
, or_builtin
,
6324 /* For {un}signed __int128s use the vaddecuq/vsubbecuq
6330 if (fcode
== ALTIVEC_BUILTIN_VEC_ADDEC
)
6331 bii
= rs6000_builtin_decls
[P8V_BUILTIN_VEC_VADDECUQ
];
6334 bii
= rs6000_builtin_decls
[P8V_BUILTIN_VEC_VSUBECUQ
];
6336 return altivec_resolve_overloaded_builtin (loc
, bii
, arglist
);
6338 /* Types other than {un}signed int and {un}signed __int128
6345 /* For now treat vec_splats and vec_promote as the same. */
6346 if (fcode
== ALTIVEC_BUILTIN_VEC_SPLATS
6347 || fcode
== ALTIVEC_BUILTIN_VEC_PROMOTE
)
6353 vec
<constructor_elt
, va_gc
> *vec
;
6354 const char *name
= fcode
== ALTIVEC_BUILTIN_VEC_SPLATS
? "vec_splats": "vec_promote";
6356 if (fcode
== ALTIVEC_BUILTIN_VEC_SPLATS
&& nargs
!= 1)
6358 error ("builtin %qs only accepts 1 argument", name
);
6359 return error_mark_node
;
6361 if (fcode
== ALTIVEC_BUILTIN_VEC_PROMOTE
&& nargs
!= 2)
6363 error ("builtin %qs only accepts 2 arguments", name
);
6364 return error_mark_node
;
6366 /* Ignore promote's element argument. */
6367 if (fcode
== ALTIVEC_BUILTIN_VEC_PROMOTE
6368 && !INTEGRAL_TYPE_P (TREE_TYPE ((*arglist
)[1])))
6371 arg
= (*arglist
)[0];
6372 type
= TREE_TYPE (arg
);
6373 if (!SCALAR_FLOAT_TYPE_P (type
)
6374 && !INTEGRAL_TYPE_P (type
))
6376 unsigned_p
= TYPE_UNSIGNED (type
);
6377 switch (TYPE_MODE (type
))
6380 type
= (unsigned_p
? unsigned_V1TI_type_node
: V1TI_type_node
);
6384 type
= (unsigned_p
? unsigned_V2DI_type_node
: V2DI_type_node
);
6388 type
= (unsigned_p
? unsigned_V4SI_type_node
: V4SI_type_node
);
6392 type
= (unsigned_p
? unsigned_V8HI_type_node
: V8HI_type_node
);
6396 type
= (unsigned_p
? unsigned_V16QI_type_node
: V16QI_type_node
);
6399 case E_SFmode
: type
= V4SF_type_node
; size
= 4; break;
6400 case E_DFmode
: type
= V2DF_type_node
; size
= 2; break;
6404 arg
= save_expr (fold_convert (TREE_TYPE (type
), arg
));
6405 vec_alloc (vec
, size
);
6406 for(i
= 0; i
< size
; i
++)
6408 constructor_elt elt
= {NULL_TREE
, arg
};
6409 vec
->quick_push (elt
);
6411 return build_constructor (type
, vec
);
6414 /* For now use pointer tricks to do the extraction, unless we are on VSX
6415 extracting a double from a constant offset. */
6416 if (fcode
== ALTIVEC_BUILTIN_VEC_EXTRACT
)
6421 tree arg1_inner_type
;
6426 /* No second argument. */
6429 error ("builtin %qs only accepts 2 arguments", "vec_extract");
6430 return error_mark_node
;
6433 arg2
= (*arglist
)[1];
6434 arg1
= (*arglist
)[0];
6435 arg1_type
= TREE_TYPE (arg1
);
6437 if (TREE_CODE (arg1_type
) != VECTOR_TYPE
)
6439 if (!INTEGRAL_TYPE_P (TREE_TYPE (arg2
)))
6442 /* If we are targeting little-endian, but -maltivec=be has been
6443 specified to override the element order, adjust the element
6444 number accordingly. */
6445 if (!BYTES_BIG_ENDIAN
&& rs6000_altivec_element_order
== 2)
6447 unsigned int last_elem
= TYPE_VECTOR_SUBPARTS (arg1_type
) - 1;
6448 arg2
= fold_build2_loc (loc
, MINUS_EXPR
, TREE_TYPE (arg2
),
6449 build_int_cstu (TREE_TYPE (arg2
), last_elem
),
6453 /* See if we can optimize vec_extracts with the current VSX instruction
6455 mode
= TYPE_MODE (arg1_type
);
6456 if (VECTOR_MEM_VSX_P (mode
))
6459 tree call
= NULL_TREE
;
6460 int nunits
= GET_MODE_NUNITS (mode
);
6462 /* If the second argument is an integer constant, if the value is in
6463 the expected range, generate the built-in code if we can. We need
6464 64-bit and direct move to extract the small integer vectors. */
6465 if (TREE_CODE (arg2
) == INTEGER_CST
6466 && wi::ltu_p (wi::to_wide (arg2
), nunits
))
6474 call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_EXT_V1TI
];
6478 call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_EXT_V2DF
];
6482 call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_EXT_V2DI
];
6486 call
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_EXT_V4SF
];
6490 if (TARGET_DIRECT_MOVE_64BIT
)
6491 call
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_EXT_V4SI
];
6495 if (TARGET_DIRECT_MOVE_64BIT
)
6496 call
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_EXT_V8HI
];
6500 if (TARGET_DIRECT_MOVE_64BIT
)
6501 call
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_EXT_V16QI
];
6506 /* If the second argument is variable, we can optimize it if we are
6507 generating 64-bit code on a machine with direct move. */
6508 else if (TREE_CODE (arg2
) != INTEGER_CST
&& TARGET_DIRECT_MOVE_64BIT
)
6516 call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_EXT_V2DF
];
6520 call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_EXT_V2DI
];
6524 call
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_EXT_V4SF
];
6528 call
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_EXT_V4SI
];
6532 call
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_EXT_V8HI
];
6536 call
= rs6000_builtin_decls
[ALTIVEC_BUILTIN_VEC_EXT_V16QI
];
6542 return build_call_expr (call
, 2, arg1
, arg2
);
6545 /* Build *(((arg1_inner_type*)&(vector type){arg1})+arg2). */
6546 arg1_inner_type
= TREE_TYPE (arg1_type
);
6547 arg2
= build_binary_op (loc
, BIT_AND_EXPR
, arg2
,
6548 build_int_cst (TREE_TYPE (arg2
),
6549 TYPE_VECTOR_SUBPARTS (arg1_type
)
6551 decl
= build_decl (loc
, VAR_DECL
, NULL_TREE
, arg1_type
);
6552 DECL_EXTERNAL (decl
) = 0;
6553 TREE_PUBLIC (decl
) = 0;
6554 DECL_CONTEXT (decl
) = current_function_decl
;
6555 TREE_USED (decl
) = 1;
6556 TREE_TYPE (decl
) = arg1_type
;
6557 TREE_READONLY (decl
) = TYPE_READONLY (arg1_type
);
6558 if (c_dialect_cxx ())
6560 stmt
= build4 (TARGET_EXPR
, arg1_type
, decl
, arg1
,
6561 NULL_TREE
, NULL_TREE
);
6562 SET_EXPR_LOCATION (stmt
, loc
);
6566 DECL_INITIAL (decl
) = arg1
;
6567 stmt
= build1 (DECL_EXPR
, arg1_type
, decl
);
6568 TREE_ADDRESSABLE (decl
) = 1;
6569 SET_EXPR_LOCATION (stmt
, loc
);
6570 stmt
= build1 (COMPOUND_LITERAL_EXPR
, arg1_type
, stmt
);
6573 innerptrtype
= build_pointer_type (arg1_inner_type
);
6575 stmt
= build_unary_op (loc
, ADDR_EXPR
, stmt
, 0);
6576 stmt
= convert (innerptrtype
, stmt
);
6577 stmt
= build_binary_op (loc
, PLUS_EXPR
, stmt
, arg2
, 1);
6578 stmt
= build_indirect_ref (loc
, stmt
, RO_NULL
);
6583 /* For now use pointer tricks to do the insertion, unless we are on VSX
6584 inserting a double to a constant offset.. */
6585 if (fcode
== ALTIVEC_BUILTIN_VEC_INSERT
)
6591 tree arg1_inner_type
;
6596 /* No second or third arguments. */
6599 error ("builtin %qs only accepts 3 arguments", "vec_insert");
6600 return error_mark_node
;
6603 arg0
= (*arglist
)[0];
6604 arg1
= (*arglist
)[1];
6605 arg1_type
= TREE_TYPE (arg1
);
6606 arg2
= (*arglist
)[2];
6608 if (TREE_CODE (arg1_type
) != VECTOR_TYPE
)
6610 if (!INTEGRAL_TYPE_P (TREE_TYPE (arg2
)))
6613 /* If we are targeting little-endian, but -maltivec=be has been
6614 specified to override the element order, adjust the element
6615 number accordingly. */
6616 if (!BYTES_BIG_ENDIAN
&& rs6000_altivec_element_order
== 2)
6618 unsigned int last_elem
= TYPE_VECTOR_SUBPARTS (arg1_type
) - 1;
6619 arg2
= fold_build2_loc (loc
, MINUS_EXPR
, TREE_TYPE (arg2
),
6620 build_int_cstu (TREE_TYPE (arg2
), last_elem
),
6624 /* If we can use the VSX xxpermdi instruction, use that for insert. */
6625 mode
= TYPE_MODE (arg1_type
);
6626 if ((mode
== V2DFmode
|| mode
== V2DImode
) && VECTOR_UNIT_VSX_P (mode
)
6627 && TREE_CODE (arg2
) == INTEGER_CST
6628 && wi::ltu_p (wi::to_wide (arg2
), 2))
6630 tree call
= NULL_TREE
;
6632 if (mode
== V2DFmode
)
6633 call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_SET_V2DF
];
6634 else if (mode
== V2DImode
)
6635 call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_SET_V2DI
];
6637 /* Note, __builtin_vec_insert_<xxx> has vector and scalar types
6640 return build_call_expr (call
, 3, arg1
, arg0
, arg2
);
6642 else if (mode
== V1TImode
&& VECTOR_UNIT_VSX_P (mode
)
6643 && TREE_CODE (arg2
) == INTEGER_CST
6644 && wi::eq_p (wi::to_wide (arg2
), 0))
6646 tree call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_SET_V1TI
];
6648 /* Note, __builtin_vec_insert_<xxx> has vector and scalar types
6650 return build_call_expr (call
, 3, arg1
, arg0
, arg2
);
6653 /* Build *(((arg1_inner_type*)&(vector type){arg1})+arg2) = arg0. */
6654 arg1_inner_type
= TREE_TYPE (arg1_type
);
6655 arg2
= build_binary_op (loc
, BIT_AND_EXPR
, arg2
,
6656 build_int_cst (TREE_TYPE (arg2
),
6657 TYPE_VECTOR_SUBPARTS (arg1_type
)
6659 decl
= build_decl (loc
, VAR_DECL
, NULL_TREE
, arg1_type
);
6660 DECL_EXTERNAL (decl
) = 0;
6661 TREE_PUBLIC (decl
) = 0;
6662 DECL_CONTEXT (decl
) = current_function_decl
;
6663 TREE_USED (decl
) = 1;
6664 TREE_TYPE (decl
) = arg1_type
;
6665 TREE_READONLY (decl
) = TYPE_READONLY (arg1_type
);
6666 if (c_dialect_cxx ())
6668 stmt
= build4 (TARGET_EXPR
, arg1_type
, decl
, arg1
,
6669 NULL_TREE
, NULL_TREE
);
6670 SET_EXPR_LOCATION (stmt
, loc
);
6674 DECL_INITIAL (decl
) = arg1
;
6675 stmt
= build1 (DECL_EXPR
, arg1_type
, decl
);
6676 TREE_ADDRESSABLE (decl
) = 1;
6677 SET_EXPR_LOCATION (stmt
, loc
);
6678 stmt
= build1 (COMPOUND_LITERAL_EXPR
, arg1_type
, stmt
);
6681 innerptrtype
= build_pointer_type (arg1_inner_type
);
6683 stmt
= build_unary_op (loc
, ADDR_EXPR
, stmt
, 0);
6684 stmt
= convert (innerptrtype
, stmt
);
6685 stmt
= build_binary_op (loc
, PLUS_EXPR
, stmt
, arg2
, 1);
6686 stmt
= build_indirect_ref (loc
, stmt
, RO_NULL
);
6687 stmt
= build2 (MODIFY_EXPR
, TREE_TYPE (stmt
), stmt
,
6688 convert (TREE_TYPE (stmt
), arg0
));
6689 stmt
= build2 (COMPOUND_EXPR
, arg1_type
, stmt
, decl
);
6694 !VOID_TYPE_P (TREE_VALUE (fnargs
)) && n
< nargs
;
6695 fnargs
= TREE_CHAIN (fnargs
), n
++)
6697 tree decl_type
= TREE_VALUE (fnargs
);
6698 tree arg
= (*arglist
)[n
];
6701 if (arg
== error_mark_node
)
6702 return error_mark_node
;
6707 arg
= default_conversion (arg
);
6709 /* The C++ front-end converts float * to const void * using
6710 NOP_EXPR<const void *> (NOP_EXPR<void *> (x)). */
6711 type
= TREE_TYPE (arg
);
6712 if (POINTER_TYPE_P (type
)
6713 && TREE_CODE (arg
) == NOP_EXPR
6714 && lang_hooks
.types_compatible_p (TREE_TYPE (arg
),
6715 const_ptr_type_node
)
6716 && lang_hooks
.types_compatible_p (TREE_TYPE (TREE_OPERAND (arg
, 0)),
6719 arg
= TREE_OPERAND (arg
, 0);
6720 type
= TREE_TYPE (arg
);
6723 /* Remove the const from the pointers to simplify the overload
6724 matching further down. */
6725 if (POINTER_TYPE_P (decl_type
)
6726 && POINTER_TYPE_P (type
)
6727 && TYPE_QUALS (TREE_TYPE (type
)) != 0)
6729 if (TYPE_READONLY (TREE_TYPE (type
))
6730 && !TYPE_READONLY (TREE_TYPE (decl_type
)))
6731 warning (0, "passing arg %d of %qE discards qualifiers from "
6732 "pointer target type", n
+ 1, fndecl
);
6733 type
= build_pointer_type (build_qualified_type (TREE_TYPE (type
),
6735 arg
= fold_convert (type
, arg
);
6742 /* If the number of arguments did not match the prototype, return NULL
6743 and the generic code will issue the appropriate error message. */
6744 if (!VOID_TYPE_P (TREE_VALUE (fnargs
)) || n
< nargs
)
6750 if (fcode
== ALTIVEC_BUILTIN_VEC_STEP
)
6752 if (TREE_CODE (types
[0]) != VECTOR_TYPE
)
6755 return build_int_cst (NULL_TREE
, TYPE_VECTOR_SUBPARTS (types
[0]));
6759 bool unsupported_builtin
= false;
6760 for (desc
= altivec_overloaded_builtins
;
6761 desc
->code
&& desc
->code
!= fcode
; desc
++)
6764 /* Need to special case __builtin_cmp because the overloaded forms
6765 of this function take (unsigned int, unsigned int) or (unsigned
6766 long long int, unsigned long long int). Since C conventions
6767 allow the respective argument types to be implicitly coerced into
6768 each other, the default handling does not provide adequate
6769 discrimination between the desired forms of the function. */
6770 if (fcode
== P6_OV_BUILTIN_CMPB
)
6772 int overloaded_code
;
6773 machine_mode arg1_mode
= TYPE_MODE (types
[0]);
6774 machine_mode arg2_mode
= TYPE_MODE (types
[1]);
6778 error ("builtin %qs only accepts 2 arguments", "__builtin_cmpb");
6779 return error_mark_node
;
6782 /* If any supplied arguments are wider than 32 bits, resolve to
6783 64-bit variant of built-in function. */
6784 if ((GET_MODE_PRECISION (arg1_mode
) > 32)
6785 || (GET_MODE_PRECISION (arg2_mode
) > 32))
6787 /* Assure all argument and result types are compatible with
6788 the built-in function represented by P6_BUILTIN_CMPB. */
6789 overloaded_code
= P6_BUILTIN_CMPB
;
6793 /* Assure all argument and result types are compatible with
6794 the built-in function represented by P6_BUILTIN_CMPB_32. */
6795 overloaded_code
= P6_BUILTIN_CMPB_32
;
6798 while (desc
->code
&& desc
->code
== fcode
6799 && desc
->overloaded_code
!= overloaded_code
)
6802 if (desc
->code
&& (desc
->code
== fcode
)
6803 && rs6000_builtin_type_compatible (types
[0], desc
->op1
)
6804 && rs6000_builtin_type_compatible (types
[1], desc
->op2
))
6806 if (rs6000_builtin_decls
[desc
->overloaded_code
] != NULL_TREE
)
6807 return altivec_build_resolved_builtin (args
, n
, desc
);
6809 unsupported_builtin
= true;
6812 else if (fcode
== P9V_BUILTIN_VEC_VSIEDP
)
6814 int overloaded_code
;
6815 machine_mode arg1_mode
= TYPE_MODE (types
[0]);
6819 error ("builtin %qs only accepts 2 arguments",
6820 "scalar_insert_exp");
6821 return error_mark_node
;
6824 /* If supplied first argument is wider than 64 bits, resolve to
6825 128-bit variant of built-in function. */
6826 if (GET_MODE_PRECISION (arg1_mode
) > 64)
6828 /* If first argument is of float variety, choose variant
6829 that expects __ieee128 argument. Otherwise, expect
6830 __int128 argument. */
6831 if (GET_MODE_CLASS (arg1_mode
) == MODE_FLOAT
)
6832 overloaded_code
= P9V_BUILTIN_VSIEQPF
;
6834 overloaded_code
= P9V_BUILTIN_VSIEQP
;
6838 /* If first argument is of float variety, choose variant
6839 that expects double argument. Otherwise, expect
6840 long long int argument. */
6841 if (GET_MODE_CLASS (arg1_mode
) == MODE_FLOAT
)
6842 overloaded_code
= P9V_BUILTIN_VSIEDPF
;
6844 overloaded_code
= P9V_BUILTIN_VSIEDP
;
6846 while (desc
->code
&& desc
->code
== fcode
6847 && desc
->overloaded_code
!= overloaded_code
)
6849 if (desc
->code
&& (desc
->code
== fcode
)
6850 && rs6000_builtin_type_compatible (types
[0], desc
->op1
)
6851 && rs6000_builtin_type_compatible (types
[1], desc
->op2
))
6853 if (rs6000_builtin_decls
[desc
->overloaded_code
] != NULL_TREE
)
6854 return altivec_build_resolved_builtin (args
, n
, desc
);
6856 unsupported_builtin
= true;
6861 /* For arguments after the last, we have RS6000_BTI_NOT_OPAQUE in
6863 for (; desc
->code
== fcode
; desc
++)
6865 if ((desc
->op1
== RS6000_BTI_NOT_OPAQUE
6866 || rs6000_builtin_type_compatible (types
[0], desc
->op1
))
6867 && (desc
->op2
== RS6000_BTI_NOT_OPAQUE
6868 || rs6000_builtin_type_compatible (types
[1], desc
->op2
))
6869 && (desc
->op3
== RS6000_BTI_NOT_OPAQUE
6870 || rs6000_builtin_type_compatible (types
[2], desc
->op3
)))
6872 if (rs6000_builtin_decls
[desc
->overloaded_code
] != NULL_TREE
)
6873 return altivec_build_resolved_builtin (args
, n
, desc
);
6875 unsupported_builtin
= true;
6880 if (unsupported_builtin
)
6882 const char *name
= rs6000_overloaded_builtin_name (fcode
);
6883 error ("builtin function %qs not supported in this compiler "
6884 "configuration", name
);
6885 return error_mark_node
;
6890 const char *name
= rs6000_overloaded_builtin_name (fcode
);
6891 error ("invalid parameter combination for AltiVec intrinsic %qs", name
);
6892 return error_mark_node
;