(bit-shift-left 0xfffffff0 4) returns 0xffffff0f, while I expect it to be 0xffffff00. Similarly, (bit-shift-left 0xfffffff0 8) returns 0xfffff0ff, etc.
I checked the implementation, and bit-shift-left casts all its arguments to Long, then invokes Java's << operator, which should discard higher bits instead of rotate them.