1 extern void abort (void);
2 
3 typedef short  __v2hi __attribute ((vector_size(4)));
4 typedef __v2hi fract2x16;
5 typedef short  fract16;
6 
main()7 int main ()
8 {
9   fract2x16 a, b, t;
10   fract16 t1, t2;
11 
12   a = __builtin_bfin_compose_2x16 (0x5000, 0x3000);
13   b = __builtin_bfin_compose_2x16 (0x6000, 0x6000);
14 
15   t = __builtin_bfin_dspsubaddsat (a, b);
16   t1 = __builtin_bfin_extract_hi (t);
17   t2 = __builtin_bfin_extract_lo (t);
18   if (t1 != -0x1000 || t2 != 0x7fff)
19     abort ();
20   return 0;
21 }
22 
23