2018-03-15 Steven G. Kargl <kargl@gcc.gnu.org>
[official-gcc.git] / gcc / testsuite / gcc.target / m68k / pr35018.c
blobfadea8620b21982ea4204c90696f882699fcdab2
1 /* { dg-do compile } */
2 /* { dg-options "-Os -mcpu=5249" } */
4 static inline void vect_add(int *x, int *y, int n)
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");
12 extern void vect_copy (int *, int *, int);
14 void vorbis_synthesis_blockin(int *blocksizes)
16 int j, *pcm, *p;
18 int n=blocksizes[*p]/2;
19 int n0=blocksizes[0]/2;
20 int n1=blocksizes[1]/2;
22 for(j=0;j<*p;j++)
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);