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 
foo(vector unsigned char)8 void foo(vector unsigned char) { }
foo(vector signed char)9 void foo(vector signed char) { }
foo(vector bool char)10 void foo(vector bool     char) { }
foo(vector unsigned short)11 void foo(vector unsigned short) { }
foo(vector signed short)12 void foo(vector signed short) { }
foo(vector bool short)13 void foo(vector bool short) { }
foo(vector unsigned int)14 void foo(vector unsigned int) { }
foo(vector signed int)15 void foo(vector signed int) { }
foo(vector bool int)16 void foo(vector bool int) { }
foo(vector float)17 void foo(vector float) { }
foo(vector pixel)18 void foo(vector pixel) { }
foo(int)19 void foo(int) { }
foo(unsigned int)20 void foo(unsigned int) { }
foo(float)21 void foo(float) { }
22 
23 /* { dg-final { scan-assembler "_Z3fooDv16_h" } } */
24 /* { dg-final { scan-assembler "_Z3fooDv16_a" } } */
25 /* { dg-final { scan-assembler "_Z3fooDv16_U6__boolc" } } */
26 /* { dg-final { scan-assembler "_Z3fooDv8_t" } } */
27 /* { dg-final { scan-assembler "_Z3fooDv8_s" } } */
28 /* { dg-final { scan-assembler "_Z3fooDv8_U6__bools" } } */
29 /* { dg-final { scan-assembler "_Z3fooDv4_j" } } */
30 /* { dg-final { scan-assembler "_Z3fooDv4_i" } } */
31 /* { dg-final { scan-assembler "_Z3fooDv4_U6__booli" } } */
32 /* { dg-final { scan-assembler "_Z3fooDv4_f" } } */
33 /* { dg-final { scan-assembler "_Z3fooDv8_u7__pixel" } } */
34 /* { dg-final { scan-assembler "_Z3fooi" } } */
35 /* { dg-final { scan-assembler "_Z3fooj" } } */
36 /* { dg-final { scan-assembler "_Z3foof" } } */
37