1  /* Check that eliminable compare-instructions are eliminated. */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2" } */
       4  /* { dg-final { scan-assembler-not "\tcmp|\ttest" } } */
       5  /* For the f2, we want an andq, not and.w. */
       6  /* { dg-final { scan-assembler "\tandq 20," } } */
       7  /* { dg-final { scan-assembler-not "\tand.w 20," } } */
       8  /* We don't want a move.w that sets condition codes, but it happens for
       9     cc0, as the "andq" that is the last insn before the branch, is for an
      10     alternative that matches -32..31 and thus marked as clobbering
      11     condition codes.  */
      12  /* { dg-final { scan-assembler-not "\tmove.w" { xfail cc0 } } } */
      13  
      14  #define op &
      15  #include "pr93372-16.c"
      16  
      17  #undef op
      18  #define op & 20 &
      19  #define f f2
      20  #define g g2
      21  #include "pr93372-16.c"