/* { dg-do compile } */
/* { dg-options "-Os" } */

typedef unsigned char u8;
typedef unsigned short u16;
signed int Xa, Xb;

signed int stzreg_beq(int i, int a, int b)
{
  signed int x;
  x = a;
  if (i)
    x = b;
  return x;
}

/* { dg-final { scan-assembler "bne 1f" } } */

signed int stzreg_bge(int i, int a, int b, int c)
{
  signed int x;
  x = a;
  if (i<c)
    x = b;
  return x;
}

/* { dg-final { scan-assembler "blt 1f" } } */

signed int stzreg_bgt(int i, int a, int b)
{
  signed int x;
  x = a;
  if (i<10)
    x = b;
  return x;
}

/* { dg-final { scan-assembler "ble 1f" } } */

signed int stzreg_ble(int i, int a, int b)
{
  signed int x;
  x = a;
  if (i>0)
    x = b;
  return x;
}

/* { dg-final { scan-assembler "bgt 1f" } } */

signed int stzreg_blt(int i, int a, int b)
{
  signed int x;
  x = a;
  if (i<0)
    x = b;
  return x;
}

/* { dg-final { scan-assembler "blt 1f" } } */

signed int stzreg_bne(int i, int a, int b)
{
  signed int x;
  x = a;
  if (!i)
    x = b;
  return x;
}

/* { dg-final { scan-assembler "beq 1f" } } */

signed int stzimm_le( int i, int a )
{
  signed int x;
  x = a;
  if (i>0)
    x = 5;
  return x;
}

/* { dg-final { scan-assembler "ble 1f" } } */

signed int stzimm_le_r( int i, int a )
{
  signed int x;
  x = a;
  if (i<0)
    x = 5;
  return x;
}

/* { dg-final { scan-assembler "bge 1f" } } */