// __builtin_ffs* and __builtin_popcount* return [0, prec].
int prec = TYPE_PRECISION (lh.type ());
// If arg is non-zero, then ffs or popcount are non-zero.
- int mini = range_includes_zero_p (&lh) ? 0 : 1;
+ int mini = range_includes_zero_p (lh) ? 0 : 1;
int maxi = prec;
// If some high bits are known to be zero, decrease the maximum.
if (mini == -2)
mini = 0;
}
- else if (!range_includes_zero_p (&lh))
+ else if (!range_includes_zero_p (lh))
{
mini = 0;
maxi = prec - 1;
mini = -2;
}
// If arg is non-zero, then use [0, prec - 1].
- if (!range_includes_zero_p (&lh))
+ if (!range_includes_zero_p (lh))
{
mini = 0;
maxi = prec - 1;
}
// If op2 does not contain 0, then LHS and OP1 can never be equal.
- if (!range_includes_zero_p (&op2))
+ if (!range_includes_zero_p (op2))
return VREL_NE;
return VREL_VARYING;
}
inline bool
-range_includes_zero_p (const irange *vr)
+range_includes_zero_p (const irange &vr)
{
- if (vr->undefined_p ())
+ if (vr.undefined_p ())
return false;
- if (vr->varying_p ())
+ if (vr.varying_p ())
return true;
- wide_int zero = wi::zero (TYPE_PRECISION (vr->type ()));
- return vr->contains_p (zero);
+ wide_int zero = wi::zero (TYPE_PRECISION (vr.type ()));
+ return vr.contains_p (zero);
}
// Constructors for irange