in aios/storage/indexlib/index/common/numeric_compress/Pack.h [3151:3315]
void pack_31(uint32_t* dest, const Type* encode, uint32_t n)
{
for (uint32_t i = 32; i <= n; i += 32, encode += 32, dest += 31) {
uint32_t res0;
uint32_t res1;
uint32_t res2;
uint32_t res3;
uint32_t res4;
uint32_t res5;
uint32_t res6;
uint32_t res7;
uint32_t res8;
uint32_t res9;
uint32_t res10;
uint32_t res11;
uint32_t res12;
uint32_t res13;
uint32_t res14;
uint32_t res15;
uint32_t res16;
uint32_t res17;
uint32_t res18;
uint32_t res19;
uint32_t res20;
uint32_t res21;
uint32_t res22;
uint32_t res23;
uint32_t res24;
uint32_t res25;
uint32_t res26;
uint32_t res27;
uint32_t res28;
uint32_t res29;
uint32_t res30;
res0 = (encode[0] & 0x7FFFFFFF);
res0 |= ((encode[1] & 0x7FFFFFFF) << 31);
res1 = ((encode[1] & 0x7FFFFFFF) >> 1);
res1 |= ((encode[2] & 0x7FFFFFFF) << 30);
res2 = ((encode[2] & 0x7FFFFFFF) >> 2);
res2 |= ((encode[3] & 0x7FFFFFFF) << 29);
res3 = ((encode[3] & 0x7FFFFFFF) >> 3);
res3 |= ((encode[4] & 0x7FFFFFFF) << 28);
res4 = ((encode[4] & 0x7FFFFFFF) >> 4);
res4 |= ((encode[5] & 0x7FFFFFFF) << 27);
res5 = ((encode[5] & 0x7FFFFFFF) >> 5);
res5 |= ((encode[6] & 0x7FFFFFFF) << 26);
res6 = ((encode[6] & 0x7FFFFFFF) >> 6);
res6 |= ((encode[7] & 0x7FFFFFFF) << 25);
res7 = ((encode[7] & 0x7FFFFFFF) >> 7);
res7 |= ((encode[8] & 0x7FFFFFFF) << 24);
res8 = ((encode[8] & 0x7FFFFFFF) >> 8);
res8 |= ((encode[9] & 0x7FFFFFFF) << 23);
res9 = ((encode[9] & 0x7FFFFFFF) >> 9);
res9 |= ((encode[10] & 0x7FFFFFFF) << 22);
res10 = ((encode[10] & 0x7FFFFFFF) >> 10);
res10 |= ((encode[11] & 0x7FFFFFFF) << 21);
res11 = ((encode[11] & 0x7FFFFFFF) >> 11);
res11 |= ((encode[12] & 0x7FFFFFFF) << 20);
res12 = ((encode[12] & 0x7FFFFFFF) >> 12);
res12 |= ((encode[13] & 0x7FFFFFFF) << 19);
res13 = ((encode[13] & 0x7FFFFFFF) >> 13);
res13 |= ((encode[14] & 0x7FFFFFFF) << 18);
res14 = ((encode[14] & 0x7FFFFFFF) >> 14);
res14 |= ((encode[15] & 0x7FFFFFFF) << 17);
res15 = ((encode[15] & 0x7FFFFFFF) >> 15);
res15 |= ((encode[16] & 0x7FFFFFFF) << 16);
res16 = ((encode[16] & 0x7FFFFFFF) >> 16);
res16 |= ((encode[17] & 0x7FFFFFFF) << 15);
res17 = ((encode[17] & 0x7FFFFFFF) >> 17);
res17 |= ((encode[18] & 0x7FFFFFFF) << 14);
res18 = ((encode[18] & 0x7FFFFFFF) >> 18);
res18 |= ((encode[19] & 0x7FFFFFFF) << 13);
res19 = ((encode[19] & 0x7FFFFFFF) >> 19);
res19 |= ((encode[20] & 0x7FFFFFFF) << 12);
res20 = ((encode[20] & 0x7FFFFFFF) >> 20);
res20 |= ((encode[21] & 0x7FFFFFFF) << 11);
res21 = ((encode[21] & 0x7FFFFFFF) >> 21);
res21 |= ((encode[22] & 0x7FFFFFFF) << 10);
res22 = ((encode[22] & 0x7FFFFFFF) >> 22);
res22 |= ((encode[23] & 0x7FFFFFFF) << 9);
res23 = ((encode[23] & 0x7FFFFFFF) >> 23);
res23 |= ((encode[24] & 0x7FFFFFFF) << 8);
res24 = ((encode[24] & 0x7FFFFFFF) >> 24);
res24 |= ((encode[25] & 0x7FFFFFFF) << 7);
res25 = ((encode[25] & 0x7FFFFFFF) >> 25);
res25 |= ((encode[26] & 0x7FFFFFFF) << 6);
res26 = ((encode[26] & 0x7FFFFFFF) >> 26);
res26 |= ((encode[27] & 0x7FFFFFFF) << 5);
res27 = ((encode[27] & 0x7FFFFFFF) >> 27);
res27 |= ((encode[28] & 0x7FFFFFFF) << 4);
res28 = ((encode[28] & 0x7FFFFFFF) >> 28);
res28 |= ((encode[29] & 0x7FFFFFFF) << 3);
res29 = ((encode[29] & 0x7FFFFFFF) >> 29);
res29 |= ((encode[30] & 0x7FFFFFFF) << 2);
res30 = ((encode[30] & 0x7FFFFFFF) >> 30);
res30 |= ((encode[31] & 0x7FFFFFFF) << 1);
dest[0] = res0;
dest[1] = res1;
dest[2] = res2;
dest[3] = res3;
dest[4] = res4;
dest[5] = res5;
dest[6] = res6;
dest[7] = res7;
dest[8] = res8;
dest[9] = res9;
dest[10] = res10;
dest[11] = res11;
dest[12] = res12;
dest[13] = res13;
dest[14] = res14;
dest[15] = res15;
dest[16] = res16;
dest[17] = res17;
dest[18] = res18;
dest[19] = res19;
dest[20] = res20;
dest[21] = res21;
dest[22] = res22;
dest[23] = res23;
dest[24] = res24;
dest[25] = res25;
dest[26] = res26;
dest[27] = res27;
dest[28] = res28;
dest[29] = res29;
dest[30] = res30;
}
uint32_t rest = n % 32;
if (rest > 0) {
pack(dest, encode, rest, 31);
}
}