===================================================================
@@ -2181,30 +2181,21 @@ extract_range_from_multiplicative_op_1 (
{
/* If the new range has its limits swapped around (MIN > MAX),
then the operation caused one of them to wrap around, mark
the new range VARYING. */
set_value_range_to_varying (vr);
}
else
set_value_range (vr, type, min, max, NULL);
}
-/* Some quadruple precision helpers. */
-static int
-quad_int_cmp (double_int l0, double_int h0,
- double_int l1, double_int h1, bool uns)
-{
- int c = double_int_cmp (h0, h1, uns);
- if (c != 0) return c;
- return double_int_ucmp (l0, l1);
-}
-
+/* Quadruple precision helper. */
static void
quad_int_pair_sort (double_int *l0, double_int *h0,
double_int *l1, double_int *h1, bool uns)
{
if (quad_int_cmp (*l0, *h0, *l1, *h1, uns) > 0)
{
double_int tmp;
tmp = *l0; *l0 = *l1; *l1 = tmp;
tmp = *h0; *h0 = *h1; *h1 = tmp;
}
===================================================================
@@ -219,20 +219,29 @@ double_int double_int_rrotate (double_in
static inline bool
double_int_negative_p (double_int cst)
{
return cst.high < 0;
}
int double_int_cmp (double_int, double_int, bool);
int double_int_scmp (double_int, double_int);
int double_int_ucmp (double_int, double_int);
+static inline int
+quad_int_cmp (double_int l0, double_int h0,
+ double_int l1, double_int h1, bool uns)
+{
+ int c = double_int_cmp (h0, h1, uns);
+ if (c != 0) return c;
+ return double_int_ucmp (l0, l1);
+}
+
double_int double_int_max (double_int, double_int, bool);
double_int double_int_smax (double_int, double_int);
double_int double_int_umax (double_int, double_int);
double_int double_int_min (double_int, double_int, bool);
double_int double_int_smin (double_int, double_int);
double_int double_int_umin (double_int, double_int);
void dump_double_int (FILE *, double_int, bool);