(dolist (fun '(truncate floor ceiling mod rem))
(let* ((foo (compile nil `(lambda (x)
(declare (optimize (speed 3)
- (space 0)
+ (space 1)
(compilation-speed 0))
(type (unsigned-byte
,sb-vm:n-word-bits) x))
(dolist (fun '(truncate ceiling floor mod rem))
(let ((foo (compile nil `(lambda (x)
(declare (optimize (speed 3)
- (space 0)
+ (space 1)
(compilation-speed 0))
(type ,dividend-type x))
(,fun x ,divisor)))))
,@(loop repeat 4
collect (+ 10000 (random 101)))
,@(loop for i from 4 to sb-vm:n-word-bits
- for r = (random (expt 2 i))
+ for pow = (expt 2 (1- i))
+ for r = (+ pow (random pow))
collect r)))
(when (typep dividend dividend-type)
(multiple-value-bind (q1 r1)