2018-02-09 Sebastian Perta <sebastian.perta@renesas.com>
[official-gcc.git] / gcc / testsuite / gcc.target / arm / pr51968.c
blob99bdb961757bfa62aec5ef1426137425e57898b0
1 /* PR target/51968 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2 -Wno-implicit-function-declaration -march=armv7-a -mfloat-abi=softfp -mfpu=neon" } */
4 /* { dg-require-effective-target arm_neon_ok } */
6 typedef __builtin_neon_qi int8x8_t __attribute__ ((__vector_size__ (8)));
7 typedef __builtin_neon_uqi uint8x8_t __attribute__ ((__vector_size__ (8)));
8 typedef __builtin_neon_qi int8x16_t __attribute__ ((__vector_size__ (16)));
9 typedef __builtin_neon_hi int16x8_t __attribute__ ((__vector_size__ (16)));
10 typedef __builtin_neon_si int32x4_t __attribute__ ((__vector_size__ (16)));
11 struct T { int8x8_t val[2]; };
12 int y;
14 void
15 foo (int8x8_t z, int8x8_t x, int16x8_t b, int8x8_t n)
17 if (y)
19 struct T m;
20 __builtin_neon_vuzpv8qi (&m.val[0], z, x);
22 for (;;)
24 int8x16_t g;
25 int8x8_t h, j, k;
26 struct T m;
27 j = __builtin_neon_vqmovunv8hi (b);
28 g = __builtin_neon_vcombinev8qi (j, h);
29 k = __builtin_neon_vget_lowv16qi (g);
30 __builtin_neon_vuzpv8qi (&m.val[0], k, n);