(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
fold-modpow2-2.c
       1  /* PR tree-optimization/99079 */
       2  /* { dg-do compile { target { lp64 || ilp32 } } } */
       3  /* { dg-options "-O2 -fdump-tree-optimized" } */
       4  
       5  unsigned int
       6  foo1 (unsigned int a, unsigned int b)
       7  {
       8    return a % (1 << b);
       9  }
      10  
      11  int
      12  foo2 (int b)
      13  {
      14    return 371 % (1U << b);
      15  }
      16  
      17  long long
      18  foo3 (int b)
      19  {
      20    return 371LL % (1U << b);
      21  }
      22  
      23  unsigned long long
      24  foo4 (unsigned long long a, int b)
      25  {
      26    return a % (1U << b);
      27  }
      28  
      29  unsigned
      30  foo5 (unsigned a, int b)
      31  {
      32    return a % (unsigned) (1ULL << b);
      33  }
      34  
      35  int
      36  foo6 (int b)
      37  {
      38    return 371 % (int) (1ULL << b);
      39  }
      40  
      41  long long
      42  foo7 (int b)
      43  {
      44    return 371LL % (1 << b);
      45  }
      46  
      47  /* { dg-final { scan-tree-dump-not " % " "optimized" } } */