aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr49030.c
blob: edd0c3629f284c26187ca91b1362473481d9152a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/* { dg-require-effective-target int32plus } */

void
sample_move_d32u24_sS (char *dst, float *src, unsigned long nsamples,
		       unsigned long dst_skip)
{
  long long y;
  while (nsamples--)
    {
      y = (long long) (*src * 8388608.0f) << 8;
      if (y > 2147483647) {
	*(int *) dst = 2147483647;
      } else if (y < -2147483647 - 1) {
	*(int *) dst = -2147483647 - 1;
      } else {
	*(int *) dst = (int) y;
      }
      dst += dst_skip;
      src++;
    }
}