1/* Test for AltiVec type overloading and name mangling.  */
2/* { dg-do compile { target powerpc*-*-* } } */
3/* { dg-require-effective-target powerpc_altivec_ok } */
4/* { dg-options "-maltivec" } */
5
6#include <altivec.h>
7
8void foo(vector unsigned char) { }
9void foo(vector signed char) { }
10void foo(vector bool     char) { }
11void foo(vector unsigned short) { }
12void foo(vector signed short) { }
13void foo(vector bool short) { }
14void foo(vector unsigned int) { }
15void foo(vector signed int) { }
16void foo(vector bool int) { }
17void foo(vector float) { }
18void foo(vector pixel) { }
19void foo(int) { }
20void foo(unsigned int) { }
21void foo(float) { }
22
23/* { dg-final { scan-assembler "_Z3fooU8__vectorh" } } */
24/* { dg-final { scan-assembler "_Z3fooU8__vectora" } } */
25/* { dg-final { scan-assembler "_Z3fooU8__vectorU6__boolc" } } */
26/* { dg-final { scan-assembler "_Z3fooU8__vectort" } } */
27/* { dg-final { scan-assembler "_Z3fooU8__vectors" } } */
28/* { dg-final { scan-assembler "_Z3fooU8__vectorU6__bools" } } */
29/* { dg-final { scan-assembler "_Z3fooU8__vectorj" } } */
30/* { dg-final { scan-assembler "_Z3fooU8__vectori" } } */
31/* { dg-final { scan-assembler "_Z3fooU8__vectorU6__booli" } } */
32/* { dg-final { scan-assembler "_Z3fooU8__vectorf" } } */
33/* { dg-final { scan-assembler "_Z3fooU8__vectoru7__pixel" } } */
34/* { dg-final { scan-assembler "_Z3fooi" } } */
35/* { dg-final { scan-assembler "_Z3fooj" } } */
36/* { dg-final { scan-assembler "_Z3foof" } } */
37