/* { dg-do compile } */ /* { dg-options "-O" } */ extern void foo(void); void BNONE_test(int a, int b) { if (a & b) foo(); } void BANY_test(int a, int b) { if (!(a & b)) foo(); } void BALL_test(int a, int b) { if (~a & b) foo(); } void BNALL_test(int a, int b) { if (!(~a & b)) foo(); } /* { dg-final { scan-assembler-times "bnone" 1 } } */ /* { dg-final { scan-assembler-times "bany" 1 } } */ /* { dg-final { scan-assembler-times "ball" 1 } } */ /* { dg-final { scan-assembler-times "bnall" 1 } } */