(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr69097-2.c
       1  /* PR tree-optimization/69097 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -fdump-tree-optimized" } */
       4  /* { dg-final { scan-tree-dump-times "-y" 17 "optimized" } } */
       5  
       6  int
       7  f1 (int x, int y)
       8  {
       9    if (x == -__INT_MAX__)
      10      __builtin_unreachable ();
      11    return x % -y;
      12  }
      13  
      14  int
      15  f2 (int x, int y)
      16  {
      17    if (x >= -__INT_MAX__ + 1)
      18      __builtin_unreachable ();
      19    return x % -y;
      20  }
      21  
      22  int
      23  f3 (int x, int y)
      24  {
      25    if (y == -2)
      26      __builtin_unreachable ();
      27    return x % -y;
      28  }
      29  
      30  int
      31  f4 (int x, int y)
      32  {
      33    if (y < -1)
      34      __builtin_unreachable ();
      35    return x % -y;
      36  }
      37  
      38  int
      39  f5 (int x, int y)
      40  {
      41    if (y >= 0)
      42      __builtin_unreachable ();
      43    return x % -y;
      44  }
      45  
      46  int
      47  f6 (int x, int y)
      48  {
      49    if (y < -1 || y > 24)
      50      __builtin_unreachable ();
      51    return x % -y;
      52  }
      53  
      54  int
      55  f7 (int x, int y)
      56  {
      57    if (y <= -17 || y >= 0)
      58      __builtin_unreachable ();
      59    return x % -y;
      60  }
      61  
      62  int
      63  f8 (int x, int y)
      64  {
      65    if (y >= -13 && y <= -2)
      66      __builtin_unreachable ();
      67    return x % -y;
      68  }
      69  
      70  int
      71  f9 (int x, int y)
      72  {
      73    return x % -y;
      74  }
      75  
      76  int
      77  f10 (int x, int y)
      78  {
      79    if (x != -__INT_MAX__)
      80      return x % -y;
      81    return 34;
      82  }
      83  
      84  int
      85  f11 (int x, int y)
      86  {
      87    if (x < -__INT_MAX__ + 2)
      88      return x % -y;
      89    return 34;
      90  }
      91  
      92  int
      93  f12 (int x, int y)
      94  {
      95    if (y != -2)
      96      return x % -y;
      97    return 34;
      98  }
      99  
     100  int
     101  f13 (int x, int y)
     102  {
     103    if (y >= -1)
     104      return x % -y;
     105    return 34;
     106  }
     107  
     108  int
     109  f14 (int x, int y)
     110  {
     111    if (y < 0)
     112      return x % -y;
     113    return 34;
     114  }
     115  
     116  int
     117  f15 (int x, int y)
     118  {
     119    if (y >= -1 && y <= 24)
     120      return x % -y;
     121    return 34;
     122  }
     123  
     124  int
     125  f16 (int x, int y)
     126  {
     127    if (y > -17 && y < 0)
     128      return x % -y;
     129    return 34;
     130  }
     131  
     132  int
     133  f17 (int x, int y)
     134  {
     135    if (y < -13 || y > -4)
     136      return x % -y;
     137    return 34;
     138  }