1  /* { dg-do compile } */
       2  /* { dg-options "-O2 -fdump-tree-evrp" }*/
       3  
       4  typedef __INT32_TYPE__ int32_t;
       5  
       6  int32_t and(int32_t x, int32_t y)
       7  {
       8    int32_t tx = x >> 24;
       9    int32_t ty = y >> 24;
      10    int32_t t = tx & ty;
      11    return t;
      12  }
      13  
      14  int32_t ior(int32_t x, int32_t y)
      15  {
      16    int32_t tx = x >> 24;
      17    int32_t ty = y >> 24;
      18    int32_t t = tx | ty;
      19    return t;
      20  }
      21  
      22  int32_t xor(int32_t x, int32_t y)
      23  {
      24    int32_t tx = x >> 24;
      25    int32_t ty = y >> 24;
      26    int32_t t = tx ^ ty;
      27    return t;
      28  }
      29  
      30  /* { dg-final { scan-tree-dump-times "\\\[-128, 127\\\]" 9 "evrp" } } */