Adjust expr_not_equal_to to use irange API.
gcc/ChangeLog: * fold-const.c (expr_not_equal_to): Adjust for irange API.
This commit is contained in:
parent
f21757eb8f
commit
ab54c44fa6
1 changed files with 4 additions and 13 deletions
|
@ -10194,8 +10194,7 @@ tree_expr_nonzero_p (tree t)
|
|||
bool
|
||||
expr_not_equal_to (tree t, const wide_int &w)
|
||||
{
|
||||
wide_int min, max, nz;
|
||||
value_range_kind rtype;
|
||||
value_range vr;
|
||||
switch (TREE_CODE (t))
|
||||
{
|
||||
case INTEGER_CST:
|
||||
|
@ -10204,17 +10203,9 @@ expr_not_equal_to (tree t, const wide_int &w)
|
|||
case SSA_NAME:
|
||||
if (!INTEGRAL_TYPE_P (TREE_TYPE (t)))
|
||||
return false;
|
||||
rtype = get_range_info (t, &min, &max);
|
||||
if (rtype == VR_RANGE)
|
||||
{
|
||||
if (wi::lt_p (max, w, TYPE_SIGN (TREE_TYPE (t))))
|
||||
return true;
|
||||
if (wi::lt_p (w, min, TYPE_SIGN (TREE_TYPE (t))))
|
||||
return true;
|
||||
}
|
||||
else if (rtype == VR_ANTI_RANGE
|
||||
&& wi::le_p (min, w, TYPE_SIGN (TREE_TYPE (t)))
|
||||
&& wi::le_p (w, max, TYPE_SIGN (TREE_TYPE (t))))
|
||||
get_range_info (t, vr);
|
||||
if (!vr.undefined_p ()
|
||||
&& !vr.contains_p (wide_int_to_tree (TREE_TYPE (t), w)))
|
||||
return true;
|
||||
/* If T has some known zero bits and W has any of those bits set,
|
||||
then T is known not to be equal to W. */
|
||||
|
|
Loading…
Add table
Reference in a new issue