I believe this is happening for the following reason: The documentation states that "If A is a double array, and ASSUMEDTYPE is not specified, then MATLAB treats A as an unsigned 64-bit integer." What this means is that the function implicitly sets the ASSUMEDTYPE argument to 'uint64'. Since your value of -6 is signed, and is therefore not in the range of a 'uint64', the function issues the error message. This is according to the second rule: "If ASSUMEDTYPE is specified, then all elements in A must have integer values within the range of ASSUMEDTYPE."
You can fix this by specifying that the assumed type is a signed integer rather than an unsigned integer. For example, you can use bitshift(-6,1,'int64'). But I would agree with you that the documentation is unclear.