1 // Test that ARM NEON vector types have their names mangled correctly.
2 
3 // { dg-do compile }
4 // { dg-require-effective-target arm_neon_ok }
5 // { dg-add-options arm_neon }
6 
7 #include <arm_neon.h>
8 
f0(int8x8_t a)9 void f0 (int8x8_t a) {}
f1(int16x4_t a)10 void f1 (int16x4_t a) {}
f2(int32x2_t a)11 void f2 (int32x2_t a) {}
f3(uint8x8_t a)12 void f3 (uint8x8_t a) {}
f4(uint16x4_t a)13 void f4 (uint16x4_t a) {}
f5(uint32x2_t a)14 void f5 (uint32x2_t a) {}
f6(float32x2_t a)15 void f6 (float32x2_t a) {}
f7(poly8x8_t a)16 void f7 (poly8x8_t a) {}
f8(poly16x4_t a)17 void f8 (poly16x4_t a) {}
18 
f9(int8x16_t a)19 void f9 (int8x16_t a) {}
f10(int16x8_t a)20 void f10 (int16x8_t a) {}
f11(int32x4_t a)21 void f11 (int32x4_t a) {}
f12(uint8x16_t a)22 void f12 (uint8x16_t a) {}
f13(uint16x8_t a)23 void f13 (uint16x8_t a) {}
f14(uint32x4_t a)24 void f14 (uint32x4_t a) {}
f15(float32x4_t a)25 void f15 (float32x4_t a) {}
f16(poly8x16_t a)26 void f16 (poly8x16_t a) {}
f17(poly16x8_t a)27 void f17 (poly16x8_t a) {}
28 
f18(int8x16_t,int8x16_t)29 void f18 (int8x16_t, int8x16_t) {}
30 
f19(poly8_t a)31 void f19 (poly8_t a) {}
f20(poly16_t a)32 void f20 (poly16_t a) {}
33 
34 // { dg-final { scan-assembler "_Z2f015__simd64_int8_t:" } }
35 // { dg-final { scan-assembler "_Z2f116__simd64_int16_t:" } }
36 // { dg-final { scan-assembler "_Z2f216__simd64_int32_t:" } }
37 // { dg-final { scan-assembler "_Z2f316__simd64_uint8_t:" } }
38 // { dg-final { scan-assembler "_Z2f417__simd64_uint16_t:" } }
39 // { dg-final { scan-assembler "_Z2f517__simd64_uint32_t:" } }
40 // { dg-final { scan-assembler "_Z2f618__simd64_float32_t:" } }
41 // { dg-final { scan-assembler "_Z2f716__simd64_poly8_t:" } }
42 // { dg-final { scan-assembler "_Z2f817__simd64_poly16_t:" } }
43 // { dg-final { scan-assembler "_Z2f916__simd128_int8_t:" } }
44 // { dg-final { scan-assembler "_Z3f1017__simd128_int16_t:" } }
45 // { dg-final { scan-assembler "_Z3f1117__simd128_int32_t:" } }
46 // { dg-final { scan-assembler "_Z3f1217__simd128_uint8_t:" } }
47 // { dg-final { scan-assembler "_Z3f1318__simd128_uint16_t:" } }
48 // { dg-final { scan-assembler "_Z3f1418__simd128_uint32_t:" } }
49 // { dg-final { scan-assembler "_Z3f1519__simd128_float32_t:" } }
50 // { dg-final { scan-assembler "_Z3f1617__simd128_poly8_t:" } }
51 // { dg-final { scan-assembler "_Z3f1718__simd128_poly16_t:" } }
52 // { dg-final { scan-assembler "_Z3f1816__simd128_int8_tS_:" } }
53 // { dg-final { scan-assembler "_Z3f19a:" } }
54 // { dg-final { scan-assembler "_Z3f20s:" } }
55