(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
fold-notshift-2.c
       1  /* PR middle-end/55299 */
       2  
       3  /* { dg-do compile } */
       4  /* { dg-options "-O -fdump-tree-cddce1" } */
       5  
       6  unsigned int
       7  lsr (unsigned int a, unsigned int b)
       8  {
       9    return ~((~a) >> b);
      10  }
      11  
      12  int
      13  sl (int a, int b)
      14  {
      15    return ~((~a) << b);
      16  }
      17  
      18  typedef unsigned __INT32_TYPE__ uint32_t;
      19  typedef __INT64_TYPE__ int64_t;
      20  
      21  int64_t
      22  asr_widen1 (uint32_t a, int b)
      23  {
      24    return ~((int64_t)(~a) >> b);
      25  }
      26  
      27  int64_t
      28  asr_widen2 (uint32_t a, int b)
      29  {
      30    return ~(int64_t)(~a >> b);
      31  }
      32  
      33  /* { dg-final { scan-tree-dump-times "~" 8 "cddce1" } } */