/* { dg-do compile } */
/* { dg-options "-O1 -fdump-tree-phiopt1" } */
/* PR tree-optimization/112392 */

int feq_1(int a, unsigned char b)
{
  int absb = b;
  if (a == absb)  return absb;
  return a > 0 ? a : -a;
}
int feq_2(int a, unsigned char b)
{
  int absb = b;
  if (a == absb)  return a;
  return a > 0 ? a : -a;
}

int fgt(int a, unsigned char b)
{
  int absb = b;
  if (a > absb)  return a;
  return a > 0 ? a : -a;
}

int fge(int a, unsigned char b)
{
  int absb = b;
  if (a >= absb)  return a;
  return a > 0 ? a : -a;
}


/* { dg-final { scan-tree-dump-not "if " "phiopt1" } } */
/* { dg-final { scan-tree-dump-times "ABS_EXPR <" 4 "phiopt1" } } */