Hmm, 56? I guess the lower six bits of the shift should be valid on Intel for 128 bits. Does this work on 32 bit platforms?