(count-low-order-zeros (lvar-uses thing))))
(combination
(case (let ((name (lvar-fun-name (combination-fun thing))))
- (or (modular-version-info name) name))
+ (or (modular-version-info name :unsigned) name))
((+ -)
(let ((min most-positive-fixnum)
(itype (specifier-type 'integer)))
(give-up-ir1-transform))
(let* ((denominator (lvar-value denominator))
(bits (1- (integer-length denominator))))
- (unless (= (ash 1 bits) denominator)
+ (unless (and (> denominator 0) (= (ash 1 bits) denominator))
(give-up-ir1-transform))
(let ((alignment (count-low-order-zeros numerator)))
(unless (>= alignment bits)
(give-up-ir1-transform))
(let ((inside-fun-name (lvar-fun-name (combination-fun value-node))))
(multiple-value-bind (prototype width)
- (modular-version-info inside-fun-name)
+ (modular-version-info inside-fun-name :unsigned)
(unless (eq (or prototype inside-fun-name) 'ash)
(give-up-ir1-transform))
(when (and width (not (constant-lvar-p amount)))