diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/vect/pr71264.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/pr71264.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/vect/pr71264.c b/gcc/testsuite/gcc.dg/vect/pr71264.c new file mode 100644 index 0000000000..4f6381e323 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr71264.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target vect_int } */ + +typedef unsigned char uint8_t; +typedef uint8_t footype __attribute__((vector_size(4))); + +void test(uint8_t *ptr, uint8_t *mask) +{ + footype mv; + __builtin_memcpy(&mv, mask, sizeof(mv)); + for (unsigned i = 0; i < 16; i += 4) + { + footype temp; + __builtin_memcpy(&temp, &ptr[i], sizeof(temp)); + temp ^= mv; + __builtin_memcpy(&ptr[i], &temp, sizeof(temp)); + } +} + +/* { dg-final { scan-tree-dump "vectorized 1 loops in function" "vect" } } */ |