| /* { dg-do compile } */ |
| /* { dg-options "-O2 -march=core-avx2" } */ |
| /* { dg-additional-options "-mregparm=1" { target ia32 } } */ |
| /* { dg-final { scan-assembler-not "popcnt" } } */ |
| /* { dg-final { scan-assembler-not "shr" } } */ |
| /* { dg-final { scan-assembler-times "jp" 2 } } */ |
| /* { dg-final { scan-assembler-times "jnp" 2 } } */ |
| |
| void dummy(void); |
| |
| void pos8(unsigned char x) |
| { |
| if (__builtin_parity(x)) |
| dummy(); |
| } |
| |
| void neg8(unsigned char x) |
| { |
| if (!__builtin_parity(x)) |
| dummy(); |
| } |
| |
| void pos16(unsigned short x) |
| { |
| if (__builtin_parity(x)) |
| dummy(); |
| } |
| |
| void neg16(unsigned short x) |
| { |
| if (!__builtin_parity(x)) |
| dummy(); |
| } |