aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.target/i386/parity-3.c
blob: 6b72591aad195a43845101e4dff2a86f902aa948 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* { dg-do compile } */
/* { dg-options "-O2 -march=core-avx2 -mno-popcnt" } */
/* { dg-final { scan-assembler "setp" } } */
/* { dg-final { scan-assembler "jnp" } } */
/* { dg-final { scan-assembler "jp" } } */

void dummy(void);

int foo(unsigned int x)
{
  return !__builtin_parity(x);
}

void bar(unsigned int x)
{
  if (__builtin_parity(x))
    dummy();
}

void baz(unsigned int x)
{
  if (!__builtin_parity(x))
    dummy();
}