summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/vect/pr71264.c
blob: 4f6381e323a8eda152958e3888a298512a35d9cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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" } } */