(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
tree-ssa/
pr94785.c
       1  /* PR tree-optimization/94785 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -fdump-tree-optimized" } */
       4  /* { dg-final { scan-tree-dump-times " = ABS_EXPR <v_\[0-9]*\\\(D\\\)>;" 2 "optimized" } } */
       5  /* { dg-final { scan-tree-dump-times " = ABSU_EXPR <v_\[0-9]*\\\(D\\\)>;" 2 "optimized" } } */
       6  
       7  int
       8  f1 (int v)
       9  {
      10    return (1 | -(v < 0)) * v;
      11  }
      12  
      13  unsigned
      14  f2 (int v)
      15  {
      16    return (1U | -(v < 0)) * v;
      17  }
      18  
      19  int
      20  f3 (int v)
      21  {
      22    int a = v < 0;
      23    int b = -a;
      24    int c = 1 | b;
      25    return c * v;
      26  }
      27  
      28  unsigned
      29  f4 (int v)
      30  {
      31    int a = v < 0;
      32    int b = -a;
      33    unsigned c = b;
      34    unsigned d = c | 1;
      35    return d * v;
      36  }