blob: edd0c3629f284c26187ca91b1362473481d9152a [file] [log] [blame]
/* { 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++;
}
}