OSDN Git Service

PR target/50740
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / bfin / 20090411-1.c
1 /* { dg-do compile { target bfin-*-* } } */
2 /* { dg-options "-O2" } */
3
4 typedef short __v2hi __attribute__ ((vector_size (4)));
5 typedef __v2hi raw2x16;
6 typedef raw2x16 fract2x16;
7 typedef short fract16;
8 typedef struct complex_fract16
9 {
10   fract16 re;
11   fract16 im;
12 } __attribute__ ((aligned (4))) complex_fract16;
13
14
15 __inline__ __attribute__ ((always_inline))
16      static complex_fract16 csqu_fr16 (complex_fract16 _a)
17 {
18   complex_fract16 _x;
19   fract2x16 i =
20     __builtin_bfin_csqu_fr16 (__builtin_bfin_compose_2x16 ((_a).im, (_a).re));
21   (_x).re = __builtin_bfin_extract_lo (i);
22   (_x).im = __builtin_bfin_extract_hi (i);
23   return _x;
24 }
25
26 complex_fract16 f (complex_fract16 _a)
27 {
28   return csqu_fr16 (_a);
29 }