(rotate-right-17 x places) → *
Function:
(defun rotate-right-17$inline (x places) (declare (type (unsigned-byte 17) x) (type (unsigned-byte 17) places)) (let ((__function__ 'rotate-right-17)) (declare (ignorable __function__)) (mbe :logic (rotate-right x 17 places) :exec (let* ((x (mbe :logic (loghead 17 x) :exec x)) (places (mbe :logic (lnfix places) :exec places)) (places (if (< places 17) (the (integer 0 16) places) (the (integer 0 16) (rem places 17)))) (mask (the (unsigned-byte 17) (1- (the (unsigned-byte 17) (ash 1 places))))) (xl (the (unsigned-byte 17) (logand x mask))) (xh-shift (the (unsigned-byte 17) (ash x (the (integer -17 0) (- places))))) (high-num (the (integer 0 17) (- 17 places))) (xl-shift (the (unsigned-byte 17) (ash xl high-num))) (ans (the (unsigned-byte 17) (logior xl-shift xh-shift)))) ans))))