1  /* PR tree-optimization/94786 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -fdump-tree-optimized" } */
       4  /* { dg-final { scan-tree-dump-times "= ~\[xy\]_" 4 "optimized" } } */
       5  /* { dg-final { scan-tree-dump-times " & \[xy\]_" 4 "optimized" } } */
       6  
       7  unsigned
       8  foo_u(unsigned x, unsigned y)
       9  {
      10    return (x | y) - y;
      11  }
      12  
      13  int
      14  foo_i(int x, int y)
      15  {
      16    return (x | y) - y;
      17  }
      18  
      19  unsigned long long
      20  foo_ull(unsigned long long x, unsigned long long y)
      21  {
      22    return (x | y) - y;
      23  }
      24  
      25  long long
      26  foo_ll(long long x, long long y)
      27  {
      28    return (x | y) - y;
      29  }