1 /* Subroutines for the C front end on the PowerPC architecture.
2 Copyright (C) 2002-2015 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/>. */
25 #include "coretypes.h"
31 #include "double-int.h"
38 #include "fold-const.h"
39 #include "stor-layout.h"
40 #include "stringpool.h"
42 #include "c-family/c-common.h"
43 #include "c-family/c-pragma.h"
44 #include "diagnostic-core.h"
47 #include "langhooks.h"
51 /* Handle the machine specific pragma longcall. Its syntax is
53 # pragma longcall ( TOGGLE )
55 where TOGGLE is either 0 or 1.
57 rs6000_default_long_calls is set to the value of TOGGLE, changing
58 whether or not new function declarations receive a longcall
59 attribute by default. */
61 #define SYNTAX_ERROR(gmsgid) do { \
62 warning (OPT_Wpragmas, gmsgid); \
63 warning (OPT_Wpragmas, "ignoring malformed #pragma longcall"); \
68 rs6000_pragma_longcall (cpp_reader
*pfile ATTRIBUTE_UNUSED
)
72 /* If we get here, generic code has already scanned the directive
73 leader and the word "longcall". */
75 if (pragma_lex (&x
) != CPP_OPEN_PAREN
)
76 SYNTAX_ERROR ("missing open paren");
77 if (pragma_lex (&n
) != CPP_NUMBER
)
78 SYNTAX_ERROR ("missing number");
79 if (pragma_lex (&x
) != CPP_CLOSE_PAREN
)
80 SYNTAX_ERROR ("missing close paren");
82 if (n
!= integer_zero_node
&& n
!= integer_one_node
)
83 SYNTAX_ERROR ("number must be 0 or 1");
85 if (pragma_lex (&x
) != CPP_EOF
)
86 warning (OPT_Wpragmas
, "junk at end of #pragma longcall");
88 rs6000_default_long_calls
= (n
== integer_one_node
);
91 /* Handle defining many CPP flags based on TARGET_xxx. As a general
92 policy, rather than trying to guess what flags a user might want a
93 #define for, it's better to define a flag for everything. */
95 #define builtin_define(TXT) cpp_define (pfile, TXT)
96 #define builtin_assert(TXT) cpp_assert (pfile, TXT)
98 /* Keep the AltiVec keywords handy for fast comparisons. */
99 static GTY(()) tree __vector_keyword
;
100 static GTY(()) tree vector_keyword
;
101 static GTY(()) tree __pixel_keyword
;
102 static GTY(()) tree pixel_keyword
;
103 static GTY(()) tree __bool_keyword
;
104 static GTY(()) tree bool_keyword
;
105 static GTY(()) tree _Bool_keyword
;
106 static GTY(()) tree __int128_type
;
107 static GTY(()) tree __uint128_type
;
109 /* Preserved across calls. */
110 static tree expand_bool_pixel
;
112 static cpp_hashnode
*
113 altivec_categorize_keyword (const cpp_token
*tok
)
115 if (tok
->type
== CPP_NAME
)
117 cpp_hashnode
*ident
= tok
->val
.node
.node
;
119 if (ident
== C_CPP_HASHNODE (vector_keyword
))
120 return C_CPP_HASHNODE (__vector_keyword
);
122 if (ident
== C_CPP_HASHNODE (pixel_keyword
))
123 return C_CPP_HASHNODE (__pixel_keyword
);
125 if (ident
== C_CPP_HASHNODE (bool_keyword
))
126 return C_CPP_HASHNODE (__bool_keyword
);
128 if (ident
== C_CPP_HASHNODE (_Bool_keyword
))
129 return C_CPP_HASHNODE (__bool_keyword
);
138 init_vector_keywords (void)
140 /* Keywords without two leading underscores are context-sensitive, and hence
141 implemented as conditional macros, controlled by the
142 rs6000_macro_to_expand() function below. If we have ISA 2.07 64-bit
143 support, record the __int128_t and __uint128_t types. */
145 __vector_keyword
= get_identifier ("__vector");
146 C_CPP_HASHNODE (__vector_keyword
)->flags
|= NODE_CONDITIONAL
;
148 __pixel_keyword
= get_identifier ("__pixel");
149 C_CPP_HASHNODE (__pixel_keyword
)->flags
|= NODE_CONDITIONAL
;
151 __bool_keyword
= get_identifier ("__bool");
152 C_CPP_HASHNODE (__bool_keyword
)->flags
|= NODE_CONDITIONAL
;
154 vector_keyword
= get_identifier ("vector");
155 C_CPP_HASHNODE (vector_keyword
)->flags
|= NODE_CONDITIONAL
;
157 pixel_keyword
= get_identifier ("pixel");
158 C_CPP_HASHNODE (pixel_keyword
)->flags
|= NODE_CONDITIONAL
;
160 bool_keyword
= get_identifier ("bool");
161 C_CPP_HASHNODE (bool_keyword
)->flags
|= NODE_CONDITIONAL
;
163 _Bool_keyword
= get_identifier ("_Bool");
164 C_CPP_HASHNODE (_Bool_keyword
)->flags
|= NODE_CONDITIONAL
;
168 __int128_type
= get_identifier ("__int128_t");
169 __uint128_type
= get_identifier ("__uint128_t");
173 /* Helper function to find out which RID_INT_N_* code is the one for
174 __int128, if any. Returns RID_MAX+1 if none apply, which is safe
175 (for our purposes, since we always expect to have __int128) to
182 for (i
= 0; i
< NUM_INT_N_ENTS
; i
++)
183 if (int_n_enabled_p
[i
]
184 && int_n_data
[i
].bitsize
== 128)
185 return RID_INT_N_0
+ i
;
190 /* Called to decide whether a conditional macro should be expanded.
191 Since we have exactly one such macro (i.e, 'vector'), we do not
192 need to examine the 'tok' parameter. */
194 static cpp_hashnode
*
195 rs6000_macro_to_expand (cpp_reader
*pfile
, const cpp_token
*tok
)
197 cpp_hashnode
*expand_this
= tok
->val
.node
.node
;
200 /* If the current machine does not have altivec, don't look for the
205 ident
= altivec_categorize_keyword (tok
);
207 if (ident
!= expand_this
)
210 if (ident
== C_CPP_HASHNODE (__vector_keyword
))
214 tok
= cpp_peek_token (pfile
, idx
++);
215 while (tok
->type
== CPP_PADDING
);
216 ident
= altivec_categorize_keyword (tok
);
218 if (ident
== C_CPP_HASHNODE (__pixel_keyword
))
220 expand_this
= C_CPP_HASHNODE (__vector_keyword
);
221 expand_bool_pixel
= __pixel_keyword
;
223 else if (ident
== C_CPP_HASHNODE (__bool_keyword
))
225 expand_this
= C_CPP_HASHNODE (__vector_keyword
);
226 expand_bool_pixel
= __bool_keyword
;
228 /* The boost libraries have code with Iterator::vector vector in it. If
229 we allow the normal handling, this module will be called recursively,
230 and the vector will be skipped.; */
231 else if (ident
&& (ident
!= C_CPP_HASHNODE (__vector_keyword
)))
233 enum rid rid_code
= (enum rid
)(ident
->rid_code
);
234 if (ident
->type
== NT_MACRO
)
237 (void) cpp_get_token (pfile
);
240 tok
= cpp_peek_token (pfile
, idx
++);
241 while (tok
->type
== CPP_PADDING
);
242 ident
= altivec_categorize_keyword (tok
);
243 if (ident
== C_CPP_HASHNODE (__pixel_keyword
))
245 expand_this
= C_CPP_HASHNODE (__vector_keyword
);
246 expand_bool_pixel
= __pixel_keyword
;
249 else if (ident
== C_CPP_HASHNODE (__bool_keyword
))
251 expand_this
= C_CPP_HASHNODE (__vector_keyword
);
252 expand_bool_pixel
= __bool_keyword
;
256 rid_code
= (enum rid
)(ident
->rid_code
);
259 if (rid_code
== RID_UNSIGNED
|| rid_code
== RID_LONG
260 || rid_code
== RID_SHORT
|| rid_code
== RID_SIGNED
261 || rid_code
== RID_INT
|| rid_code
== RID_CHAR
262 || rid_code
== RID_FLOAT
263 || (rid_code
== RID_DOUBLE
&& TARGET_VSX
)
264 || (rid_code
== rid_int128 () && TARGET_VADDUQM
))
266 expand_this
= C_CPP_HASHNODE (__vector_keyword
);
267 /* If the next keyword is bool or pixel, it
268 will need to be expanded as well. */
270 tok
= cpp_peek_token (pfile
, idx
++);
271 while (tok
->type
== CPP_PADDING
);
272 ident
= altivec_categorize_keyword (tok
);
274 if (ident
== C_CPP_HASHNODE (__pixel_keyword
))
275 expand_bool_pixel
= __pixel_keyword
;
276 else if (ident
== C_CPP_HASHNODE (__bool_keyword
))
277 expand_bool_pixel
= __bool_keyword
;
280 /* Try two tokens down, too. */
282 tok
= cpp_peek_token (pfile
, idx
++);
283 while (tok
->type
== CPP_PADDING
);
284 ident
= altivec_categorize_keyword (tok
);
285 if (ident
== C_CPP_HASHNODE (__pixel_keyword
))
286 expand_bool_pixel
= __pixel_keyword
;
287 else if (ident
== C_CPP_HASHNODE (__bool_keyword
))
288 expand_bool_pixel
= __bool_keyword
;
292 /* Support vector __int128_t, but we don't need to worry about bool
293 or pixel on this type. */
294 else if (TARGET_VADDUQM
295 && (ident
== C_CPP_HASHNODE (__int128_type
)
296 || ident
== C_CPP_HASHNODE (__uint128_type
)))
297 expand_this
= C_CPP_HASHNODE (__vector_keyword
);
300 else if (expand_bool_pixel
&& ident
== C_CPP_HASHNODE (__pixel_keyword
))
302 expand_this
= C_CPP_HASHNODE (__pixel_keyword
);
303 expand_bool_pixel
= 0;
305 else if (expand_bool_pixel
&& ident
== C_CPP_HASHNODE (__bool_keyword
))
307 expand_this
= C_CPP_HASHNODE (__bool_keyword
);
308 expand_bool_pixel
= 0;
315 /* Define or undefine a single macro. */
318 rs6000_define_or_undefine_macro (bool define_p
, const char *name
)
320 if (TARGET_DEBUG_BUILTIN
|| TARGET_DEBUG_TARGET
)
321 fprintf (stderr
, "#%s %s\n", (define_p
) ? "define" : "undef", name
);
324 cpp_define (parse_in
, name
);
326 cpp_undef (parse_in
, name
);
329 /* Define or undefine macros based on the current target. If the user does
330 #pragma GCC target, we need to adjust the macros dynamically. Note, some of
331 the options needed for builtins have been moved to separate variables, so
332 have both the target flags and the builtin flags as arguments. */
335 rs6000_target_modify_macros (bool define_p
, HOST_WIDE_INT flags
,
336 HOST_WIDE_INT bu_mask
)
338 if (TARGET_DEBUG_BUILTIN
|| TARGET_DEBUG_TARGET
)
340 "rs6000_target_modify_macros (%s, " HOST_WIDE_INT_PRINT_HEX
341 ", " HOST_WIDE_INT_PRINT_HEX
")\n",
342 (define_p
) ? "define" : "undef",
345 /* rs6000_isa_flags based options. */
346 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PPC");
347 if ((flags
& OPTION_MASK_PPC_GPOPT
) != 0)
348 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PPCSQ");
349 if ((flags
& OPTION_MASK_PPC_GFXOPT
) != 0)
350 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PPCGR");
351 if ((flags
& OPTION_MASK_POWERPC64
) != 0)
352 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PPC64");
353 if ((flags
& OPTION_MASK_MFCRF
) != 0)
354 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR4");
355 if ((flags
& OPTION_MASK_POPCNTB
) != 0)
356 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR5");
357 if ((flags
& OPTION_MASK_FPRND
) != 0)
358 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR5X");
359 if ((flags
& OPTION_MASK_CMPB
) != 0)
360 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR6");
361 if ((flags
& OPTION_MASK_MFPGPR
) != 0)
362 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR6X");
363 if ((flags
& OPTION_MASK_POPCNTD
) != 0)
364 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR7");
365 if ((flags
& OPTION_MASK_DIRECT_MOVE
) != 0)
366 rs6000_define_or_undefine_macro (define_p
, "_ARCH_PWR8");
367 if ((flags
& OPTION_MASK_SOFT_FLOAT
) != 0)
368 rs6000_define_or_undefine_macro (define_p
, "_SOFT_FLOAT");
369 if ((flags
& OPTION_MASK_RECIP_PRECISION
) != 0)
370 rs6000_define_or_undefine_macro (define_p
, "__RECIP_PRECISION__");
371 if ((flags
& OPTION_MASK_ALTIVEC
) != 0)
373 const char *vec_str
= (define_p
) ? "__VEC__=10206" : "__VEC__";
374 rs6000_define_or_undefine_macro (define_p
, "__ALTIVEC__");
375 rs6000_define_or_undefine_macro (define_p
, vec_str
);
377 /* Define this when supporting context-sensitive keywords. */
379 rs6000_define_or_undefine_macro (define_p
, "__APPLE_ALTIVEC__");
381 if ((flags
& OPTION_MASK_VSX
) != 0)
382 rs6000_define_or_undefine_macro (define_p
, "__VSX__");
383 if ((flags
& OPTION_MASK_HTM
) != 0)
384 rs6000_define_or_undefine_macro (define_p
, "__HTM__");
385 if ((flags
& OPTION_MASK_P8_VECTOR
) != 0)
386 rs6000_define_or_undefine_macro (define_p
, "__POWER8_VECTOR__");
387 if ((flags
& OPTION_MASK_QUAD_MEMORY
) != 0)
388 rs6000_define_or_undefine_macro (define_p
, "__QUAD_MEMORY__");
389 if ((flags
& OPTION_MASK_QUAD_MEMORY_ATOMIC
) != 0)
390 rs6000_define_or_undefine_macro (define_p
, "__QUAD_MEMORY_ATOMIC__");
391 if ((flags
& OPTION_MASK_CRYPTO
) != 0)
392 rs6000_define_or_undefine_macro (define_p
, "__CRYPTO__");
393 if ((flags
& OPTION_MASK_UPPER_REGS_DF
) != 0)
394 rs6000_define_or_undefine_macro (define_p
, "__UPPER_REGS_DF__");
395 if ((flags
& OPTION_MASK_UPPER_REGS_SF
) != 0)
396 rs6000_define_or_undefine_macro (define_p
, "__UPPER_REGS_SF__");
398 /* options from the builtin masks. */
399 if ((bu_mask
& RS6000_BTM_SPE
) != 0)
400 rs6000_define_or_undefine_macro (define_p
, "__SPE__");
401 if ((bu_mask
& RS6000_BTM_PAIRED
) != 0)
402 rs6000_define_or_undefine_macro (define_p
, "__PAIRED__");
403 if ((bu_mask
& RS6000_BTM_CELL
) != 0)
404 rs6000_define_or_undefine_macro (define_p
, "__PPU__");
408 rs6000_cpu_cpp_builtins (cpp_reader
*pfile
)
410 /* Define all of the common macros. */
411 rs6000_target_modify_macros (true, rs6000_isa_flags
,
412 rs6000_builtin_mask_calculate ());
415 builtin_define ("__RECIP__");
417 builtin_define ("__RECIPF__");
419 builtin_define ("__RSQRTE__");
421 builtin_define ("__RSQRTEF__");
423 if (TARGET_EXTRA_BUILTINS
)
425 /* Define the AltiVec syntactic elements. */
426 builtin_define ("__vector=__attribute__((altivec(vector__)))");
427 builtin_define ("__pixel=__attribute__((altivec(pixel__))) unsigned short");
428 builtin_define ("__bool=__attribute__((altivec(bool__))) unsigned");
432 builtin_define ("vector=vector");
433 builtin_define ("pixel=pixel");
434 builtin_define ("bool=bool");
435 builtin_define ("_Bool=_Bool");
436 init_vector_keywords ();
438 /* Enable context-sensitive macros. */
439 cpp_get_callbacks (pfile
)->macro_to_expand
= rs6000_macro_to_expand
;
442 if ((!(TARGET_HARD_FLOAT
&& (TARGET_FPRS
|| TARGET_E500_DOUBLE
)))
443 ||(TARGET_HARD_FLOAT
&& TARGET_FPRS
&& !TARGET_DOUBLE_FLOAT
))
444 builtin_define ("_SOFT_DOUBLE");
445 /* Used by lwarx/stwcx. errata work-around. */
446 if (rs6000_cpu
== PROCESSOR_PPC405
)
447 builtin_define ("__PPC405__");
448 /* Used by libstdc++. */
449 if (TARGET_NO_LWSYNC
)
450 builtin_define ("__NO_LWSYNC__");
452 if (TARGET_EXTRA_BUILTINS
)
454 /* For the VSX builtin functions identical to Altivec functions, just map
455 the altivec builtin into the vsx version (the altivec functions
456 generate VSX code if -mvsx). */
457 builtin_define ("__builtin_vsx_xxland=__builtin_vec_and");
458 builtin_define ("__builtin_vsx_xxlandc=__builtin_vec_andc");
459 builtin_define ("__builtin_vsx_xxlnor=__builtin_vec_nor");
460 builtin_define ("__builtin_vsx_xxlor=__builtin_vec_or");
461 builtin_define ("__builtin_vsx_xxlxor=__builtin_vec_xor");
462 builtin_define ("__builtin_vsx_xxsel=__builtin_vec_sel");
463 builtin_define ("__builtin_vsx_vperm=__builtin_vec_perm");
465 /* Also map the a and m versions of the multiply/add instructions to the
466 builtin for people blindly going off the instruction manual. */
467 builtin_define ("__builtin_vsx_xvmaddadp=__builtin_vsx_xvmadddp");
468 builtin_define ("__builtin_vsx_xvmaddmdp=__builtin_vsx_xvmadddp");
469 builtin_define ("__builtin_vsx_xvmaddasp=__builtin_vsx_xvmaddsp");
470 builtin_define ("__builtin_vsx_xvmaddmsp=__builtin_vsx_xvmaddsp");
471 builtin_define ("__builtin_vsx_xvmsubadp=__builtin_vsx_xvmsubdp");
472 builtin_define ("__builtin_vsx_xvmsubmdp=__builtin_vsx_xvmsubdp");
473 builtin_define ("__builtin_vsx_xvmsubasp=__builtin_vsx_xvmsubsp");
474 builtin_define ("__builtin_vsx_xvmsubmsp=__builtin_vsx_xvmsubsp");
475 builtin_define ("__builtin_vsx_xvnmaddadp=__builtin_vsx_xvnmadddp");
476 builtin_define ("__builtin_vsx_xvnmaddmdp=__builtin_vsx_xvnmadddp");
477 builtin_define ("__builtin_vsx_xvnmaddasp=__builtin_vsx_xvnmaddsp");
478 builtin_define ("__builtin_vsx_xvnmaddmsp=__builtin_vsx_xvnmaddsp");
479 builtin_define ("__builtin_vsx_xvnmsubadp=__builtin_vsx_xvnmsubdp");
480 builtin_define ("__builtin_vsx_xvnmsubmdp=__builtin_vsx_xvnmsubdp");
481 builtin_define ("__builtin_vsx_xvnmsubasp=__builtin_vsx_xvnmsubsp");
482 builtin_define ("__builtin_vsx_xvnmsubmsp=__builtin_vsx_xvnmsubsp");
485 /* Tell users they can use __builtin_bswap{16,64}. */
486 builtin_define ("__HAVE_BSWAP__");
488 /* May be overridden by target configuration. */
489 RS6000_CPU_CPP_ENDIAN_BUILTINS();
491 if (TARGET_LONG_DOUBLE_128
)
493 builtin_define ("__LONG_DOUBLE_128__");
494 builtin_define ("__LONGDOUBLE128");
497 switch (TARGET_CMODEL
)
499 /* Deliberately omit __CMODEL_SMALL__ since that was the default
500 before --mcmodel support was added. */
502 builtin_define ("__CMODEL_MEDIUM__");
505 builtin_define ("__CMODEL_LARGE__");
511 switch (rs6000_current_abi
)
514 builtin_define ("_CALL_SYSV");
517 builtin_define ("_CALL_AIXDESC");
518 builtin_define ("_CALL_AIX");
519 builtin_define ("_CALL_ELF=1");
522 builtin_define ("_CALL_ELF=2");
525 builtin_define ("_CALL_DARWIN");
531 /* Vector element order. */
532 if (BYTES_BIG_ENDIAN
|| (rs6000_altivec_element_order
== 2))
533 builtin_define ("__VEC_ELEMENT_REG_ORDER__=__ORDER_BIG_ENDIAN__");
535 builtin_define ("__VEC_ELEMENT_REG_ORDER__=__ORDER_LITTLE_ENDIAN__");
537 /* Let the compiled code know if 'f' class registers will not be available. */
538 if (TARGET_SOFT_FLOAT
|| !TARGET_FPRS
)
539 builtin_define ("__NO_FPRS__");
541 /* Whether aggregates passed by value are aligned to a 16 byte boundary
542 if their alignment is 16 bytes or larger. */
543 if ((TARGET_MACHO
&& rs6000_darwin64_abi
)
544 || DEFAULT_ABI
== ABI_ELFv2
545 || (DEFAULT_ABI
== ABI_AIX
&& !rs6000_compat_align_parm
))
546 builtin_define ("__STRUCT_PARM_ALIGN__=16");
548 /* Generate defines for Xilinx FPU. */
549 if (rs6000_xilinx_fpu
)
551 builtin_define ("_XFPU");
552 if (rs6000_single_float
&& ! rs6000_double_float
)
554 if (rs6000_simple_fpu
)
555 builtin_define ("_XFPU_SP_LITE");
557 builtin_define ("_XFPU_SP_FULL");
559 if (rs6000_double_float
)
561 if (rs6000_simple_fpu
)
562 builtin_define ("_XFPU_DP_LITE");
564 builtin_define ("_XFPU_DP_FULL");
570 struct altivec_builtin_types
572 enum rs6000_builtins code
;
573 enum rs6000_builtins overloaded_code
;
574 signed char ret_type
;
580 const struct altivec_builtin_types altivec_overloaded_builtins
[] = {
581 /* Unary AltiVec/VSX builtins. */
582 { ALTIVEC_BUILTIN_VEC_ABS
, ALTIVEC_BUILTIN_ABS_V16QI
,
583 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
584 { ALTIVEC_BUILTIN_VEC_ABS
, ALTIVEC_BUILTIN_ABS_V8HI
,
585 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
586 { ALTIVEC_BUILTIN_VEC_ABS
, ALTIVEC_BUILTIN_ABS_V4SI
,
587 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
588 { ALTIVEC_BUILTIN_VEC_ABS
, P8V_BUILTIN_ABS_V2DI
,
589 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
590 { ALTIVEC_BUILTIN_VEC_ABS
, ALTIVEC_BUILTIN_ABS_V4SF
,
591 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
592 { ALTIVEC_BUILTIN_VEC_ABS
, VSX_BUILTIN_XVABSDP
,
593 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
594 { ALTIVEC_BUILTIN_VEC_ABSS
, ALTIVEC_BUILTIN_ABSS_V16QI
,
595 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
596 { ALTIVEC_BUILTIN_VEC_ABSS
, ALTIVEC_BUILTIN_ABSS_V8HI
,
597 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
598 { ALTIVEC_BUILTIN_VEC_ABSS
, ALTIVEC_BUILTIN_ABSS_V4SI
,
599 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
600 { ALTIVEC_BUILTIN_VEC_CEIL
, ALTIVEC_BUILTIN_VRFIP
,
601 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
602 { ALTIVEC_BUILTIN_VEC_CEIL
, VSX_BUILTIN_XVRDPIP
,
603 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
604 { ALTIVEC_BUILTIN_VEC_EXPTE
, ALTIVEC_BUILTIN_VEXPTEFP
,
605 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
606 { ALTIVEC_BUILTIN_VEC_FLOOR
, VSX_BUILTIN_XVRDPIM
,
607 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
608 { ALTIVEC_BUILTIN_VEC_FLOOR
, ALTIVEC_BUILTIN_VRFIM
,
609 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
610 { ALTIVEC_BUILTIN_VEC_LOGE
, ALTIVEC_BUILTIN_VLOGEFP
,
611 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
612 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
613 RS6000_BTI_void
, RS6000_BTI_V4SI
, 0, 0 },
614 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
615 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
616 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
617 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, 0, 0 },
618 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
619 RS6000_BTI_void
, RS6000_BTI_V8HI
, 0, 0 },
620 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
621 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
622 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
623 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, 0, 0 },
624 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
625 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, 0, 0 },
626 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
627 RS6000_BTI_void
, RS6000_BTI_V16QI
, 0, 0 },
628 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
629 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
630 { ALTIVEC_BUILTIN_VEC_MTVSCR
, ALTIVEC_BUILTIN_MTVSCR
,
631 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, 0, 0 },
632 { ALTIVEC_BUILTIN_VEC_RE
, ALTIVEC_BUILTIN_VREFP
,
633 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
634 { ALTIVEC_BUILTIN_VEC_RE
, VSX_BUILTIN_XVREDP
,
635 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
636 { ALTIVEC_BUILTIN_VEC_ROUND
, ALTIVEC_BUILTIN_VRFIN
,
637 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
638 { ALTIVEC_BUILTIN_VEC_ROUND
, VSX_BUILTIN_XVRDPI
,
639 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
640 { ALTIVEC_BUILTIN_VEC_RECIP
, ALTIVEC_BUILTIN_VRECIPFP
,
641 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
642 { ALTIVEC_BUILTIN_VEC_RECIP
, VSX_BUILTIN_RECIP_V2DF
,
643 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
644 { ALTIVEC_BUILTIN_VEC_RSQRT
, ALTIVEC_BUILTIN_VRSQRTFP
,
645 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
646 { ALTIVEC_BUILTIN_VEC_RSQRT
, VSX_BUILTIN_RSQRT_2DF
,
647 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
648 { ALTIVEC_BUILTIN_VEC_RSQRTE
, ALTIVEC_BUILTIN_VRSQRTEFP
,
649 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
650 { ALTIVEC_BUILTIN_VEC_RSQRTE
, VSX_BUILTIN_XVRSQRTEDP
,
651 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
652 { ALTIVEC_BUILTIN_VEC_TRUNC
, ALTIVEC_BUILTIN_VRFIZ
,
653 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
654 { ALTIVEC_BUILTIN_VEC_TRUNC
, VSX_BUILTIN_XVRDPIZ
,
655 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
656 { ALTIVEC_BUILTIN_VEC_UNPACKH
, ALTIVEC_BUILTIN_VUPKHSB
,
657 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, 0, 0 },
658 { ALTIVEC_BUILTIN_VEC_UNPACKH
, ALTIVEC_BUILTIN_VUPKHSB
,
659 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V16QI
, 0, 0 },
660 { ALTIVEC_BUILTIN_VEC_UNPACKH
, ALTIVEC_BUILTIN_VUPKHSH
,
661 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, 0, 0 },
662 { ALTIVEC_BUILTIN_VEC_UNPACKH
, ALTIVEC_BUILTIN_VUPKHSH
,
663 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V8HI
, 0, 0 },
664 { ALTIVEC_BUILTIN_VEC_UNPACKH
, P8V_BUILTIN_VUPKHSW
,
665 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, 0, 0 },
666 { ALTIVEC_BUILTIN_VEC_UNPACKH
, P8V_BUILTIN_VUPKHSW
,
667 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V4SI
, 0, 0 },
668 { ALTIVEC_BUILTIN_VEC_UNPACKH
, ALTIVEC_BUILTIN_VUPKHPX
,
669 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_pixel_V8HI
, 0, 0 },
670 { ALTIVEC_BUILTIN_VEC_VUPKHSH
, ALTIVEC_BUILTIN_VUPKHSH
,
671 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, 0, 0 },
672 { ALTIVEC_BUILTIN_VEC_VUPKHSH
, ALTIVEC_BUILTIN_VUPKHSH
,
673 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V8HI
, 0, 0 },
674 { ALTIVEC_BUILTIN_VEC_VUPKHSH
, P8V_BUILTIN_VUPKHSW
,
675 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, 0, 0 },
676 { ALTIVEC_BUILTIN_VEC_VUPKHSH
, P8V_BUILTIN_VUPKHSW
,
677 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V4SI
, 0, 0 },
678 { ALTIVEC_BUILTIN_VEC_VUPKHPX
, ALTIVEC_BUILTIN_VUPKHPX
,
679 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
680 { ALTIVEC_BUILTIN_VEC_VUPKHPX
, ALTIVEC_BUILTIN_VUPKHPX
,
681 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_pixel_V8HI
, 0, 0 },
682 { ALTIVEC_BUILTIN_VEC_VUPKHSB
, ALTIVEC_BUILTIN_VUPKHSB
,
683 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, 0, 0 },
684 { ALTIVEC_BUILTIN_VEC_VUPKHSB
, ALTIVEC_BUILTIN_VUPKHSB
,
685 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V16QI
, 0, 0 },
686 { ALTIVEC_BUILTIN_VEC_UNPACKL
, ALTIVEC_BUILTIN_VUPKLSB
,
687 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, 0, 0 },
688 { ALTIVEC_BUILTIN_VEC_UNPACKL
, ALTIVEC_BUILTIN_VUPKLSB
,
689 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V16QI
, 0, 0 },
690 { ALTIVEC_BUILTIN_VEC_UNPACKL
, ALTIVEC_BUILTIN_VUPKLPX
,
691 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_pixel_V8HI
, 0, 0 },
692 { ALTIVEC_BUILTIN_VEC_UNPACKL
, ALTIVEC_BUILTIN_VUPKLSH
,
693 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, 0, 0 },
694 { ALTIVEC_BUILTIN_VEC_UNPACKL
, ALTIVEC_BUILTIN_VUPKLSH
,
695 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V8HI
, 0, 0 },
696 { ALTIVEC_BUILTIN_VEC_UNPACKL
, P8V_BUILTIN_VUPKLSW
,
697 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, 0, 0 },
698 { ALTIVEC_BUILTIN_VEC_UNPACKL
, P8V_BUILTIN_VUPKLSW
,
699 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V4SI
, 0, 0 },
700 { ALTIVEC_BUILTIN_VEC_VUPKLPX
, ALTIVEC_BUILTIN_VUPKLPX
,
701 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
702 { ALTIVEC_BUILTIN_VEC_VUPKLPX
, ALTIVEC_BUILTIN_VUPKLPX
,
703 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_pixel_V8HI
, 0, 0 },
704 { ALTIVEC_BUILTIN_VEC_VUPKLSH
, ALTIVEC_BUILTIN_VUPKLSH
,
705 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, 0, 0 },
706 { ALTIVEC_BUILTIN_VEC_VUPKLSH
, ALTIVEC_BUILTIN_VUPKLSH
,
707 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V8HI
, 0, 0 },
708 { ALTIVEC_BUILTIN_VEC_VUPKLSB
, ALTIVEC_BUILTIN_VUPKLSB
,
709 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, 0, 0 },
710 { ALTIVEC_BUILTIN_VEC_VUPKLSB
, ALTIVEC_BUILTIN_VUPKLSB
,
711 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V16QI
, 0, 0 },
713 /* Binary AltiVec/VSX builtins. */
714 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUBM
,
715 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
716 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUBM
,
717 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
718 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUBM
,
719 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
720 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUBM
,
721 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
722 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUBM
,
723 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
724 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUBM
,
725 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
726 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUHM
,
727 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
728 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUHM
,
729 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
730 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUHM
,
731 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
732 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUHM
,
733 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
734 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUHM
,
735 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
736 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUHM
,
737 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
738 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUWM
,
739 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
740 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUWM
,
741 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
742 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUWM
,
743 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
744 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUWM
,
745 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
746 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUWM
,
747 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
748 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDUWM
,
749 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
750 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUDM
,
751 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
752 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUDM
,
753 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
754 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUDM
,
755 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
756 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUDM
,
757 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
758 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUDM
,
759 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
760 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUDM
,
761 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
762 { ALTIVEC_BUILTIN_VEC_ADD
, ALTIVEC_BUILTIN_VADDFP
,
763 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
764 { ALTIVEC_BUILTIN_VEC_ADD
, VSX_BUILTIN_XVADDDP
,
765 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
766 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUQM
,
767 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
768 { ALTIVEC_BUILTIN_VEC_ADD
, P8V_BUILTIN_VADDUQM
,
769 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
770 RS6000_BTI_unsigned_V1TI
, 0 },
771 { ALTIVEC_BUILTIN_VEC_VADDFP
, ALTIVEC_BUILTIN_VADDFP
,
772 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
773 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
774 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
775 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
776 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
777 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
778 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0 },
779 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
780 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
781 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
782 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
783 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
784 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
785 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
786 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
787 { ALTIVEC_BUILTIN_VEC_VADDUWM
, ALTIVEC_BUILTIN_VADDUWM
,
788 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
789 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
790 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
791 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
792 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
793 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
794 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, 0 },
795 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
796 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
797 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
798 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
799 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
800 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
801 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
802 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
803 { ALTIVEC_BUILTIN_VEC_VADDUHM
, ALTIVEC_BUILTIN_VADDUHM
,
804 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
805 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
806 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
807 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
808 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
809 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
810 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
811 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
812 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
813 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
814 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
815 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
816 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
817 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
818 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
819 { ALTIVEC_BUILTIN_VEC_VADDUBM
, ALTIVEC_BUILTIN_VADDUBM
,
820 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
821 { ALTIVEC_BUILTIN_VEC_ADDC
, ALTIVEC_BUILTIN_VADDCUW
,
822 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
823 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUBS
,
824 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
825 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUBS
,
826 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
827 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUBS
,
828 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
829 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSBS
,
830 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
831 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSBS
,
832 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
833 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSBS
,
834 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
835 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUHS
,
836 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
837 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUHS
,
838 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
839 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUHS
,
840 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
841 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSHS
,
842 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
843 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSHS
,
844 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
845 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSHS
,
846 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
847 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUWS
,
848 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
849 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUWS
,
850 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
851 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDUWS
,
852 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
853 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSWS
,
854 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
855 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSWS
,
856 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
857 { ALTIVEC_BUILTIN_VEC_ADDS
, ALTIVEC_BUILTIN_VADDSWS
,
858 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
859 { ALTIVEC_BUILTIN_VEC_VADDSWS
, ALTIVEC_BUILTIN_VADDSWS
,
860 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
861 { ALTIVEC_BUILTIN_VEC_VADDSWS
, ALTIVEC_BUILTIN_VADDSWS
,
862 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
863 { ALTIVEC_BUILTIN_VEC_VADDSWS
, ALTIVEC_BUILTIN_VADDSWS
,
864 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
865 { ALTIVEC_BUILTIN_VEC_VADDUWS
, ALTIVEC_BUILTIN_VADDUWS
,
866 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
867 { ALTIVEC_BUILTIN_VEC_VADDUWS
, ALTIVEC_BUILTIN_VADDUWS
,
868 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0 },
869 { ALTIVEC_BUILTIN_VEC_VADDUWS
, ALTIVEC_BUILTIN_VADDUWS
,
870 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
871 { ALTIVEC_BUILTIN_VEC_VADDUWS
, ALTIVEC_BUILTIN_VADDUWS
,
872 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
873 { ALTIVEC_BUILTIN_VEC_VADDUWS
, ALTIVEC_BUILTIN_VADDUWS
,
874 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
875 { ALTIVEC_BUILTIN_VEC_VADDSHS
, ALTIVEC_BUILTIN_VADDSHS
,
876 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
877 { ALTIVEC_BUILTIN_VEC_VADDSHS
, ALTIVEC_BUILTIN_VADDSHS
,
878 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
879 { ALTIVEC_BUILTIN_VEC_VADDSHS
, ALTIVEC_BUILTIN_VADDSHS
,
880 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
881 { ALTIVEC_BUILTIN_VEC_VADDUHS
, ALTIVEC_BUILTIN_VADDUHS
,
882 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
883 { ALTIVEC_BUILTIN_VEC_VADDUHS
, ALTIVEC_BUILTIN_VADDUHS
,
884 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, 0 },
885 { ALTIVEC_BUILTIN_VEC_VADDUHS
, ALTIVEC_BUILTIN_VADDUHS
,
886 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
887 { ALTIVEC_BUILTIN_VEC_VADDUHS
, ALTIVEC_BUILTIN_VADDUHS
,
888 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
889 { ALTIVEC_BUILTIN_VEC_VADDUHS
, ALTIVEC_BUILTIN_VADDUHS
,
890 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
891 { ALTIVEC_BUILTIN_VEC_VADDSBS
, ALTIVEC_BUILTIN_VADDSBS
,
892 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
893 { ALTIVEC_BUILTIN_VEC_VADDSBS
, ALTIVEC_BUILTIN_VADDSBS
,
894 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
895 { ALTIVEC_BUILTIN_VEC_VADDSBS
, ALTIVEC_BUILTIN_VADDSBS
,
896 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
897 { ALTIVEC_BUILTIN_VEC_VADDUBS
, ALTIVEC_BUILTIN_VADDUBS
,
898 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
899 { ALTIVEC_BUILTIN_VEC_VADDUBS
, ALTIVEC_BUILTIN_VADDUBS
,
900 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
901 { ALTIVEC_BUILTIN_VEC_VADDUBS
, ALTIVEC_BUILTIN_VADDUBS
,
902 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
903 { ALTIVEC_BUILTIN_VEC_VADDUBS
, ALTIVEC_BUILTIN_VADDUBS
,
904 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
905 { ALTIVEC_BUILTIN_VEC_VADDUBS
, ALTIVEC_BUILTIN_VADDUBS
,
906 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
907 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
908 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
909 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
910 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, 0 },
911 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
912 RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, 0 },
913 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
914 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
915 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
916 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, 0 },
917 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
918 RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, 0 },
919 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
920 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
921 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
922 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
923 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
924 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
925 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
926 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
927 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
928 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
929 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
930 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
931 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
932 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
933 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
934 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
935 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
936 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
937 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
938 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
939 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
940 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
941 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
942 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
943 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
944 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
945 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
946 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
947 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
948 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
949 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
950 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
951 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
952 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
953 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
954 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
955 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
956 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
957 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
958 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
959 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
960 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
961 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
962 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
963 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
964 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
965 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
966 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
967 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
968 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
969 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
970 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
971 { ALTIVEC_BUILTIN_VEC_AND
, ALTIVEC_BUILTIN_VAND
,
972 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
973 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
974 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
975 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
976 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, 0 },
977 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
978 RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, 0 },
979 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
980 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
981 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
982 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, 0 },
983 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
984 RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, 0 },
985 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
986 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
987 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
988 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
989 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
990 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
991 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
992 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
993 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
994 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
995 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
996 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
997 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
998 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
999 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1000 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
1001 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1002 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1003 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1004 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1005 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1006 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1007 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1008 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1009 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1010 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1011 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1012 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1013 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1014 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
1015 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1016 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1017 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1018 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1019 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1020 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1021 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1022 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1023 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1024 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1025 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1026 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
1027 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1028 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1029 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1030 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1031 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1032 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1033 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1034 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1035 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1036 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1037 { ALTIVEC_BUILTIN_VEC_ANDC
, ALTIVEC_BUILTIN_VANDC
,
1038 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1039 { ALTIVEC_BUILTIN_VEC_AVG
, ALTIVEC_BUILTIN_VAVGUB
,
1040 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1041 { ALTIVEC_BUILTIN_VEC_AVG
, ALTIVEC_BUILTIN_VAVGSB
,
1042 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1043 { ALTIVEC_BUILTIN_VEC_AVG
, ALTIVEC_BUILTIN_VAVGUH
,
1044 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1045 { ALTIVEC_BUILTIN_VEC_AVG
, ALTIVEC_BUILTIN_VAVGSH
,
1046 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1047 { ALTIVEC_BUILTIN_VEC_AVG
, ALTIVEC_BUILTIN_VAVGUW
,
1048 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1049 { ALTIVEC_BUILTIN_VEC_AVG
, ALTIVEC_BUILTIN_VAVGSW
,
1050 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1051 { ALTIVEC_BUILTIN_VEC_VAVGSW
, ALTIVEC_BUILTIN_VAVGSW
,
1052 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1053 { ALTIVEC_BUILTIN_VEC_VAVGUW
, ALTIVEC_BUILTIN_VAVGUW
,
1054 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1055 { ALTIVEC_BUILTIN_VEC_VAVGSH
, ALTIVEC_BUILTIN_VAVGSH
,
1056 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1057 { ALTIVEC_BUILTIN_VEC_VAVGUH
, ALTIVEC_BUILTIN_VAVGUH
,
1058 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1059 { ALTIVEC_BUILTIN_VEC_VAVGSB
, ALTIVEC_BUILTIN_VAVGSB
,
1060 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1061 { ALTIVEC_BUILTIN_VEC_VAVGUB
, ALTIVEC_BUILTIN_VAVGUB
,
1062 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1063 { ALTIVEC_BUILTIN_VEC_CMPB
, ALTIVEC_BUILTIN_VCMPBFP
,
1064 RS6000_BTI_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1065 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUB
,
1066 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1067 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUB
,
1068 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1069 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUH
,
1070 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1071 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUH
,
1072 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1073 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUW
,
1074 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1075 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQUW
,
1076 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1077 { ALTIVEC_BUILTIN_VEC_CMPEQ
, P8V_BUILTIN_VCMPEQUD
,
1078 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1079 { ALTIVEC_BUILTIN_VEC_CMPEQ
, P8V_BUILTIN_VCMPEQUD
,
1080 RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1081 { ALTIVEC_BUILTIN_VEC_CMPEQ
, ALTIVEC_BUILTIN_VCMPEQFP
,
1082 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1083 { ALTIVEC_BUILTIN_VEC_CMPEQ
, VSX_BUILTIN_XVCMPEQDP
,
1084 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1085 { ALTIVEC_BUILTIN_VEC_VCMPEQFP
, ALTIVEC_BUILTIN_VCMPEQFP
,
1086 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1088 { ALTIVEC_BUILTIN_VEC_VCMPEQUW
, ALTIVEC_BUILTIN_VCMPEQUW
,
1089 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1090 { ALTIVEC_BUILTIN_VEC_VCMPEQUW
, ALTIVEC_BUILTIN_VCMPEQUW
,
1091 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1093 { ALTIVEC_BUILTIN_VEC_VCMPEQUH
, ALTIVEC_BUILTIN_VCMPEQUH
,
1094 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1095 { ALTIVEC_BUILTIN_VEC_VCMPEQUH
, ALTIVEC_BUILTIN_VCMPEQUH
,
1096 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1098 { ALTIVEC_BUILTIN_VEC_VCMPEQUB
, ALTIVEC_BUILTIN_VCMPEQUB
,
1099 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1100 { ALTIVEC_BUILTIN_VEC_VCMPEQUB
, ALTIVEC_BUILTIN_VCMPEQUB
,
1101 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1103 { ALTIVEC_BUILTIN_VEC_CMPGE
, ALTIVEC_BUILTIN_VCMPGEFP
,
1104 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1105 { ALTIVEC_BUILTIN_VEC_CMPGE
, VSX_BUILTIN_XVCMPGEDP
,
1106 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1107 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTUB
,
1108 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1109 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTSB
,
1110 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1111 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTUH
,
1112 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1113 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTSH
,
1114 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1115 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTUW
,
1116 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1117 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTSW
,
1118 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1119 { ALTIVEC_BUILTIN_VEC_CMPGT
, P8V_BUILTIN_VCMPGTUD
,
1120 RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1121 { ALTIVEC_BUILTIN_VEC_CMPGT
, P8V_BUILTIN_VCMPGTSD
,
1122 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1123 { ALTIVEC_BUILTIN_VEC_CMPGT
, ALTIVEC_BUILTIN_VCMPGTFP
,
1124 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1125 { ALTIVEC_BUILTIN_VEC_CMPGT
, VSX_BUILTIN_XVCMPGTDP
,
1126 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1127 { ALTIVEC_BUILTIN_VEC_VCMPGTFP
, ALTIVEC_BUILTIN_VCMPGTFP
,
1128 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1129 { ALTIVEC_BUILTIN_VEC_VCMPGTSW
, ALTIVEC_BUILTIN_VCMPGTSW
,
1130 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1131 { ALTIVEC_BUILTIN_VEC_VCMPGTSW
, ALTIVEC_BUILTIN_VCMPGTSW
,
1132 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1133 { ALTIVEC_BUILTIN_VEC_VCMPGTUW
, ALTIVEC_BUILTIN_VCMPGTUW
,
1134 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1135 { ALTIVEC_BUILTIN_VEC_VCMPGTUW
, ALTIVEC_BUILTIN_VCMPGTUW
,
1136 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1137 { ALTIVEC_BUILTIN_VEC_VCMPGTSH
, ALTIVEC_BUILTIN_VCMPGTSH
,
1138 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1139 { ALTIVEC_BUILTIN_VEC_VCMPGTSH
, ALTIVEC_BUILTIN_VCMPGTSH
,
1140 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1141 { ALTIVEC_BUILTIN_VEC_VCMPGTUH
, ALTIVEC_BUILTIN_VCMPGTUH
,
1142 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1143 { ALTIVEC_BUILTIN_VEC_VCMPGTUH
, ALTIVEC_BUILTIN_VCMPGTUH
,
1144 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1145 { ALTIVEC_BUILTIN_VEC_VCMPGTSB
, ALTIVEC_BUILTIN_VCMPGTSB
,
1146 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1147 { ALTIVEC_BUILTIN_VEC_VCMPGTSB
, ALTIVEC_BUILTIN_VCMPGTSB
,
1148 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1149 { ALTIVEC_BUILTIN_VEC_VCMPGTUB
, ALTIVEC_BUILTIN_VCMPGTUB
,
1150 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1151 { ALTIVEC_BUILTIN_VEC_VCMPGTUB
, ALTIVEC_BUILTIN_VCMPGTUB
,
1152 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1153 { ALTIVEC_BUILTIN_VEC_CMPLE
, ALTIVEC_BUILTIN_VCMPGEFP
,
1154 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1155 { ALTIVEC_BUILTIN_VEC_CMPLE
, VSX_BUILTIN_XVCMPGEDP
,
1156 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1157 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTUB
,
1158 RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1159 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTSB
,
1160 RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1161 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTUH
,
1162 RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1163 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTSH
,
1164 RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1165 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTUW
,
1166 RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1167 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTSW
,
1168 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1169 { ALTIVEC_BUILTIN_VEC_CMPLT
, P8V_BUILTIN_VCMPGTUD
,
1170 RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1171 { ALTIVEC_BUILTIN_VEC_CMPLT
, P8V_BUILTIN_VCMPGTSD
,
1172 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1173 { ALTIVEC_BUILTIN_VEC_CMPLT
, ALTIVEC_BUILTIN_VCMPGTFP
,
1174 RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1175 { ALTIVEC_BUILTIN_VEC_CMPLT
, VSX_BUILTIN_XVCMPGTDP
,
1176 RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1177 { ALTIVEC_BUILTIN_VEC_COPYSIGN
, VSX_BUILTIN_CPSGNDP
,
1178 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1179 { ALTIVEC_BUILTIN_VEC_COPYSIGN
, ALTIVEC_BUILTIN_COPYSIGN_V4SF
,
1180 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1181 { ALTIVEC_BUILTIN_VEC_CTF
, ALTIVEC_BUILTIN_VCFUX
,
1182 RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, 0 },
1183 { ALTIVEC_BUILTIN_VEC_CTF
, ALTIVEC_BUILTIN_VCFSX
,
1184 RS6000_BTI_V4SF
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, 0 },
1185 { ALTIVEC_BUILTIN_VEC_CTF
, VSX_BUILTIN_XVCVSXDDP_SCALE
,
1186 RS6000_BTI_V2DF
, RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, 0},
1187 { ALTIVEC_BUILTIN_VEC_CTF
, VSX_BUILTIN_XVCVUXDDP_SCALE
,
1188 RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
, 0},
1189 { ALTIVEC_BUILTIN_VEC_VCFSX
, ALTIVEC_BUILTIN_VCFSX
,
1190 RS6000_BTI_V4SF
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, 0 },
1191 { ALTIVEC_BUILTIN_VEC_VCFUX
, ALTIVEC_BUILTIN_VCFUX
,
1192 RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, 0 },
1193 { ALTIVEC_BUILTIN_VEC_CTS
, ALTIVEC_BUILTIN_VCTSXS
,
1194 RS6000_BTI_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, 0 },
1195 { ALTIVEC_BUILTIN_VEC_CTS
, VSX_BUILTIN_XVCVDPSXDS_SCALE
,
1196 RS6000_BTI_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, 0 },
1197 { ALTIVEC_BUILTIN_VEC_CTU
, ALTIVEC_BUILTIN_VCTUXS
,
1198 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, 0 },
1199 { ALTIVEC_BUILTIN_VEC_CTU
, VSX_BUILTIN_XVCVDPUXDS_SCALE
,
1200 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, 0 },
1201 { VSX_BUILTIN_VEC_DIV
, VSX_BUILTIN_XVDIVSP
,
1202 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1203 { VSX_BUILTIN_VEC_DIV
, VSX_BUILTIN_XVDIVDP
,
1204 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1205 { VSX_BUILTIN_VEC_DIV
, VSX_BUILTIN_DIV_V2DI
,
1206 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1207 { VSX_BUILTIN_VEC_DIV
, VSX_BUILTIN_UDIV_V2DI
,
1208 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1209 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V2DF
,
1210 RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
, 0 },
1211 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V2DI
,
1212 RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
, 0 },
1213 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V2DI
,
1214 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
1215 ~RS6000_BTI_unsigned_V2DI
, 0 },
1216 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V2DI
,
1217 RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V2DI
, 0 },
1218 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SF
,
1219 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
1220 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SF
,
1221 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1222 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1223 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
1224 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1225 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
1226 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1227 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1228 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1229 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
1230 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1231 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
1232 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1233 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1234 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V4SI
,
1235 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_long
, 0 },
1236 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V8HI
,
1237 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
1238 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V8HI
,
1239 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
1240 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V8HI
,
1241 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
1242 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V8HI
,
1243 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1244 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V8HI
,
1245 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
1246 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V8HI
,
1247 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1248 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V16QI
,
1249 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
1250 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V16QI
,
1251 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
1252 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V16QI
,
1253 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1254 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V16QI
,
1255 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
, 0 },
1256 { ALTIVEC_BUILTIN_VEC_LD
, ALTIVEC_BUILTIN_LVX_V16QI
,
1257 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1258 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEBX
,
1259 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1260 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEBX
,
1261 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1262 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEHX
,
1263 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1264 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEHX
,
1265 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1266 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEWX
,
1267 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1268 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEWX
,
1269 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1270 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEWX
,
1271 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1272 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEWX
,
1273 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
1274 { ALTIVEC_BUILTIN_VEC_LDE
, ALTIVEC_BUILTIN_LVEWX
,
1275 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_long
, 0 },
1276 { ALTIVEC_BUILTIN_VEC_LVEWX
, ALTIVEC_BUILTIN_LVEWX
,
1277 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1278 { ALTIVEC_BUILTIN_VEC_LVEWX
, ALTIVEC_BUILTIN_LVEWX
,
1279 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1280 { ALTIVEC_BUILTIN_VEC_LVEWX
, ALTIVEC_BUILTIN_LVEWX
,
1281 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1282 { ALTIVEC_BUILTIN_VEC_LVEWX
, ALTIVEC_BUILTIN_LVEWX
,
1283 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
1284 { ALTIVEC_BUILTIN_VEC_LVEWX
, ALTIVEC_BUILTIN_LVEWX
,
1285 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_long
, 0 },
1286 { ALTIVEC_BUILTIN_VEC_LVEHX
, ALTIVEC_BUILTIN_LVEHX
,
1287 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1288 { ALTIVEC_BUILTIN_VEC_LVEHX
, ALTIVEC_BUILTIN_LVEHX
,
1289 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1290 { ALTIVEC_BUILTIN_VEC_LVEBX
, ALTIVEC_BUILTIN_LVEBX
,
1291 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1292 { ALTIVEC_BUILTIN_VEC_LVEBX
, ALTIVEC_BUILTIN_LVEBX
,
1293 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1294 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SF
,
1295 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
1296 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SF
,
1297 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1298 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1299 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
1300 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1301 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
1302 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1303 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1304 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1305 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
1306 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1307 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
1308 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1309 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1310 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V4SI
,
1311 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_long
, 0 },
1312 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V8HI
,
1313 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
1314 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V8HI
,
1315 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
1316 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V8HI
,
1317 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
1318 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V8HI
,
1319 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1320 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V8HI
,
1321 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
1322 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V8HI
,
1323 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1324 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V16QI
,
1325 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
1326 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V16QI
,
1327 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
1328 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V16QI
,
1329 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1330 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V16QI
,
1331 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
1332 ~RS6000_BTI_unsigned_V16QI
, 0 },
1333 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V16QI
,
1334 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1335 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V2DF
,
1336 RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
, 0 },
1337 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V2DI
,
1338 RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
, 0 },
1339 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V2DI
,
1340 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
1341 ~RS6000_BTI_unsigned_V2DI
, 0 },
1342 { ALTIVEC_BUILTIN_VEC_LDL
, ALTIVEC_BUILTIN_LVXL_V2DI
,
1343 RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V2DI
, 0 },
1344 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1345 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1346 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1347 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1348 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1349 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1350 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1351 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1352 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1353 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1354 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1355 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1356 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1357 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_long
, 0 },
1358 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1359 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
1360 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1361 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1362 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1363 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_double
, 0 },
1364 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1365 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTDI
, 0 },
1366 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1367 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTDI
, 0 },
1368 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1369 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long_long
, 0 },
1370 { ALTIVEC_BUILTIN_VEC_LVSL
, ALTIVEC_BUILTIN_LVSL
,
1371 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
1372 ~RS6000_BTI_unsigned_long_long
, 0 },
1373 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1374 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1375 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1376 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1377 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1378 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1379 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1380 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1381 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1382 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1383 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1384 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1385 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1386 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_long
, 0 },
1387 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1388 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
1389 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1390 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1391 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1392 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_double
, 0 },
1393 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1394 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTDI
, 0 },
1395 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1396 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTDI
, 0 },
1397 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1398 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long_long
, 0 },
1399 { ALTIVEC_BUILTIN_VEC_LVSR
, ALTIVEC_BUILTIN_LVSR
,
1400 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
1401 ~RS6000_BTI_unsigned_long_long
, 0 },
1402 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1403 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
1404 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1405 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1406 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1407 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
1408 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1409 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
1410 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1411 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1412 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1413 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
1414 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1415 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1416 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1417 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
1418 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1419 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
1420 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1421 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
1422 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1423 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1424 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1425 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
1426 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1427 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1428 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1429 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
1430 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1431 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
1432 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1433 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1434 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1435 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
, 0 },
1436 { ALTIVEC_BUILTIN_VEC_LVLX
, ALTIVEC_BUILTIN_LVLX
,
1437 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1438 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1439 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
1440 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1441 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1442 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1443 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
1444 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1445 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
1446 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1447 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1448 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1449 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
1450 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1451 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1452 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1453 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
1454 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1455 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
1456 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1457 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
1458 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1459 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1460 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1461 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
1462 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1463 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1464 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1465 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
1466 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1467 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
1468 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1469 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1470 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1471 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
, 0 },
1472 { ALTIVEC_BUILTIN_VEC_LVLXL
, ALTIVEC_BUILTIN_LVLXL
,
1473 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1474 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1475 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
1476 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1477 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1478 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1479 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
1480 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1481 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
1482 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1483 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1484 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1485 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
1486 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1487 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1488 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1489 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
1490 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1491 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
1492 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1493 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
1494 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1495 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1496 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1497 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
1498 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1499 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1500 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1501 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
1502 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1503 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
1504 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1505 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1506 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1507 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
, 0 },
1508 { ALTIVEC_BUILTIN_VEC_LVRX
, ALTIVEC_BUILTIN_LVRX
,
1509 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1510 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1511 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
1512 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1513 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
1514 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1515 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
1516 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1517 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
1518 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1519 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
1520 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1521 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
, 0 },
1522 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1523 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
1524 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1525 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
1526 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1527 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
1528 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1529 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
1530 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1531 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
1532 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1533 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
, 0 },
1534 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1535 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
1536 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1537 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
1538 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1539 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
1540 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1541 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
1542 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1543 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
, 0 },
1544 { ALTIVEC_BUILTIN_VEC_LVRXL
, ALTIVEC_BUILTIN_LVRXL
,
1545 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
1546 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUB
,
1547 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1548 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUB
,
1549 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1550 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUB
,
1551 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1552 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSB
,
1553 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
1554 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSB
,
1555 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1556 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSB
,
1557 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1558 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUH
,
1559 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1560 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUH
,
1561 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1562 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUH
,
1563 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1564 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSH
,
1565 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
1566 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSH
,
1567 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1568 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSH
,
1569 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1570 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUW
,
1571 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1572 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUW
,
1573 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1574 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXUW
,
1575 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1576 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSW
,
1577 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
1578 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSW
,
1579 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1580 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXSW
,
1581 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1582 { ALTIVEC_BUILTIN_VEC_MAX
, P8V_BUILTIN_VMAXUD
,
1583 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1584 { ALTIVEC_BUILTIN_VEC_MAX
, P8V_BUILTIN_VMAXUD
,
1585 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1586 { ALTIVEC_BUILTIN_VEC_MAX
, P8V_BUILTIN_VMAXUD
,
1587 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1588 { ALTIVEC_BUILTIN_VEC_MAX
, P8V_BUILTIN_VMAXSD
,
1589 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
1590 { ALTIVEC_BUILTIN_VEC_MAX
, P8V_BUILTIN_VMAXSD
,
1591 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1592 { ALTIVEC_BUILTIN_VEC_MAX
, P8V_BUILTIN_VMAXSD
,
1593 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1594 { ALTIVEC_BUILTIN_VEC_MAX
, ALTIVEC_BUILTIN_VMAXFP
,
1595 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1596 { ALTIVEC_BUILTIN_VEC_MAX
, VSX_BUILTIN_XVMAXDP
,
1597 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1598 { ALTIVEC_BUILTIN_VEC_VMAXFP
, ALTIVEC_BUILTIN_VMAXFP
,
1599 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1600 { ALTIVEC_BUILTIN_VEC_VMAXSW
, ALTIVEC_BUILTIN_VMAXSW
,
1601 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1602 { ALTIVEC_BUILTIN_VEC_VMAXSW
, ALTIVEC_BUILTIN_VMAXSW
,
1603 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
1604 { ALTIVEC_BUILTIN_VEC_VMAXSW
, ALTIVEC_BUILTIN_VMAXSW
,
1605 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1606 { ALTIVEC_BUILTIN_VEC_VMAXUW
, ALTIVEC_BUILTIN_VMAXUW
,
1607 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1608 { ALTIVEC_BUILTIN_VEC_VMAXUW
, ALTIVEC_BUILTIN_VMAXUW
,
1609 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0 },
1610 { ALTIVEC_BUILTIN_VEC_VMAXUW
, ALTIVEC_BUILTIN_VMAXUW
,
1611 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1612 { ALTIVEC_BUILTIN_VEC_VMAXUW
, ALTIVEC_BUILTIN_VMAXUW
,
1613 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1614 { ALTIVEC_BUILTIN_VEC_VMAXUW
, ALTIVEC_BUILTIN_VMAXUW
,
1615 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1616 { ALTIVEC_BUILTIN_VEC_VMAXSH
, ALTIVEC_BUILTIN_VMAXSH
,
1617 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1618 { ALTIVEC_BUILTIN_VEC_VMAXSH
, ALTIVEC_BUILTIN_VMAXSH
,
1619 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
1620 { ALTIVEC_BUILTIN_VEC_VMAXSH
, ALTIVEC_BUILTIN_VMAXSH
,
1621 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1622 { ALTIVEC_BUILTIN_VEC_VMAXUH
, ALTIVEC_BUILTIN_VMAXUH
,
1623 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1624 { ALTIVEC_BUILTIN_VEC_VMAXUH
, ALTIVEC_BUILTIN_VMAXUH
,
1625 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, 0 },
1626 { ALTIVEC_BUILTIN_VEC_VMAXUH
, ALTIVEC_BUILTIN_VMAXUH
,
1627 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1628 { ALTIVEC_BUILTIN_VEC_VMAXUH
, ALTIVEC_BUILTIN_VMAXUH
,
1629 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1630 { ALTIVEC_BUILTIN_VEC_VMAXUH
, ALTIVEC_BUILTIN_VMAXUH
,
1631 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1632 { ALTIVEC_BUILTIN_VEC_VMAXSB
, ALTIVEC_BUILTIN_VMAXSB
,
1633 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1634 { ALTIVEC_BUILTIN_VEC_VMAXSB
, ALTIVEC_BUILTIN_VMAXSB
,
1635 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
1636 { ALTIVEC_BUILTIN_VEC_VMAXSB
, ALTIVEC_BUILTIN_VMAXSB
,
1637 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1638 { ALTIVEC_BUILTIN_VEC_VMAXUB
, ALTIVEC_BUILTIN_VMAXUB
,
1639 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1640 { ALTIVEC_BUILTIN_VEC_VMAXUB
, ALTIVEC_BUILTIN_VMAXUB
,
1641 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
1642 { ALTIVEC_BUILTIN_VEC_VMAXUB
, ALTIVEC_BUILTIN_VMAXUB
,
1643 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1644 { ALTIVEC_BUILTIN_VEC_VMAXUB
, ALTIVEC_BUILTIN_VMAXUB
,
1645 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1646 { ALTIVEC_BUILTIN_VEC_VMAXUB
, ALTIVEC_BUILTIN_VMAXUB
,
1647 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1648 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHB
,
1649 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1650 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHB
,
1651 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1652 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHB
,
1653 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1654 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHH
,
1655 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1656 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHH
,
1657 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, 0 },
1658 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHH
,
1659 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1660 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHH
,
1661 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1662 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHW
,
1663 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1664 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHW
,
1665 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1666 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHW
,
1667 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1668 { ALTIVEC_BUILTIN_VEC_MERGEH
, ALTIVEC_BUILTIN_VMRGHW
,
1669 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1670 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DF
,
1671 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1672 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DI
,
1673 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1674 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DI
,
1675 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1676 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DI
,
1677 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
1678 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DI
,
1679 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1680 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DI
,
1681 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1682 { ALTIVEC_BUILTIN_VEC_MERGEH
, VSX_BUILTIN_VEC_MERGEH_V2DI
,
1683 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1684 { ALTIVEC_BUILTIN_VEC_VMRGHW
, ALTIVEC_BUILTIN_VMRGHW
,
1685 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1686 { ALTIVEC_BUILTIN_VEC_VMRGHW
, ALTIVEC_BUILTIN_VMRGHW
,
1687 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1688 { ALTIVEC_BUILTIN_VEC_VMRGHW
, ALTIVEC_BUILTIN_VMRGHW
,
1689 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1690 { ALTIVEC_BUILTIN_VEC_VMRGHW
, ALTIVEC_BUILTIN_VMRGHW
,
1691 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1692 { ALTIVEC_BUILTIN_VEC_VMRGHH
, ALTIVEC_BUILTIN_VMRGHH
,
1693 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1694 { ALTIVEC_BUILTIN_VEC_VMRGHH
, ALTIVEC_BUILTIN_VMRGHH
,
1695 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, 0 },
1696 { ALTIVEC_BUILTIN_VEC_VMRGHH
, ALTIVEC_BUILTIN_VMRGHH
,
1697 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1698 { ALTIVEC_BUILTIN_VEC_VMRGHH
, ALTIVEC_BUILTIN_VMRGHH
,
1699 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1700 { ALTIVEC_BUILTIN_VEC_VMRGHB
, ALTIVEC_BUILTIN_VMRGHB
,
1701 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1702 { ALTIVEC_BUILTIN_VEC_VMRGHB
, ALTIVEC_BUILTIN_VMRGHB
,
1703 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1704 { ALTIVEC_BUILTIN_VEC_VMRGHB
, ALTIVEC_BUILTIN_VMRGHB
,
1705 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1706 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLB
,
1707 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1708 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLB
,
1709 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1710 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLB
,
1711 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1712 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLH
,
1713 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1714 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLH
,
1715 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, 0 },
1716 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLH
,
1717 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1718 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLH
,
1719 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1720 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLW
,
1721 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1722 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLW
,
1723 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1724 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLW
,
1725 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1726 { ALTIVEC_BUILTIN_VEC_MERGEL
, ALTIVEC_BUILTIN_VMRGLW
,
1727 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1728 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DF
,
1729 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1730 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DI
,
1731 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1732 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DI
,
1733 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1734 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DI
,
1735 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
1736 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DI
,
1737 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1738 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DI
,
1739 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1740 { ALTIVEC_BUILTIN_VEC_MERGEL
, VSX_BUILTIN_VEC_MERGEL_V2DI
,
1741 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1742 { ALTIVEC_BUILTIN_VEC_VMRGLW
, ALTIVEC_BUILTIN_VMRGLW
,
1743 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1744 { ALTIVEC_BUILTIN_VEC_VMRGLW
, ALTIVEC_BUILTIN_VMRGLW
,
1745 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1746 { ALTIVEC_BUILTIN_VEC_VMRGLW
, ALTIVEC_BUILTIN_VMRGLW
,
1747 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1748 { ALTIVEC_BUILTIN_VEC_VMRGLW
, ALTIVEC_BUILTIN_VMRGLW
,
1749 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1750 { ALTIVEC_BUILTIN_VEC_VMRGLH
, ALTIVEC_BUILTIN_VMRGLH
,
1751 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1752 { ALTIVEC_BUILTIN_VEC_VMRGLH
, ALTIVEC_BUILTIN_VMRGLH
,
1753 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, 0 },
1754 { ALTIVEC_BUILTIN_VEC_VMRGLH
, ALTIVEC_BUILTIN_VMRGLH
,
1755 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1756 { ALTIVEC_BUILTIN_VEC_VMRGLH
, ALTIVEC_BUILTIN_VMRGLH
,
1757 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1758 { ALTIVEC_BUILTIN_VEC_VMRGLB
, ALTIVEC_BUILTIN_VMRGLB
,
1759 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1760 { ALTIVEC_BUILTIN_VEC_VMRGLB
, ALTIVEC_BUILTIN_VMRGLB
,
1761 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1762 { ALTIVEC_BUILTIN_VEC_VMRGLB
, ALTIVEC_BUILTIN_VMRGLB
,
1763 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1764 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUB
,
1765 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1766 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUB
,
1767 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1768 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUB
,
1769 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1770 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSB
,
1771 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
1772 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSB
,
1773 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1774 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSB
,
1775 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1776 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUH
,
1777 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1778 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUH
,
1779 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1780 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUH
,
1781 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1782 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSH
,
1783 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
1784 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSH
,
1785 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1786 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSH
,
1787 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1788 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUW
,
1789 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1790 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUW
,
1791 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1792 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINUW
,
1793 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1794 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSW
,
1795 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
1796 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSW
,
1797 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1798 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINSW
,
1799 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1800 { ALTIVEC_BUILTIN_VEC_MIN
, P8V_BUILTIN_VMINUD
,
1801 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1802 { ALTIVEC_BUILTIN_VEC_MIN
, P8V_BUILTIN_VMINUD
,
1803 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1804 { ALTIVEC_BUILTIN_VEC_MIN
, P8V_BUILTIN_VMINUD
,
1805 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1806 { ALTIVEC_BUILTIN_VEC_MIN
, P8V_BUILTIN_VMINSD
,
1807 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
1808 { ALTIVEC_BUILTIN_VEC_MIN
, P8V_BUILTIN_VMINSD
,
1809 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1810 { ALTIVEC_BUILTIN_VEC_MIN
, P8V_BUILTIN_VMINSD
,
1811 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1812 { ALTIVEC_BUILTIN_VEC_MIN
, ALTIVEC_BUILTIN_VMINFP
,
1813 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1814 { ALTIVEC_BUILTIN_VEC_MIN
, VSX_BUILTIN_XVMINDP
,
1815 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1816 { ALTIVEC_BUILTIN_VEC_VMINFP
, ALTIVEC_BUILTIN_VMINFP
,
1817 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1818 { ALTIVEC_BUILTIN_VEC_VMINSW
, ALTIVEC_BUILTIN_VMINSW
,
1819 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1820 { ALTIVEC_BUILTIN_VEC_VMINSW
, ALTIVEC_BUILTIN_VMINSW
,
1821 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
1822 { ALTIVEC_BUILTIN_VEC_VMINSW
, ALTIVEC_BUILTIN_VMINSW
,
1823 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1824 { ALTIVEC_BUILTIN_VEC_VMINUW
, ALTIVEC_BUILTIN_VMINUW
,
1825 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1826 { ALTIVEC_BUILTIN_VEC_VMINUW
, ALTIVEC_BUILTIN_VMINUW
,
1827 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0 },
1828 { ALTIVEC_BUILTIN_VEC_VMINUW
, ALTIVEC_BUILTIN_VMINUW
,
1829 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1830 { ALTIVEC_BUILTIN_VEC_VMINUW
, ALTIVEC_BUILTIN_VMINUW
,
1831 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1832 { ALTIVEC_BUILTIN_VEC_VMINUW
, ALTIVEC_BUILTIN_VMINUW
,
1833 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1834 { ALTIVEC_BUILTIN_VEC_VMINSH
, ALTIVEC_BUILTIN_VMINSH
,
1835 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1836 { ALTIVEC_BUILTIN_VEC_VMINSH
, ALTIVEC_BUILTIN_VMINSH
,
1837 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
1838 { ALTIVEC_BUILTIN_VEC_VMINSH
, ALTIVEC_BUILTIN_VMINSH
,
1839 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1840 { ALTIVEC_BUILTIN_VEC_VMINSB
, ALTIVEC_BUILTIN_VMINSB
,
1841 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
1842 { ALTIVEC_BUILTIN_VEC_VMINSB
, ALTIVEC_BUILTIN_VMINSB
,
1843 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1844 { ALTIVEC_BUILTIN_VEC_VMINSB
, ALTIVEC_BUILTIN_VMINSB
,
1845 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1846 { ALTIVEC_BUILTIN_VEC_VMINUH
, ALTIVEC_BUILTIN_VMINUH
,
1847 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1848 { ALTIVEC_BUILTIN_VEC_VMINUH
, ALTIVEC_BUILTIN_VMINUH
,
1849 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, 0 },
1850 { ALTIVEC_BUILTIN_VEC_VMINUH
, ALTIVEC_BUILTIN_VMINUH
,
1851 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1852 { ALTIVEC_BUILTIN_VEC_VMINUH
, ALTIVEC_BUILTIN_VMINUH
,
1853 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1854 { ALTIVEC_BUILTIN_VEC_VMINUH
, ALTIVEC_BUILTIN_VMINUH
,
1855 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1856 { ALTIVEC_BUILTIN_VEC_VMINUB
, ALTIVEC_BUILTIN_VMINUB
,
1857 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1858 { ALTIVEC_BUILTIN_VEC_VMINUB
, ALTIVEC_BUILTIN_VMINUB
,
1859 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
1860 { ALTIVEC_BUILTIN_VEC_VMINUB
, ALTIVEC_BUILTIN_VMINUB
,
1861 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1862 { ALTIVEC_BUILTIN_VEC_VMINUB
, ALTIVEC_BUILTIN_VMINUB
,
1863 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1864 { ALTIVEC_BUILTIN_VEC_VMINUB
, ALTIVEC_BUILTIN_VMINUB
,
1865 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1866 { VSX_BUILTIN_VEC_MUL
, VSX_BUILTIN_XVMULSP
,
1867 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1868 { VSX_BUILTIN_VEC_MUL
, VSX_BUILTIN_XVMULDP
,
1869 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1870 { VSX_BUILTIN_VEC_MUL
, VSX_BUILTIN_MUL_V2DI
,
1871 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1872 { VSX_BUILTIN_VEC_MUL
, VSX_BUILTIN_MUL_V2DI
,
1873 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1874 { ALTIVEC_BUILTIN_VEC_MULE
, ALTIVEC_BUILTIN_VMULEUB
,
1875 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1876 { ALTIVEC_BUILTIN_VEC_MULE
, ALTIVEC_BUILTIN_VMULESB
,
1877 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1878 { ALTIVEC_BUILTIN_VEC_MULE
, ALTIVEC_BUILTIN_VMULEUH
,
1879 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1880 { ALTIVEC_BUILTIN_VEC_MULE
, ALTIVEC_BUILTIN_VMULESH
,
1881 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1882 { ALTIVEC_BUILTIN_VEC_VMULEUB
, ALTIVEC_BUILTIN_VMULEUB
,
1883 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1884 { ALTIVEC_BUILTIN_VEC_VMULESB
, ALTIVEC_BUILTIN_VMULESB
,
1885 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1886 { ALTIVEC_BUILTIN_VEC_VMULEUH
, ALTIVEC_BUILTIN_VMULEUH
,
1887 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1888 { ALTIVEC_BUILTIN_VEC_VMULESH
, ALTIVEC_BUILTIN_VMULESH
,
1889 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1890 { ALTIVEC_BUILTIN_VEC_MULO
, ALTIVEC_BUILTIN_VMULOUB
,
1891 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1892 { ALTIVEC_BUILTIN_VEC_MULO
, ALTIVEC_BUILTIN_VMULOSB
,
1893 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1894 { ALTIVEC_BUILTIN_VEC_MULO
, ALTIVEC_BUILTIN_VMULOUH
,
1895 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1896 { ALTIVEC_BUILTIN_VEC_MULO
, ALTIVEC_BUILTIN_VMULOSH
,
1897 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1898 { ALTIVEC_BUILTIN_VEC_VMULOSH
, ALTIVEC_BUILTIN_VMULOSH
,
1899 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1900 { ALTIVEC_BUILTIN_VEC_VMULOUH
, ALTIVEC_BUILTIN_VMULOUH
,
1901 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1902 { ALTIVEC_BUILTIN_VEC_VMULOSB
, ALTIVEC_BUILTIN_VMULOSB
,
1903 RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1904 { ALTIVEC_BUILTIN_VEC_VMULOUB
, ALTIVEC_BUILTIN_VMULOUB
,
1905 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1906 { ALTIVEC_BUILTIN_VEC_NEARBYINT
, VSX_BUILTIN_XVRDPI
,
1907 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
1908 { ALTIVEC_BUILTIN_VEC_NEARBYINT
, VSX_BUILTIN_XVRSPI
,
1909 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
1910 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1911 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1912 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1913 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1914 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1915 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1916 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1917 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1918 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1919 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
1920 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1921 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1922 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1923 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1924 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1925 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1926 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1927 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1928 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1929 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1930 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1931 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1932 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1933 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1934 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1935 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1936 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1937 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1938 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1939 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
1940 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1941 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
1942 { ALTIVEC_BUILTIN_VEC_NOR
, ALTIVEC_BUILTIN_VNOR
,
1943 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
1944 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1945 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
1946 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1947 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, 0 },
1948 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1949 RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, 0 },
1950 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1951 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
1952 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1953 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, 0 },
1954 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1955 RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, 0 },
1956 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1957 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
1958 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1959 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1960 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1961 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
1962 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1963 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1964 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1965 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
1966 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1967 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
1968 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1969 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1970 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1971 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
1972 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1973 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1974 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1975 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
1976 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1977 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1978 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1979 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
1980 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1981 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
1982 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1983 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1984 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1985 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
1986 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1987 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1988 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1989 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
1990 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1991 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1992 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1993 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
1994 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1995 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
1996 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1997 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
1998 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
1999 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2000 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2001 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2002 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2003 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2004 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2005 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2006 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2007 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2008 { ALTIVEC_BUILTIN_VEC_OR
, ALTIVEC_BUILTIN_VOR
,
2009 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2010 { ALTIVEC_BUILTIN_VEC_PACK
, ALTIVEC_BUILTIN_VPKUHUM
,
2011 RS6000_BTI_V16QI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2012 { ALTIVEC_BUILTIN_VEC_PACK
, ALTIVEC_BUILTIN_VPKUHUM
,
2013 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2014 { ALTIVEC_BUILTIN_VEC_PACK
, ALTIVEC_BUILTIN_VPKUHUM
,
2015 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2016 { ALTIVEC_BUILTIN_VEC_PACK
, ALTIVEC_BUILTIN_VPKUWUM
,
2017 RS6000_BTI_V8HI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2018 { ALTIVEC_BUILTIN_VEC_PACK
, ALTIVEC_BUILTIN_VPKUWUM
,
2019 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2020 { ALTIVEC_BUILTIN_VEC_PACK
, ALTIVEC_BUILTIN_VPKUWUM
,
2021 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2022 { ALTIVEC_BUILTIN_VEC_PACK
, P8V_BUILTIN_VPKUDUM
,
2023 RS6000_BTI_V4SI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2024 { ALTIVEC_BUILTIN_VEC_PACK
, P8V_BUILTIN_VPKUDUM
,
2025 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2026 { ALTIVEC_BUILTIN_VEC_PACK
, P8V_BUILTIN_VPKUDUM
,
2027 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2028 { ALTIVEC_BUILTIN_VEC_VPKUWUM
, ALTIVEC_BUILTIN_VPKUWUM
,
2029 RS6000_BTI_V8HI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2030 { ALTIVEC_BUILTIN_VEC_VPKUWUM
, ALTIVEC_BUILTIN_VPKUWUM
,
2031 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2032 { ALTIVEC_BUILTIN_VEC_VPKUWUM
, ALTIVEC_BUILTIN_VPKUWUM
,
2033 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2034 { ALTIVEC_BUILTIN_VEC_VPKUHUM
, ALTIVEC_BUILTIN_VPKUHUM
,
2035 RS6000_BTI_V16QI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2036 { ALTIVEC_BUILTIN_VEC_VPKUHUM
, ALTIVEC_BUILTIN_VPKUHUM
,
2037 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2038 { ALTIVEC_BUILTIN_VEC_VPKUHUM
, ALTIVEC_BUILTIN_VPKUHUM
,
2039 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2040 { ALTIVEC_BUILTIN_VEC_PACKPX
, ALTIVEC_BUILTIN_VPKPX
,
2041 RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2042 { ALTIVEC_BUILTIN_VEC_PACKS
, ALTIVEC_BUILTIN_VPKUHUS
,
2043 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2044 { ALTIVEC_BUILTIN_VEC_PACKS
, ALTIVEC_BUILTIN_VPKSHSS
,
2045 RS6000_BTI_V16QI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2046 { ALTIVEC_BUILTIN_VEC_PACKS
, ALTIVEC_BUILTIN_VPKUWUS
,
2047 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2048 { ALTIVEC_BUILTIN_VEC_PACKS
, ALTIVEC_BUILTIN_VPKSWSS
,
2049 RS6000_BTI_V8HI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2050 { ALTIVEC_BUILTIN_VEC_VPKSWSS
, ALTIVEC_BUILTIN_VPKSWSS
,
2051 RS6000_BTI_V8HI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2052 { ALTIVEC_BUILTIN_VEC_VPKUWUS
, ALTIVEC_BUILTIN_VPKUWUS
,
2053 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2054 { ALTIVEC_BUILTIN_VEC_PACKS
, P8V_BUILTIN_VPKUDUS
,
2055 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2056 { ALTIVEC_BUILTIN_VEC_PACKS
, P8V_BUILTIN_VPKSDSS
,
2057 RS6000_BTI_V4SI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2058 { ALTIVEC_BUILTIN_VEC_VPKSHSS
, ALTIVEC_BUILTIN_VPKSHSS
,
2059 RS6000_BTI_V16QI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2060 { ALTIVEC_BUILTIN_VEC_VPKUHUS
, ALTIVEC_BUILTIN_VPKUHUS
,
2061 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2062 { ALTIVEC_BUILTIN_VEC_PACKSU
, ALTIVEC_BUILTIN_VPKUHUS
,
2063 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2064 { ALTIVEC_BUILTIN_VEC_PACKSU
, ALTIVEC_BUILTIN_VPKSHUS
,
2065 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2066 { ALTIVEC_BUILTIN_VEC_PACKSU
, ALTIVEC_BUILTIN_VPKUWUS
,
2067 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2068 { ALTIVEC_BUILTIN_VEC_PACKSU
, ALTIVEC_BUILTIN_VPKSWUS
,
2069 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2070 { ALTIVEC_BUILTIN_VEC_PACKSU
, P8V_BUILTIN_VPKSDUS
,
2071 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2072 { ALTIVEC_BUILTIN_VEC_PACKSU
, P8V_BUILTIN_VPKSDUS
,
2073 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2074 { ALTIVEC_BUILTIN_VEC_VPKSWUS
, ALTIVEC_BUILTIN_VPKSWUS
,
2075 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2076 { ALTIVEC_BUILTIN_VEC_VPKSHUS
, ALTIVEC_BUILTIN_VPKSHUS
,
2077 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2078 { ALTIVEC_BUILTIN_VEC_RINT
, VSX_BUILTIN_XVRDPIC
,
2079 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
2080 { ALTIVEC_BUILTIN_VEC_RINT
, VSX_BUILTIN_XVRSPIC
,
2081 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
2082 { ALTIVEC_BUILTIN_VEC_RL
, ALTIVEC_BUILTIN_VRLB
,
2083 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2084 { ALTIVEC_BUILTIN_VEC_RL
, ALTIVEC_BUILTIN_VRLB
,
2085 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2086 { ALTIVEC_BUILTIN_VEC_RL
, ALTIVEC_BUILTIN_VRLH
,
2087 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2088 { ALTIVEC_BUILTIN_VEC_RL
, ALTIVEC_BUILTIN_VRLH
,
2089 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2090 { ALTIVEC_BUILTIN_VEC_RL
, ALTIVEC_BUILTIN_VRLW
,
2091 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2092 { ALTIVEC_BUILTIN_VEC_RL
, ALTIVEC_BUILTIN_VRLW
,
2093 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2094 { ALTIVEC_BUILTIN_VEC_RL
, P8V_BUILTIN_VRLD
,
2095 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2096 { ALTIVEC_BUILTIN_VEC_RL
, P8V_BUILTIN_VRLD
,
2097 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2098 { ALTIVEC_BUILTIN_VEC_VRLW
, ALTIVEC_BUILTIN_VRLW
,
2099 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2100 { ALTIVEC_BUILTIN_VEC_VRLW
, ALTIVEC_BUILTIN_VRLW
,
2101 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2102 { ALTIVEC_BUILTIN_VEC_VRLH
, ALTIVEC_BUILTIN_VRLH
,
2103 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2104 { ALTIVEC_BUILTIN_VEC_VRLH
, ALTIVEC_BUILTIN_VRLH
,
2105 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2106 { ALTIVEC_BUILTIN_VEC_VRLB
, ALTIVEC_BUILTIN_VRLB
,
2107 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2108 { ALTIVEC_BUILTIN_VEC_VRLB
, ALTIVEC_BUILTIN_VRLB
,
2109 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2110 { ALTIVEC_BUILTIN_VEC_SL
, ALTIVEC_BUILTIN_VSLB
,
2111 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2112 { ALTIVEC_BUILTIN_VEC_SL
, ALTIVEC_BUILTIN_VSLB
,
2113 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2114 { ALTIVEC_BUILTIN_VEC_SL
, ALTIVEC_BUILTIN_VSLH
,
2115 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2116 { ALTIVEC_BUILTIN_VEC_SL
, ALTIVEC_BUILTIN_VSLH
,
2117 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2118 { ALTIVEC_BUILTIN_VEC_SL
, ALTIVEC_BUILTIN_VSLW
,
2119 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2120 { ALTIVEC_BUILTIN_VEC_SL
, ALTIVEC_BUILTIN_VSLW
,
2121 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2122 { ALTIVEC_BUILTIN_VEC_SL
, P8V_BUILTIN_VSLD
,
2123 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2124 { ALTIVEC_BUILTIN_VEC_SL
, P8V_BUILTIN_VSLD
,
2125 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2126 { ALTIVEC_BUILTIN_VEC_SQRT
, VSX_BUILTIN_XVSQRTDP
,
2127 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0, 0 },
2128 { ALTIVEC_BUILTIN_VEC_SQRT
, VSX_BUILTIN_XVSQRTSP
,
2129 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0, 0 },
2130 { ALTIVEC_BUILTIN_VEC_VSLW
, ALTIVEC_BUILTIN_VSLW
,
2131 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2132 { ALTIVEC_BUILTIN_VEC_VSLW
, ALTIVEC_BUILTIN_VSLW
,
2133 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2134 { ALTIVEC_BUILTIN_VEC_VSLH
, ALTIVEC_BUILTIN_VSLH
,
2135 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2136 { ALTIVEC_BUILTIN_VEC_VSLH
, ALTIVEC_BUILTIN_VSLH
,
2137 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2138 { ALTIVEC_BUILTIN_VEC_VSLB
, ALTIVEC_BUILTIN_VSLB
,
2139 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2140 { ALTIVEC_BUILTIN_VEC_VSLB
, ALTIVEC_BUILTIN_VSLB
,
2141 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2142 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2143 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2144 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2145 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V8HI
, 0 },
2146 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2147 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2148 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2149 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2150 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2151 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, 0 },
2152 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2153 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2154 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2155 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2156 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2157 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V8HI
, 0 },
2158 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2159 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2160 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2161 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2162 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2163 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2164 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2165 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2166 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2167 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2168 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2169 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2170 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2171 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2172 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2173 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2174 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2175 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2176 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2177 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2178 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2179 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2180 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2181 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2182 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2183 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2184 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2185 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2186 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2187 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V8HI
, 0 },
2188 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2189 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2190 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2191 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2192 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2193 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, 0 },
2194 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2195 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2196 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2197 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2198 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2199 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V8HI
, 0 },
2200 { ALTIVEC_BUILTIN_VEC_SLL
, ALTIVEC_BUILTIN_VSL
,
2201 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2202 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2203 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V16QI
, 0 },
2204 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2205 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V16QI
, 0 },
2206 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2207 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V16QI
, 0 },
2208 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2209 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2210 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2211 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V16QI
, 0 },
2212 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2213 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2214 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2215 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, 0 },
2216 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2217 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2218 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2219 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V16QI
, 0 },
2220 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2221 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2222 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2223 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_V16QI
, 0 },
2224 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2225 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2226 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2227 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2228 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2229 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2230 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2231 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
2232 { ALTIVEC_BUILTIN_VEC_SLO
, ALTIVEC_BUILTIN_VSLO
,
2233 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2234 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTB
,
2235 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, 0 },
2236 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTB
,
2237 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, 0 },
2238 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTB
,
2239 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, 0 },
2240 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTH
,
2241 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, 0 },
2242 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTH
,
2243 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, 0 },
2244 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTH
,
2245 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, 0 },
2246 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTH
,
2247 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, 0 },
2248 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTW
,
2249 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, 0 },
2250 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTW
,
2251 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, 0 },
2252 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTW
,
2253 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, 0 },
2254 { ALTIVEC_BUILTIN_VEC_SPLAT
, ALTIVEC_BUILTIN_VSPLTW
,
2255 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, 0 },
2256 { ALTIVEC_BUILTIN_VEC_SPLAT
, VSX_BUILTIN_XXSPLTD_V2DF
,
2257 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, 0 },
2258 { ALTIVEC_BUILTIN_VEC_SPLAT
, VSX_BUILTIN_XXSPLTD_V2DI
,
2259 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, 0 },
2260 { ALTIVEC_BUILTIN_VEC_SPLAT
, VSX_BUILTIN_XXSPLTD_V2DI
,
2261 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
, 0 },
2262 { ALTIVEC_BUILTIN_VEC_SPLAT
, VSX_BUILTIN_XXSPLTD_V2DI
,
2263 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
, 0 },
2264 { ALTIVEC_BUILTIN_VEC_VSPLTW
, ALTIVEC_BUILTIN_VSPLTW
,
2265 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, 0 },
2266 { ALTIVEC_BUILTIN_VEC_VSPLTW
, ALTIVEC_BUILTIN_VSPLTW
,
2267 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, 0 },
2268 { ALTIVEC_BUILTIN_VEC_VSPLTW
, ALTIVEC_BUILTIN_VSPLTW
,
2269 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, 0 },
2270 { ALTIVEC_BUILTIN_VEC_VSPLTW
, ALTIVEC_BUILTIN_VSPLTW
,
2271 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, 0 },
2272 { ALTIVEC_BUILTIN_VEC_VSPLTH
, ALTIVEC_BUILTIN_VSPLTH
,
2273 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, 0 },
2274 { ALTIVEC_BUILTIN_VEC_VSPLTH
, ALTIVEC_BUILTIN_VSPLTH
,
2275 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, 0 },
2276 { ALTIVEC_BUILTIN_VEC_VSPLTH
, ALTIVEC_BUILTIN_VSPLTH
,
2277 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, 0 },
2278 { ALTIVEC_BUILTIN_VEC_VSPLTH
, ALTIVEC_BUILTIN_VSPLTH
,
2279 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, 0 },
2280 { ALTIVEC_BUILTIN_VEC_VSPLTB
, ALTIVEC_BUILTIN_VSPLTB
,
2281 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, 0 },
2282 { ALTIVEC_BUILTIN_VEC_VSPLTB
, ALTIVEC_BUILTIN_VSPLTB
,
2283 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, 0 },
2284 { ALTIVEC_BUILTIN_VEC_VSPLTB
, ALTIVEC_BUILTIN_VSPLTB
,
2285 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, 0 },
2286 { ALTIVEC_BUILTIN_VEC_SR
, ALTIVEC_BUILTIN_VSRB
,
2287 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2288 { ALTIVEC_BUILTIN_VEC_SR
, ALTIVEC_BUILTIN_VSRB
,
2289 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2290 { ALTIVEC_BUILTIN_VEC_SR
, ALTIVEC_BUILTIN_VSRH
,
2291 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2292 { ALTIVEC_BUILTIN_VEC_SR
, ALTIVEC_BUILTIN_VSRH
,
2293 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2294 { ALTIVEC_BUILTIN_VEC_SR
, ALTIVEC_BUILTIN_VSRW
,
2295 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2296 { ALTIVEC_BUILTIN_VEC_SR
, ALTIVEC_BUILTIN_VSRW
,
2297 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2298 { ALTIVEC_BUILTIN_VEC_SR
, P8V_BUILTIN_VSRD
,
2299 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2300 { ALTIVEC_BUILTIN_VEC_SR
, P8V_BUILTIN_VSRD
,
2301 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2302 { ALTIVEC_BUILTIN_VEC_VSRW
, ALTIVEC_BUILTIN_VSRW
,
2303 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2304 { ALTIVEC_BUILTIN_VEC_VSRW
, ALTIVEC_BUILTIN_VSRW
,
2305 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2306 { ALTIVEC_BUILTIN_VEC_VSRH
, ALTIVEC_BUILTIN_VSRH
,
2307 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2308 { ALTIVEC_BUILTIN_VEC_VSRH
, ALTIVEC_BUILTIN_VSRH
,
2309 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2310 { ALTIVEC_BUILTIN_VEC_VSRB
, ALTIVEC_BUILTIN_VSRB
,
2311 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2312 { ALTIVEC_BUILTIN_VEC_VSRB
, ALTIVEC_BUILTIN_VSRB
,
2313 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2314 { ALTIVEC_BUILTIN_VEC_SRA
, ALTIVEC_BUILTIN_VSRAB
,
2315 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2316 { ALTIVEC_BUILTIN_VEC_SRA
, ALTIVEC_BUILTIN_VSRAB
,
2317 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2318 { ALTIVEC_BUILTIN_VEC_SRA
, ALTIVEC_BUILTIN_VSRAH
,
2319 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2320 { ALTIVEC_BUILTIN_VEC_SRA
, ALTIVEC_BUILTIN_VSRAH
,
2321 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2322 { ALTIVEC_BUILTIN_VEC_SRA
, ALTIVEC_BUILTIN_VSRAW
,
2323 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2324 { ALTIVEC_BUILTIN_VEC_SRA
, ALTIVEC_BUILTIN_VSRAW
,
2325 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2326 { ALTIVEC_BUILTIN_VEC_SRA
, P8V_BUILTIN_VSRAD
,
2327 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2328 { ALTIVEC_BUILTIN_VEC_SRA
, P8V_BUILTIN_VSRD
,
2329 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2330 { ALTIVEC_BUILTIN_VEC_VSRAW
, ALTIVEC_BUILTIN_VSRAW
,
2331 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2332 { ALTIVEC_BUILTIN_VEC_VSRAW
, ALTIVEC_BUILTIN_VSRAW
,
2333 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2334 { ALTIVEC_BUILTIN_VEC_VSRAH
, ALTIVEC_BUILTIN_VSRAH
,
2335 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2336 { ALTIVEC_BUILTIN_VEC_VSRAH
, ALTIVEC_BUILTIN_VSRAH
,
2337 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2338 { ALTIVEC_BUILTIN_VEC_VSRAB
, ALTIVEC_BUILTIN_VSRAB
,
2339 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2340 { ALTIVEC_BUILTIN_VEC_VSRAB
, ALTIVEC_BUILTIN_VSRAB
,
2341 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2342 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2343 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2344 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2345 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V8HI
, 0 },
2346 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2347 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2348 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2349 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2350 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2351 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, 0 },
2352 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2353 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2354 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2355 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2356 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2357 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V8HI
, 0 },
2358 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2359 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2360 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2361 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2362 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2363 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2364 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2365 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2366 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2367 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2368 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2369 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2370 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2371 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2372 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2373 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2374 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2375 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2376 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2377 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2378 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2379 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V4SI
, 0 },
2380 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2381 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2382 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2383 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2384 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2385 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2386 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2387 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V8HI
, 0 },
2388 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2389 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2390 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2391 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2392 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2393 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V8HI
, 0 },
2394 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2395 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2396 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2397 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2398 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2399 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V8HI
, 0 },
2400 { ALTIVEC_BUILTIN_VEC_SRL
, ALTIVEC_BUILTIN_VSR
,
2401 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2402 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2403 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V16QI
, 0 },
2404 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2405 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V16QI
, 0 },
2406 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2407 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V16QI
, 0 },
2408 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2409 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2410 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2411 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V16QI
, 0 },
2412 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2413 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, 0 },
2414 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2415 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V16QI
, 0 },
2416 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2417 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2418 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2419 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V16QI
, 0 },
2420 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2421 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2422 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2423 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_V16QI
, 0 },
2424 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2425 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V16QI
, 0 },
2426 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2427 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2428 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2429 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2430 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2431 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
2432 { ALTIVEC_BUILTIN_VEC_SRO
, ALTIVEC_BUILTIN_VSRO
,
2433 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2434 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUBM
,
2435 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
2436 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUBM
,
2437 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2438 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUBM
,
2439 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2440 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUBM
,
2441 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2442 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUBM
,
2443 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2444 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUBM
,
2445 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2446 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUHM
,
2447 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
2448 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUHM
,
2449 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2450 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUHM
,
2451 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2452 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUHM
,
2453 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2454 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUHM
,
2455 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2456 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUHM
,
2457 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2458 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUWM
,
2459 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
2460 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUWM
,
2461 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2462 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUWM
,
2463 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2464 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUWM
,
2465 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2466 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUWM
,
2467 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2468 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBUWM
,
2469 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2470 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUDM
,
2471 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
2472 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUDM
,
2473 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2474 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUDM
,
2475 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2476 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUDM
,
2477 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2478 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUDM
,
2479 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2480 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUDM
,
2481 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2482 { ALTIVEC_BUILTIN_VEC_SUB
, ALTIVEC_BUILTIN_VSUBFP
,
2483 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2484 { ALTIVEC_BUILTIN_VEC_SUB
, VSX_BUILTIN_XVSUBDP
,
2485 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
2486 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUQM
,
2487 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
2488 { ALTIVEC_BUILTIN_VEC_SUB
, P8V_BUILTIN_VSUBUQM
,
2489 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
2490 RS6000_BTI_unsigned_V1TI
, 0 },
2491 { ALTIVEC_BUILTIN_VEC_VSUBFP
, ALTIVEC_BUILTIN_VSUBFP
,
2492 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2493 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2494 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
2495 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2496 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2497 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2498 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2499 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2500 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2501 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2502 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2503 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2504 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2505 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2506 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0 },
2507 { ALTIVEC_BUILTIN_VEC_VSUBUWM
, ALTIVEC_BUILTIN_VSUBUWM
,
2508 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2509 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
2510 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2511 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
2512 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2513 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
2514 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, 0 },
2515 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
2516 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2517 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
2518 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
2519 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
2520 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2521 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
2522 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2523 { ALTIVEC_BUILTIN_VEC_VSUBUHM
, ALTIVEC_BUILTIN_VSUBUHM
,
2524 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2525 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
2526 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2527 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
2528 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2529 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
2530 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
2531 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
2532 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2533 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
2534 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
2535 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
2536 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2537 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
2538 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2539 { ALTIVEC_BUILTIN_VEC_VSUBUBM
, ALTIVEC_BUILTIN_VSUBUBM
,
2540 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2541 { ALTIVEC_BUILTIN_VEC_SUBC
, ALTIVEC_BUILTIN_VSUBCUW
,
2542 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2543 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
2544 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2545 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
2546 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2547 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
2548 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2549 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSBS
,
2550 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
2551 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSBS
,
2552 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2553 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSBS
,
2554 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2555 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUHS
,
2556 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2557 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUHS
,
2558 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2559 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUHS
,
2560 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2561 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSHS
,
2562 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
2563 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSHS
,
2564 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2565 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSHS
,
2566 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2567 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUWS
,
2568 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2569 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUWS
,
2570 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2571 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBUWS
,
2572 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2573 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSWS
,
2574 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
2575 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSWS
,
2576 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2577 { ALTIVEC_BUILTIN_VEC_SUBS
, ALTIVEC_BUILTIN_VSUBSWS
,
2578 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2579 { ALTIVEC_BUILTIN_VEC_VSUBSWS
, ALTIVEC_BUILTIN_VSUBSWS
,
2580 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2581 { ALTIVEC_BUILTIN_VEC_VSUBSWS
, ALTIVEC_BUILTIN_VSUBSWS
,
2582 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
2583 { ALTIVEC_BUILTIN_VEC_VSUBSWS
, ALTIVEC_BUILTIN_VSUBSWS
,
2584 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2585 { ALTIVEC_BUILTIN_VEC_VSUBUWS
, ALTIVEC_BUILTIN_VSUBUWS
,
2586 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2587 { ALTIVEC_BUILTIN_VEC_VSUBUWS
, ALTIVEC_BUILTIN_VSUBUWS
,
2588 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V4SI
, 0 },
2589 { ALTIVEC_BUILTIN_VEC_VSUBUWS
, ALTIVEC_BUILTIN_VSUBUWS
,
2590 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2591 { ALTIVEC_BUILTIN_VEC_VSUBUWS
, ALTIVEC_BUILTIN_VSUBUWS
,
2592 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2593 { ALTIVEC_BUILTIN_VEC_VSUBUWS
, ALTIVEC_BUILTIN_VSUBUWS
,
2594 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2595 { ALTIVEC_BUILTIN_VEC_VSUBSHS
, ALTIVEC_BUILTIN_VSUBSHS
,
2596 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2597 { ALTIVEC_BUILTIN_VEC_VSUBSHS
, ALTIVEC_BUILTIN_VSUBSHS
,
2598 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
2599 { ALTIVEC_BUILTIN_VEC_VSUBSHS
, ALTIVEC_BUILTIN_VSUBSHS
,
2600 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2601 { ALTIVEC_BUILTIN_VEC_VSUBUHS
, ALTIVEC_BUILTIN_VSUBUHS
,
2602 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2603 { ALTIVEC_BUILTIN_VEC_VSUBUHS
, ALTIVEC_BUILTIN_VSUBUHS
,
2604 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, 0 },
2605 { ALTIVEC_BUILTIN_VEC_VSUBUHS
, ALTIVEC_BUILTIN_VSUBUHS
,
2606 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2607 { ALTIVEC_BUILTIN_VEC_VSUBUHS
, ALTIVEC_BUILTIN_VSUBUHS
,
2608 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2609 { ALTIVEC_BUILTIN_VEC_VSUBUHS
, ALTIVEC_BUILTIN_VSUBUHS
,
2610 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2611 { ALTIVEC_BUILTIN_VEC_VSUBSBS
, ALTIVEC_BUILTIN_VSUBSBS
,
2612 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2613 { ALTIVEC_BUILTIN_VEC_VSUBSBS
, ALTIVEC_BUILTIN_VSUBSBS
,
2614 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
2615 { ALTIVEC_BUILTIN_VEC_VSUBSBS
, ALTIVEC_BUILTIN_VSUBSBS
,
2616 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2617 { ALTIVEC_BUILTIN_VEC_VSUBUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
2618 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2619 { ALTIVEC_BUILTIN_VEC_VSUBUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
2620 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V16QI
, 0 },
2621 { ALTIVEC_BUILTIN_VEC_VSUBUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
2622 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2623 { ALTIVEC_BUILTIN_VEC_VSUBUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
2624 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2625 { ALTIVEC_BUILTIN_VEC_VSUBUBS
, ALTIVEC_BUILTIN_VSUBUBS
,
2626 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2627 { ALTIVEC_BUILTIN_VEC_SUM4S
, ALTIVEC_BUILTIN_VSUM4UBS
,
2628 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2629 { ALTIVEC_BUILTIN_VEC_SUM4S
, ALTIVEC_BUILTIN_VSUM4SBS
,
2630 RS6000_BTI_V4SI
, RS6000_BTI_V16QI
, RS6000_BTI_V4SI
, 0 },
2631 { ALTIVEC_BUILTIN_VEC_SUM4S
, ALTIVEC_BUILTIN_VSUM4SHS
,
2632 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V4SI
, 0 },
2633 { ALTIVEC_BUILTIN_VEC_VSUM4SHS
, ALTIVEC_BUILTIN_VSUM4SHS
,
2634 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V4SI
, 0 },
2635 { ALTIVEC_BUILTIN_VEC_VSUM4SBS
, ALTIVEC_BUILTIN_VSUM4SBS
,
2636 RS6000_BTI_V4SI
, RS6000_BTI_V16QI
, RS6000_BTI_V4SI
, 0 },
2637 { ALTIVEC_BUILTIN_VEC_VSUM4UBS
, ALTIVEC_BUILTIN_VSUM4UBS
,
2638 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V4SI
, 0 },
2639 { ALTIVEC_BUILTIN_VEC_SUM2S
, ALTIVEC_BUILTIN_VSUM2SWS
,
2640 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2641 { ALTIVEC_BUILTIN_VEC_SUMS
, ALTIVEC_BUILTIN_VSUMSWS
,
2642 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2643 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2644 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
2645 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2646 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, 0 },
2647 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2648 RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SF
, 0 },
2649 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2650 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
2651 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2652 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, 0 },
2653 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2654 RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DF
, 0 },
2655 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2656 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
2657 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2658 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2659 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2660 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
2661 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2662 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2663 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2664 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
2665 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2666 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
2667 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2668 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2669 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2670 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
2671 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2672 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2673 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2674 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
2675 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2676 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2677 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2678 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
2679 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2680 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0 },
2681 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2682 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2683 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2684 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
2685 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2686 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2687 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2688 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
2689 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2690 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2691 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2692 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
2693 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2694 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0 },
2695 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2696 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
2697 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2698 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2699 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2700 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2701 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2702 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
2703 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2704 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2705 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2706 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
2707 { ALTIVEC_BUILTIN_VEC_XOR
, ALTIVEC_BUILTIN_VXOR
,
2708 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0 },
2710 /* Ternary AltiVec/VSX builtins. */
2711 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2712 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2713 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2714 RS6000_BTI_void
, ~RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2715 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2716 RS6000_BTI_void
, ~RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2717 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2718 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2719 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2720 RS6000_BTI_void
, ~RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2721 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2722 RS6000_BTI_void
, ~RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2723 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2724 RS6000_BTI_void
, ~RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2725 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2726 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2727 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2728 RS6000_BTI_void
, ~RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2729 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2730 RS6000_BTI_void
, ~RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2731 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2732 RS6000_BTI_void
, ~RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2733 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2734 RS6000_BTI_void
, ~RS6000_BTI_UINTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2735 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2736 RS6000_BTI_void
, ~RS6000_BTI_INTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2737 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2738 RS6000_BTI_void
, ~RS6000_BTI_UINTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2739 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2740 RS6000_BTI_void
, ~RS6000_BTI_INTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2741 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2742 RS6000_BTI_void
, ~RS6000_BTI_UINTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2743 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2744 RS6000_BTI_void
, ~RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2745 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2746 RS6000_BTI_void
, ~RS6000_BTI_unsigned_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2747 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2748 RS6000_BTI_void
, ~RS6000_BTI_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2749 { ALTIVEC_BUILTIN_VEC_DST
, ALTIVEC_BUILTIN_DST
,
2750 RS6000_BTI_void
, ~RS6000_BTI_float
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2751 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2752 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2753 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2754 RS6000_BTI_void
, ~RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2755 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2756 RS6000_BTI_void
, ~RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2757 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2758 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2759 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2760 RS6000_BTI_void
, ~RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2761 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2762 RS6000_BTI_void
, ~RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2763 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2764 RS6000_BTI_void
, ~RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2765 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2766 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2767 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2768 RS6000_BTI_void
, ~RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2769 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2770 RS6000_BTI_void
, ~RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2771 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2772 RS6000_BTI_void
, ~RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2773 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2774 RS6000_BTI_void
, ~RS6000_BTI_UINTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2775 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2776 RS6000_BTI_void
, ~RS6000_BTI_INTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2777 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2778 RS6000_BTI_void
, ~RS6000_BTI_UINTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2779 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2780 RS6000_BTI_void
, ~RS6000_BTI_INTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2781 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2782 RS6000_BTI_void
, ~RS6000_BTI_UINTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2783 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2784 RS6000_BTI_void
, ~RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2785 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2786 RS6000_BTI_void
, ~RS6000_BTI_unsigned_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2787 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2788 RS6000_BTI_void
, ~RS6000_BTI_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2789 { ALTIVEC_BUILTIN_VEC_DSTST
, ALTIVEC_BUILTIN_DSTST
,
2790 RS6000_BTI_void
, ~RS6000_BTI_float
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2791 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2792 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2793 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2794 RS6000_BTI_void
, ~RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2795 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2796 RS6000_BTI_void
, ~RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2797 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2798 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2799 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2800 RS6000_BTI_void
, ~RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2801 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2802 RS6000_BTI_void
, ~RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2803 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2804 RS6000_BTI_void
, ~RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2805 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2806 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2807 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2808 RS6000_BTI_void
, ~RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2809 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2810 RS6000_BTI_void
, ~RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2811 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2812 RS6000_BTI_void
, ~RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2813 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2814 RS6000_BTI_void
, ~RS6000_BTI_UINTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2815 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2816 RS6000_BTI_void
, ~RS6000_BTI_INTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2817 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2818 RS6000_BTI_void
, ~RS6000_BTI_UINTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2819 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2820 RS6000_BTI_void
, ~RS6000_BTI_INTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2821 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2822 RS6000_BTI_void
, ~RS6000_BTI_UINTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2823 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2824 RS6000_BTI_void
, ~RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2825 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2826 RS6000_BTI_void
, ~RS6000_BTI_unsigned_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2827 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2828 RS6000_BTI_void
, ~RS6000_BTI_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2829 { ALTIVEC_BUILTIN_VEC_DSTSTT
, ALTIVEC_BUILTIN_DSTSTT
,
2830 RS6000_BTI_void
, ~RS6000_BTI_float
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2831 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2832 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2833 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2834 RS6000_BTI_void
, ~RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2835 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2836 RS6000_BTI_void
, ~RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2837 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2838 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2839 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2840 RS6000_BTI_void
, ~RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2841 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2842 RS6000_BTI_void
, ~RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2843 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2844 RS6000_BTI_void
, ~RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2845 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2846 RS6000_BTI_void
, ~RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2847 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2848 RS6000_BTI_void
, ~RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2849 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2850 RS6000_BTI_void
, ~RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2851 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2852 RS6000_BTI_void
, ~RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2853 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2854 RS6000_BTI_void
, ~RS6000_BTI_UINTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2855 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2856 RS6000_BTI_void
, ~RS6000_BTI_INTQI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2857 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2858 RS6000_BTI_void
, ~RS6000_BTI_UINTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2859 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2860 RS6000_BTI_void
, ~RS6000_BTI_INTHI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2861 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2862 RS6000_BTI_void
, ~RS6000_BTI_UINTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2863 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2864 RS6000_BTI_void
, ~RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2865 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2866 RS6000_BTI_void
, ~RS6000_BTI_unsigned_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2867 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2868 RS6000_BTI_void
, ~RS6000_BTI_long
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2869 { ALTIVEC_BUILTIN_VEC_DSTT
, ALTIVEC_BUILTIN_DSTT
,
2870 RS6000_BTI_void
, ~RS6000_BTI_float
, RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
2871 { ALTIVEC_BUILTIN_VEC_MADD
, ALTIVEC_BUILTIN_VMADDFP
,
2872 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
2873 { ALTIVEC_BUILTIN_VEC_MADD
, VSX_BUILTIN_XVMADDDP
,
2874 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
2875 { ALTIVEC_BUILTIN_VEC_MADDS
, ALTIVEC_BUILTIN_VMHADDSHS
,
2876 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
2877 { ALTIVEC_BUILTIN_VEC_MLADD
, ALTIVEC_BUILTIN_VMLADDUHM
,
2878 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
2879 { ALTIVEC_BUILTIN_VEC_MLADD
, ALTIVEC_BUILTIN_VMLADDUHM
,
2880 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
2881 { ALTIVEC_BUILTIN_VEC_MLADD
, ALTIVEC_BUILTIN_VMLADDUHM
,
2882 RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
2883 { ALTIVEC_BUILTIN_VEC_MLADD
, ALTIVEC_BUILTIN_VMLADDUHM
,
2884 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
2885 { ALTIVEC_BUILTIN_VEC_MRADDS
, ALTIVEC_BUILTIN_VMHRADDSHS
,
2886 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
2887 { VSX_BUILTIN_VEC_MSUB
, VSX_BUILTIN_XVMSUBSP
,
2888 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
2889 { VSX_BUILTIN_VEC_MSUB
, VSX_BUILTIN_XVMSUBDP
,
2890 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
2891 { ALTIVEC_BUILTIN_VEC_MSUM
, ALTIVEC_BUILTIN_VMSUMUBM
,
2892 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V4SI
},
2893 { ALTIVEC_BUILTIN_VEC_MSUM
, ALTIVEC_BUILTIN_VMSUMMBM
,
2894 RS6000_BTI_V4SI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V4SI
},
2895 { ALTIVEC_BUILTIN_VEC_MSUM
, ALTIVEC_BUILTIN_VMSUMUHM
,
2896 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
},
2897 { ALTIVEC_BUILTIN_VEC_MSUM
, ALTIVEC_BUILTIN_VMSUMSHM
,
2898 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V4SI
},
2899 { ALTIVEC_BUILTIN_VEC_VMSUMSHM
, ALTIVEC_BUILTIN_VMSUMSHM
,
2900 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V4SI
},
2901 { ALTIVEC_BUILTIN_VEC_VMSUMUHM
, ALTIVEC_BUILTIN_VMSUMUHM
,
2902 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
},
2903 { ALTIVEC_BUILTIN_VEC_VMSUMMBM
, ALTIVEC_BUILTIN_VMSUMMBM
,
2904 RS6000_BTI_V4SI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_V4SI
},
2905 { ALTIVEC_BUILTIN_VEC_VMSUMUBM
, ALTIVEC_BUILTIN_VMSUMUBM
,
2906 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V4SI
},
2907 { ALTIVEC_BUILTIN_VEC_MSUMS
, ALTIVEC_BUILTIN_VMSUMUHS
,
2908 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
},
2909 { ALTIVEC_BUILTIN_VEC_MSUMS
, ALTIVEC_BUILTIN_VMSUMSHS
,
2910 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V4SI
},
2911 { ALTIVEC_BUILTIN_VEC_VMSUMSHS
, ALTIVEC_BUILTIN_VMSUMSHS
,
2912 RS6000_BTI_V4SI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V4SI
},
2913 { ALTIVEC_BUILTIN_VEC_VMSUMUHS
, ALTIVEC_BUILTIN_VMSUMUHS
,
2914 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V4SI
},
2915 { VSX_BUILTIN_VEC_NMADD
, VSX_BUILTIN_XVNMADDSP
,
2916 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
2917 { VSX_BUILTIN_VEC_NMADD
, VSX_BUILTIN_XVNMADDDP
,
2918 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
2919 { ALTIVEC_BUILTIN_VEC_NMSUB
, ALTIVEC_BUILTIN_VNMSUBFP
,
2920 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
2921 { ALTIVEC_BUILTIN_VEC_NMSUB
, VSX_BUILTIN_XVNMSUBDP
,
2922 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
2923 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_2DF
,
2924 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V16QI
},
2925 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_2DI
,
2926 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V16QI
},
2927 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_2DI
,
2928 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V16QI
},
2929 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_4SF
,
2930 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V16QI
},
2931 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_4SI
,
2932 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V16QI
},
2933 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_4SI
,
2934 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V16QI
},
2935 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_4SI
,
2936 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V16QI
},
2937 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_8HI
,
2938 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V16QI
},
2939 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_8HI
,
2940 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V16QI
},
2941 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_8HI
,
2942 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V16QI
},
2943 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_8HI
,
2944 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_unsigned_V16QI
},
2945 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_16QI
,
2946 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
},
2947 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_16QI
,
2948 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
2949 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_16QI
,
2950 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
2951 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_16QI
,
2952 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
},
2953 { ALTIVEC_BUILTIN_VEC_PERM
, ALTIVEC_BUILTIN_VPERM_16QI
,
2954 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
},
2955 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DF
,
2956 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_bool_V2DI
},
2957 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DF
,
2958 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_unsigned_V2DI
},
2959 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DF
,
2960 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DI
},
2961 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DF
,
2962 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
2963 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
2964 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
},
2965 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
2966 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
},
2967 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
2968 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
},
2969 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
2970 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
},
2971 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
2972 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
},
2973 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_2DI
,
2974 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_V2DI
},
2975 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SF
,
2976 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_bool_V4SI
},
2977 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SF
,
2978 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_unsigned_V4SI
},
2979 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
2980 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
2981 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
2982 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SI
},
2983 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
2984 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
},
2985 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
2986 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_unsigned_V4SI
},
2987 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
2988 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
},
2989 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
2990 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
},
2991 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
2992 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
},
2993 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_4SI
,
2994 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
},
2995 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_8HI
,
2996 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
},
2997 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_8HI
,
2998 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_unsigned_V8HI
},
2999 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_8HI
,
3000 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
},
3001 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_8HI
,
3002 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
3003 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_8HI
,
3004 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
},
3005 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_8HI
,
3006 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
},
3007 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_16QI
,
3008 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
},
3009 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_16QI
,
3010 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_unsigned_V16QI
},
3011 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_16QI
,
3012 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
},
3013 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_16QI
,
3014 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
3015 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_16QI
,
3016 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
},
3017 { ALTIVEC_BUILTIN_VEC_SEL
, ALTIVEC_BUILTIN_VSEL_16QI
,
3018 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
},
3019 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_4SF
,
3020 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_NOT_OPAQUE
},
3021 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_4SI
,
3022 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_NOT_OPAQUE
},
3023 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_4SI
,
3024 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_NOT_OPAQUE
},
3025 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_4SI
,
3026 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_NOT_OPAQUE
},
3027 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_8HI
,
3028 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_NOT_OPAQUE
},
3029 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_8HI
,
3030 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_NOT_OPAQUE
},
3031 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_8HI
,
3032 RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_NOT_OPAQUE
},
3033 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_8HI
,
3034 RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_NOT_OPAQUE
},
3035 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_16QI
,
3036 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_NOT_OPAQUE
},
3037 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_16QI
,
3038 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_NOT_OPAQUE
},
3039 { ALTIVEC_BUILTIN_VEC_SLD
, ALTIVEC_BUILTIN_VSLDOI_16QI
,
3040 RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_NOT_OPAQUE
},
3041 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V2DF
,
3042 RS6000_BTI_void
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
},
3043 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V2DI
,
3044 RS6000_BTI_void
, RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
},
3045 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V2DI
,
3046 RS6000_BTI_void
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
3047 ~RS6000_BTI_unsigned_V2DI
},
3048 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V2DI
,
3049 RS6000_BTI_void
, RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
,
3050 ~RS6000_BTI_bool_V2DI
},
3051 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SF
,
3052 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
3053 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SF
,
3054 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3055 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3056 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
3057 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3058 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3059 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3060 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
},
3061 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3062 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3063 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3064 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
},
3065 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3066 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3067 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V4SI
,
3068 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3069 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3070 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
3071 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3072 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3073 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3074 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
},
3075 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3076 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3077 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3078 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
},
3079 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3080 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3081 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3082 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3083 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3084 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
3085 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3086 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3087 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3088 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
},
3089 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3090 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3091 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3092 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
},
3093 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3094 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3095 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V16QI
,
3096 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3097 { ALTIVEC_BUILTIN_VEC_ST
, ALTIVEC_BUILTIN_STVX_V8HI
,
3098 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
},
3099 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEBX
,
3100 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3101 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEBX
,
3102 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3103 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEBX
,
3104 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3105 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEBX
,
3106 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3107 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEHX
,
3108 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3109 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEHX
,
3110 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3111 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEHX
,
3112 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3113 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEHX
,
3114 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3115 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEHX
,
3116 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3117 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEHX
,
3118 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3119 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEWX
,
3120 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3121 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEWX
,
3122 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3123 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEWX
,
3124 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3125 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEWX
,
3126 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3127 { ALTIVEC_BUILTIN_VEC_STE
, ALTIVEC_BUILTIN_STVEWX
,
3128 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3129 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3130 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3131 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3132 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3133 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3134 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3135 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3136 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3137 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3138 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3139 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3140 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3141 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3142 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3143 { ALTIVEC_BUILTIN_VEC_STVEWX
, ALTIVEC_BUILTIN_STVEWX
,
3144 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3145 { ALTIVEC_BUILTIN_VEC_STVEHX
, ALTIVEC_BUILTIN_STVEHX
,
3146 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3147 { ALTIVEC_BUILTIN_VEC_STVEHX
, ALTIVEC_BUILTIN_STVEHX
,
3148 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3149 { ALTIVEC_BUILTIN_VEC_STVEHX
, ALTIVEC_BUILTIN_STVEHX
,
3150 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3151 { ALTIVEC_BUILTIN_VEC_STVEHX
, ALTIVEC_BUILTIN_STVEHX
,
3152 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3153 { ALTIVEC_BUILTIN_VEC_STVEHX
, ALTIVEC_BUILTIN_STVEHX
,
3154 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3155 { ALTIVEC_BUILTIN_VEC_STVEHX
, ALTIVEC_BUILTIN_STVEHX
,
3156 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3157 { ALTIVEC_BUILTIN_VEC_STVEBX
, ALTIVEC_BUILTIN_STVEBX
,
3158 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3159 { ALTIVEC_BUILTIN_VEC_STVEBX
, ALTIVEC_BUILTIN_STVEBX
,
3160 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3161 { ALTIVEC_BUILTIN_VEC_STVEBX
, ALTIVEC_BUILTIN_STVEBX
,
3162 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3163 { ALTIVEC_BUILTIN_VEC_STVEBX
, ALTIVEC_BUILTIN_STVEBX
,
3164 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3165 { ALTIVEC_BUILTIN_VEC_STVEBX
, ALTIVEC_BUILTIN_STVEBX
,
3166 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3167 { ALTIVEC_BUILTIN_VEC_STVEBX
, ALTIVEC_BUILTIN_STVEBX
,
3168 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_void
},
3169 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SF
,
3170 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
3171 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SF
,
3172 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3173 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3174 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
3175 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3176 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3177 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3178 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
},
3179 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3180 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3181 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3182 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
},
3183 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3184 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3185 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V4SI
,
3186 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3187 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3188 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
3189 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3190 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3191 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3192 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
},
3193 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3194 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3195 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3196 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
},
3197 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3198 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3199 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3200 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3201 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3202 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
3203 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3204 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3205 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3206 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
},
3207 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3208 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3209 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3210 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
},
3211 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3212 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3213 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V16QI
,
3214 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3215 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V8HI
,
3216 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
},
3217 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V2DF
,
3218 RS6000_BTI_void
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
},
3219 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V2DF
,
3220 RS6000_BTI_void
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_double
},
3221 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V2DI
,
3222 RS6000_BTI_void
, RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
},
3223 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V2DI
,
3224 RS6000_BTI_void
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
3225 ~RS6000_BTI_unsigned_V2DI
},
3226 { ALTIVEC_BUILTIN_VEC_STL
, ALTIVEC_BUILTIN_STVXL_V2DI
,
3227 RS6000_BTI_void
, RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
,
3228 ~RS6000_BTI_bool_V2DI
},
3229 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3230 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
3231 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3232 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3233 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3234 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
},
3235 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3236 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
3237 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3238 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3239 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3240 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
},
3241 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3242 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3243 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3244 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
},
3245 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3246 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
},
3247 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3248 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
3249 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3250 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3251 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3252 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
},
3253 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3254 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3255 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3256 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
},
3257 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3258 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
3259 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3260 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3261 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3262 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
},
3263 { ALTIVEC_BUILTIN_VEC_STVLX
, ALTIVEC_BUILTIN_STVLX
,
3264 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3265 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3266 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
3267 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3268 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3269 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3270 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
},
3271 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3272 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
3273 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3274 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3275 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3276 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
},
3277 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3278 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3279 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3280 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
},
3281 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3282 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
},
3283 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3284 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
3285 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3286 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3287 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3288 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
},
3289 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3290 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3291 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3292 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
},
3293 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3294 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
3295 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3296 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3297 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3298 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
},
3299 { ALTIVEC_BUILTIN_VEC_STVLXL
, ALTIVEC_BUILTIN_STVLXL
,
3300 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3301 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3302 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
3303 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3304 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3305 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3306 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
},
3307 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3308 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
3309 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3310 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3311 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3312 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
},
3313 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3314 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3315 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3316 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
},
3317 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3318 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
},
3319 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3320 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
3321 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3322 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3323 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3324 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
},
3325 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3326 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3327 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3328 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
},
3329 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3330 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
3331 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3332 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3333 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3334 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
},
3335 { ALTIVEC_BUILTIN_VEC_STVRX
, ALTIVEC_BUILTIN_STVRX
,
3336 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3337 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3338 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
3339 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3340 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3341 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3342 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
},
3343 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3344 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
3345 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3346 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3347 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3348 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V4SI
},
3349 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3350 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
},
3351 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3352 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
},
3353 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3354 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
},
3355 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3356 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
3357 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3358 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3359 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3360 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V8HI
},
3361 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3362 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
},
3363 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3364 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
},
3365 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3366 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
3367 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3368 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3369 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3370 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_unsigned_V16QI
},
3371 { ALTIVEC_BUILTIN_VEC_STVRXL
, ALTIVEC_BUILTIN_STVRXL
,
3372 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
},
3373 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_16QI
,
3374 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_NOT_OPAQUE
},
3375 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_16QI
,
3376 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
3377 RS6000_BTI_NOT_OPAQUE
},
3378 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_8HI
,
3379 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_NOT_OPAQUE
},
3380 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_8HI
,
3381 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
3382 RS6000_BTI_NOT_OPAQUE
},
3383 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_4SI
,
3384 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_NOT_OPAQUE
},
3385 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_4SI
,
3386 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
3387 RS6000_BTI_NOT_OPAQUE
},
3388 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_2DI
,
3389 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_NOT_OPAQUE
},
3390 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_2DI
,
3391 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
3392 RS6000_BTI_NOT_OPAQUE
},
3393 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_4SF
,
3394 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_NOT_OPAQUE
},
3395 { VSX_BUILTIN_VEC_XXSLDWI
, VSX_BUILTIN_XXSLDWI_2DF
,
3396 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_NOT_OPAQUE
},
3397 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_2DF
,
3398 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_NOT_OPAQUE
},
3399 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_2DI
,
3400 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_NOT_OPAQUE
},
3401 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_2DI
,
3402 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
3403 RS6000_BTI_NOT_OPAQUE
},
3404 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_4SF
,
3405 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_NOT_OPAQUE
},
3406 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_4SI
,
3407 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_NOT_OPAQUE
},
3408 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_4SI
,
3409 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
3410 RS6000_BTI_NOT_OPAQUE
},
3411 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_8HI
,
3412 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_NOT_OPAQUE
},
3413 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_8HI
,
3414 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
3415 RS6000_BTI_NOT_OPAQUE
},
3416 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_16QI
,
3417 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_NOT_OPAQUE
},
3418 { VSX_BUILTIN_VEC_XXPERMDI
, VSX_BUILTIN_XXPERMDI_16QI
,
3419 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
3420 RS6000_BTI_NOT_OPAQUE
},
3422 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVD2X_V2DF
,
3423 RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
, 0 },
3424 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVD2X_V2DF
,
3425 RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_double
, 0 },
3426 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVD2X_V2DI
,
3427 RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
, 0 },
3428 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVD2X_V2DI
,
3429 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
3430 ~RS6000_BTI_unsigned_V2DI
, 0 },
3431 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVD2X_V2DI
,
3432 RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V2DI
, 0 },
3433 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SF
,
3434 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
, 0 },
3435 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SF
,
3436 RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
, 0 },
3437 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
3438 RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V4SI
, 0 },
3439 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
3440 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
, 0 },
3441 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
3442 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
, 0 },
3443 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
3444 RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_long
, 0 },
3445 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
3446 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
,
3447 ~RS6000_BTI_unsigned_V4SI
, 0 },
3448 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
3449 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTSI
, 0 },
3450 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V4SI
,
3451 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
,
3452 ~RS6000_BTI_unsigned_long
, 0 },
3453 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V8HI
,
3454 RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V8HI
, 0 },
3455 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V8HI
,
3456 RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_pixel_V8HI
, 0 },
3457 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V8HI
,
3458 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
, 0 },
3459 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V8HI
,
3460 RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
, 0 },
3461 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V8HI
,
3462 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
,
3463 ~RS6000_BTI_unsigned_V8HI
, 0 },
3464 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V8HI
,
3465 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTHI
, 0 },
3466 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V16QI
,
3467 RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_bool_V16QI
, 0 },
3468 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V16QI
,
3469 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
, 0 },
3470 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V16QI
,
3471 RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
, 0 },
3472 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V16QI
,
3473 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
3474 ~RS6000_BTI_unsigned_V16QI
, 0 },
3475 { VSX_BUILTIN_VEC_LD
, VSX_BUILTIN_LXVW4X_V16QI
,
3476 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_UINTQI
, 0 },
3478 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVD2X_V2DF
,
3479 RS6000_BTI_void
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DF
},
3480 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVD2X_V2DF
,
3481 RS6000_BTI_void
, RS6000_BTI_V2DF
, RS6000_BTI_INTSI
, ~RS6000_BTI_double
},
3482 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVD2X_V2DI
,
3483 RS6000_BTI_void
, RS6000_BTI_V2DI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V2DI
},
3484 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVD2X_V2DI
,
3485 RS6000_BTI_void
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_INTSI
,
3486 ~RS6000_BTI_unsigned_V2DI
},
3487 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVD2X_V2DI
,
3488 RS6000_BTI_void
, RS6000_BTI_bool_V2DI
, RS6000_BTI_INTSI
,
3489 ~RS6000_BTI_bool_V2DI
},
3490 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SF
,
3491 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SF
},
3492 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SF
,
3493 RS6000_BTI_void
, RS6000_BTI_V4SF
, RS6000_BTI_INTSI
, ~RS6000_BTI_float
},
3494 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
3495 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V4SI
},
3496 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
3497 RS6000_BTI_void
, RS6000_BTI_V4SI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTSI
},
3498 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
3499 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
,
3500 ~RS6000_BTI_unsigned_V4SI
},
3501 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
3502 RS6000_BTI_void
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_INTSI
,
3503 ~RS6000_BTI_UINTSI
},
3504 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
3505 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
,
3506 ~RS6000_BTI_bool_V4SI
},
3507 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
3508 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
,
3509 ~RS6000_BTI_UINTSI
},
3510 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V4SI
,
3511 RS6000_BTI_void
, RS6000_BTI_bool_V4SI
, RS6000_BTI_INTSI
,
3512 ~RS6000_BTI_INTSI
},
3513 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
3514 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V8HI
},
3515 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
3516 RS6000_BTI_void
, RS6000_BTI_V8HI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTHI
},
3517 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
3518 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
,
3519 ~RS6000_BTI_unsigned_V8HI
},
3520 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
3521 RS6000_BTI_void
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_INTSI
,
3522 ~RS6000_BTI_UINTHI
},
3523 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
3524 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
,
3525 ~RS6000_BTI_bool_V8HI
},
3526 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
3527 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
,
3528 ~RS6000_BTI_UINTHI
},
3529 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V8HI
,
3530 RS6000_BTI_void
, RS6000_BTI_bool_V8HI
, RS6000_BTI_INTSI
,
3531 ~RS6000_BTI_INTHI
},
3532 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
3533 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_V16QI
},
3534 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
3535 RS6000_BTI_void
, RS6000_BTI_V16QI
, RS6000_BTI_INTSI
, ~RS6000_BTI_INTQI
},
3536 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
3537 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
3538 ~RS6000_BTI_unsigned_V16QI
},
3539 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
3540 RS6000_BTI_void
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_INTSI
,
3541 ~RS6000_BTI_UINTQI
},
3542 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
3543 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
,
3544 ~RS6000_BTI_bool_V16QI
},
3545 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
3546 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
,
3547 ~RS6000_BTI_UINTQI
},
3548 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
3549 RS6000_BTI_void
, RS6000_BTI_bool_V16QI
, RS6000_BTI_INTSI
,
3550 ~RS6000_BTI_INTQI
},
3551 { VSX_BUILTIN_VEC_ST
, VSX_BUILTIN_STXVW4X_V16QI
,
3552 RS6000_BTI_void
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_INTSI
,
3553 ~RS6000_BTI_pixel_V8HI
},
3556 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUB_P
,
3557 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
},
3558 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUB_P
,
3559 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
},
3560 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUB_P
,
3561 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
3562 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSB_P
,
3563 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
},
3564 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSB_P
,
3565 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
},
3566 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSB_P
,
3567 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
},
3568 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUH_P
,
3569 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
},
3570 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUH_P
,
3571 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
},
3572 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUH_P
,
3573 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
3574 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSH_P
,
3575 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
3576 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSH_P
,
3577 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
},
3578 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSH_P
,
3579 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
},
3580 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUW_P
,
3581 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
},
3582 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUW_P
,
3583 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
},
3584 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTUW_P
,
3585 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
},
3586 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSW_P
,
3587 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
},
3588 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSW_P
,
3589 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
},
3590 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTSW_P
,
3591 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
},
3592 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, P8V_BUILTIN_VCMPGTUD_P
,
3593 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
},
3594 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, P8V_BUILTIN_VCMPGTUD_P
,
3595 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
},
3596 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, P8V_BUILTIN_VCMPGTUD_P
,
3597 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
},
3598 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, P8V_BUILTIN_VCMPGTSD_P
,
3599 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
},
3600 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, P8V_BUILTIN_VCMPGTSD_P
,
3601 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
},
3602 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, P8V_BUILTIN_VCMPGTSD_P
,
3603 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
},
3604 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, ALTIVEC_BUILTIN_VCMPGTFP_P
,
3605 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
3606 { ALTIVEC_BUILTIN_VEC_VCMPGT_P
, VSX_BUILTIN_XVCMPGTDP_P
,
3607 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
3610 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
3611 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
},
3612 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
3613 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
},
3614 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
3615 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
3616 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
3617 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
},
3618 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
3619 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
},
3620 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
3621 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
},
3622 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUB_P
,
3623 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_bool_V16QI
},
3624 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
3625 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
},
3626 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
3627 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
},
3628 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
3629 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
3630 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
3631 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
3632 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
3633 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
},
3634 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
3635 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
},
3636 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
3637 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_bool_V8HI
},
3638 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUH_P
,
3639 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_pixel_V8HI
, RS6000_BTI_pixel_V8HI
},
3640 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
3641 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
},
3642 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
3643 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
},
3644 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
3645 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
},
3646 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
3647 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
},
3648 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
3649 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
},
3650 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
3651 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
},
3652 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQUW_P
,
3653 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
},
3654 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
3655 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
},
3656 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
3657 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
},
3658 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
3659 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
},
3660 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
3661 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
},
3662 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
3663 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
},
3664 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
3665 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
},
3666 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, P8V_BUILTIN_VCMPEQUD_P
,
3667 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
},
3668 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, ALTIVEC_BUILTIN_VCMPEQFP_P
,
3669 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
3670 { ALTIVEC_BUILTIN_VEC_VCMPEQ_P
, VSX_BUILTIN_XVCMPEQDP_P
,
3671 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
3674 /* cmpge is the same as cmpgt for all cases except floating point.
3675 There is further code to deal with this special case in
3676 altivec_build_resolved_builtin. */
3677 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUB_P
,
3678 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_unsigned_V16QI
},
3679 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUB_P
,
3680 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
},
3681 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUB_P
,
3682 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
3683 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSB_P
,
3684 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
},
3685 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSB_P
,
3686 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
},
3687 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSB_P
,
3688 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
},
3689 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUH_P
,
3690 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_unsigned_V8HI
},
3691 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUH_P
,
3692 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
},
3693 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUH_P
,
3694 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
3695 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSH_P
,
3696 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
},
3697 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSH_P
,
3698 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
},
3699 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSH_P
,
3700 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
},
3701 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUW_P
,
3702 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_unsigned_V4SI
},
3703 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUW_P
,
3704 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
},
3705 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTUW_P
,
3706 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
},
3707 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSW_P
,
3708 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
},
3709 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSW_P
,
3710 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
},
3711 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGTSW_P
,
3712 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
},
3713 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, P8V_BUILTIN_VCMPGTUD_P
,
3714 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
},
3715 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, P8V_BUILTIN_VCMPGTUD_P
,
3716 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
},
3717 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, P8V_BUILTIN_VCMPGTUD_P
,
3718 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
},
3719 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, P8V_BUILTIN_VCMPGTSD_P
,
3720 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
},
3721 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, P8V_BUILTIN_VCMPGTSD_P
,
3722 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
},
3723 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, P8V_BUILTIN_VCMPGTSD_P
,
3724 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
},
3725 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, ALTIVEC_BUILTIN_VCMPGEFP_P
,
3726 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
},
3727 { ALTIVEC_BUILTIN_VEC_VCMPGE_P
, VSX_BUILTIN_XVCMPGEDP_P
,
3728 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
},
3730 /* Power8 vector overloaded functions. */
3731 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V16QI
,
3732 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
3733 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V16QI
,
3734 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
3735 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V16QI
,
3736 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
3737 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V16QI
,
3738 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
,
3739 RS6000_BTI_unsigned_V16QI
, 0 },
3740 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V16QI
,
3741 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
3742 RS6000_BTI_bool_V16QI
, 0 },
3743 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V16QI
,
3744 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
3745 RS6000_BTI_unsigned_V16QI
, 0 },
3746 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V8HI
,
3747 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
3748 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V8HI
,
3749 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
3750 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V8HI
,
3751 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
3752 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V8HI
,
3753 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
,
3754 RS6000_BTI_unsigned_V8HI
, 0 },
3755 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V8HI
,
3756 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
3757 RS6000_BTI_bool_V8HI
, 0 },
3758 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V8HI
,
3759 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
3760 RS6000_BTI_unsigned_V8HI
, 0 },
3761 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SI
,
3762 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
3763 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SI
,
3764 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
3765 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SI
,
3766 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
3767 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SI
,
3768 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
,
3769 RS6000_BTI_unsigned_V4SI
, 0 },
3770 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SI
,
3771 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
3772 RS6000_BTI_bool_V4SI
, 0 },
3773 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SI
,
3774 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
3775 RS6000_BTI_unsigned_V4SI
, 0 },
3776 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DI
,
3777 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
3778 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DI
,
3779 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
3780 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DI
,
3781 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
3782 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DI
,
3783 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
,
3784 RS6000_BTI_unsigned_V2DI
, 0 },
3785 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DI
,
3786 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
3787 RS6000_BTI_bool_V2DI
, 0 },
3788 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DI
,
3789 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
3790 RS6000_BTI_unsigned_V2DI
, 0 },
3791 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V4SF
,
3792 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
3793 { P8V_BUILTIN_VEC_EQV
, P8V_BUILTIN_EQV_V2DF
,
3794 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
3796 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V16QI
,
3797 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
3798 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V16QI
,
3799 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
3800 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V16QI
,
3801 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
3802 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V16QI
,
3803 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
,
3804 RS6000_BTI_unsigned_V16QI
, 0 },
3805 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V16QI
,
3806 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
3807 RS6000_BTI_bool_V16QI
, 0 },
3808 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V16QI
,
3809 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
3810 RS6000_BTI_unsigned_V16QI
, 0 },
3811 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V8HI
,
3812 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
3813 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V8HI
,
3814 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
3815 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V8HI
,
3816 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
3817 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V8HI
,
3818 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
,
3819 RS6000_BTI_unsigned_V8HI
, 0 },
3820 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V8HI
,
3821 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
3822 RS6000_BTI_bool_V8HI
, 0 },
3823 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V8HI
,
3824 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
3825 RS6000_BTI_unsigned_V8HI
, 0 },
3826 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SI
,
3827 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
3828 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SI
,
3829 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
3830 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SI
,
3831 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
3832 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SI
,
3833 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
,
3834 RS6000_BTI_unsigned_V4SI
, 0 },
3835 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SI
,
3836 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
3837 RS6000_BTI_bool_V4SI
, 0 },
3838 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SI
,
3839 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
3840 RS6000_BTI_unsigned_V4SI
, 0 },
3841 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DI
,
3842 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
3843 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DI
,
3844 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
3845 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DI
,
3846 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
3847 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DI
,
3848 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
,
3849 RS6000_BTI_unsigned_V2DI
, 0 },
3850 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DI
,
3851 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
3852 RS6000_BTI_bool_V2DI
, 0 },
3853 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DI
,
3854 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
3855 RS6000_BTI_unsigned_V2DI
, 0 },
3856 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V4SF
,
3857 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
3858 { P8V_BUILTIN_VEC_NAND
, P8V_BUILTIN_NAND_V2DF
,
3859 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
3861 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V16QI
,
3862 RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, RS6000_BTI_V16QI
, 0 },
3863 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V16QI
,
3864 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_bool_V16QI
, 0 },
3865 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V16QI
,
3866 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
3867 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V16QI
,
3868 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_bool_V16QI
,
3869 RS6000_BTI_unsigned_V16QI
, 0 },
3870 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V16QI
,
3871 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
3872 RS6000_BTI_bool_V16QI
, 0 },
3873 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V16QI
,
3874 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
3875 RS6000_BTI_unsigned_V16QI
, 0 },
3876 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V8HI
,
3877 RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, RS6000_BTI_V8HI
, 0 },
3878 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V8HI
,
3879 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_bool_V8HI
, 0 },
3880 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V8HI
,
3881 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0 },
3882 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V8HI
,
3883 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_bool_V8HI
,
3884 RS6000_BTI_unsigned_V8HI
, 0 },
3885 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V8HI
,
3886 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
3887 RS6000_BTI_bool_V8HI
, 0 },
3888 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V8HI
,
3889 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
3890 RS6000_BTI_unsigned_V8HI
, 0 },
3891 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SI
,
3892 RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_V4SI
, 0 },
3893 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SI
,
3894 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
3895 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SI
,
3896 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
3897 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SI
,
3898 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_bool_V4SI
,
3899 RS6000_BTI_unsigned_V4SI
, 0 },
3900 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SI
,
3901 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
3902 RS6000_BTI_bool_V4SI
, 0 },
3903 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SI
,
3904 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
3905 RS6000_BTI_unsigned_V4SI
, 0 },
3906 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DI
,
3907 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
3908 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DI
,
3909 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
3910 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DI
,
3911 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
3912 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DI
,
3913 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
,
3914 RS6000_BTI_unsigned_V2DI
, 0 },
3915 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DI
,
3916 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
3917 RS6000_BTI_bool_V2DI
, 0 },
3918 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DI
,
3919 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
3920 RS6000_BTI_unsigned_V2DI
, 0 },
3921 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V4SF
,
3922 RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, RS6000_BTI_V4SF
, 0 },
3923 { P8V_BUILTIN_VEC_ORC
, P8V_BUILTIN_ORC_V2DF
,
3924 RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, RS6000_BTI_V2DF
, 0 },
3926 { P8V_BUILTIN_VEC_VADDCUQ
, P8V_BUILTIN_VADDCUQ
,
3927 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
3928 { P8V_BUILTIN_VEC_VADDCUQ
, P8V_BUILTIN_VADDCUQ
,
3929 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
3930 RS6000_BTI_unsigned_V1TI
, 0 },
3932 { P8V_BUILTIN_VEC_VADDUDM
, P8V_BUILTIN_VADDUDM
,
3933 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
3934 { P8V_BUILTIN_VEC_VADDUDM
, P8V_BUILTIN_VADDUDM
,
3935 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
3936 { P8V_BUILTIN_VEC_VADDUDM
, P8V_BUILTIN_VADDUDM
,
3937 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
3938 { P8V_BUILTIN_VEC_VADDUDM
, P8V_BUILTIN_VADDUDM
,
3939 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
3940 { P8V_BUILTIN_VEC_VADDUDM
, P8V_BUILTIN_VADDUDM
,
3941 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
3942 { P8V_BUILTIN_VEC_VADDUDM
, P8V_BUILTIN_VADDUDM
,
3943 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
3945 { P8V_BUILTIN_VEC_VADDUQM
, P8V_BUILTIN_VADDUQM
,
3946 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
3947 { P8V_BUILTIN_VEC_VADDUQM
, P8V_BUILTIN_VADDUQM
,
3948 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
3949 RS6000_BTI_unsigned_V1TI
, 0 },
3951 { P8V_BUILTIN_VEC_VBPERMQ
, P8V_BUILTIN_VBPERMQ
,
3952 RS6000_BTI_V2DI
, RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0 },
3953 { P8V_BUILTIN_VEC_VBPERMQ
, P8V_BUILTIN_VBPERMQ
,
3954 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V16QI
,
3955 RS6000_BTI_unsigned_V16QI
, 0 },
3957 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZB
,
3958 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
3959 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZB
,
3960 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
3961 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZH
,
3962 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
3963 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZH
,
3964 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
3965 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZW
,
3966 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
3967 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZW
,
3968 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
3969 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZD
,
3970 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
3971 { P8V_BUILTIN_VEC_VCLZ
, P8V_BUILTIN_VCLZD
,
3972 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
3974 { P8V_BUILTIN_VEC_VCLZB
, P8V_BUILTIN_VCLZB
,
3975 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
3976 { P8V_BUILTIN_VEC_VCLZB
, P8V_BUILTIN_VCLZB
,
3977 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
3979 { P8V_BUILTIN_VEC_VCLZH
, P8V_BUILTIN_VCLZH
,
3980 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
3981 { P8V_BUILTIN_VEC_VCLZH
, P8V_BUILTIN_VCLZH
,
3982 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
3984 { P8V_BUILTIN_VEC_VCLZW
, P8V_BUILTIN_VCLZW
,
3985 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
3986 { P8V_BUILTIN_VEC_VCLZW
, P8V_BUILTIN_VCLZW
,
3987 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
3989 { P8V_BUILTIN_VEC_VCLZD
, P8V_BUILTIN_VCLZD
,
3990 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
3991 { P8V_BUILTIN_VEC_VCLZD
, P8V_BUILTIN_VCLZD
,
3992 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
3994 { P8V_BUILTIN_VEC_VGBBD
, P8V_BUILTIN_VGBBD
,
3995 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
3996 { P8V_BUILTIN_VEC_VGBBD
, P8V_BUILTIN_VGBBD
,
3997 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
3999 { P8V_BUILTIN_VEC_VADDECUQ
, P8V_BUILTIN_VADDECUQ
,
4000 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
},
4001 { P8V_BUILTIN_VEC_VADDECUQ
, P8V_BUILTIN_VADDECUQ
,
4002 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
4003 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
},
4005 { P8V_BUILTIN_VEC_VADDEUQM
, P8V_BUILTIN_VADDEUQM
,
4006 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
},
4007 { P8V_BUILTIN_VEC_VADDEUQM
, P8V_BUILTIN_VADDEUQM
,
4008 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
4009 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
},
4011 { P8V_BUILTIN_VEC_VSUBECUQ
, P8V_BUILTIN_VSUBECUQ
,
4012 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
},
4013 { P8V_BUILTIN_VEC_VSUBECUQ
, P8V_BUILTIN_VSUBECUQ
,
4014 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
4015 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
},
4017 { P8V_BUILTIN_VEC_VSUBEUQM
, P8V_BUILTIN_VSUBEUQM
,
4018 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
},
4019 { P8V_BUILTIN_VEC_VSUBEUQM
, P8V_BUILTIN_VSUBEUQM
,
4020 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
4021 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
},
4023 { P8V_BUILTIN_VEC_VMINSD
, P8V_BUILTIN_VMINSD
,
4024 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
4025 { P8V_BUILTIN_VEC_VMINSD
, P8V_BUILTIN_VMINSD
,
4026 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
4027 { P8V_BUILTIN_VEC_VMINSD
, P8V_BUILTIN_VMINSD
,
4028 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
4030 { P8V_BUILTIN_VEC_VMAXSD
, P8V_BUILTIN_VMAXSD
,
4031 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
4032 { P8V_BUILTIN_VEC_VMAXSD
, P8V_BUILTIN_VMAXSD
,
4033 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
4034 { P8V_BUILTIN_VEC_VMAXSD
, P8V_BUILTIN_VMAXSD
,
4035 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
4037 { P8V_BUILTIN_VEC_VMINUD
, P8V_BUILTIN_VMINUD
,
4038 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
,
4039 RS6000_BTI_unsigned_V2DI
, 0 },
4040 { P8V_BUILTIN_VEC_VMINUD
, P8V_BUILTIN_VMINUD
,
4041 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4042 RS6000_BTI_bool_V2DI
, 0 },
4043 { P8V_BUILTIN_VEC_VMINUD
, P8V_BUILTIN_VMINUD
,
4044 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4045 RS6000_BTI_unsigned_V2DI
, 0 },
4047 { P8V_BUILTIN_VEC_VMAXUD
, P8V_BUILTIN_VMAXUD
,
4048 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
,
4049 RS6000_BTI_unsigned_V2DI
, 0 },
4050 { P8V_BUILTIN_VEC_VMAXUD
, P8V_BUILTIN_VMAXUD
,
4051 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4052 RS6000_BTI_bool_V2DI
, 0 },
4053 { P8V_BUILTIN_VEC_VMAXUD
, P8V_BUILTIN_VMAXUD
,
4054 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4055 RS6000_BTI_unsigned_V2DI
, 0 },
4057 { P8V_BUILTIN_VEC_VMRGEW
, P8V_BUILTIN_VMRGEW
,
4058 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
4059 { P8V_BUILTIN_VEC_VMRGEW
, P8V_BUILTIN_VMRGEW
,
4060 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4061 RS6000_BTI_unsigned_V4SI
, 0 },
4062 { P8V_BUILTIN_VEC_VMRGEW
, P8V_BUILTIN_VMRGEW
,
4063 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
4065 { P8V_BUILTIN_VEC_VMRGOW
, P8V_BUILTIN_VMRGOW
,
4066 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0 },
4067 { P8V_BUILTIN_VEC_VMRGOW
, P8V_BUILTIN_VMRGOW
,
4068 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4069 RS6000_BTI_unsigned_V4SI
, 0 },
4070 { P8V_BUILTIN_VEC_VMRGOW
, P8V_BUILTIN_VMRGOW
,
4071 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V4SI
, 0 },
4073 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTB
,
4074 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
4075 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTB
,
4076 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
4077 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTH
,
4078 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
4079 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTH
,
4080 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
4081 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTW
,
4082 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
4083 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTW
,
4084 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
4085 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTD
,
4086 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
4087 { P8V_BUILTIN_VEC_VPOPCNT
, P8V_BUILTIN_VPOPCNTD
,
4088 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
4090 { P8V_BUILTIN_VEC_VPOPCNTB
, P8V_BUILTIN_VPOPCNTB
,
4091 RS6000_BTI_V16QI
, RS6000_BTI_V16QI
, 0, 0 },
4092 { P8V_BUILTIN_VEC_VPOPCNTB
, P8V_BUILTIN_VPOPCNTB
,
4093 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
, 0, 0 },
4095 { P8V_BUILTIN_VEC_VPOPCNTH
, P8V_BUILTIN_VPOPCNTH
,
4096 RS6000_BTI_V8HI
, RS6000_BTI_V8HI
, 0, 0 },
4097 { P8V_BUILTIN_VEC_VPOPCNTH
, P8V_BUILTIN_VPOPCNTH
,
4098 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
, 0, 0 },
4100 { P8V_BUILTIN_VEC_VPOPCNTW
, P8V_BUILTIN_VPOPCNTW
,
4101 RS6000_BTI_V4SI
, RS6000_BTI_V4SI
, 0, 0 },
4102 { P8V_BUILTIN_VEC_VPOPCNTW
, P8V_BUILTIN_VPOPCNTW
,
4103 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
, 0, 0 },
4105 { P8V_BUILTIN_VEC_VPOPCNTD
, P8V_BUILTIN_VPOPCNTD
,
4106 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0, 0 },
4107 { P8V_BUILTIN_VEC_VPOPCNTD
, P8V_BUILTIN_VPOPCNTD
,
4108 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0, 0 },
4110 { P8V_BUILTIN_VEC_VPKUDUM
, P8V_BUILTIN_VPKUDUM
,
4111 RS6000_BTI_V4SI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
4112 { P8V_BUILTIN_VEC_VPKUDUM
, P8V_BUILTIN_VPKUDUM
,
4113 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4114 { P8V_BUILTIN_VEC_VPKUDUM
, P8V_BUILTIN_VPKUDUM
,
4115 RS6000_BTI_bool_V4SI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
4117 { P8V_BUILTIN_VEC_VPKSDSS
, P8V_BUILTIN_VPKSDSS
,
4118 RS6000_BTI_V4SI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
4120 { P8V_BUILTIN_VEC_VPKUDUS
, P8V_BUILTIN_VPKUDUS
,
4121 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4123 { P8V_BUILTIN_VEC_VPKSDUS
, P8V_BUILTIN_VPKSDUS
,
4124 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
4126 { P8V_BUILTIN_VEC_VRLD
, P8V_BUILTIN_VRLD
,
4127 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4128 { P8V_BUILTIN_VEC_VRLD
, P8V_BUILTIN_VRLD
,
4129 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4131 { P8V_BUILTIN_VEC_VSLD
, P8V_BUILTIN_VSLD
,
4132 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4133 { P8V_BUILTIN_VEC_VSLD
, P8V_BUILTIN_VSLD
,
4134 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4136 { P8V_BUILTIN_VEC_VSRD
, P8V_BUILTIN_VSRD
,
4137 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4138 { P8V_BUILTIN_VEC_VSRD
, P8V_BUILTIN_VSRD
,
4139 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4141 { P8V_BUILTIN_VEC_VSRAD
, P8V_BUILTIN_VSRAD
,
4142 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4143 { P8V_BUILTIN_VEC_VSRAD
, P8V_BUILTIN_VSRD
,
4144 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4146 { P8V_BUILTIN_VEC_VSUBCUQ
, P8V_BUILTIN_VSUBCUQ
,
4147 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
4148 { P8V_BUILTIN_VEC_VSUBCUQ
, P8V_BUILTIN_VSUBCUQ
,
4149 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
4150 RS6000_BTI_unsigned_V1TI
, 0 },
4152 { P8V_BUILTIN_VEC_VSUBUDM
, P8V_BUILTIN_VSUBUDM
,
4153 RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_V2DI
, 0 },
4154 { P8V_BUILTIN_VEC_VSUBUDM
, P8V_BUILTIN_VSUBUDM
,
4155 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
4156 { P8V_BUILTIN_VEC_VSUBUDM
, P8V_BUILTIN_VSUBUDM
,
4157 RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, RS6000_BTI_V2DI
, 0 },
4158 { P8V_BUILTIN_VEC_VSUBUDM
, P8V_BUILTIN_VSUBUDM
,
4159 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4160 { P8V_BUILTIN_VEC_VSUBUDM
, P8V_BUILTIN_VSUBUDM
,
4161 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_bool_V2DI
, 0 },
4162 { P8V_BUILTIN_VEC_VSUBUDM
, P8V_BUILTIN_VSUBUDM
,
4163 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
, 0 },
4165 { P8V_BUILTIN_VEC_VSUBUQM
, P8V_BUILTIN_VSUBUQM
,
4166 RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, RS6000_BTI_V1TI
, 0 },
4167 { P8V_BUILTIN_VEC_VSUBUQM
, P8V_BUILTIN_VSUBUQM
,
4168 RS6000_BTI_unsigned_V1TI
, RS6000_BTI_unsigned_V1TI
,
4169 RS6000_BTI_unsigned_V1TI
, 0 },
4171 { P8V_BUILTIN_VEC_VUPKHSW
, P8V_BUILTIN_VUPKHSW
,
4172 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, 0, 0 },
4173 { P8V_BUILTIN_VEC_VUPKHSW
, P8V_BUILTIN_VUPKHSW
,
4174 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V4SI
, 0, 0 },
4176 { P8V_BUILTIN_VEC_VUPKLSW
, P8V_BUILTIN_VUPKLSW
,
4177 RS6000_BTI_V2DI
, RS6000_BTI_V4SI
, 0, 0 },
4178 { P8V_BUILTIN_VEC_VUPKLSW
, P8V_BUILTIN_VUPKLSW
,
4179 RS6000_BTI_bool_V2DI
, RS6000_BTI_bool_V4SI
, 0, 0 },
4181 { P8V_BUILTIN_VEC_VGBBD
, P8V_BUILTIN_VGBBD
,
4182 RS6000_BTI_V16QI
, 0, 0, 0 },
4183 { P8V_BUILTIN_VEC_VGBBD
, P8V_BUILTIN_VGBBD
,
4184 RS6000_BTI_unsigned_V16QI
, 0, 0, 0 },
4186 /* Crypto builtins. */
4187 { CRYPTO_BUILTIN_VPERMXOR
, CRYPTO_BUILTIN_VPERMXOR_V16QI
,
4188 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
4189 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
},
4190 { CRYPTO_BUILTIN_VPERMXOR
, CRYPTO_BUILTIN_VPERMXOR_V8HI
,
4191 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
4192 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
},
4193 { CRYPTO_BUILTIN_VPERMXOR
, CRYPTO_BUILTIN_VPERMXOR_V4SI
,
4194 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4195 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
},
4196 { CRYPTO_BUILTIN_VPERMXOR
, CRYPTO_BUILTIN_VPERMXOR_V2DI
,
4197 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4198 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
},
4200 { CRYPTO_BUILTIN_VPMSUM
, CRYPTO_BUILTIN_VPMSUMB
,
4201 RS6000_BTI_unsigned_V16QI
, RS6000_BTI_unsigned_V16QI
,
4202 RS6000_BTI_unsigned_V16QI
, 0 },
4203 { CRYPTO_BUILTIN_VPMSUM
, CRYPTO_BUILTIN_VPMSUMH
,
4204 RS6000_BTI_unsigned_V8HI
, RS6000_BTI_unsigned_V8HI
,
4205 RS6000_BTI_unsigned_V8HI
, 0 },
4206 { CRYPTO_BUILTIN_VPMSUM
, CRYPTO_BUILTIN_VPMSUMW
,
4207 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4208 RS6000_BTI_unsigned_V4SI
, 0 },
4209 { CRYPTO_BUILTIN_VPMSUM
, CRYPTO_BUILTIN_VPMSUMD
,
4210 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4211 RS6000_BTI_unsigned_V2DI
, 0 },
4213 { CRYPTO_BUILTIN_VSHASIGMA
, CRYPTO_BUILTIN_VSHASIGMAW
,
4214 RS6000_BTI_unsigned_V4SI
, RS6000_BTI_unsigned_V4SI
,
4215 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
4216 { CRYPTO_BUILTIN_VSHASIGMA
, CRYPTO_BUILTIN_VSHASIGMAD
,
4217 RS6000_BTI_unsigned_V2DI
, RS6000_BTI_unsigned_V2DI
,
4218 RS6000_BTI_INTSI
, RS6000_BTI_INTSI
},
4220 { (enum rs6000_builtins
) 0, (enum rs6000_builtins
) 0, 0, 0, 0, 0 }
4224 /* Convert a type stored into a struct altivec_builtin_types as ID,
4225 into a tree. The types are in rs6000_builtin_types: negative values
4226 create a pointer type for the type associated to ~ID. Note it is
4227 a logical NOT, rather than a negation, otherwise you cannot represent
4228 a pointer type for ID 0. */
4231 rs6000_builtin_type (int id
)
4234 t
= rs6000_builtin_types
[id
< 0 ? ~id
: id
];
4235 return id
< 0 ? build_pointer_type (t
) : t
;
4238 /* Check whether the type of an argument, T, is compatible with a
4239 type ID stored into a struct altivec_builtin_types. Integer
4240 types are considered compatible; otherwise, the language hook
4241 lang_hooks.types_compatible_p makes the decision. */
4244 rs6000_builtin_type_compatible (tree t
, int id
)
4247 builtin_type
= rs6000_builtin_type (id
);
4248 if (t
== error_mark_node
)
4250 if (INTEGRAL_TYPE_P (t
) && INTEGRAL_TYPE_P (builtin_type
))
4253 return lang_hooks
.types_compatible_p (t
, builtin_type
);
4257 /* In addition to calling fold_convert for EXPR of type TYPE, also
4258 call c_fully_fold to remove any C_MAYBE_CONST_EXPRs that could be
4259 hiding there (PR47197). */
4262 fully_fold_convert (tree type
, tree expr
)
4264 tree result
= fold_convert (type
, expr
);
4265 bool maybe_const
= true;
4267 if (!c_dialect_cxx ())
4268 result
= c_fully_fold (result
, false, &maybe_const
);
4273 /* Build a tree for a function call to an Altivec non-overloaded builtin.
4274 The overloaded builtin that matched the types and args is described
4275 by DESC. The N arguments are given in ARGS, respectively.
4277 Actually the only thing it does is calling fold_convert on ARGS, with
4278 a small exception for vec_{all,any}_{ge,le} predicates. */
4281 altivec_build_resolved_builtin (tree
*args
, int n
,
4282 const struct altivec_builtin_types
*desc
)
4284 tree impl_fndecl
= rs6000_builtin_decls
[desc
->overloaded_code
];
4285 tree ret_type
= rs6000_builtin_type (desc
->ret_type
);
4286 tree argtypes
= TYPE_ARG_TYPES (TREE_TYPE (impl_fndecl
));
4291 for (i
= 0; i
< n
; i
++)
4292 arg_type
[i
] = TREE_VALUE (argtypes
), argtypes
= TREE_CHAIN (argtypes
);
4294 /* The AltiVec overloading implementation is overall gross, but this
4295 is particularly disgusting. The vec_{all,any}_{ge,le} builtins
4296 are completely different for floating-point vs. integer vector
4297 types, because the former has vcmpgefp, but the latter should use
4300 In practice, the second and third arguments are swapped, and the
4301 condition (LT vs. EQ, which is recognizable by bit 1 of the first
4302 argument) is reversed. Patch the arguments here before building
4303 the resolved CALL_EXPR. */
4304 if (desc
->code
== ALTIVEC_BUILTIN_VEC_VCMPGE_P
4305 && desc
->overloaded_code
!= ALTIVEC_BUILTIN_VCMPGEFP_P
4306 && desc
->overloaded_code
!= VSX_BUILTIN_XVCMPGEDP_P
)
4309 t
= args
[2], args
[2] = args
[1], args
[1] = t
;
4310 t
= arg_type
[2], arg_type
[2] = arg_type
[1], arg_type
[1] = t
;
4312 args
[0] = fold_build2 (BIT_XOR_EXPR
, TREE_TYPE (args
[0]), args
[0],
4313 build_int_cst (NULL_TREE
, 2));
4319 call
= build_call_expr (impl_fndecl
, 0);
4322 call
= build_call_expr (impl_fndecl
, 1,
4323 fully_fold_convert (arg_type
[0], args
[0]));
4326 call
= build_call_expr (impl_fndecl
, 2,
4327 fully_fold_convert (arg_type
[0], args
[0]),
4328 fully_fold_convert (arg_type
[1], args
[1]));
4331 call
= build_call_expr (impl_fndecl
, 3,
4332 fully_fold_convert (arg_type
[0], args
[0]),
4333 fully_fold_convert (arg_type
[1], args
[1]),
4334 fully_fold_convert (arg_type
[2], args
[2]));
4339 return fold_convert (ret_type
, call
);
4342 /* Implementation of the resolve_overloaded_builtin target hook, to
4343 support Altivec's overloaded builtins. */
4346 altivec_resolve_overloaded_builtin (location_t loc
, tree fndecl
,
4347 void *passed_arglist
)
4349 vec
<tree
, va_gc
> *arglist
= static_cast<vec
<tree
, va_gc
> *> (passed_arglist
);
4350 unsigned int nargs
= vec_safe_length (arglist
);
4351 enum rs6000_builtins fcode
4352 = (enum rs6000_builtins
)DECL_FUNCTION_CODE (fndecl
);
4353 tree fnargs
= TYPE_ARG_TYPES (TREE_TYPE (fndecl
));
4354 tree types
[3], args
[3];
4355 const struct altivec_builtin_types
*desc
;
4358 if (!rs6000_overloaded_builtin_p (fcode
))
4361 if (TARGET_DEBUG_BUILTIN
)
4362 fprintf (stderr
, "altivec_resolve_overloaded_builtin, code = %4d, %s\n",
4363 (int)fcode
, IDENTIFIER_POINTER (DECL_NAME (fndecl
)));
4365 /* vec_lvsl and vec_lvsr are deprecated for use with LE element order. */
4366 if (fcode
== ALTIVEC_BUILTIN_VEC_LVSL
&& !VECTOR_ELT_ORDER_BIG
)
4367 warning (OPT_Wdeprecated
, "vec_lvsl is deprecated for little endian; use \
4368 assignment for unaligned loads and stores");
4369 else if (fcode
== ALTIVEC_BUILTIN_VEC_LVSR
&& !VECTOR_ELT_ORDER_BIG
)
4370 warning (OPT_Wdeprecated
, "vec_lvsr is deprecated for little endian; use \
4371 assignment for unaligned loads and stores");
4373 /* For now treat vec_splats and vec_promote as the same. */
4374 if (fcode
== ALTIVEC_BUILTIN_VEC_SPLATS
4375 || fcode
== ALTIVEC_BUILTIN_VEC_PROMOTE
)
4381 vec
<constructor_elt
, va_gc
> *vec
;
4382 const char *name
= fcode
== ALTIVEC_BUILTIN_VEC_SPLATS
? "vec_splats": "vec_promote";
4386 error ("%s only accepts %d arguments", name
, (fcode
== ALTIVEC_BUILTIN_VEC_PROMOTE
)+1 );
4387 return error_mark_node
;
4389 if (fcode
== ALTIVEC_BUILTIN_VEC_SPLATS
&& nargs
!= 1)
4391 error ("%s only accepts 1 argument", name
);
4392 return error_mark_node
;
4394 if (fcode
== ALTIVEC_BUILTIN_VEC_PROMOTE
&& nargs
!= 2)
4396 error ("%s only accepts 2 arguments", name
);
4397 return error_mark_node
;
4399 /* Ignore promote's element argument. */
4400 if (fcode
== ALTIVEC_BUILTIN_VEC_PROMOTE
4401 && !INTEGRAL_TYPE_P (TREE_TYPE ((*arglist
)[1])))
4404 arg
= (*arglist
)[0];
4405 type
= TREE_TYPE (arg
);
4406 if (!SCALAR_FLOAT_TYPE_P (type
)
4407 && !INTEGRAL_TYPE_P (type
))
4409 unsigned_p
= TYPE_UNSIGNED (type
);
4410 switch (TYPE_MODE (type
))
4413 type
= (unsigned_p
? unsigned_V1TI_type_node
: V1TI_type_node
);
4417 type
= (unsigned_p
? unsigned_V2DI_type_node
: V2DI_type_node
);
4421 type
= (unsigned_p
? unsigned_V4SI_type_node
: V4SI_type_node
);
4425 type
= (unsigned_p
? unsigned_V8HI_type_node
: V8HI_type_node
);
4429 type
= (unsigned_p
? unsigned_V16QI_type_node
: V16QI_type_node
);
4432 case SFmode
: type
= V4SF_type_node
; size
= 4; break;
4433 case DFmode
: type
= V2DF_type_node
; size
= 2; break;
4437 arg
= save_expr (fold_convert (TREE_TYPE (type
), arg
));
4438 vec_alloc (vec
, size
);
4439 for(i
= 0; i
< size
; i
++)
4441 constructor_elt elt
= {NULL_TREE
, arg
};
4442 vec
->quick_push (elt
);
4444 return build_constructor (type
, vec
);
4447 /* For now use pointer tricks to do the extraction, unless we are on VSX
4448 extracting a double from a constant offset. */
4449 if (fcode
== ALTIVEC_BUILTIN_VEC_EXTRACT
)
4454 tree arg1_inner_type
;
4459 /* No second argument. */
4462 error ("vec_extract only accepts 2 arguments");
4463 return error_mark_node
;
4466 arg2
= (*arglist
)[1];
4467 arg1
= (*arglist
)[0];
4468 arg1_type
= TREE_TYPE (arg1
);
4470 if (TREE_CODE (arg1_type
) != VECTOR_TYPE
)
4472 if (!INTEGRAL_TYPE_P (TREE_TYPE (arg2
)))
4475 /* If we are targeting little-endian, but -maltivec=be has been
4476 specified to override the element order, adjust the element
4477 number accordingly. */
4478 if (!BYTES_BIG_ENDIAN
&& rs6000_altivec_element_order
== 2)
4480 unsigned int last_elem
= TYPE_VECTOR_SUBPARTS (arg1_type
) - 1;
4481 arg2
= fold_build2_loc (loc
, MINUS_EXPR
, TREE_TYPE (arg2
),
4482 build_int_cstu (TREE_TYPE (arg2
), last_elem
),
4486 /* If we can use the VSX xxpermdi instruction, use that for extract. */
4487 mode
= TYPE_MODE (arg1_type
);
4488 if ((mode
== V2DFmode
|| mode
== V2DImode
) && VECTOR_MEM_VSX_P (mode
)
4489 && TREE_CODE (arg2
) == INTEGER_CST
4490 && wi::ltu_p (arg2
, 2))
4492 tree call
= NULL_TREE
;
4494 if (mode
== V2DFmode
)
4495 call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_EXT_V2DF
];
4496 else if (mode
== V2DImode
)
4497 call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_EXT_V2DI
];
4500 return build_call_expr (call
, 2, arg1
, arg2
);
4502 else if (mode
== V1TImode
&& VECTOR_MEM_VSX_P (mode
)
4503 && TREE_CODE (arg2
) == INTEGER_CST
4504 && wi::eq_p (arg2
, 0))
4506 tree call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_EXT_V1TI
];
4507 return build_call_expr (call
, 2, arg1
, arg2
);
4510 /* Build *(((arg1_inner_type*)&(vector type){arg1})+arg2). */
4511 arg1_inner_type
= TREE_TYPE (arg1_type
);
4512 arg2
= build_binary_op (loc
, BIT_AND_EXPR
, arg2
,
4513 build_int_cst (TREE_TYPE (arg2
),
4514 TYPE_VECTOR_SUBPARTS (arg1_type
)
4516 decl
= build_decl (loc
, VAR_DECL
, NULL_TREE
, arg1_type
);
4517 DECL_EXTERNAL (decl
) = 0;
4518 TREE_PUBLIC (decl
) = 0;
4519 DECL_CONTEXT (decl
) = current_function_decl
;
4520 TREE_USED (decl
) = 1;
4521 TREE_TYPE (decl
) = arg1_type
;
4522 TREE_READONLY (decl
) = TYPE_READONLY (arg1_type
);
4523 if (c_dialect_cxx ())
4525 stmt
= build4 (TARGET_EXPR
, arg1_type
, decl
, arg1
,
4526 NULL_TREE
, NULL_TREE
);
4527 SET_EXPR_LOCATION (stmt
, loc
);
4531 DECL_INITIAL (decl
) = arg1
;
4532 stmt
= build1 (DECL_EXPR
, arg1_type
, decl
);
4533 TREE_ADDRESSABLE (decl
) = 1;
4534 SET_EXPR_LOCATION (stmt
, loc
);
4535 stmt
= build1 (COMPOUND_LITERAL_EXPR
, arg1_type
, stmt
);
4538 innerptrtype
= build_pointer_type (arg1_inner_type
);
4540 stmt
= build_unary_op (loc
, ADDR_EXPR
, stmt
, 0);
4541 stmt
= convert (innerptrtype
, stmt
);
4542 stmt
= build_binary_op (loc
, PLUS_EXPR
, stmt
, arg2
, 1);
4543 stmt
= build_indirect_ref (loc
, stmt
, RO_NULL
);
4548 /* For now use pointer tricks to do the insertion, unless we are on VSX
4549 inserting a double to a constant offset.. */
4550 if (fcode
== ALTIVEC_BUILTIN_VEC_INSERT
)
4556 tree arg1_inner_type
;
4561 /* No second or third arguments. */
4564 error ("vec_insert only accepts 3 arguments");
4565 return error_mark_node
;
4568 arg0
= (*arglist
)[0];
4569 arg1
= (*arglist
)[1];
4570 arg1_type
= TREE_TYPE (arg1
);
4571 arg2
= (*arglist
)[2];
4573 if (TREE_CODE (arg1_type
) != VECTOR_TYPE
)
4575 if (!INTEGRAL_TYPE_P (TREE_TYPE (arg2
)))
4578 /* If we are targeting little-endian, but -maltivec=be has been
4579 specified to override the element order, adjust the element
4580 number accordingly. */
4581 if (!BYTES_BIG_ENDIAN
&& rs6000_altivec_element_order
== 2)
4583 unsigned int last_elem
= TYPE_VECTOR_SUBPARTS (arg1_type
) - 1;
4584 arg2
= fold_build2_loc (loc
, MINUS_EXPR
, TREE_TYPE (arg2
),
4585 build_int_cstu (TREE_TYPE (arg2
), last_elem
),
4589 /* If we can use the VSX xxpermdi instruction, use that for insert. */
4590 mode
= TYPE_MODE (arg1_type
);
4591 if ((mode
== V2DFmode
|| mode
== V2DImode
) && VECTOR_UNIT_VSX_P (mode
)
4592 && TREE_CODE (arg2
) == INTEGER_CST
4593 && wi::ltu_p (arg2
, 2))
4595 tree call
= NULL_TREE
;
4597 if (mode
== V2DFmode
)
4598 call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_SET_V2DF
];
4599 else if (mode
== V2DImode
)
4600 call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_SET_V2DI
];
4602 /* Note, __builtin_vec_insert_<xxx> has vector and scalar types
4605 return build_call_expr (call
, 3, arg1
, arg0
, arg2
);
4607 else if (mode
== V1TImode
&& VECTOR_UNIT_VSX_P (mode
)
4608 && TREE_CODE (arg2
) == INTEGER_CST
4609 && wi::eq_p (arg2
, 0))
4611 tree call
= rs6000_builtin_decls
[VSX_BUILTIN_VEC_SET_V1TI
];
4613 /* Note, __builtin_vec_insert_<xxx> has vector and scalar types
4615 return build_call_expr (call
, 3, arg1
, arg0
, arg2
);
4618 /* Build *(((arg1_inner_type*)&(vector type){arg1})+arg2) = arg0. */
4619 arg1_inner_type
= TREE_TYPE (arg1_type
);
4620 arg2
= build_binary_op (loc
, BIT_AND_EXPR
, arg2
,
4621 build_int_cst (TREE_TYPE (arg2
),
4622 TYPE_VECTOR_SUBPARTS (arg1_type
)
4624 decl
= build_decl (loc
, VAR_DECL
, NULL_TREE
, arg1_type
);
4625 DECL_EXTERNAL (decl
) = 0;
4626 TREE_PUBLIC (decl
) = 0;
4627 DECL_CONTEXT (decl
) = current_function_decl
;
4628 TREE_USED (decl
) = 1;
4629 TREE_TYPE (decl
) = arg1_type
;
4630 TREE_READONLY (decl
) = TYPE_READONLY (arg1_type
);
4631 if (c_dialect_cxx ())
4633 stmt
= build4 (TARGET_EXPR
, arg1_type
, decl
, arg1
,
4634 NULL_TREE
, NULL_TREE
);
4635 SET_EXPR_LOCATION (stmt
, loc
);
4639 DECL_INITIAL (decl
) = arg1
;
4640 stmt
= build1 (DECL_EXPR
, arg1_type
, decl
);
4641 TREE_ADDRESSABLE (decl
) = 1;
4642 SET_EXPR_LOCATION (stmt
, loc
);
4643 stmt
= build1 (COMPOUND_LITERAL_EXPR
, arg1_type
, stmt
);
4646 innerptrtype
= build_pointer_type (arg1_inner_type
);
4648 stmt
= build_unary_op (loc
, ADDR_EXPR
, stmt
, 0);
4649 stmt
= convert (innerptrtype
, stmt
);
4650 stmt
= build_binary_op (loc
, PLUS_EXPR
, stmt
, arg2
, 1);
4651 stmt
= build_indirect_ref (loc
, stmt
, RO_NULL
);
4652 stmt
= build2 (MODIFY_EXPR
, TREE_TYPE (stmt
), stmt
,
4653 convert (TREE_TYPE (stmt
), arg0
));
4654 stmt
= build2 (COMPOUND_EXPR
, arg1_type
, stmt
, decl
);
4659 !VOID_TYPE_P (TREE_VALUE (fnargs
)) && n
< nargs
;
4660 fnargs
= TREE_CHAIN (fnargs
), n
++)
4662 tree decl_type
= TREE_VALUE (fnargs
);
4663 tree arg
= (*arglist
)[n
];
4666 if (arg
== error_mark_node
)
4667 return error_mark_node
;
4672 arg
= default_conversion (arg
);
4674 /* The C++ front-end converts float * to const void * using
4675 NOP_EXPR<const void *> (NOP_EXPR<void *> (x)). */
4676 type
= TREE_TYPE (arg
);
4677 if (POINTER_TYPE_P (type
)
4678 && TREE_CODE (arg
) == NOP_EXPR
4679 && lang_hooks
.types_compatible_p (TREE_TYPE (arg
),
4680 const_ptr_type_node
)
4681 && lang_hooks
.types_compatible_p (TREE_TYPE (TREE_OPERAND (arg
, 0)),
4684 arg
= TREE_OPERAND (arg
, 0);
4685 type
= TREE_TYPE (arg
);
4688 /* Remove the const from the pointers to simplify the overload
4689 matching further down. */
4690 if (POINTER_TYPE_P (decl_type
)
4691 && POINTER_TYPE_P (type
)
4692 && TYPE_QUALS (TREE_TYPE (type
)) != 0)
4694 if (TYPE_READONLY (TREE_TYPE (type
))
4695 && !TYPE_READONLY (TREE_TYPE (decl_type
)))
4696 warning (0, "passing arg %d of %qE discards qualifiers from"
4697 "pointer target type", n
+ 1, fndecl
);
4698 type
= build_pointer_type (build_qualified_type (TREE_TYPE (type
),
4700 arg
= fold_convert (type
, arg
);
4707 /* If the number of arguments did not match the prototype, return NULL
4708 and the generic code will issue the appropriate error message. */
4709 if (!VOID_TYPE_P (TREE_VALUE (fnargs
)) || n
< nargs
)
4715 if (fcode
== ALTIVEC_BUILTIN_VEC_STEP
)
4717 if (TREE_CODE (types
[0]) != VECTOR_TYPE
)
4720 return build_int_cst (NULL_TREE
, TYPE_VECTOR_SUBPARTS (types
[0]));
4723 for (desc
= altivec_overloaded_builtins
;
4724 desc
->code
&& desc
->code
!= fcode
; desc
++)
4727 /* For arguments after the last, we have RS6000_BTI_NOT_OPAQUE in
4729 for (; desc
->code
== fcode
; desc
++)
4730 if ((desc
->op1
== RS6000_BTI_NOT_OPAQUE
4731 || rs6000_builtin_type_compatible (types
[0], desc
->op1
))
4732 && (desc
->op2
== RS6000_BTI_NOT_OPAQUE
4733 || rs6000_builtin_type_compatible (types
[1], desc
->op2
))
4734 && (desc
->op3
== RS6000_BTI_NOT_OPAQUE
4735 || rs6000_builtin_type_compatible (types
[2], desc
->op3
))
4736 && rs6000_builtin_decls
[desc
->overloaded_code
] != NULL_TREE
)
4737 return altivec_build_resolved_builtin (args
, n
, desc
);
4740 error ("invalid parameter combination for AltiVec intrinsic");
4741 return error_mark_node
;