1 extern void abort (void);
2 
3 typedef short  __v2hi __attribute ((vector_size(4)));
4 typedef __v2hi fract2x16;
5 typedef short fract16;
6 
foo(fract2x16 f,short n)7 fract2x16 foo (fract2x16 f, short n)
8 {
9   return __builtin_bfin_shrl_fr2x16 (f, n);
10 }
11 
main()12 int main ()
13 {
14   fract2x16 a, t;
15   fract16 t1, t2;
16 
17   a = __builtin_bfin_compose_2x16 (0xcfff, 0xffff);
18 
19   t = foo (a, -4);
20   t1 = __builtin_bfin_extract_hi (t);
21   t2 = __builtin_bfin_extract_lo (t);
22   if (t1 != 0xfffffff0 || t2 != 0xfffffff0)
23     abort ();
24 
25   return 0;
26 }
27 
28