switch (get_bool_state (r, lhs, type))
{
case BRS_TRUE:
- build_lt (r, type, op2);
+ if (op2.known_isnan ())
+ r.set_varying (type);
+ else
+ build_lt (r, type, op2);
break;
case BRS_FALSE:
switch (get_bool_state (r, lhs, type))
{
case BRS_TRUE:
- build_gt (r, type, op1);
+ if (op1.known_isnan ())
+ r.set_varying (type);
+ else
+ build_gt (r, type, op1);
break;
case BRS_FALSE:
switch (get_bool_state (r, lhs, type))
{
case BRS_TRUE:
- build_le (r, type, op2);
+ if (op2.known_isnan ())
+ r.set_varying (type);
+ else
+ build_le (r, type, op2);
break;
case BRS_FALSE:
switch (get_bool_state (r, lhs, type))
{
case BRS_TRUE:
- build_ge (r, type, op1);
+ if (op1.known_isnan ())
+ r.set_varying (type);
+ else
+ build_ge (r, type, op1);
break;
case BRS_FALSE:
switch (get_bool_state (r, lhs, type))
{
case BRS_TRUE:
- build_gt (r, type, op2);
+ if (op2.known_isnan ())
+ r.set_varying (type);
+ else
+ build_gt (r, type, op2);
break;
case BRS_FALSE:
switch (get_bool_state (r, lhs, type))
{
case BRS_TRUE:
- build_lt (r, type, op1);
+ if (op1.known_isnan ())
+ r.set_varying (type);
+ else
+ build_lt (r, type, op1);
break;
case BRS_FALSE:
switch (get_bool_state (r, lhs, type))
{
case BRS_TRUE:
- build_ge (r, type, op2);
+ if (op2.known_isnan ())
+ r.set_varying (type);
+ else
+ build_ge (r, type, op2);
break;
case BRS_FALSE:
switch (get_bool_state (r, lhs, type))
{
case BRS_TRUE:
- build_le (r, type, op1);
+ if (op1.known_isnan ())
+ r.set_varying (type);
+ else
+ build_le (r, type, op1);
break;
case BRS_FALSE: