diff options
Diffstat (limited to 'gcc/testsuite/gcc.apple/4100712.c')
-rw-r--r-- | gcc/testsuite/gcc.apple/4100712.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.apple/4100712.c b/gcc/testsuite/gcc.apple/4100712.c new file mode 100644 index 00000000000..7298a3fa7c4 --- /dev/null +++ b/gcc/testsuite/gcc.apple/4100712.c @@ -0,0 +1,37 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +void foo(void *pdst, short i, double *sp, + short xsize, short dorder, short strided) +{ + unsigned short *dp = (unsigned short*)pdst + i*strided; + short j, k; + if (strided == xsize) + { + for (j = 0; j < (xsize << dorder); j++) + { + double x = sp[2*j]; + if (x >= (32767 * 2 + 1)) + x = (32767 * 2 + 1); + if (x <= 0) x + = 0; + dp[j] = (short) x; + } + } + else + { + for (k = 0; k < (1 << dorder); k++) + { + for (j = 0; j < xsize; j++) + { + double x = sp[2*j]; + if (x >= (32767 * 2 + 1)) + x = (32767 * 2 + 1); + if (x <= 0) + x = 0; + dp[j] = (short) x; + } + sp += 2*xsize; + dp += strided; + } + } +} |