1  /* { dg-do compile } */
       2  /* { dg-options "-O -fdump-tree-forwprop1-details -fdump-tree-ccp1-details" } */
       3  
       4  int f1(int a, int b){
       5    int c = a & b;
       6    return c & b;
       7  }
       8  int f2(int a, int b){
       9    int c = a | b;
      10    return b | c;
      11  }
      12  int g1(int a, int b, int c){
      13    int d = a & b;
      14    int e = b & c;
      15    return d & e;
      16  }
      17  int g2(int a, int b, int c){
      18    int d = a | b;
      19    int e = c | b;
      20    return d | e;
      21  }
      22  int g3(int a, int b, int c){
      23    int d = a ^ b;
      24    int e = b ^ c;
      25    return e ^ d;
      26  }
      27  
      28  /* { dg-final { scan-tree-dump-times "Match-and-simplified" 2 "ccp1" } } */
      29  /* { dg-final { scan-tree-dump-times "gimple_simplified" 3 "forwprop1" } } */