(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
pr96272.c
       1  /* PR tree-optimization/96272 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -fdump-tree-widening_mul" } */
       4  
       5  unsigned
       6  foo (unsigned a, unsigned b)
       7  {
       8    if (a > ~0U - b)
       9      return ~0U;
      10    return a + b;
      11  }
      12  
      13  unsigned
      14  bar (unsigned a, unsigned b)
      15  {
      16    if (a <= ~0U - b)
      17      return ~0U;
      18    return a + b;
      19  }
      20  
      21  unsigned
      22  baz (unsigned a, unsigned b)
      23  {
      24    if (~0U - b < a)
      25      return ~0U;
      26    return a + b;
      27  }
      28  
      29  unsigned
      30  qux (unsigned a, unsigned b)
      31  {
      32    if (~0U - b >= a)
      33      return ~0U;
      34    return a + b;
      35  }
      36  
      37  /* { dg-final { scan-tree-dump-times "ADD_OVERFLOW" 4 "widening_mul" { target { i?86-*-* x86_64-*-* } } } } */