if (op1_const && op2_const)
{
if (wi::eq_p (op1.lower_bound (), op2.upper_bound()))
- r = range_true ();
+ r = range_true (type);
else
- r = range_false ();
+ r = range_false (type);
}
else
{
prange tmp = op1;
tmp.intersect (op2);
if (tmp.undefined_p ())
- r = range_false ();
+ r = range_false (type);
// Check if a constant cannot satisfy the bitmask requirements.
else if (op2_const && !op1.get_bitmask ().member_p (op2.lower_bound ()))
- r = range_false ();
+ r = range_false (type);
else if (op1_const && !op2.get_bitmask ().member_p (op1.lower_bound ()))
- r = range_false ();
+ r = range_false (type);
else
- r = range_true_and_false ();
+ r = range_true_and_false (type);
}
//update_known_bitmask (r, EQ_EXPR, op1, op2);
if (op1_const && op2_const)
{
if (wi::ne_p (op1.lower_bound (), op2.upper_bound()))
- r = range_true ();
+ r = range_true (type);
else
- r = range_false ();
+ r = range_false (type);
}
else
{
prange tmp = op1;
tmp.intersect (op2);
if (tmp.undefined_p ())
- r = range_true ();
+ r = range_true (type);
// Check if a constant cannot satisfy the bitmask requirements.
else if (op2_const && !op1.get_bitmask ().member_p (op2.lower_bound ()))
- r = range_true ();
+ r = range_true (type);
else if (op1_const && !op2.get_bitmask ().member_p (op1.lower_bound ()))
- r = range_true ();
+ r = range_true (type);
else
- r = range_true_and_false ();
+ r = range_true_and_false (type);
}
//update_known_bitmask (r, NE_EXPR, op1, op2);
gcc_checking_assert (sign == TYPE_SIGN (op2.type ()));
if (wi::lt_p (op1.upper_bound (), op2.lower_bound (), sign))
- r = range_true ();
+ r = range_true (type);
else if (!wi::lt_p (op1.lower_bound (), op2.upper_bound (), sign))
- r = range_false ();
+ r = range_false (type);
// Use nonzero bits to determine if < 0 is false.
else if (op2.zero_p () && !wi::neg_p (op1.get_nonzero_bits (), sign))
- r = range_false ();
+ r = range_false (type);
else
- r = range_true_and_false ();
+ r = range_true_and_false (type);
//update_known_bitmask (r, LT_EXPR, op1, op2);
return true;
gcc_checking_assert (sign == TYPE_SIGN (op2.type ()));
if (wi::le_p (op1.upper_bound (), op2.lower_bound (), sign))
- r = range_true ();
+ r = range_true (type);
else if (!wi::le_p (op1.lower_bound (), op2.upper_bound (), sign))
- r = range_false ();
+ r = range_false (type);
else
- r = range_true_and_false ();
+ r = range_true_and_false (type);
//update_known_bitmask (r, LE_EXPR, op1, op2);
return true;
gcc_checking_assert (sign == TYPE_SIGN (op2.type ()));
if (wi::gt_p (op1.lower_bound (), op2.upper_bound (), sign))
- r = range_true ();
+ r = range_true (type);
else if (!wi::gt_p (op1.upper_bound (), op2.lower_bound (), sign))
- r = range_false ();
+ r = range_false (type);
else
- r = range_true_and_false ();
+ r = range_true_and_false (type);
//update_known_bitmask (r, GT_EXPR, op1, op2);
return true;
gcc_checking_assert (sign == TYPE_SIGN (op2.type ()));
if (wi::ge_p (op1.lower_bound (), op2.upper_bound (), sign))
- r = range_true ();
+ r = range_true (type);
else if (!wi::ge_p (op1.upper_bound (), op2.lower_bound (), sign))
- r = range_false ();
+ r = range_false (type);
else
- r = range_true_and_false ();
+ r = range_true_and_false (type);
//update_known_bitmask (r, GE_EXPR, op1, op2);
return true;