/* { dg-do compile } */
/* { dg-require-effective-target powerpc_p9vector_ok } */
/* { dg-options "-mdejagnu-cpu=power9 -O2 -mpower9-minmax -ffast-math" } */
/* { dg-final { scan-assembler-not "fsel"      } } */
/* { dg-final { scan-assembler     "xscmpeqdp" } } */
/* { dg-final { scan-assembler     "xscmpgtdp" } } */
/* { dg-final { scan-assembler     "xscmpgedp" } } */
/* { dg-final { scan-assembler-not "xscmpodp"  } } */
/* { dg-final { scan-assembler-not "xscmpudp"  } } */
/* { dg-final { scan-assembler     "xsmaxcdp"  } } */
/* { dg-final { scan-assembler-not "xsmaxdp"   } } */
/* { dg-final { scan-assembler     "xsmincdp"  } } */
/* { dg-final { scan-assembler-not "xsmindp"   } } */
/* { dg-final { scan-assembler     "xxsel"     } } */

double
dbl_max1 (double a, double b)
{
  return (a >= b) ? a : b;
}

double
dbl_max2 (double a, double b)
{
  return (a > b) ? a : b;
}

double
dbl_min1 (double a, double b)
{
  return (a < b) ? a : b;
}

double
dbl_min2 (double a, double b)
{
  return (a <= b) ? a : b;
}

double
dbl_cmp_eq (double a, double b, double c, double d)
{
  return (a == b) ? c : d;
}

double
dbl_cmp_ne (double a, double b, double c, double d)
{
  return (a != b) ? c : d;
}

double
dbl_cmp_gt (double a, double b, double c, double d)
{
  return (a > b) ? c : d;
}

double
dbl_cmp_ge (double a, double b, double c, double d)
{
  return (a >= b) ? c : d;
}

double
dbl_cmp_lt (double a, double b, double c, double d)
{
  return (a < b) ? c : d;
}

double
dbl_cmp_le (double a, double b, double c, double d)
{
  return (a <= b) ? c : d;
}

float
flt_max1 (float a, float b)
{
  return (a >= b) ? a : b;
}

float
flt_max2 (float a, float b)
{
  return (a > b) ? a : b;
}

float
flt_min1 (float a, float b)
{
  return (a < b) ? a : b;
}

float
flt_min2 (float a, float b)
{
  return (a <= b) ? a : b;
}

float
flt_cmp_eq (float a, float b, float c, float d)
{
  return (a == b) ? c : d;
}

float
flt_cmp_ne (float a, float b, float c, float d)
{
  return (a != b) ? c : d;
}

float
flt_cmp_gt (float a, float b, float c, float d)
{
  return (a > b) ? c : d;
}

float
flt_cmp_ge (float a, float b, float c, float d)
{
  return (a >= b) ? c : d;
}

float
flt_cmp_lt (float a, float b, float c, float d)
{
  return (a < b) ? c : d;
}

float
flt_cmp_le (float a, float b, float c, float d)
{
  return (a <= b) ? c : d;
}

double
dbl_flt_max1 (float a, float b)
{
  return (a > b) ? a : b;
}

double
dbl_flt_max2 (double a, float b)
{
  return (a > b) ? a : b;
}

double
dbl_flt_max3 (float a, double b)
{
  return (a > b) ? a : b;
}

double
dbl_flt_min1 (float a, float b)
{
  return (a < b) ? a : b;
}

double
dbl_flt_min2 (double a, float b)
{
  return (a < b) ? a : b;
}

double
dbl_flt_min3 (float a, double b)
{
  return (a < b) ? a : b;
}
