/* { dg-do compile } */
/* { dg-options "-O2 -ffast-math -fdump-tree-evrp" } */

float max1(float a, float b)
{
    if (a <= b)
        return a < b ? b : a;
    return 0.0;
}

float max2(float a, float b)
{
    if (a <= b)
        return a > b ? a : b;
    return 0.0;
}

float max3(float a, float b)
{
    if (a < b)
        return a < b ? b : a;
    return 0.0;
}

float max4(float a, float b)
{
    if (a < b)
        return a > b ? a : b;
    return 0.0;
}

float max5(float a, float b)
{
    if (a <= b)
        return a <= b ? b : a;
    return 0.0;
}

float max6(float a, float b)
{
    if (a <= b)
        return a >= b ? a : b;
    return 0.0;
}

float max7(float a, float b)
{
    if (a < b)
        return a <= b ? b : a;
    return 0.0;
}

float max8(float a, float b)
{
    if (b > a)
        return a >= b ? a : b;
    return 0.0;
}

float max9(float a, float b)
{
    if (b >= a)
        return a < b ? b : a;
    return 0.0;
}

float max10(float a, float b)
{
    if (b >= a)
        return a > b ? a : b;
    return 0.0;
}

float max11(float a, float b)
{
    if (b > a)
        return a < b ? b : a;
    return 0.0;
}

float max12(float a, float b)
{
    if (b > a)
        return a > b ? a : b;
    return 0.0;
}

float max13(float a, float b)
{
    if (b >= a)
        return a <= b ? b : a;
    return 0.0;
}

float max14(float a, float b)
{
    if (b >= a)
        return a >= b ? a : b;
    return 0.0;
}

float max15(float a, float b)
{
    if (b > a)
        return a <= b ? b : a;
    return 0.0;
}

float max16(float a, float b)
{
    if (b > a)
        return a >= b ? a : b;
    return 0.0;
}

/* { dg-final { scan-tree-dump-not "MAX_EXPR" "evrp" } } */