OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.target/] [arm/] [pr51968.c] - Blame information for rev 691

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 691 jeremybenn
/* PR target/51968 */
2
/* { dg-do compile } */
3
/* { dg-options "-O2 -march=armv7-a -mfloat-abi=softfp -mfpu=neon" } */
4
/* { dg-require-effective-target arm_neon_ok } */
5
 
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;
13
 
14
void
15
foo (int8x8_t z, int8x8_t x, int16x8_t b, int8x8_t n)
16
{
17
  if (y)
18
    {
19
      struct T m;
20
      __builtin_neon_vuzpv8qi (&m.val[0], z, x);
21
    }
22
  for (;;)
23
    {
24
      int8x16_t g;
25
      int8x8_t h, j, k;
26
      struct T m;
27
      j = __builtin_neon_vqmovunv8hi (b, 1);
28
      g = __builtin_neon_vcombinev8qi (j, h);
29
      k = __builtin_neon_vget_lowv16qi (g);
30
      __builtin_neon_vuzpv8qi (&m.val[0], k, n);
31
    }
32
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.