aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/pr65105-5.c
blob: 5818c1c0bac832f4f01326df2879b7fd16807406 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* PR target/pr65105 */
/* { dg-do compile { target { ia32 } } } */
/* { dg-options "-O2 -march=core-avx2" } */
/* { dg-final { scan-assembler "pand" } } */
/* { dg-final { scan-assembler "pxor" } } */
/* { dg-final { scan-assembler "ptest" } } */

struct S1
{
  unsigned long long a;
  unsigned long long b;
};

void
test (int p1, unsigned long long p2, int p3, struct S1 *p4)
{
  int i;

  for (i = 0; i < p1; i++)
    if ((p4[i].a & p2) != p2)
      p4[i].a ^= (1ULL << p3);
}