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)) csqu_fr16(complex_fract16 _a)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 f(complex_fract16 _a)26complex_fract16 f (complex_fract16 _a) 27 { 28 return csqu_fr16 (_a); 29 } 30