Added asserts to prevent negative shift amounts from being generated.