Imported Upstream version 4.8.1
[platform/upstream/gcc48.git] / gcc / testsuite / gcc.target / m68k / pr35018.c
1 /* { dg-do compile } */
2 /* { dg-options "-Os -mcpu=5249" } */
3
4 static inline void vect_add(int *x, int *y, int n)
5 {
6     asm volatile ("nop;"
7                 : [n] "+d" (n), [x] "+a" (x), [y] "+a" (y)
8                 : : "%d0", "%d1", "%d2", "%d3", "%a0", "%a1", "%a2", "%a3",
9                     "cc", "memory");
10 }
11
12 extern void vect_copy (int *, int *, int);
13
14 void vorbis_synthesis_blockin(int *blocksizes)
15 {
16     int j, *pcm, *p;
17
18     int n=blocksizes[*p]/2;
19     int n0=blocksizes[0]/2;
20     int n1=blocksizes[1]/2;
21
22     for(j=0;j<*p;j++)
23     {
24         vect_add(p, pcm, n1);
25         vect_add(pcm, p, n0);
26         vect_add(p, pcm, n0);
27         vect_add(p, pcm, n0);
28         vect_copy(pcm, p, n);
29     }
30 }
31