&& newtype == type
&& types_match (newtype, type))
(op (convert:newtype @1) (convert:newtype @2))
- (with { if (TYPE_PRECISION (ty1) > TYPE_PRECISION (newtype))
+ (with { if (element_precision (ty1) > element_precision (newtype))
newtype = ty1;
- if (TYPE_PRECISION (ty2) > TYPE_PRECISION (newtype))
+ if (element_precision (ty2) > element_precision (newtype))
newtype = ty2; }
/* Sometimes this transformation is safe (cannot
change results through affecting double rounding
exponent range for the product or ratio of two
values representable in the TYPE to be within the
range of normal values of ITYPE. */
- (if (TYPE_PRECISION (newtype) < TYPE_PRECISION (itype)
+ (if (element_precision (newtype) < element_precision (itype)
&& (flag_unsafe_math_optimizations
- || (TYPE_PRECISION (newtype) == TYPE_PRECISION (type)
+ || (element_precision (newtype) == element_precision (type)
&& real_can_shorten_arithmetic (TYPE_MODE (itype),
TYPE_MODE (type))
&& !excess_precision_type (newtype)))