diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/vect/pr33846.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/pr33846.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/vect/pr33846.c b/gcc/testsuite/gcc.dg/vect/pr33846.c new file mode 100644 index 000000000..3f421c9b7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr33846.c @@ -0,0 +1,24 @@ +/* Testcase by Martin Michlmayr <tbm@cyrius.com> */ +/* { dg-do compile } */ +/* { dg-require-effective-target vect_shift } */ + +int clamp_val (int i) +{ + return ~i >> 31; +} + +typedef __PTRDIFF_TYPE__ intptr_t; + +void _mix_some_samples (intptr_t buf, int *mix_buffer, int mix_size) +{ + int i; + signed int *p = mix_buffer; + for (i = mix_size ; i > 0; i--) + { + *((short *) buf) = clamp_val ((*p) + 0x800000); + buf += 2; + p++; + } +} + +/* { dg-final { cleanup-tree-dump "vect" } } */ |