diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/vect/pr33597.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/pr33597.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/vect/pr33597.c b/gcc/testsuite/gcc.dg/vect/pr33597.c new file mode 100644 index 000000000..7fdcde07f --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr33597.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ + +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; + +void +rgb15to24_C (const uint8_t * src, uint8_t * dst, long src_size) +{ + const uint16_t *end; + const uint16_t *s = (uint16_t *)src; + uint8_t *d = (uint8_t *)dst; + + end = s + src_size/2; + while (s < end) + { + uint16_t bgr = *s++; + + *d++ = (bgr&0x1F)<<3; + *d++ = (bgr&0x3E0)>>2; + *d++ = (bgr&0x7C00)>>7; + } +} + +/* { dg-final { cleanup-tree-dump "vect" } } */ |