Spiffed up ASH derived type optimizer. If the shift amount is reasonably
small, (e.g. (integer 0 15)) it will shift the range of the shiftee to obtain the domain. Changed the %ldb transform to map to (logand (ash num (- pos)) (mask size)) if the result is going to be a fixnum. Added transforms for floor, mod, truncate, and rem that check to see if the argument is a constant power of 2, and if so, change the divide into a shift.
Please register or sign in to comment