(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
pr103514.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O --param logical-op-non-short-circuit=1 -fdump-tree-optimized" } */
       3  #include <stdbool.h>
       4  
       5  bool
       6  i (bool a, bool b)
       7  {
       8       return (a & b) ^ (a == b);
       9  }
      10  
      11  bool
      12  j (bool a, bool b)
      13  {
      14       return (a & b) == (a ^ b);
      15  }
      16  
      17  bool
      18  g (bool a, bool b)
      19  {
      20      return (a && b) == (a ^ b); 
      21  }
      22  
      23  bool
      24  h (bool a, bool b)
      25  {
      26       return (a && b) ^ (a == b);
      27  }
      28  
      29  
      30  /* Make sure we have removed "==" and "^" and "&". */
      31  /* { dg-final { scan-tree-dump-not "&" "optimized"} } */
      32  /* { dg-final { scan-tree-dump-not "\\^"  "optimized"} } */
      33  /* { dg-final { scan-tree-dump-not "==" "optimized"} } */