#include "bitpackingaligned.h"
namespace FastPForLib {
uint32_t *nullpacker(const uint32_t *__restrict__ ,
uint32_t *__restrict__ out) {
return out;
}
const uint32_t *nullunpacker8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
memset(out, 0, 8 * 4);
return in;
}
uint32_t *__fastpackwithoutmask1_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 7;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask2_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 14;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask3_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 21;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask4_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 28;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask5_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 25;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (5 - 3);
++in;
*out |= ((*in)) << 3;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask6_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (6 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 10;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask7_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (7 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 17;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask8_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask9_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (9 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (9 - 8);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask10_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (10 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (10 - 6);
++in;
*out |= ((*in)) << 6;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask11_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (11 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (11 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 13;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask12_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (12 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (12 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 20;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask13_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (13 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (13 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (13 - 8);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask14_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (14 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (14 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (14 - 2);
++in;
*out |= ((*in)) << 2;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask15_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (15 - 13);
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (15 - 11);
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (15 - 9);
++in;
*out |= ((*in)) << 9;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask16_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask17_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (17 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (17 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (17 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (17 - 8);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask18_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (18 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (18 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (18 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (18 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask19_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (19 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (19 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (19 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (19 - 5);
++in;
*out |= ((*in)) << 5;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask20_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (20 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (20 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (20 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (20 - 12);
++in;
*out |= ((*in)) << 12;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask21_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (21 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (21 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (21 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (21 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (21 - 8);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask22_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (22 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (22 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (22 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (22 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (22 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask23_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (23 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (23 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (23 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (23 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (23 - 1);
++in;
*out |= ((*in)) << 1;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask24_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask25_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (25 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (25 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (25 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (25 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (25 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (25 - 8);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask26_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (26 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (26 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (26 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (26 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (26 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (26 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask27_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (27 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (27 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (27 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (27 - 7);
++in;
*out |= ((*in)) << 7;
++out;
*out = ((*in)) >> (27 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (27 - 24);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask28_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (28 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (28 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (28 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (28 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (28 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (28 - 4);
++in;
*out |= ((*in)) << 4;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask29_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (29 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (29 - 23);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (29 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (29 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (29 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (29 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (29 - 8);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask30_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (30 - 28);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (30 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (30 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (30 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (30 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (30 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (30 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask31_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (31 - 30);
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (31 - 29);
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (31 - 28);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (31 - 27);
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (31 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (31 - 25);
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (31 - 24);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask32_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
return out;
}
const uint32_t *__fastunpack1_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) & 1;
out++;
*out = ((*in) >> 1) & 1;
out++;
*out = ((*in) >> 2) & 1;
out++;
*out = ((*in) >> 3) & 1;
out++;
*out = ((*in) >> 4) & 1;
out++;
*out = ((*in) >> 5) & 1;
out++;
*out = ((*in) >> 6) & 1;
out++;
*out = ((*in) >> 7) & 1;
out++;
return in + 1;
}
const uint32_t *__fastunpack2_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 2);
out++;
*out = ((*in) >> 2) % (1U << 2);
out++;
*out = ((*in) >> 4) % (1U << 2);
out++;
*out = ((*in) >> 6) % (1U << 2);
out++;
*out = ((*in) >> 8) % (1U << 2);
out++;
*out = ((*in) >> 10) % (1U << 2);
out++;
*out = ((*in) >> 12) % (1U << 2);
out++;
*out = ((*in) >> 14) % (1U << 2);
out++;
return in + 1;
}
const uint32_t *__fastunpack3_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 3);
out++;
*out = ((*in) >> 3) % (1U << 3);
out++;
*out = ((*in) >> 6) % (1U << 3);
out++;
*out = ((*in) >> 9) % (1U << 3);
out++;
*out = ((*in) >> 12) % (1U << 3);
out++;
*out = ((*in) >> 15) % (1U << 3);
out++;
*out = ((*in) >> 18) % (1U << 3);
out++;
*out = ((*in) >> 21) % (1U << 3);
out++;
return in + 1;
}
const uint32_t *__fastunpack4_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 4);
out++;
*out = ((*in) >> 4) % (1U << 4);
out++;
*out = ((*in) >> 8) % (1U << 4);
out++;
*out = ((*in) >> 12) % (1U << 4);
out++;
*out = ((*in) >> 16) % (1U << 4);
out++;
*out = ((*in) >> 20) % (1U << 4);
out++;
*out = ((*in) >> 24) % (1U << 4);
out++;
*out = ((*in) >> 28);
++in;
out++;
return in;
}
const uint32_t *__fastunpack5_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 5);
out++;
*out = ((*in) >> 5) % (1U << 5);
out++;
*out = ((*in) >> 10) % (1U << 5);
out++;
*out = ((*in) >> 15) % (1U << 5);
out++;
*out = ((*in) >> 20) % (1U << 5);
out++;
*out = ((*in) >> 25) % (1U << 5);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 3)) << (5 - 3);
out++;
*out = ((*in) >> 3) % (1U << 5);
out++;
return in + 1;
}
const uint32_t *__fastunpack6_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 6);
out++;
*out = ((*in) >> 6) % (1U << 6);
out++;
*out = ((*in) >> 12) % (1U << 6);
out++;
*out = ((*in) >> 18) % (1U << 6);
out++;
*out = ((*in) >> 24) % (1U << 6);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 4)) << (6 - 4);
out++;
*out = ((*in) >> 4) % (1U << 6);
out++;
*out = ((*in) >> 10) % (1U << 6);
out++;
return in + 1;
}
const uint32_t *__fastunpack7_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 7);
out++;
*out = ((*in) >> 7) % (1U << 7);
out++;
*out = ((*in) >> 14) % (1U << 7);
out++;
*out = ((*in) >> 21) % (1U << 7);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 3)) << (7 - 3);
out++;
*out = ((*in) >> 3) % (1U << 7);
out++;
*out = ((*in) >> 10) % (1U << 7);
out++;
*out = ((*in) >> 17) % (1U << 7);
out++;
return in + 1;
}
const uint32_t *__fastunpack8_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
return in;
}
const uint32_t *__fastunpack9_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 9);
out++;
*out = ((*in) >> 9) % (1U << 9);
out++;
*out = ((*in) >> 18) % (1U << 9);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 4)) << (9 - 4);
out++;
*out = ((*in) >> 4) % (1U << 9);
out++;
*out = ((*in) >> 13) % (1U << 9);
out++;
*out = ((*in) >> 22) % (1U << 9);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 8)) << (9 - 8);
out++;
return in + 1;
}
const uint32_t *__fastunpack10_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 10);
out++;
*out = ((*in) >> 10) % (1U << 10);
out++;
*out = ((*in) >> 20) % (1U << 10);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 8)) << (10 - 8);
out++;
*out = ((*in) >> 8) % (1U << 10);
out++;
*out = ((*in) >> 18) % (1U << 10);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 6)) << (10 - 6);
out++;
*out = ((*in) >> 6) % (1U << 10);
out++;
return in + 1;
}
const uint32_t *__fastunpack11_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 11);
out++;
*out = ((*in) >> 11) % (1U << 11);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 1)) << (11 - 1);
out++;
*out = ((*in) >> 1) % (1U << 11);
out++;
*out = ((*in) >> 12) % (1U << 11);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 2)) << (11 - 2);
out++;
*out = ((*in) >> 2) % (1U << 11);
out++;
*out = ((*in) >> 13) % (1U << 11);
out++;
return in + 1;
}
const uint32_t *__fastunpack12_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 12);
out++;
*out = ((*in) >> 12) % (1U << 12);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 4)) << (12 - 4);
out++;
*out = ((*in) >> 4) % (1U << 12);
out++;
*out = ((*in) >> 16) % (1U << 12);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 8)) << (12 - 8);
out++;
*out = ((*in) >> 8) % (1U << 12);
out++;
*out = ((*in) >> 20);
++in;
out++;
return in;
}
const uint32_t *__fastunpack13_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 13);
out++;
*out = ((*in) >> 13) % (1U << 13);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 7)) << (13 - 7);
out++;
*out = ((*in) >> 7) % (1U << 13);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 1)) << (13 - 1);
out++;
*out = ((*in) >> 1) % (1U << 13);
out++;
*out = ((*in) >> 14) % (1U << 13);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 8)) << (13 - 8);
out++;
return in + 1;
}
const uint32_t *__fastunpack14_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 14);
out++;
*out = ((*in) >> 14) % (1U << 14);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 10)) << (14 - 10);
out++;
*out = ((*in) >> 10) % (1U << 14);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 6)) << (14 - 6);
out++;
*out = ((*in) >> 6) % (1U << 14);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 2)) << (14 - 2);
out++;
*out = ((*in) >> 2) % (1U << 14);
out++;
return in + 1;
}
const uint32_t *__fastunpack15_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 15);
out++;
*out = ((*in) >> 15) % (1U << 15);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 13)) << (15 - 13);
out++;
*out = ((*in) >> 13) % (1U << 15);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 11)) << (15 - 11);
out++;
*out = ((*in) >> 11) % (1U << 15);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 9)) << (15 - 9);
out++;
*out = ((*in) >> 9) % (1U << 15);
out++;
return in + 1;
}
const uint32_t *__fastunpack16_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
return in;
}
const uint32_t *__fastunpack17_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 2)) << (17 - 2);
out++;
*out = ((*in) >> 2) % (1U << 17);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 4)) << (17 - 4);
out++;
*out = ((*in) >> 4) % (1U << 17);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 6)) << (17 - 6);
out++;
*out = ((*in) >> 6) % (1U << 17);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 8)) << (17 - 8);
out++;
return in + 1;
}
const uint32_t *__fastunpack18_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 4)) << (18 - 4);
out++;
*out = ((*in) >> 4) % (1U << 18);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 8)) << (18 - 8);
out++;
*out = ((*in) >> 8) % (1U << 18);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 12)) << (18 - 12);
out++;
*out = ((*in) >> 12) % (1U << 18);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 16)) << (18 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack19_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 6)) << (19 - 6);
out++;
*out = ((*in) >> 6) % (1U << 19);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 12)) << (19 - 12);
out++;
*out = ((*in) >> 12) % (1U << 19);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 18)) << (19 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 5)) << (19 - 5);
out++;
*out = ((*in) >> 5) % (1U << 19);
out++;
return in + 1;
}
const uint32_t *__fastunpack20_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 8)) << (20 - 8);
out++;
*out = ((*in) >> 8) % (1U << 20);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 16)) << (20 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 4)) << (20 - 4);
out++;
*out = ((*in) >> 4) % (1U << 20);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 12)) << (20 - 12);
out++;
*out = ((*in) >> 12);
++in;
out++;
return in;
}
const uint32_t *__fastunpack21_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 10)) << (21 - 10);
out++;
*out = ((*in) >> 10) % (1U << 21);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 20)) << (21 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 9)) << (21 - 9);
out++;
*out = ((*in) >> 9) % (1U << 21);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 19)) << (21 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 8)) << (21 - 8);
out++;
return in + 1;
}
const uint32_t *__fastunpack22_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 12)) << (22 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 2)) << (22 - 2);
out++;
*out = ((*in) >> 2) % (1U << 22);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 14)) << (22 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 4)) << (22 - 4);
out++;
*out = ((*in) >> 4) % (1U << 22);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 16)) << (22 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack23_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 14)) << (23 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 5)) << (23 - 5);
out++;
*out = ((*in) >> 5) % (1U << 23);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 19)) << (23 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 10)) << (23 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 1)) << (23 - 1);
out++;
*out = ((*in) >> 1) % (1U << 23);
out++;
return in + 1;
}
const uint32_t *__fastunpack24_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
return in;
}
const uint32_t *__fastunpack25_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 25);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 18)) << (25 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 11)) << (25 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 4)) << (25 - 4);
out++;
*out = ((*in) >> 4) % (1U << 25);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 22)) << (25 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 15)) << (25 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 8)) << (25 - 8);
out++;
return in + 1;
}
const uint32_t *__fastunpack26_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 20)) << (26 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 14)) << (26 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 8)) << (26 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 2)) << (26 - 2);
out++;
*out = ((*in) >> 2) % (1U << 26);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 22)) << (26 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 16)) << (26 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack27_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 27);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 22)) << (27 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 17)) << (27 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 12)) << (27 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 7)) << (27 - 7);
out++;
*out = ((*in) >> 7);
++in;
*out |= ((*in) % (1U << 2)) << (27 - 2);
out++;
*out = ((*in) >> 2) % (1U << 27);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 24)) << (27 - 24);
out++;
return in + 1;
}
const uint32_t *__fastunpack28_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 24)) << (28 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 20)) << (28 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 16)) << (28 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 12)) << (28 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 8)) << (28 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 4)) << (28 - 4);
out++;
*out = ((*in) >> 4);
++in;
out++;
return in;
}
const uint32_t *__fastunpack29_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 29);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 26)) << (29 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 23)) << (29 - 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 20)) << (29 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 17)) << (29 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 14)) << (29 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 11)) << (29 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 8)) << (29 - 8);
out++;
return in + 1;
}
const uint32_t *__fastunpack30_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 30);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 28)) << (30 - 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 26)) << (30 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 24)) << (30 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 22)) << (30 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 20)) << (30 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 18)) << (30 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 16)) << (30 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack31_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 31);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 30)) << (31 - 30);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 29)) << (31 - 29);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 28)) << (31 - 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 27)) << (31 - 27);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 26)) << (31 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 25)) << (31 - 25);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 24)) << (31 - 24);
out++;
return in + 1;
}
const uint32_t *__fastunpack32_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
return in;
}
const uint32_t *fastunpack_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out, const uint32_t bit) {
switch (bit) {
case 0:
return nullunpacker8(in, out);
case 1:
return __fastunpack1_8(in, out);
case 2:
return __fastunpack2_8(in, out);
case 3:
return __fastunpack3_8(in, out);
case 4:
return __fastunpack4_8(in, out);
case 5:
return __fastunpack5_8(in, out);
case 6:
return __fastunpack6_8(in, out);
case 7:
return __fastunpack7_8(in, out);
case 8:
return __fastunpack8_8(in, out);
case 9:
return __fastunpack9_8(in, out);
case 10:
return __fastunpack10_8(in, out);
case 11:
return __fastunpack11_8(in, out);
case 12:
return __fastunpack12_8(in, out);
case 13:
return __fastunpack13_8(in, out);
case 14:
return __fastunpack14_8(in, out);
case 15:
return __fastunpack15_8(in, out);
case 16:
return __fastunpack16_8(in, out);
case 17:
return __fastunpack17_8(in, out);
case 18:
return __fastunpack18_8(in, out);
case 19:
return __fastunpack19_8(in, out);
case 20:
return __fastunpack20_8(in, out);
case 21:
return __fastunpack21_8(in, out);
case 22:
return __fastunpack22_8(in, out);
case 23:
return __fastunpack23_8(in, out);
case 24:
return __fastunpack24_8(in, out);
case 25:
return __fastunpack25_8(in, out);
case 26:
return __fastunpack26_8(in, out);
case 27:
return __fastunpack27_8(in, out);
case 28:
return __fastunpack28_8(in, out);
case 29:
return __fastunpack29_8(in, out);
case 30:
return __fastunpack30_8(in, out);
case 31:
return __fastunpack31_8(in, out);
case 32:
return __fastunpack32_8(in, out);
default:
break;
}
throw std::logic_error("number of bits is unsupported");
}
uint32_t *fastpackwithoutmask_8(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out,
const uint32_t bit) {
switch (bit) {
case 0:
return nullpacker(in, out);
case 1:
return __fastpackwithoutmask1_8(in, out);
case 2:
return __fastpackwithoutmask2_8(in, out);
case 3:
return __fastpackwithoutmask3_8(in, out);
case 4:
return __fastpackwithoutmask4_8(in, out);
case 5:
return __fastpackwithoutmask5_8(in, out);
case 6:
return __fastpackwithoutmask6_8(in, out);
case 7:
return __fastpackwithoutmask7_8(in, out);
case 8:
return __fastpackwithoutmask8_8(in, out);
case 9:
return __fastpackwithoutmask9_8(in, out);
case 10:
return __fastpackwithoutmask10_8(in, out);
case 11:
return __fastpackwithoutmask11_8(in, out);
case 12:
return __fastpackwithoutmask12_8(in, out);
case 13:
return __fastpackwithoutmask13_8(in, out);
case 14:
return __fastpackwithoutmask14_8(in, out);
case 15:
return __fastpackwithoutmask15_8(in, out);
case 16:
return __fastpackwithoutmask16_8(in, out);
case 17:
return __fastpackwithoutmask17_8(in, out);
case 18:
return __fastpackwithoutmask18_8(in, out);
case 19:
return __fastpackwithoutmask19_8(in, out);
case 20:
return __fastpackwithoutmask20_8(in, out);
case 21:
return __fastpackwithoutmask21_8(in, out);
case 22:
return __fastpackwithoutmask22_8(in, out);
case 23:
return __fastpackwithoutmask23_8(in, out);
case 24:
return __fastpackwithoutmask24_8(in, out);
case 25:
return __fastpackwithoutmask25_8(in, out);
case 26:
return __fastpackwithoutmask26_8(in, out);
case 27:
return __fastpackwithoutmask27_8(in, out);
case 28:
return __fastpackwithoutmask28_8(in, out);
case 29:
return __fastpackwithoutmask29_8(in, out);
case 30:
return __fastpackwithoutmask30_8(in, out);
case 31:
return __fastpackwithoutmask31_8(in, out);
case 32:
return __fastpackwithoutmask32_8(in, out);
default:
break;
}
throw std::logic_error("number of bits is unsupported");
}
const uint32_t *nullunpacker16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
memset(out, 0, 16 * 4);
return in;
}
uint32_t *__fastpackwithoutmask1_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 15;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask2_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 26;
++in;
*out |= ((*in)) << 28;
++in;
*out |= ((*in)) << 30;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask3_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 27;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (3 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 13;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask4_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 28;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 28;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask5_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 25;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (5 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 23;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (5 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 11;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask6_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (6 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (6 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 26;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask7_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (7 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (7 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (7 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 9;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask8_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask9_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (9 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (9 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (9 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (9 - 7);
++in;
*out |= ((*in)) << 7;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask10_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (10 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (10 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (10 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (10 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 22;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask11_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (11 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (11 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (11 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (11 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (11 - 5);
++in;
*out |= ((*in)) << 5;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask12_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (12 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (12 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 20;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (12 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (12 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 20;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask13_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (13 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (13 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (13 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (13 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (13 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (13 - 3);
++in;
*out |= ((*in)) << 3;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask14_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (14 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (14 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (14 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (14 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (14 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (14 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 18;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask15_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (15 - 13);
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (15 - 11);
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (15 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (15 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (15 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (15 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (15 - 1);
++in;
*out |= ((*in)) << 1;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask16_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask17_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (17 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (17 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (17 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (17 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (17 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (17 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (17 - 14);
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (17 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask18_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (18 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (18 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (18 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (18 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (18 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (18 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (18 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (18 - 14);
++in;
*out |= ((*in)) << 14;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask19_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (19 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (19 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (19 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (19 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (19 - 11);
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (19 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (19 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (19 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (19 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask20_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (20 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (20 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (20 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (20 - 12);
++in;
*out |= ((*in)) << 12;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (20 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (20 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (20 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (20 - 12);
++in;
*out |= ((*in)) << 12;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask21_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (21 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (21 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (21 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (21 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (21 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (21 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (21 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (21 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (21 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (21 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask22_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (22 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (22 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (22 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (22 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (22 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (22 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (22 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (22 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (22 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (22 - 10);
++in;
*out |= ((*in)) << 10;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask23_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (23 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (23 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (23 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (23 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (23 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (23 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (23 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (23 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (23 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (23 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (23 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask24_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask25_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (25 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (25 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (25 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (25 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (25 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (25 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (25 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (25 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (25 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (25 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (25 - 23);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (25 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask26_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (26 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (26 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (26 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (26 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (26 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (26 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (26 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (26 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (26 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (26 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (26 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (26 - 6);
++in;
*out |= ((*in)) << 6;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask27_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (27 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (27 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (27 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (27 - 7);
++in;
*out |= ((*in)) << 7;
++out;
*out = ((*in)) >> (27 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (27 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (27 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (27 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (27 - 9);
++in;
*out |= ((*in)) << 9;
++out;
*out = ((*in)) >> (27 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (27 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (27 - 21);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (27 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask28_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (28 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (28 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (28 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (28 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (28 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (28 - 4);
++in;
*out |= ((*in)) << 4;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (28 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (28 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (28 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (28 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (28 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (28 - 4);
++in;
*out |= ((*in)) << 4;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask29_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (29 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (29 - 23);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (29 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (29 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (29 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (29 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (29 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (29 - 5);
++in;
*out |= ((*in)) << 5;
++out;
*out = ((*in)) >> (29 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (29 - 28);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (29 - 25);
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (29 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (29 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (29 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask30_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (30 - 28);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (30 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (30 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (30 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (30 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (30 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (30 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (30 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (30 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (30 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (30 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (30 - 6);
++in;
*out |= ((*in)) << 6;
++out;
*out = ((*in)) >> (30 - 4);
++in;
*out |= ((*in)) << 4;
++out;
*out = ((*in)) >> (30 - 2);
++in;
*out |= ((*in)) << 2;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask31_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (31 - 30);
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (31 - 29);
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (31 - 28);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (31 - 27);
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (31 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (31 - 25);
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (31 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (31 - 23);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (31 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (31 - 21);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (31 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (31 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (31 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (31 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (31 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask32_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
return out;
}
const uint32_t *__fastunpack1_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) & 1;
out++;
*out = ((*in) >> 1) & 1;
out++;
*out = ((*in) >> 2) & 1;
out++;
*out = ((*in) >> 3) & 1;
out++;
*out = ((*in) >> 4) & 1;
out++;
*out = ((*in) >> 5) & 1;
out++;
*out = ((*in) >> 6) & 1;
out++;
*out = ((*in) >> 7) & 1;
out++;
*out = ((*in) >> 8) & 1;
out++;
*out = ((*in) >> 9) & 1;
out++;
*out = ((*in) >> 10) & 1;
out++;
*out = ((*in) >> 11) & 1;
out++;
*out = ((*in) >> 12) & 1;
out++;
*out = ((*in) >> 13) & 1;
out++;
*out = ((*in) >> 14) & 1;
out++;
*out = ((*in) >> 15) & 1;
out++;
return in + 1;
}
const uint32_t *__fastunpack2_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 2);
out++;
*out = ((*in) >> 2) % (1U << 2);
out++;
*out = ((*in) >> 4) % (1U << 2);
out++;
*out = ((*in) >> 6) % (1U << 2);
out++;
*out = ((*in) >> 8) % (1U << 2);
out++;
*out = ((*in) >> 10) % (1U << 2);
out++;
*out = ((*in) >> 12) % (1U << 2);
out++;
*out = ((*in) >> 14) % (1U << 2);
out++;
*out = ((*in) >> 16) % (1U << 2);
out++;
*out = ((*in) >> 18) % (1U << 2);
out++;
*out = ((*in) >> 20) % (1U << 2);
out++;
*out = ((*in) >> 22) % (1U << 2);
out++;
*out = ((*in) >> 24) % (1U << 2);
out++;
*out = ((*in) >> 26) % (1U << 2);
out++;
*out = ((*in) >> 28) % (1U << 2);
out++;
*out = ((*in) >> 30);
++in;
out++;
return in;
}
const uint32_t *__fastunpack3_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 3);
out++;
*out = ((*in) >> 3) % (1U << 3);
out++;
*out = ((*in) >> 6) % (1U << 3);
out++;
*out = ((*in) >> 9) % (1U << 3);
out++;
*out = ((*in) >> 12) % (1U << 3);
out++;
*out = ((*in) >> 15) % (1U << 3);
out++;
*out = ((*in) >> 18) % (1U << 3);
out++;
*out = ((*in) >> 21) % (1U << 3);
out++;
*out = ((*in) >> 24) % (1U << 3);
out++;
*out = ((*in) >> 27) % (1U << 3);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 1)) << (3 - 1);
out++;
*out = ((*in) >> 1) % (1U << 3);
out++;
*out = ((*in) >> 4) % (1U << 3);
out++;
*out = ((*in) >> 7) % (1U << 3);
out++;
*out = ((*in) >> 10) % (1U << 3);
out++;
*out = ((*in) >> 13) % (1U << 3);
out++;
return in + 1;
}
const uint32_t *__fastunpack4_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 4);
out++;
*out = ((*in) >> 4) % (1U << 4);
out++;
*out = ((*in) >> 8) % (1U << 4);
out++;
*out = ((*in) >> 12) % (1U << 4);
out++;
*out = ((*in) >> 16) % (1U << 4);
out++;
*out = ((*in) >> 20) % (1U << 4);
out++;
*out = ((*in) >> 24) % (1U << 4);
out++;
*out = ((*in) >> 28);
++in;
out++;
*out = ((*in) >> 0) % (1U << 4);
out++;
*out = ((*in) >> 4) % (1U << 4);
out++;
*out = ((*in) >> 8) % (1U << 4);
out++;
*out = ((*in) >> 12) % (1U << 4);
out++;
*out = ((*in) >> 16) % (1U << 4);
out++;
*out = ((*in) >> 20) % (1U << 4);
out++;
*out = ((*in) >> 24) % (1U << 4);
out++;
*out = ((*in) >> 28);
++in;
out++;
return in;
}
const uint32_t *__fastunpack5_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 5);
out++;
*out = ((*in) >> 5) % (1U << 5);
out++;
*out = ((*in) >> 10) % (1U << 5);
out++;
*out = ((*in) >> 15) % (1U << 5);
out++;
*out = ((*in) >> 20) % (1U << 5);
out++;
*out = ((*in) >> 25) % (1U << 5);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 3)) << (5 - 3);
out++;
*out = ((*in) >> 3) % (1U << 5);
out++;
*out = ((*in) >> 8) % (1U << 5);
out++;
*out = ((*in) >> 13) % (1U << 5);
out++;
*out = ((*in) >> 18) % (1U << 5);
out++;
*out = ((*in) >> 23) % (1U << 5);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 1)) << (5 - 1);
out++;
*out = ((*in) >> 1) % (1U << 5);
out++;
*out = ((*in) >> 6) % (1U << 5);
out++;
*out = ((*in) >> 11) % (1U << 5);
out++;
return in + 1;
}
const uint32_t *__fastunpack6_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 6);
out++;
*out = ((*in) >> 6) % (1U << 6);
out++;
*out = ((*in) >> 12) % (1U << 6);
out++;
*out = ((*in) >> 18) % (1U << 6);
out++;
*out = ((*in) >> 24) % (1U << 6);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 4)) << (6 - 4);
out++;
*out = ((*in) >> 4) % (1U << 6);
out++;
*out = ((*in) >> 10) % (1U << 6);
out++;
*out = ((*in) >> 16) % (1U << 6);
out++;
*out = ((*in) >> 22) % (1U << 6);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 2)) << (6 - 2);
out++;
*out = ((*in) >> 2) % (1U << 6);
out++;
*out = ((*in) >> 8) % (1U << 6);
out++;
*out = ((*in) >> 14) % (1U << 6);
out++;
*out = ((*in) >> 20) % (1U << 6);
out++;
*out = ((*in) >> 26);
++in;
out++;
return in;
}
const uint32_t *__fastunpack7_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 7);
out++;
*out = ((*in) >> 7) % (1U << 7);
out++;
*out = ((*in) >> 14) % (1U << 7);
out++;
*out = ((*in) >> 21) % (1U << 7);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 3)) << (7 - 3);
out++;
*out = ((*in) >> 3) % (1U << 7);
out++;
*out = ((*in) >> 10) % (1U << 7);
out++;
*out = ((*in) >> 17) % (1U << 7);
out++;
*out = ((*in) >> 24) % (1U << 7);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 6)) << (7 - 6);
out++;
*out = ((*in) >> 6) % (1U << 7);
out++;
*out = ((*in) >> 13) % (1U << 7);
out++;
*out = ((*in) >> 20) % (1U << 7);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 2)) << (7 - 2);
out++;
*out = ((*in) >> 2) % (1U << 7);
out++;
*out = ((*in) >> 9) % (1U << 7);
out++;
return in + 1;
}
const uint32_t *__fastunpack8_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
return in;
}
const uint32_t *__fastunpack9_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 9);
out++;
*out = ((*in) >> 9) % (1U << 9);
out++;
*out = ((*in) >> 18) % (1U << 9);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 4)) << (9 - 4);
out++;
*out = ((*in) >> 4) % (1U << 9);
out++;
*out = ((*in) >> 13) % (1U << 9);
out++;
*out = ((*in) >> 22) % (1U << 9);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 8)) << (9 - 8);
out++;
*out = ((*in) >> 8) % (1U << 9);
out++;
*out = ((*in) >> 17) % (1U << 9);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 3)) << (9 - 3);
out++;
*out = ((*in) >> 3) % (1U << 9);
out++;
*out = ((*in) >> 12) % (1U << 9);
out++;
*out = ((*in) >> 21) % (1U << 9);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 7)) << (9 - 7);
out++;
*out = ((*in) >> 7) % (1U << 9);
out++;
return in + 1;
}
const uint32_t *__fastunpack10_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 10);
out++;
*out = ((*in) >> 10) % (1U << 10);
out++;
*out = ((*in) >> 20) % (1U << 10);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 8)) << (10 - 8);
out++;
*out = ((*in) >> 8) % (1U << 10);
out++;
*out = ((*in) >> 18) % (1U << 10);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 6)) << (10 - 6);
out++;
*out = ((*in) >> 6) % (1U << 10);
out++;
*out = ((*in) >> 16) % (1U << 10);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 4)) << (10 - 4);
out++;
*out = ((*in) >> 4) % (1U << 10);
out++;
*out = ((*in) >> 14) % (1U << 10);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 2)) << (10 - 2);
out++;
*out = ((*in) >> 2) % (1U << 10);
out++;
*out = ((*in) >> 12) % (1U << 10);
out++;
*out = ((*in) >> 22);
++in;
out++;
return in;
}
const uint32_t *__fastunpack11_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 11);
out++;
*out = ((*in) >> 11) % (1U << 11);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 1)) << (11 - 1);
out++;
*out = ((*in) >> 1) % (1U << 11);
out++;
*out = ((*in) >> 12) % (1U << 11);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 2)) << (11 - 2);
out++;
*out = ((*in) >> 2) % (1U << 11);
out++;
*out = ((*in) >> 13) % (1U << 11);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 3)) << (11 - 3);
out++;
*out = ((*in) >> 3) % (1U << 11);
out++;
*out = ((*in) >> 14) % (1U << 11);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 4)) << (11 - 4);
out++;
*out = ((*in) >> 4) % (1U << 11);
out++;
*out = ((*in) >> 15) % (1U << 11);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 5)) << (11 - 5);
out++;
*out = ((*in) >> 5) % (1U << 11);
out++;
return in + 1;
}
const uint32_t *__fastunpack12_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 12);
out++;
*out = ((*in) >> 12) % (1U << 12);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 4)) << (12 - 4);
out++;
*out = ((*in) >> 4) % (1U << 12);
out++;
*out = ((*in) >> 16) % (1U << 12);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 8)) << (12 - 8);
out++;
*out = ((*in) >> 8) % (1U << 12);
out++;
*out = ((*in) >> 20);
++in;
out++;
*out = ((*in) >> 0) % (1U << 12);
out++;
*out = ((*in) >> 12) % (1U << 12);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 4)) << (12 - 4);
out++;
*out = ((*in) >> 4) % (1U << 12);
out++;
*out = ((*in) >> 16) % (1U << 12);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 8)) << (12 - 8);
out++;
*out = ((*in) >> 8) % (1U << 12);
out++;
*out = ((*in) >> 20);
++in;
out++;
return in;
}
const uint32_t *__fastunpack13_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 13);
out++;
*out = ((*in) >> 13) % (1U << 13);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 7)) << (13 - 7);
out++;
*out = ((*in) >> 7) % (1U << 13);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 1)) << (13 - 1);
out++;
*out = ((*in) >> 1) % (1U << 13);
out++;
*out = ((*in) >> 14) % (1U << 13);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 8)) << (13 - 8);
out++;
*out = ((*in) >> 8) % (1U << 13);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 2)) << (13 - 2);
out++;
*out = ((*in) >> 2) % (1U << 13);
out++;
*out = ((*in) >> 15) % (1U << 13);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 9)) << (13 - 9);
out++;
*out = ((*in) >> 9) % (1U << 13);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 3)) << (13 - 3);
out++;
*out = ((*in) >> 3) % (1U << 13);
out++;
return in + 1;
}
const uint32_t *__fastunpack14_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 14);
out++;
*out = ((*in) >> 14) % (1U << 14);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 10)) << (14 - 10);
out++;
*out = ((*in) >> 10) % (1U << 14);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 6)) << (14 - 6);
out++;
*out = ((*in) >> 6) % (1U << 14);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 2)) << (14 - 2);
out++;
*out = ((*in) >> 2) % (1U << 14);
out++;
*out = ((*in) >> 16) % (1U << 14);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 12)) << (14 - 12);
out++;
*out = ((*in) >> 12) % (1U << 14);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 8)) << (14 - 8);
out++;
*out = ((*in) >> 8) % (1U << 14);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 4)) << (14 - 4);
out++;
*out = ((*in) >> 4) % (1U << 14);
out++;
*out = ((*in) >> 18);
++in;
out++;
return in;
}
const uint32_t *__fastunpack15_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 15);
out++;
*out = ((*in) >> 15) % (1U << 15);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 13)) << (15 - 13);
out++;
*out = ((*in) >> 13) % (1U << 15);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 11)) << (15 - 11);
out++;
*out = ((*in) >> 11) % (1U << 15);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 9)) << (15 - 9);
out++;
*out = ((*in) >> 9) % (1U << 15);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 7)) << (15 - 7);
out++;
*out = ((*in) >> 7) % (1U << 15);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 5)) << (15 - 5);
out++;
*out = ((*in) >> 5) % (1U << 15);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 3)) << (15 - 3);
out++;
*out = ((*in) >> 3) % (1U << 15);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 1)) << (15 - 1);
out++;
*out = ((*in) >> 1) % (1U << 15);
out++;
return in + 1;
}
const uint32_t *__fastunpack16_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
return in;
}
const uint32_t *__fastunpack17_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 2)) << (17 - 2);
out++;
*out = ((*in) >> 2) % (1U << 17);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 4)) << (17 - 4);
out++;
*out = ((*in) >> 4) % (1U << 17);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 6)) << (17 - 6);
out++;
*out = ((*in) >> 6) % (1U << 17);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 8)) << (17 - 8);
out++;
*out = ((*in) >> 8) % (1U << 17);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 10)) << (17 - 10);
out++;
*out = ((*in) >> 10) % (1U << 17);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 12)) << (17 - 12);
out++;
*out = ((*in) >> 12) % (1U << 17);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 14)) << (17 - 14);
out++;
*out = ((*in) >> 14) % (1U << 17);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 16)) << (17 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack18_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 4)) << (18 - 4);
out++;
*out = ((*in) >> 4) % (1U << 18);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 8)) << (18 - 8);
out++;
*out = ((*in) >> 8) % (1U << 18);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 12)) << (18 - 12);
out++;
*out = ((*in) >> 12) % (1U << 18);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 16)) << (18 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 2)) << (18 - 2);
out++;
*out = ((*in) >> 2) % (1U << 18);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 6)) << (18 - 6);
out++;
*out = ((*in) >> 6) % (1U << 18);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 10)) << (18 - 10);
out++;
*out = ((*in) >> 10) % (1U << 18);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 14)) << (18 - 14);
out++;
*out = ((*in) >> 14);
++in;
out++;
return in;
}
const uint32_t *__fastunpack19_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 6)) << (19 - 6);
out++;
*out = ((*in) >> 6) % (1U << 19);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 12)) << (19 - 12);
out++;
*out = ((*in) >> 12) % (1U << 19);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 18)) << (19 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 5)) << (19 - 5);
out++;
*out = ((*in) >> 5) % (1U << 19);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 11)) << (19 - 11);
out++;
*out = ((*in) >> 11) % (1U << 19);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 17)) << (19 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 4)) << (19 - 4);
out++;
*out = ((*in) >> 4) % (1U << 19);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 10)) << (19 - 10);
out++;
*out = ((*in) >> 10) % (1U << 19);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 16)) << (19 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack20_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 8)) << (20 - 8);
out++;
*out = ((*in) >> 8) % (1U << 20);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 16)) << (20 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 4)) << (20 - 4);
out++;
*out = ((*in) >> 4) % (1U << 20);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 12)) << (20 - 12);
out++;
*out = ((*in) >> 12);
++in;
out++;
*out = ((*in) >> 0) % (1U << 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 8)) << (20 - 8);
out++;
*out = ((*in) >> 8) % (1U << 20);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 16)) << (20 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 4)) << (20 - 4);
out++;
*out = ((*in) >> 4) % (1U << 20);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 12)) << (20 - 12);
out++;
*out = ((*in) >> 12);
++in;
out++;
return in;
}
const uint32_t *__fastunpack21_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 10)) << (21 - 10);
out++;
*out = ((*in) >> 10) % (1U << 21);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 20)) << (21 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 9)) << (21 - 9);
out++;
*out = ((*in) >> 9) % (1U << 21);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 19)) << (21 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 8)) << (21 - 8);
out++;
*out = ((*in) >> 8) % (1U << 21);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 18)) << (21 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 7)) << (21 - 7);
out++;
*out = ((*in) >> 7) % (1U << 21);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 17)) << (21 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 6)) << (21 - 6);
out++;
*out = ((*in) >> 6) % (1U << 21);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 16)) << (21 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack22_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 12)) << (22 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 2)) << (22 - 2);
out++;
*out = ((*in) >> 2) % (1U << 22);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 14)) << (22 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 4)) << (22 - 4);
out++;
*out = ((*in) >> 4) % (1U << 22);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 16)) << (22 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 6)) << (22 - 6);
out++;
*out = ((*in) >> 6) % (1U << 22);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 18)) << (22 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 8)) << (22 - 8);
out++;
*out = ((*in) >> 8) % (1U << 22);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 20)) << (22 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 10)) << (22 - 10);
out++;
*out = ((*in) >> 10);
++in;
out++;
return in;
}
const uint32_t *__fastunpack23_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 14)) << (23 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 5)) << (23 - 5);
out++;
*out = ((*in) >> 5) % (1U << 23);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 19)) << (23 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 10)) << (23 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 1)) << (23 - 1);
out++;
*out = ((*in) >> 1) % (1U << 23);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 15)) << (23 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 6)) << (23 - 6);
out++;
*out = ((*in) >> 6) % (1U << 23);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 20)) << (23 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 11)) << (23 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 2)) << (23 - 2);
out++;
*out = ((*in) >> 2) % (1U << 23);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 16)) << (23 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack24_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
return in;
}
const uint32_t *__fastunpack25_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 25);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 18)) << (25 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 11)) << (25 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 4)) << (25 - 4);
out++;
*out = ((*in) >> 4) % (1U << 25);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 22)) << (25 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 15)) << (25 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 8)) << (25 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 1)) << (25 - 1);
out++;
*out = ((*in) >> 1) % (1U << 25);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 19)) << (25 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 12)) << (25 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 5)) << (25 - 5);
out++;
*out = ((*in) >> 5) % (1U << 25);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 23)) << (25 - 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 16)) << (25 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack26_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 20)) << (26 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 14)) << (26 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 8)) << (26 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 2)) << (26 - 2);
out++;
*out = ((*in) >> 2) % (1U << 26);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 22)) << (26 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 16)) << (26 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 10)) << (26 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 4)) << (26 - 4);
out++;
*out = ((*in) >> 4) % (1U << 26);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 24)) << (26 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 18)) << (26 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 12)) << (26 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 6)) << (26 - 6);
out++;
*out = ((*in) >> 6);
++in;
out++;
return in;
}
const uint32_t *__fastunpack27_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 27);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 22)) << (27 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 17)) << (27 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 12)) << (27 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 7)) << (27 - 7);
out++;
*out = ((*in) >> 7);
++in;
*out |= ((*in) % (1U << 2)) << (27 - 2);
out++;
*out = ((*in) >> 2) % (1U << 27);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 24)) << (27 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 19)) << (27 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 14)) << (27 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 9)) << (27 - 9);
out++;
*out = ((*in) >> 9);
++in;
*out |= ((*in) % (1U << 4)) << (27 - 4);
out++;
*out = ((*in) >> 4) % (1U << 27);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 26)) << (27 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 21)) << (27 - 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 16)) << (27 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack28_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 24)) << (28 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 20)) << (28 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 16)) << (28 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 12)) << (28 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 8)) << (28 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 4)) << (28 - 4);
out++;
*out = ((*in) >> 4);
++in;
out++;
*out = ((*in) >> 0) % (1U << 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 24)) << (28 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 20)) << (28 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 16)) << (28 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 12)) << (28 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 8)) << (28 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 4)) << (28 - 4);
out++;
*out = ((*in) >> 4);
++in;
out++;
return in;
}
const uint32_t *__fastunpack29_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 29);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 26)) << (29 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 23)) << (29 - 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 20)) << (29 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 17)) << (29 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 14)) << (29 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 11)) << (29 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 8)) << (29 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 5)) << (29 - 5);
out++;
*out = ((*in) >> 5);
++in;
*out |= ((*in) % (1U << 2)) << (29 - 2);
out++;
*out = ((*in) >> 2) % (1U << 29);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 28)) << (29 - 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 25)) << (29 - 25);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 22)) << (29 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 19)) << (29 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 16)) << (29 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack30_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 30);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 28)) << (30 - 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 26)) << (30 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 24)) << (30 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 22)) << (30 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 20)) << (30 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 18)) << (30 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 16)) << (30 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 14)) << (30 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 12)) << (30 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 10)) << (30 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 8)) << (30 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 6)) << (30 - 6);
out++;
*out = ((*in) >> 6);
++in;
*out |= ((*in) % (1U << 4)) << (30 - 4);
out++;
*out = ((*in) >> 4);
++in;
*out |= ((*in) % (1U << 2)) << (30 - 2);
out++;
*out = ((*in) >> 2);
++in;
out++;
return in;
}
const uint32_t *__fastunpack31_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 31);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 30)) << (31 - 30);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 29)) << (31 - 29);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 28)) << (31 - 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 27)) << (31 - 27);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 26)) << (31 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 25)) << (31 - 25);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 24)) << (31 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 23)) << (31 - 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 22)) << (31 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 21)) << (31 - 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 20)) << (31 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 19)) << (31 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 18)) << (31 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 17)) << (31 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 16)) << (31 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack32_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
return in;
}
const uint32_t *fastunpack_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out, const uint32_t bit) {
switch (bit) {
case 0:
return nullunpacker16(in, out);
case 1:
return __fastunpack1_16(in, out);
case 2:
return __fastunpack2_16(in, out);
case 3:
return __fastunpack3_16(in, out);
case 4:
return __fastunpack4_16(in, out);
case 5:
return __fastunpack5_16(in, out);
case 6:
return __fastunpack6_16(in, out);
case 7:
return __fastunpack7_16(in, out);
case 8:
return __fastunpack8_16(in, out);
case 9:
return __fastunpack9_16(in, out);
case 10:
return __fastunpack10_16(in, out);
case 11:
return __fastunpack11_16(in, out);
case 12:
return __fastunpack12_16(in, out);
case 13:
return __fastunpack13_16(in, out);
case 14:
return __fastunpack14_16(in, out);
case 15:
return __fastunpack15_16(in, out);
case 16:
return __fastunpack16_16(in, out);
case 17:
return __fastunpack17_16(in, out);
case 18:
return __fastunpack18_16(in, out);
case 19:
return __fastunpack19_16(in, out);
case 20:
return __fastunpack20_16(in, out);
case 21:
return __fastunpack21_16(in, out);
case 22:
return __fastunpack22_16(in, out);
case 23:
return __fastunpack23_16(in, out);
case 24:
return __fastunpack24_16(in, out);
case 25:
return __fastunpack25_16(in, out);
case 26:
return __fastunpack26_16(in, out);
case 27:
return __fastunpack27_16(in, out);
case 28:
return __fastunpack28_16(in, out);
case 29:
return __fastunpack29_16(in, out);
case 30:
return __fastunpack30_16(in, out);
case 31:
return __fastunpack31_16(in, out);
case 32:
return __fastunpack32_16(in, out);
default:
break;
}
throw std::logic_error("number of bits is unsupported");
}
uint32_t *fastpackwithoutmask_16(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out,
const uint32_t bit) {
switch (bit) {
case 0:
return nullpacker(in, out);
case 1:
return __fastpackwithoutmask1_16(in, out);
case 2:
return __fastpackwithoutmask2_16(in, out);
case 3:
return __fastpackwithoutmask3_16(in, out);
case 4:
return __fastpackwithoutmask4_16(in, out);
case 5:
return __fastpackwithoutmask5_16(in, out);
case 6:
return __fastpackwithoutmask6_16(in, out);
case 7:
return __fastpackwithoutmask7_16(in, out);
case 8:
return __fastpackwithoutmask8_16(in, out);
case 9:
return __fastpackwithoutmask9_16(in, out);
case 10:
return __fastpackwithoutmask10_16(in, out);
case 11:
return __fastpackwithoutmask11_16(in, out);
case 12:
return __fastpackwithoutmask12_16(in, out);
case 13:
return __fastpackwithoutmask13_16(in, out);
case 14:
return __fastpackwithoutmask14_16(in, out);
case 15:
return __fastpackwithoutmask15_16(in, out);
case 16:
return __fastpackwithoutmask16_16(in, out);
case 17:
return __fastpackwithoutmask17_16(in, out);
case 18:
return __fastpackwithoutmask18_16(in, out);
case 19:
return __fastpackwithoutmask19_16(in, out);
case 20:
return __fastpackwithoutmask20_16(in, out);
case 21:
return __fastpackwithoutmask21_16(in, out);
case 22:
return __fastpackwithoutmask22_16(in, out);
case 23:
return __fastpackwithoutmask23_16(in, out);
case 24:
return __fastpackwithoutmask24_16(in, out);
case 25:
return __fastpackwithoutmask25_16(in, out);
case 26:
return __fastpackwithoutmask26_16(in, out);
case 27:
return __fastpackwithoutmask27_16(in, out);
case 28:
return __fastpackwithoutmask28_16(in, out);
case 29:
return __fastpackwithoutmask29_16(in, out);
case 30:
return __fastpackwithoutmask30_16(in, out);
case 31:
return __fastpackwithoutmask31_16(in, out);
case 32:
return __fastpackwithoutmask32_16(in, out);
default:
break;
}
throw std::logic_error("number of bits is unsupported");
}
const uint32_t *nullunpacker24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
memset(out, 0, 24 * 4);
return in;
}
uint32_t *__fastpackwithoutmask1_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 19;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 23;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask2_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 26;
++in;
*out |= ((*in)) << 28;
++in;
*out |= ((*in)) << 30;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 14;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask3_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 27;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (3 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 19;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 25;
++in;
*out |= ((*in)) << 28;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (3 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 5;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask4_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 28;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 28;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 28;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask5_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 25;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (5 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 23;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (5 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 26;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (5 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 19;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask6_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (6 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (6 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 26;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (6 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 10;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask7_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (7 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (7 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (7 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 23;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (7 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 19;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (7 - 1);
++in;
*out |= ((*in)) << 1;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask8_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask9_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (9 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (9 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (9 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (9 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (9 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (9 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 15;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask10_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (10 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (10 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (10 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (10 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 22;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (10 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (10 - 6);
++in;
*out |= ((*in)) << 6;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask11_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (11 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (11 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (11 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (11 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (11 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (11 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (11 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (11 - 8);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask12_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (12 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (12 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 20;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (12 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (12 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 20;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (12 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (12 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 20;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask13_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (13 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (13 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (13 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (13 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (13 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (13 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (13 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (13 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (13 - 11);
++in;
*out |= ((*in)) << 11;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask14_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (14 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (14 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (14 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (14 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (14 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (14 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 18;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (14 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (14 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (14 - 2);
++in;
*out |= ((*in)) << 2;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask15_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (15 - 13);
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (15 - 11);
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (15 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (15 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (15 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (15 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (15 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (15 - 14);
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (15 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (15 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (15 - 8);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask16_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask17_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (17 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (17 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (17 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (17 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (17 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (17 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (17 - 14);
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (17 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (17 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (17 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (17 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (17 - 7);
++in;
*out |= ((*in)) << 7;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask18_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (18 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (18 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (18 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (18 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (18 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (18 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (18 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (18 - 14);
++in;
*out |= ((*in)) << 14;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (18 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (18 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (18 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (18 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask19_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (19 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (19 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (19 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (19 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (19 - 11);
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (19 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (19 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (19 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (19 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (19 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (19 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (19 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (19 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (19 - 8);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask20_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (20 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (20 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (20 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (20 - 12);
++in;
*out |= ((*in)) << 12;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (20 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (20 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (20 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (20 - 12);
++in;
*out |= ((*in)) << 12;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (20 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (20 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (20 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (20 - 12);
++in;
*out |= ((*in)) << 12;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask21_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (21 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (21 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (21 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (21 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (21 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (21 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (21 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (21 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (21 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (21 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (21 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (21 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (21 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (21 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (21 - 3);
++in;
*out |= ((*in)) << 3;
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask22_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (22 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (22 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (22 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (22 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (22 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (22 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (22 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (22 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (22 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (22 - 10);
++in;
*out |= ((*in)) << 10;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (22 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (22 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (22 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (22 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (22 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask23_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (23 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (23 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (23 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (23 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (23 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (23 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (23 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (23 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (23 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (23 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (23 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (23 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (23 - 21);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (23 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (23 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (23 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (23 - 8);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask24_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask25_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (25 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (25 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (25 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (25 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (25 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (25 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (25 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (25 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (25 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (25 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (25 - 23);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (25 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (25 - 9);
++in;
*out |= ((*in)) << 9;
++out;
*out = ((*in)) >> (25 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (25 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (25 - 13);
++in;
*out |= ((*in)) << 13;
++out;
*out = ((*in)) >> (25 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (25 - 24);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask26_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (26 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (26 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (26 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (26 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (26 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (26 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (26 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (26 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (26 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (26 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (26 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (26 - 6);
++in;
*out |= ((*in)) << 6;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (26 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (26 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (26 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (26 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (26 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (26 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask27_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (27 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (27 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (27 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (27 - 7);
++in;
*out |= ((*in)) << 7;
++out;
*out = ((*in)) >> (27 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (27 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (27 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (27 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (27 - 9);
++in;
*out |= ((*in)) << 9;
++out;
*out = ((*in)) >> (27 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (27 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (27 - 21);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (27 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (27 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (27 - 6);
++in;
*out |= ((*in)) << 6;
++out;
*out = ((*in)) >> (27 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (27 - 23);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (27 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (27 - 13);
++in;
*out |= ((*in)) << 13;
++out;
*out = ((*in)) >> (27 - 8);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask28_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (28 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (28 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (28 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (28 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (28 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (28 - 4);
++in;
*out |= ((*in)) << 4;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (28 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (28 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (28 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (28 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (28 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (28 - 4);
++in;
*out |= ((*in)) << 4;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (28 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (28 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (28 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (28 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (28 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (28 - 4);
++in;
*out |= ((*in)) << 4;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask29_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (29 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (29 - 23);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (29 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (29 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (29 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (29 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (29 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (29 - 5);
++in;
*out |= ((*in)) << 5;
++out;
*out = ((*in)) >> (29 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (29 - 28);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (29 - 25);
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (29 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (29 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (29 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (29 - 13);
++in;
*out |= ((*in)) << 13;
++out;
*out = ((*in)) >> (29 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (29 - 7);
++in;
*out |= ((*in)) << 7;
++out;
*out = ((*in)) >> (29 - 4);
++in;
*out |= ((*in)) << 4;
++out;
*out = ((*in)) >> (29 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (29 - 27);
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (29 - 24);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask30_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (30 - 28);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (30 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (30 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (30 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (30 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (30 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (30 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (30 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (30 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (30 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (30 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (30 - 6);
++in;
*out |= ((*in)) << 6;
++out;
*out = ((*in)) >> (30 - 4);
++in;
*out |= ((*in)) << 4;
++out;
*out = ((*in)) >> (30 - 2);
++in;
*out |= ((*in)) << 2;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (30 - 28);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (30 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (30 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (30 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (30 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (30 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (30 - 16);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask31_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (31 - 30);
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (31 - 29);
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (31 - 28);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (31 - 27);
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (31 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (31 - 25);
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (31 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (31 - 23);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (31 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (31 - 21);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (31 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (31 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (31 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (31 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (31 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (31 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (31 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (31 - 13);
++in;
*out |= ((*in)) << 13;
++out;
*out = ((*in)) >> (31 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (31 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (31 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (31 - 9);
++in;
*out |= ((*in)) << 9;
++out;
*out = ((*in)) >> (31 - 8);
++in;
return out + 1;
}
uint32_t *__fastpackwithoutmask32_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
return out;
}
const uint32_t *__fastunpack1_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) & 1;
out++;
*out = ((*in) >> 1) & 1;
out++;
*out = ((*in) >> 2) & 1;
out++;
*out = ((*in) >> 3) & 1;
out++;
*out = ((*in) >> 4) & 1;
out++;
*out = ((*in) >> 5) & 1;
out++;
*out = ((*in) >> 6) & 1;
out++;
*out = ((*in) >> 7) & 1;
out++;
*out = ((*in) >> 8) & 1;
out++;
*out = ((*in) >> 9) & 1;
out++;
*out = ((*in) >> 10) & 1;
out++;
*out = ((*in) >> 11) & 1;
out++;
*out = ((*in) >> 12) & 1;
out++;
*out = ((*in) >> 13) & 1;
out++;
*out = ((*in) >> 14) & 1;
out++;
*out = ((*in) >> 15) & 1;
out++;
*out = ((*in) >> 16) & 1;
out++;
*out = ((*in) >> 17) & 1;
out++;
*out = ((*in) >> 18) & 1;
out++;
*out = ((*in) >> 19) & 1;
out++;
*out = ((*in) >> 20) & 1;
out++;
*out = ((*in) >> 21) & 1;
out++;
*out = ((*in) >> 22) & 1;
out++;
*out = ((*in) >> 23) & 1;
out++;
return in + 1;
}
const uint32_t *__fastunpack2_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 2);
out++;
*out = ((*in) >> 2) % (1U << 2);
out++;
*out = ((*in) >> 4) % (1U << 2);
out++;
*out = ((*in) >> 6) % (1U << 2);
out++;
*out = ((*in) >> 8) % (1U << 2);
out++;
*out = ((*in) >> 10) % (1U << 2);
out++;
*out = ((*in) >> 12) % (1U << 2);
out++;
*out = ((*in) >> 14) % (1U << 2);
out++;
*out = ((*in) >> 16) % (1U << 2);
out++;
*out = ((*in) >> 18) % (1U << 2);
out++;
*out = ((*in) >> 20) % (1U << 2);
out++;
*out = ((*in) >> 22) % (1U << 2);
out++;
*out = ((*in) >> 24) % (1U << 2);
out++;
*out = ((*in) >> 26) % (1U << 2);
out++;
*out = ((*in) >> 28) % (1U << 2);
out++;
*out = ((*in) >> 30);
++in;
out++;
*out = ((*in) >> 0) % (1U << 2);
out++;
*out = ((*in) >> 2) % (1U << 2);
out++;
*out = ((*in) >> 4) % (1U << 2);
out++;
*out = ((*in) >> 6) % (1U << 2);
out++;
*out = ((*in) >> 8) % (1U << 2);
out++;
*out = ((*in) >> 10) % (1U << 2);
out++;
*out = ((*in) >> 12) % (1U << 2);
out++;
*out = ((*in) >> 14) % (1U << 2);
out++;
return in + 1;
}
const uint32_t *__fastunpack3_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 3);
out++;
*out = ((*in) >> 3) % (1U << 3);
out++;
*out = ((*in) >> 6) % (1U << 3);
out++;
*out = ((*in) >> 9) % (1U << 3);
out++;
*out = ((*in) >> 12) % (1U << 3);
out++;
*out = ((*in) >> 15) % (1U << 3);
out++;
*out = ((*in) >> 18) % (1U << 3);
out++;
*out = ((*in) >> 21) % (1U << 3);
out++;
*out = ((*in) >> 24) % (1U << 3);
out++;
*out = ((*in) >> 27) % (1U << 3);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 1)) << (3 - 1);
out++;
*out = ((*in) >> 1) % (1U << 3);
out++;
*out = ((*in) >> 4) % (1U << 3);
out++;
*out = ((*in) >> 7) % (1U << 3);
out++;
*out = ((*in) >> 10) % (1U << 3);
out++;
*out = ((*in) >> 13) % (1U << 3);
out++;
*out = ((*in) >> 16) % (1U << 3);
out++;
*out = ((*in) >> 19) % (1U << 3);
out++;
*out = ((*in) >> 22) % (1U << 3);
out++;
*out = ((*in) >> 25) % (1U << 3);
out++;
*out = ((*in) >> 28) % (1U << 3);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 2)) << (3 - 2);
out++;
*out = ((*in) >> 2) % (1U << 3);
out++;
*out = ((*in) >> 5) % (1U << 3);
out++;
return in + 1;
}
const uint32_t *__fastunpack4_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 4);
out++;
*out = ((*in) >> 4) % (1U << 4);
out++;
*out = ((*in) >> 8) % (1U << 4);
out++;
*out = ((*in) >> 12) % (1U << 4);
out++;
*out = ((*in) >> 16) % (1U << 4);
out++;
*out = ((*in) >> 20) % (1U << 4);
out++;
*out = ((*in) >> 24) % (1U << 4);
out++;
*out = ((*in) >> 28);
++in;
out++;
*out = ((*in) >> 0) % (1U << 4);
out++;
*out = ((*in) >> 4) % (1U << 4);
out++;
*out = ((*in) >> 8) % (1U << 4);
out++;
*out = ((*in) >> 12) % (1U << 4);
out++;
*out = ((*in) >> 16) % (1U << 4);
out++;
*out = ((*in) >> 20) % (1U << 4);
out++;
*out = ((*in) >> 24) % (1U << 4);
out++;
*out = ((*in) >> 28);
++in;
out++;
*out = ((*in) >> 0) % (1U << 4);
out++;
*out = ((*in) >> 4) % (1U << 4);
out++;
*out = ((*in) >> 8) % (1U << 4);
out++;
*out = ((*in) >> 12) % (1U << 4);
out++;
*out = ((*in) >> 16) % (1U << 4);
out++;
*out = ((*in) >> 20) % (1U << 4);
out++;
*out = ((*in) >> 24) % (1U << 4);
out++;
*out = ((*in) >> 28);
++in;
out++;
return in;
}
const uint32_t *__fastunpack5_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 5);
out++;
*out = ((*in) >> 5) % (1U << 5);
out++;
*out = ((*in) >> 10) % (1U << 5);
out++;
*out = ((*in) >> 15) % (1U << 5);
out++;
*out = ((*in) >> 20) % (1U << 5);
out++;
*out = ((*in) >> 25) % (1U << 5);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 3)) << (5 - 3);
out++;
*out = ((*in) >> 3) % (1U << 5);
out++;
*out = ((*in) >> 8) % (1U << 5);
out++;
*out = ((*in) >> 13) % (1U << 5);
out++;
*out = ((*in) >> 18) % (1U << 5);
out++;
*out = ((*in) >> 23) % (1U << 5);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 1)) << (5 - 1);
out++;
*out = ((*in) >> 1) % (1U << 5);
out++;
*out = ((*in) >> 6) % (1U << 5);
out++;
*out = ((*in) >> 11) % (1U << 5);
out++;
*out = ((*in) >> 16) % (1U << 5);
out++;
*out = ((*in) >> 21) % (1U << 5);
out++;
*out = ((*in) >> 26) % (1U << 5);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 4)) << (5 - 4);
out++;
*out = ((*in) >> 4) % (1U << 5);
out++;
*out = ((*in) >> 9) % (1U << 5);
out++;
*out = ((*in) >> 14) % (1U << 5);
out++;
*out = ((*in) >> 19) % (1U << 5);
out++;
return in + 1;
}
const uint32_t *__fastunpack6_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 6);
out++;
*out = ((*in) >> 6) % (1U << 6);
out++;
*out = ((*in) >> 12) % (1U << 6);
out++;
*out = ((*in) >> 18) % (1U << 6);
out++;
*out = ((*in) >> 24) % (1U << 6);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 4)) << (6 - 4);
out++;
*out = ((*in) >> 4) % (1U << 6);
out++;
*out = ((*in) >> 10) % (1U << 6);
out++;
*out = ((*in) >> 16) % (1U << 6);
out++;
*out = ((*in) >> 22) % (1U << 6);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 2)) << (6 - 2);
out++;
*out = ((*in) >> 2) % (1U << 6);
out++;
*out = ((*in) >> 8) % (1U << 6);
out++;
*out = ((*in) >> 14) % (1U << 6);
out++;
*out = ((*in) >> 20) % (1U << 6);
out++;
*out = ((*in) >> 26);
++in;
out++;
*out = ((*in) >> 0) % (1U << 6);
out++;
*out = ((*in) >> 6) % (1U << 6);
out++;
*out = ((*in) >> 12) % (1U << 6);
out++;
*out = ((*in) >> 18) % (1U << 6);
out++;
*out = ((*in) >> 24) % (1U << 6);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 4)) << (6 - 4);
out++;
*out = ((*in) >> 4) % (1U << 6);
out++;
*out = ((*in) >> 10) % (1U << 6);
out++;
return in + 1;
}
const uint32_t *__fastunpack7_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 7);
out++;
*out = ((*in) >> 7) % (1U << 7);
out++;
*out = ((*in) >> 14) % (1U << 7);
out++;
*out = ((*in) >> 21) % (1U << 7);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 3)) << (7 - 3);
out++;
*out = ((*in) >> 3) % (1U << 7);
out++;
*out = ((*in) >> 10) % (1U << 7);
out++;
*out = ((*in) >> 17) % (1U << 7);
out++;
*out = ((*in) >> 24) % (1U << 7);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 6)) << (7 - 6);
out++;
*out = ((*in) >> 6) % (1U << 7);
out++;
*out = ((*in) >> 13) % (1U << 7);
out++;
*out = ((*in) >> 20) % (1U << 7);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 2)) << (7 - 2);
out++;
*out = ((*in) >> 2) % (1U << 7);
out++;
*out = ((*in) >> 9) % (1U << 7);
out++;
*out = ((*in) >> 16) % (1U << 7);
out++;
*out = ((*in) >> 23) % (1U << 7);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 5)) << (7 - 5);
out++;
*out = ((*in) >> 5) % (1U << 7);
out++;
*out = ((*in) >> 12) % (1U << 7);
out++;
*out = ((*in) >> 19) % (1U << 7);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 1)) << (7 - 1);
out++;
*out = ((*in) >> 1) % (1U << 7);
out++;
return in + 1;
}
const uint32_t *__fastunpack8_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
return in;
}
const uint32_t *__fastunpack9_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 9);
out++;
*out = ((*in) >> 9) % (1U << 9);
out++;
*out = ((*in) >> 18) % (1U << 9);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 4)) << (9 - 4);
out++;
*out = ((*in) >> 4) % (1U << 9);
out++;
*out = ((*in) >> 13) % (1U << 9);
out++;
*out = ((*in) >> 22) % (1U << 9);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 8)) << (9 - 8);
out++;
*out = ((*in) >> 8) % (1U << 9);
out++;
*out = ((*in) >> 17) % (1U << 9);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 3)) << (9 - 3);
out++;
*out = ((*in) >> 3) % (1U << 9);
out++;
*out = ((*in) >> 12) % (1U << 9);
out++;
*out = ((*in) >> 21) % (1U << 9);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 7)) << (9 - 7);
out++;
*out = ((*in) >> 7) % (1U << 9);
out++;
*out = ((*in) >> 16) % (1U << 9);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 2)) << (9 - 2);
out++;
*out = ((*in) >> 2) % (1U << 9);
out++;
*out = ((*in) >> 11) % (1U << 9);
out++;
*out = ((*in) >> 20) % (1U << 9);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 6)) << (9 - 6);
out++;
*out = ((*in) >> 6) % (1U << 9);
out++;
*out = ((*in) >> 15) % (1U << 9);
out++;
return in + 1;
}
const uint32_t *__fastunpack10_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 10);
out++;
*out = ((*in) >> 10) % (1U << 10);
out++;
*out = ((*in) >> 20) % (1U << 10);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 8)) << (10 - 8);
out++;
*out = ((*in) >> 8) % (1U << 10);
out++;
*out = ((*in) >> 18) % (1U << 10);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 6)) << (10 - 6);
out++;
*out = ((*in) >> 6) % (1U << 10);
out++;
*out = ((*in) >> 16) % (1U << 10);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 4)) << (10 - 4);
out++;
*out = ((*in) >> 4) % (1U << 10);
out++;
*out = ((*in) >> 14) % (1U << 10);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 2)) << (10 - 2);
out++;
*out = ((*in) >> 2) % (1U << 10);
out++;
*out = ((*in) >> 12) % (1U << 10);
out++;
*out = ((*in) >> 22);
++in;
out++;
*out = ((*in) >> 0) % (1U << 10);
out++;
*out = ((*in) >> 10) % (1U << 10);
out++;
*out = ((*in) >> 20) % (1U << 10);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 8)) << (10 - 8);
out++;
*out = ((*in) >> 8) % (1U << 10);
out++;
*out = ((*in) >> 18) % (1U << 10);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 6)) << (10 - 6);
out++;
*out = ((*in) >> 6) % (1U << 10);
out++;
return in + 1;
}
const uint32_t *__fastunpack11_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 11);
out++;
*out = ((*in) >> 11) % (1U << 11);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 1)) << (11 - 1);
out++;
*out = ((*in) >> 1) % (1U << 11);
out++;
*out = ((*in) >> 12) % (1U << 11);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 2)) << (11 - 2);
out++;
*out = ((*in) >> 2) % (1U << 11);
out++;
*out = ((*in) >> 13) % (1U << 11);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 3)) << (11 - 3);
out++;
*out = ((*in) >> 3) % (1U << 11);
out++;
*out = ((*in) >> 14) % (1U << 11);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 4)) << (11 - 4);
out++;
*out = ((*in) >> 4) % (1U << 11);
out++;
*out = ((*in) >> 15) % (1U << 11);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 5)) << (11 - 5);
out++;
*out = ((*in) >> 5) % (1U << 11);
out++;
*out = ((*in) >> 16) % (1U << 11);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 6)) << (11 - 6);
out++;
*out = ((*in) >> 6) % (1U << 11);
out++;
*out = ((*in) >> 17) % (1U << 11);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 7)) << (11 - 7);
out++;
*out = ((*in) >> 7) % (1U << 11);
out++;
*out = ((*in) >> 18) % (1U << 11);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 8)) << (11 - 8);
out++;
return in + 1;
}
const uint32_t *__fastunpack12_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 12);
out++;
*out = ((*in) >> 12) % (1U << 12);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 4)) << (12 - 4);
out++;
*out = ((*in) >> 4) % (1U << 12);
out++;
*out = ((*in) >> 16) % (1U << 12);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 8)) << (12 - 8);
out++;
*out = ((*in) >> 8) % (1U << 12);
out++;
*out = ((*in) >> 20);
++in;
out++;
*out = ((*in) >> 0) % (1U << 12);
out++;
*out = ((*in) >> 12) % (1U << 12);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 4)) << (12 - 4);
out++;
*out = ((*in) >> 4) % (1U << 12);
out++;
*out = ((*in) >> 16) % (1U << 12);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 8)) << (12 - 8);
out++;
*out = ((*in) >> 8) % (1U << 12);
out++;
*out = ((*in) >> 20);
++in;
out++;
*out = ((*in) >> 0) % (1U << 12);
out++;
*out = ((*in) >> 12) % (1U << 12);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 4)) << (12 - 4);
out++;
*out = ((*in) >> 4) % (1U << 12);
out++;
*out = ((*in) >> 16) % (1U << 12);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 8)) << (12 - 8);
out++;
*out = ((*in) >> 8) % (1U << 12);
out++;
*out = ((*in) >> 20);
++in;
out++;
return in;
}
const uint32_t *__fastunpack13_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 13);
out++;
*out = ((*in) >> 13) % (1U << 13);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 7)) << (13 - 7);
out++;
*out = ((*in) >> 7) % (1U << 13);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 1)) << (13 - 1);
out++;
*out = ((*in) >> 1) % (1U << 13);
out++;
*out = ((*in) >> 14) % (1U << 13);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 8)) << (13 - 8);
out++;
*out = ((*in) >> 8) % (1U << 13);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 2)) << (13 - 2);
out++;
*out = ((*in) >> 2) % (1U << 13);
out++;
*out = ((*in) >> 15) % (1U << 13);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 9)) << (13 - 9);
out++;
*out = ((*in) >> 9) % (1U << 13);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 3)) << (13 - 3);
out++;
*out = ((*in) >> 3) % (1U << 13);
out++;
*out = ((*in) >> 16) % (1U << 13);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 10)) << (13 - 10);
out++;
*out = ((*in) >> 10) % (1U << 13);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 4)) << (13 - 4);
out++;
*out = ((*in) >> 4) % (1U << 13);
out++;
*out = ((*in) >> 17) % (1U << 13);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 11)) << (13 - 11);
out++;
*out = ((*in) >> 11) % (1U << 13);
out++;
return in + 1;
}
const uint32_t *__fastunpack14_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 14);
out++;
*out = ((*in) >> 14) % (1U << 14);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 10)) << (14 - 10);
out++;
*out = ((*in) >> 10) % (1U << 14);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 6)) << (14 - 6);
out++;
*out = ((*in) >> 6) % (1U << 14);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 2)) << (14 - 2);
out++;
*out = ((*in) >> 2) % (1U << 14);
out++;
*out = ((*in) >> 16) % (1U << 14);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 12)) << (14 - 12);
out++;
*out = ((*in) >> 12) % (1U << 14);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 8)) << (14 - 8);
out++;
*out = ((*in) >> 8) % (1U << 14);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 4)) << (14 - 4);
out++;
*out = ((*in) >> 4) % (1U << 14);
out++;
*out = ((*in) >> 18);
++in;
out++;
*out = ((*in) >> 0) % (1U << 14);
out++;
*out = ((*in) >> 14) % (1U << 14);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 10)) << (14 - 10);
out++;
*out = ((*in) >> 10) % (1U << 14);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 6)) << (14 - 6);
out++;
*out = ((*in) >> 6) % (1U << 14);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 2)) << (14 - 2);
out++;
*out = ((*in) >> 2) % (1U << 14);
out++;
return in + 1;
}
const uint32_t *__fastunpack15_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 15);
out++;
*out = ((*in) >> 15) % (1U << 15);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 13)) << (15 - 13);
out++;
*out = ((*in) >> 13) % (1U << 15);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 11)) << (15 - 11);
out++;
*out = ((*in) >> 11) % (1U << 15);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 9)) << (15 - 9);
out++;
*out = ((*in) >> 9) % (1U << 15);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 7)) << (15 - 7);
out++;
*out = ((*in) >> 7) % (1U << 15);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 5)) << (15 - 5);
out++;
*out = ((*in) >> 5) % (1U << 15);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 3)) << (15 - 3);
out++;
*out = ((*in) >> 3) % (1U << 15);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 1)) << (15 - 1);
out++;
*out = ((*in) >> 1) % (1U << 15);
out++;
*out = ((*in) >> 16) % (1U << 15);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 14)) << (15 - 14);
out++;
*out = ((*in) >> 14) % (1U << 15);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 12)) << (15 - 12);
out++;
*out = ((*in) >> 12) % (1U << 15);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 10)) << (15 - 10);
out++;
*out = ((*in) >> 10) % (1U << 15);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 8)) << (15 - 8);
out++;
return in + 1;
}
const uint32_t *__fastunpack16_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
return in;
}
const uint32_t *__fastunpack17_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 2)) << (17 - 2);
out++;
*out = ((*in) >> 2) % (1U << 17);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 4)) << (17 - 4);
out++;
*out = ((*in) >> 4) % (1U << 17);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 6)) << (17 - 6);
out++;
*out = ((*in) >> 6) % (1U << 17);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 8)) << (17 - 8);
out++;
*out = ((*in) >> 8) % (1U << 17);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 10)) << (17 - 10);
out++;
*out = ((*in) >> 10) % (1U << 17);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 12)) << (17 - 12);
out++;
*out = ((*in) >> 12) % (1U << 17);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 14)) << (17 - 14);
out++;
*out = ((*in) >> 14) % (1U << 17);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 16)) << (17 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 1)) << (17 - 1);
out++;
*out = ((*in) >> 1) % (1U << 17);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 3)) << (17 - 3);
out++;
*out = ((*in) >> 3) % (1U << 17);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 5)) << (17 - 5);
out++;
*out = ((*in) >> 5) % (1U << 17);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 7)) << (17 - 7);
out++;
*out = ((*in) >> 7) % (1U << 17);
out++;
return in + 1;
}
const uint32_t *__fastunpack18_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 4)) << (18 - 4);
out++;
*out = ((*in) >> 4) % (1U << 18);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 8)) << (18 - 8);
out++;
*out = ((*in) >> 8) % (1U << 18);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 12)) << (18 - 12);
out++;
*out = ((*in) >> 12) % (1U << 18);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 16)) << (18 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 2)) << (18 - 2);
out++;
*out = ((*in) >> 2) % (1U << 18);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 6)) << (18 - 6);
out++;
*out = ((*in) >> 6) % (1U << 18);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 10)) << (18 - 10);
out++;
*out = ((*in) >> 10) % (1U << 18);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 14)) << (18 - 14);
out++;
*out = ((*in) >> 14);
++in;
out++;
*out = ((*in) >> 0) % (1U << 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 4)) << (18 - 4);
out++;
*out = ((*in) >> 4) % (1U << 18);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 8)) << (18 - 8);
out++;
*out = ((*in) >> 8) % (1U << 18);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 12)) << (18 - 12);
out++;
*out = ((*in) >> 12) % (1U << 18);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 16)) << (18 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack19_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 6)) << (19 - 6);
out++;
*out = ((*in) >> 6) % (1U << 19);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 12)) << (19 - 12);
out++;
*out = ((*in) >> 12) % (1U << 19);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 18)) << (19 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 5)) << (19 - 5);
out++;
*out = ((*in) >> 5) % (1U << 19);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 11)) << (19 - 11);
out++;
*out = ((*in) >> 11) % (1U << 19);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 17)) << (19 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 4)) << (19 - 4);
out++;
*out = ((*in) >> 4) % (1U << 19);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 10)) << (19 - 10);
out++;
*out = ((*in) >> 10) % (1U << 19);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 16)) << (19 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 3)) << (19 - 3);
out++;
*out = ((*in) >> 3) % (1U << 19);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 9)) << (19 - 9);
out++;
*out = ((*in) >> 9) % (1U << 19);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 15)) << (19 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 2)) << (19 - 2);
out++;
*out = ((*in) >> 2) % (1U << 19);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 8)) << (19 - 8);
out++;
return in + 1;
}
const uint32_t *__fastunpack20_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 8)) << (20 - 8);
out++;
*out = ((*in) >> 8) % (1U << 20);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 16)) << (20 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 4)) << (20 - 4);
out++;
*out = ((*in) >> 4) % (1U << 20);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 12)) << (20 - 12);
out++;
*out = ((*in) >> 12);
++in;
out++;
*out = ((*in) >> 0) % (1U << 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 8)) << (20 - 8);
out++;
*out = ((*in) >> 8) % (1U << 20);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 16)) << (20 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 4)) << (20 - 4);
out++;
*out = ((*in) >> 4) % (1U << 20);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 12)) << (20 - 12);
out++;
*out = ((*in) >> 12);
++in;
out++;
*out = ((*in) >> 0) % (1U << 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 8)) << (20 - 8);
out++;
*out = ((*in) >> 8) % (1U << 20);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 16)) << (20 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 4)) << (20 - 4);
out++;
*out = ((*in) >> 4) % (1U << 20);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 12)) << (20 - 12);
out++;
*out = ((*in) >> 12);
++in;
out++;
return in;
}
const uint32_t *__fastunpack21_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 10)) << (21 - 10);
out++;
*out = ((*in) >> 10) % (1U << 21);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 20)) << (21 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 9)) << (21 - 9);
out++;
*out = ((*in) >> 9) % (1U << 21);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 19)) << (21 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 8)) << (21 - 8);
out++;
*out = ((*in) >> 8) % (1U << 21);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 18)) << (21 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 7)) << (21 - 7);
out++;
*out = ((*in) >> 7) % (1U << 21);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 17)) << (21 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 6)) << (21 - 6);
out++;
*out = ((*in) >> 6) % (1U << 21);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 16)) << (21 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 5)) << (21 - 5);
out++;
*out = ((*in) >> 5) % (1U << 21);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 15)) << (21 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 4)) << (21 - 4);
out++;
*out = ((*in) >> 4) % (1U << 21);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 14)) << (21 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 3)) << (21 - 3);
out++;
*out = ((*in) >> 3) % (1U << 21);
out++;
return in + 1;
}
const uint32_t *__fastunpack22_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 12)) << (22 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 2)) << (22 - 2);
out++;
*out = ((*in) >> 2) % (1U << 22);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 14)) << (22 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 4)) << (22 - 4);
out++;
*out = ((*in) >> 4) % (1U << 22);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 16)) << (22 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 6)) << (22 - 6);
out++;
*out = ((*in) >> 6) % (1U << 22);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 18)) << (22 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 8)) << (22 - 8);
out++;
*out = ((*in) >> 8) % (1U << 22);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 20)) << (22 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 10)) << (22 - 10);
out++;
*out = ((*in) >> 10);
++in;
out++;
*out = ((*in) >> 0) % (1U << 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 12)) << (22 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 2)) << (22 - 2);
out++;
*out = ((*in) >> 2) % (1U << 22);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 14)) << (22 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 4)) << (22 - 4);
out++;
*out = ((*in) >> 4) % (1U << 22);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 16)) << (22 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack23_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 14)) << (23 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 5)) << (23 - 5);
out++;
*out = ((*in) >> 5) % (1U << 23);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 19)) << (23 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 10)) << (23 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 1)) << (23 - 1);
out++;
*out = ((*in) >> 1) % (1U << 23);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 15)) << (23 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 6)) << (23 - 6);
out++;
*out = ((*in) >> 6) % (1U << 23);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 20)) << (23 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 11)) << (23 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 2)) << (23 - 2);
out++;
*out = ((*in) >> 2) % (1U << 23);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 16)) << (23 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 7)) << (23 - 7);
out++;
*out = ((*in) >> 7) % (1U << 23);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 21)) << (23 - 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 12)) << (23 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 3)) << (23 - 3);
out++;
*out = ((*in) >> 3) % (1U << 23);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 17)) << (23 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 8)) << (23 - 8);
out++;
return in + 1;
}
const uint32_t *__fastunpack24_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
return in;
}
const uint32_t *__fastunpack25_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 25);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 18)) << (25 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 11)) << (25 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 4)) << (25 - 4);
out++;
*out = ((*in) >> 4) % (1U << 25);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 22)) << (25 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 15)) << (25 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 8)) << (25 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 1)) << (25 - 1);
out++;
*out = ((*in) >> 1) % (1U << 25);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 19)) << (25 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 12)) << (25 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 5)) << (25 - 5);
out++;
*out = ((*in) >> 5) % (1U << 25);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 23)) << (25 - 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 16)) << (25 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 9)) << (25 - 9);
out++;
*out = ((*in) >> 9);
++in;
*out |= ((*in) % (1U << 2)) << (25 - 2);
out++;
*out = ((*in) >> 2) % (1U << 25);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 20)) << (25 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 13)) << (25 - 13);
out++;
*out = ((*in) >> 13);
++in;
*out |= ((*in) % (1U << 6)) << (25 - 6);
out++;
*out = ((*in) >> 6) % (1U << 25);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 24)) << (25 - 24);
out++;
return in + 1;
}
const uint32_t *__fastunpack26_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 20)) << (26 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 14)) << (26 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 8)) << (26 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 2)) << (26 - 2);
out++;
*out = ((*in) >> 2) % (1U << 26);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 22)) << (26 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 16)) << (26 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 10)) << (26 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 4)) << (26 - 4);
out++;
*out = ((*in) >> 4) % (1U << 26);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 24)) << (26 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 18)) << (26 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 12)) << (26 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 6)) << (26 - 6);
out++;
*out = ((*in) >> 6);
++in;
out++;
*out = ((*in) >> 0) % (1U << 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 20)) << (26 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 14)) << (26 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 8)) << (26 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 2)) << (26 - 2);
out++;
*out = ((*in) >> 2) % (1U << 26);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 22)) << (26 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 16)) << (26 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack27_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 27);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 22)) << (27 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 17)) << (27 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 12)) << (27 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 7)) << (27 - 7);
out++;
*out = ((*in) >> 7);
++in;
*out |= ((*in) % (1U << 2)) << (27 - 2);
out++;
*out = ((*in) >> 2) % (1U << 27);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 24)) << (27 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 19)) << (27 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 14)) << (27 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 9)) << (27 - 9);
out++;
*out = ((*in) >> 9);
++in;
*out |= ((*in) % (1U << 4)) << (27 - 4);
out++;
*out = ((*in) >> 4) % (1U << 27);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 26)) << (27 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 21)) << (27 - 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 16)) << (27 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 11)) << (27 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 6)) << (27 - 6);
out++;
*out = ((*in) >> 6);
++in;
*out |= ((*in) % (1U << 1)) << (27 - 1);
out++;
*out = ((*in) >> 1) % (1U << 27);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 23)) << (27 - 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 18)) << (27 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 13)) << (27 - 13);
out++;
*out = ((*in) >> 13);
++in;
*out |= ((*in) % (1U << 8)) << (27 - 8);
out++;
return in + 1;
}
const uint32_t *__fastunpack28_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 24)) << (28 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 20)) << (28 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 16)) << (28 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 12)) << (28 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 8)) << (28 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 4)) << (28 - 4);
out++;
*out = ((*in) >> 4);
++in;
out++;
*out = ((*in) >> 0) % (1U << 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 24)) << (28 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 20)) << (28 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 16)) << (28 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 12)) << (28 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 8)) << (28 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 4)) << (28 - 4);
out++;
*out = ((*in) >> 4);
++in;
out++;
*out = ((*in) >> 0) % (1U << 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 24)) << (28 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 20)) << (28 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 16)) << (28 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 12)) << (28 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 8)) << (28 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 4)) << (28 - 4);
out++;
*out = ((*in) >> 4);
++in;
out++;
return in;
}
const uint32_t *__fastunpack29_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 29);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 26)) << (29 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 23)) << (29 - 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 20)) << (29 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 17)) << (29 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 14)) << (29 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 11)) << (29 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 8)) << (29 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 5)) << (29 - 5);
out++;
*out = ((*in) >> 5);
++in;
*out |= ((*in) % (1U << 2)) << (29 - 2);
out++;
*out = ((*in) >> 2) % (1U << 29);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 28)) << (29 - 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 25)) << (29 - 25);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 22)) << (29 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 19)) << (29 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 16)) << (29 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 13)) << (29 - 13);
out++;
*out = ((*in) >> 13);
++in;
*out |= ((*in) % (1U << 10)) << (29 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 7)) << (29 - 7);
out++;
*out = ((*in) >> 7);
++in;
*out |= ((*in) % (1U << 4)) << (29 - 4);
out++;
*out = ((*in) >> 4);
++in;
*out |= ((*in) % (1U << 1)) << (29 - 1);
out++;
*out = ((*in) >> 1) % (1U << 29);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 27)) << (29 - 27);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 24)) << (29 - 24);
out++;
return in + 1;
}
const uint32_t *__fastunpack30_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 30);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 28)) << (30 - 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 26)) << (30 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 24)) << (30 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 22)) << (30 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 20)) << (30 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 18)) << (30 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 16)) << (30 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 14)) << (30 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 12)) << (30 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 10)) << (30 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 8)) << (30 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 6)) << (30 - 6);
out++;
*out = ((*in) >> 6);
++in;
*out |= ((*in) % (1U << 4)) << (30 - 4);
out++;
*out = ((*in) >> 4);
++in;
*out |= ((*in) % (1U << 2)) << (30 - 2);
out++;
*out = ((*in) >> 2);
++in;
out++;
*out = ((*in) >> 0) % (1U << 30);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 28)) << (30 - 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 26)) << (30 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 24)) << (30 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 22)) << (30 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 20)) << (30 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 18)) << (30 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 16)) << (30 - 16);
out++;
return in + 1;
}
const uint32_t *__fastunpack31_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 31);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 30)) << (31 - 30);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 29)) << (31 - 29);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 28)) << (31 - 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 27)) << (31 - 27);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 26)) << (31 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 25)) << (31 - 25);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 24)) << (31 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 23)) << (31 - 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 22)) << (31 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 21)) << (31 - 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 20)) << (31 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 19)) << (31 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 18)) << (31 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 17)) << (31 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 16)) << (31 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 15)) << (31 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 14)) << (31 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 13)) << (31 - 13);
out++;
*out = ((*in) >> 13);
++in;
*out |= ((*in) % (1U << 12)) << (31 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 11)) << (31 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 10)) << (31 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 9)) << (31 - 9);
out++;
*out = ((*in) >> 9);
++in;
*out |= ((*in) % (1U << 8)) << (31 - 8);
out++;
return in + 1;
}
const uint32_t *__fastunpack32_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
return in;
}
const uint32_t *fastunpack_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out, const uint32_t bit) {
switch (bit) {
case 0:
return nullunpacker24(in, out);
case 1:
return __fastunpack1_24(in, out);
case 2:
return __fastunpack2_24(in, out);
case 3:
return __fastunpack3_24(in, out);
case 4:
return __fastunpack4_24(in, out);
case 5:
return __fastunpack5_24(in, out);
case 6:
return __fastunpack6_24(in, out);
case 7:
return __fastunpack7_24(in, out);
case 8:
return __fastunpack8_24(in, out);
case 9:
return __fastunpack9_24(in, out);
case 10:
return __fastunpack10_24(in, out);
case 11:
return __fastunpack11_24(in, out);
case 12:
return __fastunpack12_24(in, out);
case 13:
return __fastunpack13_24(in, out);
case 14:
return __fastunpack14_24(in, out);
case 15:
return __fastunpack15_24(in, out);
case 16:
return __fastunpack16_24(in, out);
case 17:
return __fastunpack17_24(in, out);
case 18:
return __fastunpack18_24(in, out);
case 19:
return __fastunpack19_24(in, out);
case 20:
return __fastunpack20_24(in, out);
case 21:
return __fastunpack21_24(in, out);
case 22:
return __fastunpack22_24(in, out);
case 23:
return __fastunpack23_24(in, out);
case 24:
return __fastunpack24_24(in, out);
case 25:
return __fastunpack25_24(in, out);
case 26:
return __fastunpack26_24(in, out);
case 27:
return __fastunpack27_24(in, out);
case 28:
return __fastunpack28_24(in, out);
case 29:
return __fastunpack29_24(in, out);
case 30:
return __fastunpack30_24(in, out);
case 31:
return __fastunpack31_24(in, out);
case 32:
return __fastunpack32_24(in, out);
default:
break;
}
throw std::logic_error("number of bits is unsupported");
}
uint32_t *fastpackwithoutmask_24(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out,
const uint32_t bit) {
switch (bit) {
case 0:
return nullpacker(in, out);
case 1:
return __fastpackwithoutmask1_24(in, out);
case 2:
return __fastpackwithoutmask2_24(in, out);
case 3:
return __fastpackwithoutmask3_24(in, out);
case 4:
return __fastpackwithoutmask4_24(in, out);
case 5:
return __fastpackwithoutmask5_24(in, out);
case 6:
return __fastpackwithoutmask6_24(in, out);
case 7:
return __fastpackwithoutmask7_24(in, out);
case 8:
return __fastpackwithoutmask8_24(in, out);
case 9:
return __fastpackwithoutmask9_24(in, out);
case 10:
return __fastpackwithoutmask10_24(in, out);
case 11:
return __fastpackwithoutmask11_24(in, out);
case 12:
return __fastpackwithoutmask12_24(in, out);
case 13:
return __fastpackwithoutmask13_24(in, out);
case 14:
return __fastpackwithoutmask14_24(in, out);
case 15:
return __fastpackwithoutmask15_24(in, out);
case 16:
return __fastpackwithoutmask16_24(in, out);
case 17:
return __fastpackwithoutmask17_24(in, out);
case 18:
return __fastpackwithoutmask18_24(in, out);
case 19:
return __fastpackwithoutmask19_24(in, out);
case 20:
return __fastpackwithoutmask20_24(in, out);
case 21:
return __fastpackwithoutmask21_24(in, out);
case 22:
return __fastpackwithoutmask22_24(in, out);
case 23:
return __fastpackwithoutmask23_24(in, out);
case 24:
return __fastpackwithoutmask24_24(in, out);
case 25:
return __fastpackwithoutmask25_24(in, out);
case 26:
return __fastpackwithoutmask26_24(in, out);
case 27:
return __fastpackwithoutmask27_24(in, out);
case 28:
return __fastpackwithoutmask28_24(in, out);
case 29:
return __fastpackwithoutmask29_24(in, out);
case 30:
return __fastpackwithoutmask30_24(in, out);
case 31:
return __fastpackwithoutmask31_24(in, out);
case 32:
return __fastpackwithoutmask32_24(in, out);
default:
break;
}
throw std::logic_error("number of bits is unsupported");
}
const uint32_t *nullunpacker32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
memset(out, 0, 32 * 4);
return in;
}
uint32_t *__fastpackwithoutmask1_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 19;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 23;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 25;
++in;
*out |= ((*in)) << 26;
++in;
*out |= ((*in)) << 27;
++in;
*out |= ((*in)) << 28;
++in;
*out |= ((*in)) << 29;
++in;
*out |= ((*in)) << 30;
++in;
*out |= ((*in)) << 31;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask2_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 26;
++in;
*out |= ((*in)) << 28;
++in;
*out |= ((*in)) << 30;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 26;
++in;
*out |= ((*in)) << 28;
++in;
*out |= ((*in)) << 30;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask3_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 27;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (3 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 19;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 25;
++in;
*out |= ((*in)) << 28;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (3 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 23;
++in;
*out |= ((*in)) << 26;
++in;
*out |= ((*in)) << 29;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask4_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 28;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 28;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 28;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 28;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask5_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 25;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (5 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 23;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (5 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 26;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (5 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 19;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (5 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 27;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask6_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (6 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (6 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 26;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (6 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (6 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 26;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask7_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (7 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 24;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (7 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (7 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 23;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (7 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 19;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (7 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (7 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 25;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask8_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 24;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask9_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (9 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 22;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (9 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (9 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 21;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (9 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (9 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (9 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (9 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 19;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (9 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 23;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask10_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (10 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (10 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (10 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (10 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 22;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (10 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (10 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (10 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (10 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 22;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask11_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (11 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (11 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (11 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (11 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (11 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (11 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (11 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (11 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 19;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (11 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 20;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (11 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 21;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask12_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (12 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (12 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 20;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (12 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (12 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 20;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (12 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (12 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 20;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (12 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (12 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 20;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask13_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (13 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (13 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (13 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (13 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (13 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (13 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (13 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (13 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 17;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (13 - 11);
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (13 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 18;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (13 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (13 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 19;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask14_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (14 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (14 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (14 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (14 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (14 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (14 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 18;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (14 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (14 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (14 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (14 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (14 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (14 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 18;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask15_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 15;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (15 - 13);
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (15 - 11);
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (15 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (15 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (15 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (15 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (15 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 16;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (15 - 14);
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (15 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (15 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (15 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (15 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (15 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (15 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 17;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask16_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 16;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask17_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (17 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (17 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (17 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (17 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (17 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (17 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (17 - 14);
++in;
*out |= ((*in)) << 14;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (17 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (17 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (17 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (17 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (17 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (17 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (17 - 11);
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (17 - 13);
++in;
*out |= ((*in)) << 13;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (17 - 15);
++in;
*out |= ((*in)) << 15;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask18_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (18 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (18 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (18 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (18 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (18 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (18 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (18 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (18 - 14);
++in;
*out |= ((*in)) << 14;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (18 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (18 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (18 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (18 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (18 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (18 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (18 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (18 - 14);
++in;
*out |= ((*in)) << 14;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask19_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (19 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (19 - 12);
++in;
*out |= ((*in)) << 12;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (19 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (19 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (19 - 11);
++in;
*out |= ((*in)) << 11;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (19 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (19 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (19 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (19 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (19 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (19 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (19 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (19 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (19 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (19 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (19 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (19 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (19 - 13);
++in;
*out |= ((*in)) << 13;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask20_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (20 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (20 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (20 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (20 - 12);
++in;
*out |= ((*in)) << 12;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (20 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (20 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (20 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (20 - 12);
++in;
*out |= ((*in)) << 12;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (20 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (20 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (20 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (20 - 12);
++in;
*out |= ((*in)) << 12;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (20 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (20 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (20 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (20 - 12);
++in;
*out |= ((*in)) << 12;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask21_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (21 - 10);
++in;
*out |= ((*in)) << 10;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (21 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (21 - 9);
++in;
*out |= ((*in)) << 9;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (21 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (21 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (21 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (21 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (21 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (21 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (21 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (21 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (21 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (21 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (21 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (21 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (21 - 13);
++in;
*out |= ((*in)) << 13;
++out;
*out = ((*in)) >> (21 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (21 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (21 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (21 - 11);
++in;
*out |= ((*in)) << 11;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask22_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (22 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (22 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (22 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (22 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (22 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (22 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (22 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (22 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (22 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (22 - 10);
++in;
*out |= ((*in)) << 10;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (22 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (22 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (22 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (22 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (22 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (22 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (22 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (22 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (22 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (22 - 10);
++in;
*out |= ((*in)) << 10;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask23_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (23 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (23 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (23 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (23 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (23 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (23 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (23 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (23 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (23 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (23 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (23 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (23 - 7);
++in;
*out |= ((*in)) << 7;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (23 - 21);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (23 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (23 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (23 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (23 - 8);
++in;
*out |= ((*in)) << 8;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (23 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (23 - 13);
++in;
*out |= ((*in)) << 13;
++out;
*out = ((*in)) >> (23 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (23 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (23 - 9);
++in;
*out |= ((*in)) << 9;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask24_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (24 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (24 - 8);
++in;
*out |= ((*in)) << 8;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask25_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (25 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (25 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (25 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (25 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (25 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (25 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (25 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (25 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (25 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (25 - 5);
++in;
*out |= ((*in)) << 5;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (25 - 23);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (25 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (25 - 9);
++in;
*out |= ((*in)) << 9;
++out;
*out = ((*in)) >> (25 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (25 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (25 - 13);
++in;
*out |= ((*in)) << 13;
++out;
*out = ((*in)) >> (25 - 6);
++in;
*out |= ((*in)) << 6;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (25 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (25 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (25 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (25 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (25 - 21);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (25 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (25 - 7);
++in;
*out |= ((*in)) << 7;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask26_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (26 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (26 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (26 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (26 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (26 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (26 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (26 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (26 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (26 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (26 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (26 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (26 - 6);
++in;
*out |= ((*in)) << 6;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (26 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (26 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (26 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (26 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (26 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (26 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (26 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (26 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (26 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (26 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (26 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (26 - 6);
++in;
*out |= ((*in)) << 6;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask27_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (27 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (27 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (27 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (27 - 7);
++in;
*out |= ((*in)) << 7;
++out;
*out = ((*in)) >> (27 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (27 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (27 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (27 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (27 - 9);
++in;
*out |= ((*in)) << 9;
++out;
*out = ((*in)) >> (27 - 4);
++in;
*out |= ((*in)) << 4;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (27 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (27 - 21);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (27 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (27 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (27 - 6);
++in;
*out |= ((*in)) << 6;
++out;
*out = ((*in)) >> (27 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (27 - 23);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (27 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (27 - 13);
++in;
*out |= ((*in)) << 13;
++out;
*out = ((*in)) >> (27 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (27 - 3);
++in;
*out |= ((*in)) << 3;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (27 - 25);
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (27 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (27 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (27 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (27 - 5);
++in;
*out |= ((*in)) << 5;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask28_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (28 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (28 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (28 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (28 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (28 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (28 - 4);
++in;
*out |= ((*in)) << 4;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (28 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (28 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (28 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (28 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (28 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (28 - 4);
++in;
*out |= ((*in)) << 4;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (28 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (28 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (28 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (28 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (28 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (28 - 4);
++in;
*out |= ((*in)) << 4;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (28 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (28 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (28 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (28 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (28 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (28 - 4);
++in;
*out |= ((*in)) << 4;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask29_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (29 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (29 - 23);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (29 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (29 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (29 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (29 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (29 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (29 - 5);
++in;
*out |= ((*in)) << 5;
++out;
*out = ((*in)) >> (29 - 2);
++in;
*out |= ((*in)) << 2;
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (29 - 28);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (29 - 25);
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (29 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (29 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (29 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (29 - 13);
++in;
*out |= ((*in)) << 13;
++out;
*out = ((*in)) >> (29 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (29 - 7);
++in;
*out |= ((*in)) << 7;
++out;
*out = ((*in)) >> (29 - 4);
++in;
*out |= ((*in)) << 4;
++out;
*out = ((*in)) >> (29 - 1);
++in;
*out |= ((*in)) << 1;
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (29 - 27);
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (29 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (29 - 21);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (29 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (29 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (29 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (29 - 9);
++in;
*out |= ((*in)) << 9;
++out;
*out = ((*in)) >> (29 - 6);
++in;
*out |= ((*in)) << 6;
++out;
*out = ((*in)) >> (29 - 3);
++in;
*out |= ((*in)) << 3;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask30_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (30 - 28);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (30 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (30 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (30 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (30 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (30 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (30 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (30 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (30 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (30 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (30 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (30 - 6);
++in;
*out |= ((*in)) << 6;
++out;
*out = ((*in)) >> (30 - 4);
++in;
*out |= ((*in)) << 4;
++out;
*out = ((*in)) >> (30 - 2);
++in;
*out |= ((*in)) << 2;
++out;
++in;
*out = (*in);
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (30 - 28);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (30 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (30 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (30 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (30 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (30 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (30 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (30 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (30 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (30 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (30 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (30 - 6);
++in;
*out |= ((*in)) << 6;
++out;
*out = ((*in)) >> (30 - 4);
++in;
*out |= ((*in)) << 4;
++out;
*out = ((*in)) >> (30 - 2);
++in;
*out |= ((*in)) << 2;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask31_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++in;
*out |= ((*in)) << 31;
++out;
*out = ((*in)) >> (31 - 30);
++in;
*out |= ((*in)) << 30;
++out;
*out = ((*in)) >> (31 - 29);
++in;
*out |= ((*in)) << 29;
++out;
*out = ((*in)) >> (31 - 28);
++in;
*out |= ((*in)) << 28;
++out;
*out = ((*in)) >> (31 - 27);
++in;
*out |= ((*in)) << 27;
++out;
*out = ((*in)) >> (31 - 26);
++in;
*out |= ((*in)) << 26;
++out;
*out = ((*in)) >> (31 - 25);
++in;
*out |= ((*in)) << 25;
++out;
*out = ((*in)) >> (31 - 24);
++in;
*out |= ((*in)) << 24;
++out;
*out = ((*in)) >> (31 - 23);
++in;
*out |= ((*in)) << 23;
++out;
*out = ((*in)) >> (31 - 22);
++in;
*out |= ((*in)) << 22;
++out;
*out = ((*in)) >> (31 - 21);
++in;
*out |= ((*in)) << 21;
++out;
*out = ((*in)) >> (31 - 20);
++in;
*out |= ((*in)) << 20;
++out;
*out = ((*in)) >> (31 - 19);
++in;
*out |= ((*in)) << 19;
++out;
*out = ((*in)) >> (31 - 18);
++in;
*out |= ((*in)) << 18;
++out;
*out = ((*in)) >> (31 - 17);
++in;
*out |= ((*in)) << 17;
++out;
*out = ((*in)) >> (31 - 16);
++in;
*out |= ((*in)) << 16;
++out;
*out = ((*in)) >> (31 - 15);
++in;
*out |= ((*in)) << 15;
++out;
*out = ((*in)) >> (31 - 14);
++in;
*out |= ((*in)) << 14;
++out;
*out = ((*in)) >> (31 - 13);
++in;
*out |= ((*in)) << 13;
++out;
*out = ((*in)) >> (31 - 12);
++in;
*out |= ((*in)) << 12;
++out;
*out = ((*in)) >> (31 - 11);
++in;
*out |= ((*in)) << 11;
++out;
*out = ((*in)) >> (31 - 10);
++in;
*out |= ((*in)) << 10;
++out;
*out = ((*in)) >> (31 - 9);
++in;
*out |= ((*in)) << 9;
++out;
*out = ((*in)) >> (31 - 8);
++in;
*out |= ((*in)) << 8;
++out;
*out = ((*in)) >> (31 - 7);
++in;
*out |= ((*in)) << 7;
++out;
*out = ((*in)) >> (31 - 6);
++in;
*out |= ((*in)) << 6;
++out;
*out = ((*in)) >> (31 - 5);
++in;
*out |= ((*in)) << 5;
++out;
*out = ((*in)) >> (31 - 4);
++in;
*out |= ((*in)) << 4;
++out;
*out = ((*in)) >> (31 - 3);
++in;
*out |= ((*in)) << 3;
++out;
*out = ((*in)) >> (31 - 2);
++in;
*out |= ((*in)) << 2;
++out;
*out = ((*in)) >> (31 - 1);
++in;
*out |= ((*in)) << 1;
++out;
++in;
return out;
}
uint32_t *__fastpackwithoutmask32_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
*out = (*in);
++out;
++in;
return out;
}
const uint32_t *__fastunpack1_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) & 1;
out++;
*out = ((*in) >> 1) & 1;
out++;
*out = ((*in) >> 2) & 1;
out++;
*out = ((*in) >> 3) & 1;
out++;
*out = ((*in) >> 4) & 1;
out++;
*out = ((*in) >> 5) & 1;
out++;
*out = ((*in) >> 6) & 1;
out++;
*out = ((*in) >> 7) & 1;
out++;
*out = ((*in) >> 8) & 1;
out++;
*out = ((*in) >> 9) & 1;
out++;
*out = ((*in) >> 10) & 1;
out++;
*out = ((*in) >> 11) & 1;
out++;
*out = ((*in) >> 12) & 1;
out++;
*out = ((*in) >> 13) & 1;
out++;
*out = ((*in) >> 14) & 1;
out++;
*out = ((*in) >> 15) & 1;
out++;
*out = ((*in) >> 16) & 1;
out++;
*out = ((*in) >> 17) & 1;
out++;
*out = ((*in) >> 18) & 1;
out++;
*out = ((*in) >> 19) & 1;
out++;
*out = ((*in) >> 20) & 1;
out++;
*out = ((*in) >> 21) & 1;
out++;
*out = ((*in) >> 22) & 1;
out++;
*out = ((*in) >> 23) & 1;
out++;
*out = ((*in) >> 24) & 1;
out++;
*out = ((*in) >> 25) & 1;
out++;
*out = ((*in) >> 26) & 1;
out++;
*out = ((*in) >> 27) & 1;
out++;
*out = ((*in) >> 28) & 1;
out++;
*out = ((*in) >> 29) & 1;
out++;
*out = ((*in) >> 30) & 1;
out++;
*out = ((*in) >> 31);
++in;
out++;
return in;
}
const uint32_t *__fastunpack2_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 2);
out++;
*out = ((*in) >> 2) % (1U << 2);
out++;
*out = ((*in) >> 4) % (1U << 2);
out++;
*out = ((*in) >> 6) % (1U << 2);
out++;
*out = ((*in) >> 8) % (1U << 2);
out++;
*out = ((*in) >> 10) % (1U << 2);
out++;
*out = ((*in) >> 12) % (1U << 2);
out++;
*out = ((*in) >> 14) % (1U << 2);
out++;
*out = ((*in) >> 16) % (1U << 2);
out++;
*out = ((*in) >> 18) % (1U << 2);
out++;
*out = ((*in) >> 20) % (1U << 2);
out++;
*out = ((*in) >> 22) % (1U << 2);
out++;
*out = ((*in) >> 24) % (1U << 2);
out++;
*out = ((*in) >> 26) % (1U << 2);
out++;
*out = ((*in) >> 28) % (1U << 2);
out++;
*out = ((*in) >> 30);
++in;
out++;
*out = ((*in) >> 0) % (1U << 2);
out++;
*out = ((*in) >> 2) % (1U << 2);
out++;
*out = ((*in) >> 4) % (1U << 2);
out++;
*out = ((*in) >> 6) % (1U << 2);
out++;
*out = ((*in) >> 8) % (1U << 2);
out++;
*out = ((*in) >> 10) % (1U << 2);
out++;
*out = ((*in) >> 12) % (1U << 2);
out++;
*out = ((*in) >> 14) % (1U << 2);
out++;
*out = ((*in) >> 16) % (1U << 2);
out++;
*out = ((*in) >> 18) % (1U << 2);
out++;
*out = ((*in) >> 20) % (1U << 2);
out++;
*out = ((*in) >> 22) % (1U << 2);
out++;
*out = ((*in) >> 24) % (1U << 2);
out++;
*out = ((*in) >> 26) % (1U << 2);
out++;
*out = ((*in) >> 28) % (1U << 2);
out++;
*out = ((*in) >> 30);
++in;
out++;
return in;
}
const uint32_t *__fastunpack3_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 3);
out++;
*out = ((*in) >> 3) % (1U << 3);
out++;
*out = ((*in) >> 6) % (1U << 3);
out++;
*out = ((*in) >> 9) % (1U << 3);
out++;
*out = ((*in) >> 12) % (1U << 3);
out++;
*out = ((*in) >> 15) % (1U << 3);
out++;
*out = ((*in) >> 18) % (1U << 3);
out++;
*out = ((*in) >> 21) % (1U << 3);
out++;
*out = ((*in) >> 24) % (1U << 3);
out++;
*out = ((*in) >> 27) % (1U << 3);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 1)) << (3 - 1);
out++;
*out = ((*in) >> 1) % (1U << 3);
out++;
*out = ((*in) >> 4) % (1U << 3);
out++;
*out = ((*in) >> 7) % (1U << 3);
out++;
*out = ((*in) >> 10) % (1U << 3);
out++;
*out = ((*in) >> 13) % (1U << 3);
out++;
*out = ((*in) >> 16) % (1U << 3);
out++;
*out = ((*in) >> 19) % (1U << 3);
out++;
*out = ((*in) >> 22) % (1U << 3);
out++;
*out = ((*in) >> 25) % (1U << 3);
out++;
*out = ((*in) >> 28) % (1U << 3);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 2)) << (3 - 2);
out++;
*out = ((*in) >> 2) % (1U << 3);
out++;
*out = ((*in) >> 5) % (1U << 3);
out++;
*out = ((*in) >> 8) % (1U << 3);
out++;
*out = ((*in) >> 11) % (1U << 3);
out++;
*out = ((*in) >> 14) % (1U << 3);
out++;
*out = ((*in) >> 17) % (1U << 3);
out++;
*out = ((*in) >> 20) % (1U << 3);
out++;
*out = ((*in) >> 23) % (1U << 3);
out++;
*out = ((*in) >> 26) % (1U << 3);
out++;
*out = ((*in) >> 29);
++in;
out++;
return in;
}
const uint32_t *__fastunpack4_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 4);
out++;
*out = ((*in) >> 4) % (1U << 4);
out++;
*out = ((*in) >> 8) % (1U << 4);
out++;
*out = ((*in) >> 12) % (1U << 4);
out++;
*out = ((*in) >> 16) % (1U << 4);
out++;
*out = ((*in) >> 20) % (1U << 4);
out++;
*out = ((*in) >> 24) % (1U << 4);
out++;
*out = ((*in) >> 28);
++in;
out++;
*out = ((*in) >> 0) % (1U << 4);
out++;
*out = ((*in) >> 4) % (1U << 4);
out++;
*out = ((*in) >> 8) % (1U << 4);
out++;
*out = ((*in) >> 12) % (1U << 4);
out++;
*out = ((*in) >> 16) % (1U << 4);
out++;
*out = ((*in) >> 20) % (1U << 4);
out++;
*out = ((*in) >> 24) % (1U << 4);
out++;
*out = ((*in) >> 28);
++in;
out++;
*out = ((*in) >> 0) % (1U << 4);
out++;
*out = ((*in) >> 4) % (1U << 4);
out++;
*out = ((*in) >> 8) % (1U << 4);
out++;
*out = ((*in) >> 12) % (1U << 4);
out++;
*out = ((*in) >> 16) % (1U << 4);
out++;
*out = ((*in) >> 20) % (1U << 4);
out++;
*out = ((*in) >> 24) % (1U << 4);
out++;
*out = ((*in) >> 28);
++in;
out++;
*out = ((*in) >> 0) % (1U << 4);
out++;
*out = ((*in) >> 4) % (1U << 4);
out++;
*out = ((*in) >> 8) % (1U << 4);
out++;
*out = ((*in) >> 12) % (1U << 4);
out++;
*out = ((*in) >> 16) % (1U << 4);
out++;
*out = ((*in) >> 20) % (1U << 4);
out++;
*out = ((*in) >> 24) % (1U << 4);
out++;
*out = ((*in) >> 28);
++in;
out++;
return in;
}
const uint32_t *__fastunpack5_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 5);
out++;
*out = ((*in) >> 5) % (1U << 5);
out++;
*out = ((*in) >> 10) % (1U << 5);
out++;
*out = ((*in) >> 15) % (1U << 5);
out++;
*out = ((*in) >> 20) % (1U << 5);
out++;
*out = ((*in) >> 25) % (1U << 5);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 3)) << (5 - 3);
out++;
*out = ((*in) >> 3) % (1U << 5);
out++;
*out = ((*in) >> 8) % (1U << 5);
out++;
*out = ((*in) >> 13) % (1U << 5);
out++;
*out = ((*in) >> 18) % (1U << 5);
out++;
*out = ((*in) >> 23) % (1U << 5);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 1)) << (5 - 1);
out++;
*out = ((*in) >> 1) % (1U << 5);
out++;
*out = ((*in) >> 6) % (1U << 5);
out++;
*out = ((*in) >> 11) % (1U << 5);
out++;
*out = ((*in) >> 16) % (1U << 5);
out++;
*out = ((*in) >> 21) % (1U << 5);
out++;
*out = ((*in) >> 26) % (1U << 5);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 4)) << (5 - 4);
out++;
*out = ((*in) >> 4) % (1U << 5);
out++;
*out = ((*in) >> 9) % (1U << 5);
out++;
*out = ((*in) >> 14) % (1U << 5);
out++;
*out = ((*in) >> 19) % (1U << 5);
out++;
*out = ((*in) >> 24) % (1U << 5);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 2)) << (5 - 2);
out++;
*out = ((*in) >> 2) % (1U << 5);
out++;
*out = ((*in) >> 7) % (1U << 5);
out++;
*out = ((*in) >> 12) % (1U << 5);
out++;
*out = ((*in) >> 17) % (1U << 5);
out++;
*out = ((*in) >> 22) % (1U << 5);
out++;
*out = ((*in) >> 27);
++in;
out++;
return in;
}
const uint32_t *__fastunpack6_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 6);
out++;
*out = ((*in) >> 6) % (1U << 6);
out++;
*out = ((*in) >> 12) % (1U << 6);
out++;
*out = ((*in) >> 18) % (1U << 6);
out++;
*out = ((*in) >> 24) % (1U << 6);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 4)) << (6 - 4);
out++;
*out = ((*in) >> 4) % (1U << 6);
out++;
*out = ((*in) >> 10) % (1U << 6);
out++;
*out = ((*in) >> 16) % (1U << 6);
out++;
*out = ((*in) >> 22) % (1U << 6);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 2)) << (6 - 2);
out++;
*out = ((*in) >> 2) % (1U << 6);
out++;
*out = ((*in) >> 8) % (1U << 6);
out++;
*out = ((*in) >> 14) % (1U << 6);
out++;
*out = ((*in) >> 20) % (1U << 6);
out++;
*out = ((*in) >> 26);
++in;
out++;
*out = ((*in) >> 0) % (1U << 6);
out++;
*out = ((*in) >> 6) % (1U << 6);
out++;
*out = ((*in) >> 12) % (1U << 6);
out++;
*out = ((*in) >> 18) % (1U << 6);
out++;
*out = ((*in) >> 24) % (1U << 6);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 4)) << (6 - 4);
out++;
*out = ((*in) >> 4) % (1U << 6);
out++;
*out = ((*in) >> 10) % (1U << 6);
out++;
*out = ((*in) >> 16) % (1U << 6);
out++;
*out = ((*in) >> 22) % (1U << 6);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 2)) << (6 - 2);
out++;
*out = ((*in) >> 2) % (1U << 6);
out++;
*out = ((*in) >> 8) % (1U << 6);
out++;
*out = ((*in) >> 14) % (1U << 6);
out++;
*out = ((*in) >> 20) % (1U << 6);
out++;
*out = ((*in) >> 26);
++in;
out++;
return in;
}
const uint32_t *__fastunpack7_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 7);
out++;
*out = ((*in) >> 7) % (1U << 7);
out++;
*out = ((*in) >> 14) % (1U << 7);
out++;
*out = ((*in) >> 21) % (1U << 7);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 3)) << (7 - 3);
out++;
*out = ((*in) >> 3) % (1U << 7);
out++;
*out = ((*in) >> 10) % (1U << 7);
out++;
*out = ((*in) >> 17) % (1U << 7);
out++;
*out = ((*in) >> 24) % (1U << 7);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 6)) << (7 - 6);
out++;
*out = ((*in) >> 6) % (1U << 7);
out++;
*out = ((*in) >> 13) % (1U << 7);
out++;
*out = ((*in) >> 20) % (1U << 7);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 2)) << (7 - 2);
out++;
*out = ((*in) >> 2) % (1U << 7);
out++;
*out = ((*in) >> 9) % (1U << 7);
out++;
*out = ((*in) >> 16) % (1U << 7);
out++;
*out = ((*in) >> 23) % (1U << 7);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 5)) << (7 - 5);
out++;
*out = ((*in) >> 5) % (1U << 7);
out++;
*out = ((*in) >> 12) % (1U << 7);
out++;
*out = ((*in) >> 19) % (1U << 7);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 1)) << (7 - 1);
out++;
*out = ((*in) >> 1) % (1U << 7);
out++;
*out = ((*in) >> 8) % (1U << 7);
out++;
*out = ((*in) >> 15) % (1U << 7);
out++;
*out = ((*in) >> 22) % (1U << 7);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 4)) << (7 - 4);
out++;
*out = ((*in) >> 4) % (1U << 7);
out++;
*out = ((*in) >> 11) % (1U << 7);
out++;
*out = ((*in) >> 18) % (1U << 7);
out++;
*out = ((*in) >> 25);
++in;
out++;
return in;
}
const uint32_t *__fastunpack8_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
*out = ((*in) >> 0) % (1U << 8);
out++;
*out = ((*in) >> 8) % (1U << 8);
out++;
*out = ((*in) >> 16) % (1U << 8);
out++;
*out = ((*in) >> 24);
++in;
out++;
return in;
}
const uint32_t *__fastunpack9_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 9);
out++;
*out = ((*in) >> 9) % (1U << 9);
out++;
*out = ((*in) >> 18) % (1U << 9);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 4)) << (9 - 4);
out++;
*out = ((*in) >> 4) % (1U << 9);
out++;
*out = ((*in) >> 13) % (1U << 9);
out++;
*out = ((*in) >> 22) % (1U << 9);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 8)) << (9 - 8);
out++;
*out = ((*in) >> 8) % (1U << 9);
out++;
*out = ((*in) >> 17) % (1U << 9);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 3)) << (9 - 3);
out++;
*out = ((*in) >> 3) % (1U << 9);
out++;
*out = ((*in) >> 12) % (1U << 9);
out++;
*out = ((*in) >> 21) % (1U << 9);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 7)) << (9 - 7);
out++;
*out = ((*in) >> 7) % (1U << 9);
out++;
*out = ((*in) >> 16) % (1U << 9);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 2)) << (9 - 2);
out++;
*out = ((*in) >> 2) % (1U << 9);
out++;
*out = ((*in) >> 11) % (1U << 9);
out++;
*out = ((*in) >> 20) % (1U << 9);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 6)) << (9 - 6);
out++;
*out = ((*in) >> 6) % (1U << 9);
out++;
*out = ((*in) >> 15) % (1U << 9);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 1)) << (9 - 1);
out++;
*out = ((*in) >> 1) % (1U << 9);
out++;
*out = ((*in) >> 10) % (1U << 9);
out++;
*out = ((*in) >> 19) % (1U << 9);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 5)) << (9 - 5);
out++;
*out = ((*in) >> 5) % (1U << 9);
out++;
*out = ((*in) >> 14) % (1U << 9);
out++;
*out = ((*in) >> 23);
++in;
out++;
return in;
}
const uint32_t *__fastunpack10_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 10);
out++;
*out = ((*in) >> 10) % (1U << 10);
out++;
*out = ((*in) >> 20) % (1U << 10);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 8)) << (10 - 8);
out++;
*out = ((*in) >> 8) % (1U << 10);
out++;
*out = ((*in) >> 18) % (1U << 10);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 6)) << (10 - 6);
out++;
*out = ((*in) >> 6) % (1U << 10);
out++;
*out = ((*in) >> 16) % (1U << 10);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 4)) << (10 - 4);
out++;
*out = ((*in) >> 4) % (1U << 10);
out++;
*out = ((*in) >> 14) % (1U << 10);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 2)) << (10 - 2);
out++;
*out = ((*in) >> 2) % (1U << 10);
out++;
*out = ((*in) >> 12) % (1U << 10);
out++;
*out = ((*in) >> 22);
++in;
out++;
*out = ((*in) >> 0) % (1U << 10);
out++;
*out = ((*in) >> 10) % (1U << 10);
out++;
*out = ((*in) >> 20) % (1U << 10);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 8)) << (10 - 8);
out++;
*out = ((*in) >> 8) % (1U << 10);
out++;
*out = ((*in) >> 18) % (1U << 10);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 6)) << (10 - 6);
out++;
*out = ((*in) >> 6) % (1U << 10);
out++;
*out = ((*in) >> 16) % (1U << 10);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 4)) << (10 - 4);
out++;
*out = ((*in) >> 4) % (1U << 10);
out++;
*out = ((*in) >> 14) % (1U << 10);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 2)) << (10 - 2);
out++;
*out = ((*in) >> 2) % (1U << 10);
out++;
*out = ((*in) >> 12) % (1U << 10);
out++;
*out = ((*in) >> 22);
++in;
out++;
return in;
}
const uint32_t *__fastunpack11_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 11);
out++;
*out = ((*in) >> 11) % (1U << 11);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 1)) << (11 - 1);
out++;
*out = ((*in) >> 1) % (1U << 11);
out++;
*out = ((*in) >> 12) % (1U << 11);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 2)) << (11 - 2);
out++;
*out = ((*in) >> 2) % (1U << 11);
out++;
*out = ((*in) >> 13) % (1U << 11);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 3)) << (11 - 3);
out++;
*out = ((*in) >> 3) % (1U << 11);
out++;
*out = ((*in) >> 14) % (1U << 11);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 4)) << (11 - 4);
out++;
*out = ((*in) >> 4) % (1U << 11);
out++;
*out = ((*in) >> 15) % (1U << 11);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 5)) << (11 - 5);
out++;
*out = ((*in) >> 5) % (1U << 11);
out++;
*out = ((*in) >> 16) % (1U << 11);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 6)) << (11 - 6);
out++;
*out = ((*in) >> 6) % (1U << 11);
out++;
*out = ((*in) >> 17) % (1U << 11);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 7)) << (11 - 7);
out++;
*out = ((*in) >> 7) % (1U << 11);
out++;
*out = ((*in) >> 18) % (1U << 11);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 8)) << (11 - 8);
out++;
*out = ((*in) >> 8) % (1U << 11);
out++;
*out = ((*in) >> 19) % (1U << 11);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 9)) << (11 - 9);
out++;
*out = ((*in) >> 9) % (1U << 11);
out++;
*out = ((*in) >> 20) % (1U << 11);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 10)) << (11 - 10);
out++;
*out = ((*in) >> 10) % (1U << 11);
out++;
*out = ((*in) >> 21);
++in;
out++;
return in;
}
const uint32_t *__fastunpack12_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 12);
out++;
*out = ((*in) >> 12) % (1U << 12);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 4)) << (12 - 4);
out++;
*out = ((*in) >> 4) % (1U << 12);
out++;
*out = ((*in) >> 16) % (1U << 12);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 8)) << (12 - 8);
out++;
*out = ((*in) >> 8) % (1U << 12);
out++;
*out = ((*in) >> 20);
++in;
out++;
*out = ((*in) >> 0) % (1U << 12);
out++;
*out = ((*in) >> 12) % (1U << 12);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 4)) << (12 - 4);
out++;
*out = ((*in) >> 4) % (1U << 12);
out++;
*out = ((*in) >> 16) % (1U << 12);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 8)) << (12 - 8);
out++;
*out = ((*in) >> 8) % (1U << 12);
out++;
*out = ((*in) >> 20);
++in;
out++;
*out = ((*in) >> 0) % (1U << 12);
out++;
*out = ((*in) >> 12) % (1U << 12);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 4)) << (12 - 4);
out++;
*out = ((*in) >> 4) % (1U << 12);
out++;
*out = ((*in) >> 16) % (1U << 12);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 8)) << (12 - 8);
out++;
*out = ((*in) >> 8) % (1U << 12);
out++;
*out = ((*in) >> 20);
++in;
out++;
*out = ((*in) >> 0) % (1U << 12);
out++;
*out = ((*in) >> 12) % (1U << 12);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 4)) << (12 - 4);
out++;
*out = ((*in) >> 4) % (1U << 12);
out++;
*out = ((*in) >> 16) % (1U << 12);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 8)) << (12 - 8);
out++;
*out = ((*in) >> 8) % (1U << 12);
out++;
*out = ((*in) >> 20);
++in;
out++;
return in;
}
const uint32_t *__fastunpack13_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 13);
out++;
*out = ((*in) >> 13) % (1U << 13);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 7)) << (13 - 7);
out++;
*out = ((*in) >> 7) % (1U << 13);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 1)) << (13 - 1);
out++;
*out = ((*in) >> 1) % (1U << 13);
out++;
*out = ((*in) >> 14) % (1U << 13);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 8)) << (13 - 8);
out++;
*out = ((*in) >> 8) % (1U << 13);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 2)) << (13 - 2);
out++;
*out = ((*in) >> 2) % (1U << 13);
out++;
*out = ((*in) >> 15) % (1U << 13);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 9)) << (13 - 9);
out++;
*out = ((*in) >> 9) % (1U << 13);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 3)) << (13 - 3);
out++;
*out = ((*in) >> 3) % (1U << 13);
out++;
*out = ((*in) >> 16) % (1U << 13);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 10)) << (13 - 10);
out++;
*out = ((*in) >> 10) % (1U << 13);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 4)) << (13 - 4);
out++;
*out = ((*in) >> 4) % (1U << 13);
out++;
*out = ((*in) >> 17) % (1U << 13);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 11)) << (13 - 11);
out++;
*out = ((*in) >> 11) % (1U << 13);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 5)) << (13 - 5);
out++;
*out = ((*in) >> 5) % (1U << 13);
out++;
*out = ((*in) >> 18) % (1U << 13);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 12)) << (13 - 12);
out++;
*out = ((*in) >> 12) % (1U << 13);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 6)) << (13 - 6);
out++;
*out = ((*in) >> 6) % (1U << 13);
out++;
*out = ((*in) >> 19);
++in;
out++;
return in;
}
const uint32_t *__fastunpack14_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 14);
out++;
*out = ((*in) >> 14) % (1U << 14);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 10)) << (14 - 10);
out++;
*out = ((*in) >> 10) % (1U << 14);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 6)) << (14 - 6);
out++;
*out = ((*in) >> 6) % (1U << 14);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 2)) << (14 - 2);
out++;
*out = ((*in) >> 2) % (1U << 14);
out++;
*out = ((*in) >> 16) % (1U << 14);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 12)) << (14 - 12);
out++;
*out = ((*in) >> 12) % (1U << 14);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 8)) << (14 - 8);
out++;
*out = ((*in) >> 8) % (1U << 14);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 4)) << (14 - 4);
out++;
*out = ((*in) >> 4) % (1U << 14);
out++;
*out = ((*in) >> 18);
++in;
out++;
*out = ((*in) >> 0) % (1U << 14);
out++;
*out = ((*in) >> 14) % (1U << 14);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 10)) << (14 - 10);
out++;
*out = ((*in) >> 10) % (1U << 14);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 6)) << (14 - 6);
out++;
*out = ((*in) >> 6) % (1U << 14);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 2)) << (14 - 2);
out++;
*out = ((*in) >> 2) % (1U << 14);
out++;
*out = ((*in) >> 16) % (1U << 14);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 12)) << (14 - 12);
out++;
*out = ((*in) >> 12) % (1U << 14);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 8)) << (14 - 8);
out++;
*out = ((*in) >> 8) % (1U << 14);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 4)) << (14 - 4);
out++;
*out = ((*in) >> 4) % (1U << 14);
out++;
*out = ((*in) >> 18);
++in;
out++;
return in;
}
const uint32_t *__fastunpack15_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 15);
out++;
*out = ((*in) >> 15) % (1U << 15);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 13)) << (15 - 13);
out++;
*out = ((*in) >> 13) % (1U << 15);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 11)) << (15 - 11);
out++;
*out = ((*in) >> 11) % (1U << 15);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 9)) << (15 - 9);
out++;
*out = ((*in) >> 9) % (1U << 15);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 7)) << (15 - 7);
out++;
*out = ((*in) >> 7) % (1U << 15);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 5)) << (15 - 5);
out++;
*out = ((*in) >> 5) % (1U << 15);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 3)) << (15 - 3);
out++;
*out = ((*in) >> 3) % (1U << 15);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 1)) << (15 - 1);
out++;
*out = ((*in) >> 1) % (1U << 15);
out++;
*out = ((*in) >> 16) % (1U << 15);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 14)) << (15 - 14);
out++;
*out = ((*in) >> 14) % (1U << 15);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 12)) << (15 - 12);
out++;
*out = ((*in) >> 12) % (1U << 15);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 10)) << (15 - 10);
out++;
*out = ((*in) >> 10) % (1U << 15);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 8)) << (15 - 8);
out++;
*out = ((*in) >> 8) % (1U << 15);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 6)) << (15 - 6);
out++;
*out = ((*in) >> 6) % (1U << 15);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 4)) << (15 - 4);
out++;
*out = ((*in) >> 4) % (1U << 15);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 2)) << (15 - 2);
out++;
*out = ((*in) >> 2) % (1U << 15);
out++;
*out = ((*in) >> 17);
++in;
out++;
return in;
}
const uint32_t *__fastunpack16_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
*out = ((*in) >> 0) % (1U << 16);
out++;
*out = ((*in) >> 16);
++in;
out++;
return in;
}
const uint32_t *__fastunpack17_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 2)) << (17 - 2);
out++;
*out = ((*in) >> 2) % (1U << 17);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 4)) << (17 - 4);
out++;
*out = ((*in) >> 4) % (1U << 17);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 6)) << (17 - 6);
out++;
*out = ((*in) >> 6) % (1U << 17);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 8)) << (17 - 8);
out++;
*out = ((*in) >> 8) % (1U << 17);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 10)) << (17 - 10);
out++;
*out = ((*in) >> 10) % (1U << 17);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 12)) << (17 - 12);
out++;
*out = ((*in) >> 12) % (1U << 17);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 14)) << (17 - 14);
out++;
*out = ((*in) >> 14) % (1U << 17);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 16)) << (17 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 1)) << (17 - 1);
out++;
*out = ((*in) >> 1) % (1U << 17);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 3)) << (17 - 3);
out++;
*out = ((*in) >> 3) % (1U << 17);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 5)) << (17 - 5);
out++;
*out = ((*in) >> 5) % (1U << 17);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 7)) << (17 - 7);
out++;
*out = ((*in) >> 7) % (1U << 17);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 9)) << (17 - 9);
out++;
*out = ((*in) >> 9) % (1U << 17);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 11)) << (17 - 11);
out++;
*out = ((*in) >> 11) % (1U << 17);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 13)) << (17 - 13);
out++;
*out = ((*in) >> 13) % (1U << 17);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 15)) << (17 - 15);
out++;
*out = ((*in) >> 15);
++in;
out++;
return in;
}
const uint32_t *__fastunpack18_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 4)) << (18 - 4);
out++;
*out = ((*in) >> 4) % (1U << 18);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 8)) << (18 - 8);
out++;
*out = ((*in) >> 8) % (1U << 18);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 12)) << (18 - 12);
out++;
*out = ((*in) >> 12) % (1U << 18);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 16)) << (18 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 2)) << (18 - 2);
out++;
*out = ((*in) >> 2) % (1U << 18);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 6)) << (18 - 6);
out++;
*out = ((*in) >> 6) % (1U << 18);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 10)) << (18 - 10);
out++;
*out = ((*in) >> 10) % (1U << 18);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 14)) << (18 - 14);
out++;
*out = ((*in) >> 14);
++in;
out++;
*out = ((*in) >> 0) % (1U << 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 4)) << (18 - 4);
out++;
*out = ((*in) >> 4) % (1U << 18);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 8)) << (18 - 8);
out++;
*out = ((*in) >> 8) % (1U << 18);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 12)) << (18 - 12);
out++;
*out = ((*in) >> 12) % (1U << 18);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 16)) << (18 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 2)) << (18 - 2);
out++;
*out = ((*in) >> 2) % (1U << 18);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 6)) << (18 - 6);
out++;
*out = ((*in) >> 6) % (1U << 18);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 10)) << (18 - 10);
out++;
*out = ((*in) >> 10) % (1U << 18);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 14)) << (18 - 14);
out++;
*out = ((*in) >> 14);
++in;
out++;
return in;
}
const uint32_t *__fastunpack19_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 6)) << (19 - 6);
out++;
*out = ((*in) >> 6) % (1U << 19);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 12)) << (19 - 12);
out++;
*out = ((*in) >> 12) % (1U << 19);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 18)) << (19 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 5)) << (19 - 5);
out++;
*out = ((*in) >> 5) % (1U << 19);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 11)) << (19 - 11);
out++;
*out = ((*in) >> 11) % (1U << 19);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 17)) << (19 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 4)) << (19 - 4);
out++;
*out = ((*in) >> 4) % (1U << 19);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 10)) << (19 - 10);
out++;
*out = ((*in) >> 10) % (1U << 19);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 16)) << (19 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 3)) << (19 - 3);
out++;
*out = ((*in) >> 3) % (1U << 19);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 9)) << (19 - 9);
out++;
*out = ((*in) >> 9) % (1U << 19);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 15)) << (19 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 2)) << (19 - 2);
out++;
*out = ((*in) >> 2) % (1U << 19);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 8)) << (19 - 8);
out++;
*out = ((*in) >> 8) % (1U << 19);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 14)) << (19 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 1)) << (19 - 1);
out++;
*out = ((*in) >> 1) % (1U << 19);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 7)) << (19 - 7);
out++;
*out = ((*in) >> 7) % (1U << 19);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 13)) << (19 - 13);
out++;
*out = ((*in) >> 13);
++in;
out++;
return in;
}
const uint32_t *__fastunpack20_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 8)) << (20 - 8);
out++;
*out = ((*in) >> 8) % (1U << 20);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 16)) << (20 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 4)) << (20 - 4);
out++;
*out = ((*in) >> 4) % (1U << 20);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 12)) << (20 - 12);
out++;
*out = ((*in) >> 12);
++in;
out++;
*out = ((*in) >> 0) % (1U << 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 8)) << (20 - 8);
out++;
*out = ((*in) >> 8) % (1U << 20);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 16)) << (20 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 4)) << (20 - 4);
out++;
*out = ((*in) >> 4) % (1U << 20);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 12)) << (20 - 12);
out++;
*out = ((*in) >> 12);
++in;
out++;
*out = ((*in) >> 0) % (1U << 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 8)) << (20 - 8);
out++;
*out = ((*in) >> 8) % (1U << 20);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 16)) << (20 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 4)) << (20 - 4);
out++;
*out = ((*in) >> 4) % (1U << 20);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 12)) << (20 - 12);
out++;
*out = ((*in) >> 12);
++in;
out++;
*out = ((*in) >> 0) % (1U << 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 8)) << (20 - 8);
out++;
*out = ((*in) >> 8) % (1U << 20);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 16)) << (20 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 4)) << (20 - 4);
out++;
*out = ((*in) >> 4) % (1U << 20);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 12)) << (20 - 12);
out++;
*out = ((*in) >> 12);
++in;
out++;
return in;
}
const uint32_t *__fastunpack21_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 10)) << (21 - 10);
out++;
*out = ((*in) >> 10) % (1U << 21);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 20)) << (21 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 9)) << (21 - 9);
out++;
*out = ((*in) >> 9) % (1U << 21);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 19)) << (21 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 8)) << (21 - 8);
out++;
*out = ((*in) >> 8) % (1U << 21);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 18)) << (21 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 7)) << (21 - 7);
out++;
*out = ((*in) >> 7) % (1U << 21);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 17)) << (21 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 6)) << (21 - 6);
out++;
*out = ((*in) >> 6) % (1U << 21);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 16)) << (21 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 5)) << (21 - 5);
out++;
*out = ((*in) >> 5) % (1U << 21);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 15)) << (21 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 4)) << (21 - 4);
out++;
*out = ((*in) >> 4) % (1U << 21);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 14)) << (21 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 3)) << (21 - 3);
out++;
*out = ((*in) >> 3) % (1U << 21);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 13)) << (21 - 13);
out++;
*out = ((*in) >> 13);
++in;
*out |= ((*in) % (1U << 2)) << (21 - 2);
out++;
*out = ((*in) >> 2) % (1U << 21);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 12)) << (21 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 1)) << (21 - 1);
out++;
*out = ((*in) >> 1) % (1U << 21);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 11)) << (21 - 11);
out++;
*out = ((*in) >> 11);
++in;
out++;
return in;
}
const uint32_t *__fastunpack22_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 12)) << (22 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 2)) << (22 - 2);
out++;
*out = ((*in) >> 2) % (1U << 22);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 14)) << (22 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 4)) << (22 - 4);
out++;
*out = ((*in) >> 4) % (1U << 22);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 16)) << (22 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 6)) << (22 - 6);
out++;
*out = ((*in) >> 6) % (1U << 22);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 18)) << (22 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 8)) << (22 - 8);
out++;
*out = ((*in) >> 8) % (1U << 22);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 20)) << (22 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 10)) << (22 - 10);
out++;
*out = ((*in) >> 10);
++in;
out++;
*out = ((*in) >> 0) % (1U << 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 12)) << (22 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 2)) << (22 - 2);
out++;
*out = ((*in) >> 2) % (1U << 22);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 14)) << (22 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 4)) << (22 - 4);
out++;
*out = ((*in) >> 4) % (1U << 22);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 16)) << (22 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 6)) << (22 - 6);
out++;
*out = ((*in) >> 6) % (1U << 22);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 18)) << (22 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 8)) << (22 - 8);
out++;
*out = ((*in) >> 8) % (1U << 22);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 20)) << (22 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 10)) << (22 - 10);
out++;
*out = ((*in) >> 10);
++in;
out++;
return in;
}
const uint32_t *__fastunpack23_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 14)) << (23 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 5)) << (23 - 5);
out++;
*out = ((*in) >> 5) % (1U << 23);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 19)) << (23 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 10)) << (23 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 1)) << (23 - 1);
out++;
*out = ((*in) >> 1) % (1U << 23);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 15)) << (23 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 6)) << (23 - 6);
out++;
*out = ((*in) >> 6) % (1U << 23);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 20)) << (23 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 11)) << (23 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 2)) << (23 - 2);
out++;
*out = ((*in) >> 2) % (1U << 23);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 16)) << (23 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 7)) << (23 - 7);
out++;
*out = ((*in) >> 7) % (1U << 23);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 21)) << (23 - 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 12)) << (23 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 3)) << (23 - 3);
out++;
*out = ((*in) >> 3) % (1U << 23);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 17)) << (23 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 8)) << (23 - 8);
out++;
*out = ((*in) >> 8) % (1U << 23);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 22)) << (23 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 13)) << (23 - 13);
out++;
*out = ((*in) >> 13);
++in;
*out |= ((*in) % (1U << 4)) << (23 - 4);
out++;
*out = ((*in) >> 4) % (1U << 23);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 18)) << (23 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 9)) << (23 - 9);
out++;
*out = ((*in) >> 9);
++in;
out++;
return in;
}
const uint32_t *__fastunpack24_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
*out = ((*in) >> 0) % (1U << 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 16)) << (24 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 8)) << (24 - 8);
out++;
*out = ((*in) >> 8);
++in;
out++;
return in;
}
const uint32_t *__fastunpack25_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 25);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 18)) << (25 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 11)) << (25 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 4)) << (25 - 4);
out++;
*out = ((*in) >> 4) % (1U << 25);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 22)) << (25 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 15)) << (25 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 8)) << (25 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 1)) << (25 - 1);
out++;
*out = ((*in) >> 1) % (1U << 25);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 19)) << (25 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 12)) << (25 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 5)) << (25 - 5);
out++;
*out = ((*in) >> 5) % (1U << 25);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 23)) << (25 - 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 16)) << (25 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 9)) << (25 - 9);
out++;
*out = ((*in) >> 9);
++in;
*out |= ((*in) % (1U << 2)) << (25 - 2);
out++;
*out = ((*in) >> 2) % (1U << 25);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 20)) << (25 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 13)) << (25 - 13);
out++;
*out = ((*in) >> 13);
++in;
*out |= ((*in) % (1U << 6)) << (25 - 6);
out++;
*out = ((*in) >> 6) % (1U << 25);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 24)) << (25 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 17)) << (25 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 10)) << (25 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 3)) << (25 - 3);
out++;
*out = ((*in) >> 3) % (1U << 25);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 21)) << (25 - 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 14)) << (25 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 7)) << (25 - 7);
out++;
*out = ((*in) >> 7);
++in;
out++;
return in;
}
const uint32_t *__fastunpack26_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 20)) << (26 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 14)) << (26 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 8)) << (26 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 2)) << (26 - 2);
out++;
*out = ((*in) >> 2) % (1U << 26);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 22)) << (26 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 16)) << (26 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 10)) << (26 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 4)) << (26 - 4);
out++;
*out = ((*in) >> 4) % (1U << 26);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 24)) << (26 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 18)) << (26 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 12)) << (26 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 6)) << (26 - 6);
out++;
*out = ((*in) >> 6);
++in;
out++;
*out = ((*in) >> 0) % (1U << 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 20)) << (26 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 14)) << (26 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 8)) << (26 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 2)) << (26 - 2);
out++;
*out = ((*in) >> 2) % (1U << 26);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 22)) << (26 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 16)) << (26 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 10)) << (26 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 4)) << (26 - 4);
out++;
*out = ((*in) >> 4) % (1U << 26);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 24)) << (26 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 18)) << (26 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 12)) << (26 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 6)) << (26 - 6);
out++;
*out = ((*in) >> 6);
++in;
out++;
return in;
}
const uint32_t *__fastunpack27_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 27);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 22)) << (27 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 17)) << (27 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 12)) << (27 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 7)) << (27 - 7);
out++;
*out = ((*in) >> 7);
++in;
*out |= ((*in) % (1U << 2)) << (27 - 2);
out++;
*out = ((*in) >> 2) % (1U << 27);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 24)) << (27 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 19)) << (27 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 14)) << (27 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 9)) << (27 - 9);
out++;
*out = ((*in) >> 9);
++in;
*out |= ((*in) % (1U << 4)) << (27 - 4);
out++;
*out = ((*in) >> 4) % (1U << 27);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 26)) << (27 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 21)) << (27 - 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 16)) << (27 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 11)) << (27 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 6)) << (27 - 6);
out++;
*out = ((*in) >> 6);
++in;
*out |= ((*in) % (1U << 1)) << (27 - 1);
out++;
*out = ((*in) >> 1) % (1U << 27);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 23)) << (27 - 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 18)) << (27 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 13)) << (27 - 13);
out++;
*out = ((*in) >> 13);
++in;
*out |= ((*in) % (1U << 8)) << (27 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 3)) << (27 - 3);
out++;
*out = ((*in) >> 3) % (1U << 27);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 25)) << (27 - 25);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 20)) << (27 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 15)) << (27 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 10)) << (27 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 5)) << (27 - 5);
out++;
*out = ((*in) >> 5);
++in;
out++;
return in;
}
const uint32_t *__fastunpack28_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 24)) << (28 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 20)) << (28 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 16)) << (28 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 12)) << (28 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 8)) << (28 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 4)) << (28 - 4);
out++;
*out = ((*in) >> 4);
++in;
out++;
*out = ((*in) >> 0) % (1U << 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 24)) << (28 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 20)) << (28 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 16)) << (28 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 12)) << (28 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 8)) << (28 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 4)) << (28 - 4);
out++;
*out = ((*in) >> 4);
++in;
out++;
*out = ((*in) >> 0) % (1U << 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 24)) << (28 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 20)) << (28 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 16)) << (28 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 12)) << (28 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 8)) << (28 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 4)) << (28 - 4);
out++;
*out = ((*in) >> 4);
++in;
out++;
*out = ((*in) >> 0) % (1U << 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 24)) << (28 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 20)) << (28 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 16)) << (28 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 12)) << (28 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 8)) << (28 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 4)) << (28 - 4);
out++;
*out = ((*in) >> 4);
++in;
out++;
return in;
}
const uint32_t *__fastunpack29_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 29);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 26)) << (29 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 23)) << (29 - 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 20)) << (29 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 17)) << (29 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 14)) << (29 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 11)) << (29 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 8)) << (29 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 5)) << (29 - 5);
out++;
*out = ((*in) >> 5);
++in;
*out |= ((*in) % (1U << 2)) << (29 - 2);
out++;
*out = ((*in) >> 2) % (1U << 29);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 28)) << (29 - 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 25)) << (29 - 25);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 22)) << (29 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 19)) << (29 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 16)) << (29 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 13)) << (29 - 13);
out++;
*out = ((*in) >> 13);
++in;
*out |= ((*in) % (1U << 10)) << (29 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 7)) << (29 - 7);
out++;
*out = ((*in) >> 7);
++in;
*out |= ((*in) % (1U << 4)) << (29 - 4);
out++;
*out = ((*in) >> 4);
++in;
*out |= ((*in) % (1U << 1)) << (29 - 1);
out++;
*out = ((*in) >> 1) % (1U << 29);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 27)) << (29 - 27);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 24)) << (29 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 21)) << (29 - 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 18)) << (29 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 15)) << (29 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 12)) << (29 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 9)) << (29 - 9);
out++;
*out = ((*in) >> 9);
++in;
*out |= ((*in) % (1U << 6)) << (29 - 6);
out++;
*out = ((*in) >> 6);
++in;
*out |= ((*in) % (1U << 3)) << (29 - 3);
out++;
*out = ((*in) >> 3);
++in;
out++;
return in;
}
const uint32_t *__fastunpack30_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 30);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 28)) << (30 - 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 26)) << (30 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 24)) << (30 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 22)) << (30 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 20)) << (30 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 18)) << (30 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 16)) << (30 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 14)) << (30 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 12)) << (30 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 10)) << (30 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 8)) << (30 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 6)) << (30 - 6);
out++;
*out = ((*in) >> 6);
++in;
*out |= ((*in) % (1U << 4)) << (30 - 4);
out++;
*out = ((*in) >> 4);
++in;
*out |= ((*in) % (1U << 2)) << (30 - 2);
out++;
*out = ((*in) >> 2);
++in;
out++;
*out = ((*in) >> 0) % (1U << 30);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 28)) << (30 - 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 26)) << (30 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 24)) << (30 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 22)) << (30 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 20)) << (30 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 18)) << (30 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 16)) << (30 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 14)) << (30 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 12)) << (30 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 10)) << (30 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 8)) << (30 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 6)) << (30 - 6);
out++;
*out = ((*in) >> 6);
++in;
*out |= ((*in) % (1U << 4)) << (30 - 4);
out++;
*out = ((*in) >> 4);
++in;
*out |= ((*in) % (1U << 2)) << (30 - 2);
out++;
*out = ((*in) >> 2);
++in;
out++;
return in;
}
const uint32_t *__fastunpack31_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0) % (1U << 31);
out++;
*out = ((*in) >> 31);
++in;
*out |= ((*in) % (1U << 30)) << (31 - 30);
out++;
*out = ((*in) >> 30);
++in;
*out |= ((*in) % (1U << 29)) << (31 - 29);
out++;
*out = ((*in) >> 29);
++in;
*out |= ((*in) % (1U << 28)) << (31 - 28);
out++;
*out = ((*in) >> 28);
++in;
*out |= ((*in) % (1U << 27)) << (31 - 27);
out++;
*out = ((*in) >> 27);
++in;
*out |= ((*in) % (1U << 26)) << (31 - 26);
out++;
*out = ((*in) >> 26);
++in;
*out |= ((*in) % (1U << 25)) << (31 - 25);
out++;
*out = ((*in) >> 25);
++in;
*out |= ((*in) % (1U << 24)) << (31 - 24);
out++;
*out = ((*in) >> 24);
++in;
*out |= ((*in) % (1U << 23)) << (31 - 23);
out++;
*out = ((*in) >> 23);
++in;
*out |= ((*in) % (1U << 22)) << (31 - 22);
out++;
*out = ((*in) >> 22);
++in;
*out |= ((*in) % (1U << 21)) << (31 - 21);
out++;
*out = ((*in) >> 21);
++in;
*out |= ((*in) % (1U << 20)) << (31 - 20);
out++;
*out = ((*in) >> 20);
++in;
*out |= ((*in) % (1U << 19)) << (31 - 19);
out++;
*out = ((*in) >> 19);
++in;
*out |= ((*in) % (1U << 18)) << (31 - 18);
out++;
*out = ((*in) >> 18);
++in;
*out |= ((*in) % (1U << 17)) << (31 - 17);
out++;
*out = ((*in) >> 17);
++in;
*out |= ((*in) % (1U << 16)) << (31 - 16);
out++;
*out = ((*in) >> 16);
++in;
*out |= ((*in) % (1U << 15)) << (31 - 15);
out++;
*out = ((*in) >> 15);
++in;
*out |= ((*in) % (1U << 14)) << (31 - 14);
out++;
*out = ((*in) >> 14);
++in;
*out |= ((*in) % (1U << 13)) << (31 - 13);
out++;
*out = ((*in) >> 13);
++in;
*out |= ((*in) % (1U << 12)) << (31 - 12);
out++;
*out = ((*in) >> 12);
++in;
*out |= ((*in) % (1U << 11)) << (31 - 11);
out++;
*out = ((*in) >> 11);
++in;
*out |= ((*in) % (1U << 10)) << (31 - 10);
out++;
*out = ((*in) >> 10);
++in;
*out |= ((*in) % (1U << 9)) << (31 - 9);
out++;
*out = ((*in) >> 9);
++in;
*out |= ((*in) % (1U << 8)) << (31 - 8);
out++;
*out = ((*in) >> 8);
++in;
*out |= ((*in) % (1U << 7)) << (31 - 7);
out++;
*out = ((*in) >> 7);
++in;
*out |= ((*in) % (1U << 6)) << (31 - 6);
out++;
*out = ((*in) >> 6);
++in;
*out |= ((*in) % (1U << 5)) << (31 - 5);
out++;
*out = ((*in) >> 5);
++in;
*out |= ((*in) % (1U << 4)) << (31 - 4);
out++;
*out = ((*in) >> 4);
++in;
*out |= ((*in) % (1U << 3)) << (31 - 3);
out++;
*out = ((*in) >> 3);
++in;
*out |= ((*in) % (1U << 2)) << (31 - 2);
out++;
*out = ((*in) >> 2);
++in;
*out |= ((*in) % (1U << 1)) << (31 - 1);
out++;
*out = ((*in) >> 1);
++in;
out++;
return in;
}
const uint32_t *__fastunpack32_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out) {
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
*out = ((*in) >> 0);
++in;
out++;
return in;
}
const uint32_t *fastunpack_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out, const uint32_t bit) {
switch (bit) {
case 0:
return nullunpacker32(in, out);
case 1:
return __fastunpack1_32(in, out);
case 2:
return __fastunpack2_32(in, out);
case 3:
return __fastunpack3_32(in, out);
case 4:
return __fastunpack4_32(in, out);
case 5:
return __fastunpack5_32(in, out);
case 6:
return __fastunpack6_32(in, out);
case 7:
return __fastunpack7_32(in, out);
case 8:
return __fastunpack8_32(in, out);
case 9:
return __fastunpack9_32(in, out);
case 10:
return __fastunpack10_32(in, out);
case 11:
return __fastunpack11_32(in, out);
case 12:
return __fastunpack12_32(in, out);
case 13:
return __fastunpack13_32(in, out);
case 14:
return __fastunpack14_32(in, out);
case 15:
return __fastunpack15_32(in, out);
case 16:
return __fastunpack16_32(in, out);
case 17:
return __fastunpack17_32(in, out);
case 18:
return __fastunpack18_32(in, out);
case 19:
return __fastunpack19_32(in, out);
case 20:
return __fastunpack20_32(in, out);
case 21:
return __fastunpack21_32(in, out);
case 22:
return __fastunpack22_32(in, out);
case 23:
return __fastunpack23_32(in, out);
case 24:
return __fastunpack24_32(in, out);
case 25:
return __fastunpack25_32(in, out);
case 26:
return __fastunpack26_32(in, out);
case 27:
return __fastunpack27_32(in, out);
case 28:
return __fastunpack28_32(in, out);
case 29:
return __fastunpack29_32(in, out);
case 30:
return __fastunpack30_32(in, out);
case 31:
return __fastunpack31_32(in, out);
case 32:
return __fastunpack32_32(in, out);
default:
break;
}
throw std::logic_error("number of bits is unsupported");
}
uint32_t *fastpackwithoutmask_32(const uint32_t *__restrict__ in,
uint32_t *__restrict__ out,
const uint32_t bit) {
switch (bit) {
case 0:
return nullpacker(in, out);
case 1:
return __fastpackwithoutmask1_32(in, out);
case 2:
return __fastpackwithoutmask2_32(in, out);
case 3:
return __fastpackwithoutmask3_32(in, out);
case 4:
return __fastpackwithoutmask4_32(in, out);
case 5:
return __fastpackwithoutmask5_32(in, out);
case 6:
return __fastpackwithoutmask6_32(in, out);
case 7:
return __fastpackwithoutmask7_32(in, out);
case 8:
return __fastpackwithoutmask8_32(in, out);
case 9:
return __fastpackwithoutmask9_32(in, out);
case 10:
return __fastpackwithoutmask10_32(in, out);
case 11:
return __fastpackwithoutmask11_32(in, out);
case 12:
return __fastpackwithoutmask12_32(in, out);
case 13:
return __fastpackwithoutmask13_32(in, out);
case 14:
return __fastpackwithoutmask14_32(in, out);
case 15:
return __fastpackwithoutmask15_32(in, out);
case 16:
return __fastpackwithoutmask16_32(in, out);
case 17:
return __fastpackwithoutmask17_32(in, out);
case 18:
return __fastpackwithoutmask18_32(in, out);
case 19:
return __fastpackwithoutmask19_32(in, out);
case 20:
return __fastpackwithoutmask20_32(in, out);
case 21:
return __fastpackwithoutmask21_32(in, out);
case 22:
return __fastpackwithoutmask22_32(in, out);
case 23:
return __fastpackwithoutmask23_32(in, out);
case 24:
return __fastpackwithoutmask24_32(in, out);
case 25:
return __fastpackwithoutmask25_32(in, out);
case 26:
return __fastpackwithoutmask26_32(in, out);
case 27:
return __fastpackwithoutmask27_32(in, out);
case 28:
return __fastpackwithoutmask28_32(in, out);
case 29:
return __fastpackwithoutmask29_32(in, out);
case 30:
return __fastpackwithoutmask30_32(in, out);
case 31:
return __fastpackwithoutmask31_32(in, out);
case 32:
return __fastpackwithoutmask32_32(in, out);
default:
break;
}
throw std::logic_error("number of bits is unsupported");
}
}