1/* { dg-do run } */
2/* { dg-options "-O2" } */
3
4extern void abort (void);
5
6int __attribute__ ((noinline))
7test (unsigned int *a, int b)
8{
9  return b ? 1 : __builtin_parity (*a);
10}
11
12int __attribute__ ((noinline))
13testl (unsigned long *a, int b)
14{
15  return b ? 1 : __builtin_parityl (*a);
16}
17
18int __attribute__ ((noinline))
19testll (unsigned long long *a, int b)
20{
21  return b ? 1 : __builtin_parityll (*a);
22}
23
24int
25main ()
26{
27  unsigned int a = 0;
28  unsigned long al;
29  unsigned long long all;
30
31  a = 0x12345670;
32  if (test (&a, 0))
33    abort ();
34
35  al = 0x12345670ul;
36  if (testl (&al, 0))
37    abort();
38
39#if 1
40  all = 0x12345678abcdef0ull;
41  if (testll (&all, 0))
42    abort ();
43#endif
44  return 0;
45}
46