limb_aX
out[1] = (*((const limb_aX *)(in + 7))) & 0x00ffffffffffffff;
out[2] = (*((const limb_aX *)(in + 14))) & 0x00ffffffffffffff;
out[3] = (*((const limb_aX *)(in + 20))) >> 8;
out[1] = (*((limb_aX *)&in[7])) & bottom56bits;
out[2] = (*((limb_aX *)&in[14])) & bottom56bits;
out[3] = (*((limb_aX *)&in[21])) & bottom56bits;
out[4] = (*((limb_aX *)&in[28])) & bottom56bits;
out[5] = (*((limb_aX *)&in[35])) & bottom56bits;
(*((limb_aX *)&out[7])) |= (in[1] & bottom56bits);
(*((limb_aX *)&out[14])) |= (in[2] & bottom56bits);
(*((limb_aX *)&out[21])) |= (in[3] & bottom56bits);
(*((limb_aX *)&out[28])) |= (in[4] & bottom56bits);
(*((limb_aX *)&out[35])) |= (in[5] & bottom56bits);
out[1] = (*((limb_aX *)&in[7]) >> 2) & bottom58bits;
out[2] = (*((limb_aX *)&in[14]) >> 4) & bottom58bits;
out[3] = (*((limb_aX *)&in[21]) >> 6) & bottom58bits;
out[4] = (*((limb_aX *)&in[29])) & bottom58bits;
out[5] = (*((limb_aX *)&in[36]) >> 2) & bottom58bits;
out[6] = (*((limb_aX *)&in[43]) >> 4) & bottom58bits;
out[7] = (*((limb_aX *)&in[50]) >> 6) & bottom58bits;
out[8] = (*((limb_aX *)&in[58])) & bottom57bits;
(*((limb_aX *)&out[7])) |= in[1] << 2;
(*((limb_aX *)&out[14])) |= in[2] << 4;
(*((limb_aX *)&out[21])) |= in[3] << 6;
(*((limb_aX *)&out[29])) = in[4];
(*((limb_aX *)&out[36])) |= in[5] << 2;
(*((limb_aX *)&out[43])) |= in[6] << 4;
(*((limb_aX *)&out[50])) |= in[7] << 6;
(*((limb_aX *)&out[58])) = in[8];