Switched lshift to a version that doesn't require memmove first.  future reference note: if the bitshift is >= width of type, it has no effect :(