#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef int /*<<< orphan*/ uint32_t;

/* Variables and functions */
int /*<<< orphan*/ *unpack0_32_avx2(int /*<<< orphan*/ const *,
                                    int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack10_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack11_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack12_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack13_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack14_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack15_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack16_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack17_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack18_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack19_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack1_32_avx2(int /*<<< orphan*/ const *,
                                    int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack20_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack21_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack22_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack23_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack24_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack25_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack26_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack27_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack28_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack29_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack2_32_avx2(int /*<<< orphan*/ const *,
                                    int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack30_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack31_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack32_32_avx2(int /*<<< orphan*/ const *,
                                     int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack3_32_avx2(int /*<<< orphan*/ const *,
                                    int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack4_32_avx2(int /*<<< orphan*/ const *,
                                    int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack5_32_avx2(int /*<<< orphan*/ const *,
                                    int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack6_32_avx2(int /*<<< orphan*/ const *,
                                    int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack7_32_avx2(int /*<<< orphan*/ const *,
                                    int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack8_32_avx2(int /*<<< orphan*/ const *,
                                    int /*<<< orphan*/ *);
int /*<<< orphan*/ *unpack9_32_avx2(int /*<<< orphan*/ const *,
                                    int /*<<< orphan*/ *);
int unpack32_avx2(const uint32_t *in, uint32_t *out, int batch_size,
                  int num_bits) {
  batch_size = batch_size / 32 * 32;
  int num_loops = batch_size / 32;
  switch (num_bits) {
  case 0:
    for (int i = 0; i < num_loops; ++i)
      in = unpack0_32_avx2(in, out + i * 32);
    break;
  case 1:
    for (int i = 0; i < num_loops; ++i)
      in = unpack1_32_avx2(in, out + i * 32);
    break;
  case 2:
    for (int i = 0; i < num_loops; ++i)
      in = unpack2_32_avx2(in, out + i * 32);
    break;
  case 3:
    for (int i = 0; i < num_loops; ++i)
      in = unpack3_32_avx2(in, out + i * 32);
    break;
  case 4:
    for (int i = 0; i < num_loops; ++i)
      in = unpack4_32_avx2(in, out + i * 32);
    break;
  case 5:
    for (int i = 0; i < num_loops; ++i)
      in = unpack5_32_avx2(in, out + i * 32);
    break;
  case 6:
    for (int i = 0; i < num_loops; ++i)
      in = unpack6_32_avx2(in, out + i * 32);
    break;
  case 7:
    for (int i = 0; i < num_loops; ++i)
      in = unpack7_32_avx2(in, out + i * 32);
    break;
  case 8:
    for (int i = 0; i < num_loops; ++i)
      in = unpack8_32_avx2(in, out + i * 32);
    break;
  case 9:
    for (int i = 0; i < num_loops; ++i)
      in = unpack9_32_avx2(in, out + i * 32);
    break;
  case 10:
    for (int i = 0; i < num_loops; ++i)
      in = unpack10_32_avx2(in, out + i * 32);
    break;
  case 11:
    for (int i = 0; i < num_loops; ++i)
      in = unpack11_32_avx2(in, out + i * 32);
    break;
  case 12:
    for (int i = 0; i < num_loops; ++i)
      in = unpack12_32_avx2(in, out + i * 32);
    break;
  case 13:
    for (int i = 0; i < num_loops; ++i)
      in = unpack13_32_avx2(in, out + i * 32);
    break;
  case 14:
    for (int i = 0; i < num_loops; ++i)
      in = unpack14_32_avx2(in, out + i * 32);
    break;
  case 15:
    for (int i = 0; i < num_loops; ++i)
      in = unpack15_32_avx2(in, out + i * 32);
    break;
  case 16:
    for (int i = 0; i < num_loops; ++i)
      in = unpack16_32_avx2(in, out + i * 32);
    break;
  case 17:
    for (int i = 0; i < num_loops; ++i)
      in = unpack17_32_avx2(in, out + i * 32);
    break;
  case 18:
    for (int i = 0; i < num_loops; ++i)
      in = unpack18_32_avx2(in, out + i * 32);
    break;
  case 19:
    for (int i = 0; i < num_loops; ++i)
      in = unpack19_32_avx2(in, out + i * 32);
    break;
  case 20:
    for (int i = 0; i < num_loops; ++i)
      in = unpack20_32_avx2(in, out + i * 32);
    break;
  case 21:
    for (int i = 0; i < num_loops; ++i)
      in = unpack21_32_avx2(in, out + i * 32);
    break;
  case 22:
    for (int i = 0; i < num_loops; ++i)
      in = unpack22_32_avx2(in, out + i * 32);
    break;
  case 23:
    for (int i = 0; i < num_loops; ++i)
      in = unpack23_32_avx2(in, out + i * 32);
    break;
  case 24:
    for (int i = 0; i < num_loops; ++i)
      in = unpack24_32_avx2(in, out + i * 32);
    break;
  case 25:
    for (int i = 0; i < num_loops; ++i)
      in = unpack25_32_avx2(in, out + i * 32);
    break;
  case 26:
    for (int i = 0; i < num_loops; ++i)
      in = unpack26_32_avx2(in, out + i * 32);
    break;
  case 27:
    for (int i = 0; i < num_loops; ++i)
      in = unpack27_32_avx2(in, out + i * 32);
    break;
  case 28:
    for (int i = 0; i < num_loops; ++i)
      in = unpack28_32_avx2(in, out + i * 32);
    break;
  case 29:
    for (int i = 0; i < num_loops; ++i)
      in = unpack29_32_avx2(in, out + i * 32);
    break;
  case 30:
    for (int i = 0; i < num_loops; ++i)
      in = unpack30_32_avx2(in, out + i * 32);
    break;
  case 31:
    for (int i = 0; i < num_loops; ++i)
      in = unpack31_32_avx2(in, out + i * 32);
    break;
  case 32:
    for (int i = 0; i < num_loops; ++i)
      in = unpack32_32_avx2(in, out + i * 32);
    break;
  }
  return batch_size;
}


x86 assembly (clang, -O0):
<unpack32_avx2>:
push   %rbp
mov    %rsp,%rbp
sub    $0xb0,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %edx,-0x14(%rbp)
mov    %ecx,-0x18(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,%ecx
add    $0x1f,%ecx
test   %eax,%eax
cmovs  %ecx,%eax
and    $0xffffffe0,%eax
mov    %eax,-0x14(%rbp)
mov    -0x14(%rbp),%eax
mov    %eax,%ecx
add    $0x1f,%ecx
test   %eax,%eax
cmovs  %ecx,%eax
sar    $0x5,%eax
mov    %eax,-0x1c(%rbp)
mov    -0x18(%rbp),%eax
mov    %rax,-0xa8(%rbp)
sub    $0x20,%rax
ja     1cf8 <unpack32_avx2+0x9e8>
mov    -0xa8(%rbp),%rax
lea    0xc8f(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x0,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    13bb <unpack32_avx2+0xab>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x20(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1100 <unpack0_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1381 <unpack32_avx2+0x71>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x24(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1401 <unpack32_avx2+0xf1>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x24(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1210 <unpack1_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    13c7 <unpack32_avx2+0xb7>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x28(%rbp)
mov    -0x28(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1447 <unpack32_avx2+0x137>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x28(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1220 <unpack2_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    140d <unpack32_avx2+0xfd>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x2c(%rbp)
mov    -0x2c(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    148d <unpack32_avx2+0x17d>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x2c(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1200 <unpack3_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1453 <unpack32_avx2+0x143>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x30(%rbp)
mov    -0x30(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    14d3 <unpack32_avx2+0x1c3>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x30(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1090 <unpack4_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    1499 <unpack32_avx2+0x189>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x34(%rbp)
mov    -0x34(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1519 <unpack32_avx2+0x209>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x34(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   10b0 <unpack5_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    14df <unpack32_avx2+0x1cf>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    155f <unpack32_avx2+0x24f>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x38(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   10a0 <unpack6_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1525 <unpack32_avx2+0x215>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x3c(%rbp)
mov    -0x3c(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    15a5 <unpack32_avx2+0x295>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x3c(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   11c0 <unpack7_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x3c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x3c(%rbp)
jmp    156b <unpack32_avx2+0x25b>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x40(%rbp)
mov    -0x40(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    15eb <unpack32_avx2+0x2db>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x40(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1180 <unpack8_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x40(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x40(%rbp)
jmp    15b1 <unpack32_avx2+0x2a1>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x44(%rbp)
mov    -0x44(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1631 <unpack32_avx2+0x321>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x44(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1040 <unpack9_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x44(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x44(%rbp)
jmp    15f7 <unpack32_avx2+0x2e7>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x48(%rbp)
mov    -0x48(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1677 <unpack32_avx2+0x367>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x48(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1130 <unpack10_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x48(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x48(%rbp)
jmp    163d <unpack32_avx2+0x32d>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    16bd <unpack32_avx2+0x3ad>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x4c(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   10d0 <unpack11_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x4c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4c(%rbp)
jmp    1683 <unpack32_avx2+0x373>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1703 <unpack32_avx2+0x3f3>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x50(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1140 <unpack12_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x50(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x50(%rbp)
jmp    16c9 <unpack32_avx2+0x3b9>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x54(%rbp)
mov    -0x54(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1749 <unpack32_avx2+0x439>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x54(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   10f0 <unpack13_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    170f <unpack32_avx2+0x3ff>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x58(%rbp)
mov    -0x58(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    178f <unpack32_avx2+0x47f>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x58(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1050 <unpack14_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
jmp    1755 <unpack32_avx2+0x445>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x5c(%rbp)
mov    -0x5c(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    17d5 <unpack32_avx2+0x4c5>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x5c(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   11e0 <unpack15_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x5c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x5c(%rbp)
jmp    179b <unpack32_avx2+0x48b>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x60(%rbp)
mov    -0x60(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    181b <unpack32_avx2+0x50b>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x60(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1070 <unpack16_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x60(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x60(%rbp)
jmp    17e1 <unpack32_avx2+0x4d1>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x64(%rbp)
mov    -0x64(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1861 <unpack32_avx2+0x551>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x64(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1030 <unpack17_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x64(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x64(%rbp)
jmp    1827 <unpack32_avx2+0x517>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x68(%rbp)
mov    -0x68(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    18a7 <unpack32_avx2+0x597>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x68(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1080 <unpack18_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x68(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x68(%rbp)
jmp    186d <unpack32_avx2+0x55d>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x6c(%rbp)
mov    -0x6c(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    18ed <unpack32_avx2+0x5dd>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x6c(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1230 <unpack19_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x6c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x6c(%rbp)
jmp    18b3 <unpack32_avx2+0x5a3>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x70(%rbp)
mov    -0x70(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1933 <unpack32_avx2+0x623>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x70(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1120 <unpack20_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x70(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x70(%rbp)
jmp    18f9 <unpack32_avx2+0x5e9>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x74(%rbp)
mov    -0x74(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1979 <unpack32_avx2+0x669>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x74(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1170 <unpack21_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x74(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x74(%rbp)
jmp    193f <unpack32_avx2+0x62f>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x78(%rbp)
mov    -0x78(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    19bf <unpack32_avx2+0x6af>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x78(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   11d0 <unpack22_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x78(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x78(%rbp)
jmp    1985 <unpack32_avx2+0x675>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x7c(%rbp)
mov    -0x7c(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1a05 <unpack32_avx2+0x6f5>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x7c(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   11a0 <unpack23_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x7c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x7c(%rbp)
jmp    19cb <unpack32_avx2+0x6bb>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x80(%rbp)
mov    -0x80(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1a4b <unpack32_avx2+0x73b>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x80(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1160 <unpack24_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x80(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x80(%rbp)
jmp    1a11 <unpack32_avx2+0x701>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x84(%rbp)
mov    -0x84(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1aa0 <unpack32_avx2+0x790>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x84(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1060 <unpack25_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x84(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x84(%rbp)
jmp    1a5a <unpack32_avx2+0x74a>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x88(%rbp)
mov    -0x88(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1af5 <unpack32_avx2+0x7e5>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x88(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   11f0 <unpack26_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x88(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x88(%rbp)
jmp    1aaf <unpack32_avx2+0x79f>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x8c(%rbp)
mov    -0x8c(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1b4a <unpack32_avx2+0x83a>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x8c(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1110 <unpack27_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x8c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8c(%rbp)
jmp    1b04 <unpack32_avx2+0x7f4>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x90(%rbp)
mov    -0x90(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1b9f <unpack32_avx2+0x88f>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x90(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   11b0 <unpack28_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x90(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x90(%rbp)
jmp    1b59 <unpack32_avx2+0x849>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x94(%rbp)
mov    -0x94(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1bf4 <unpack32_avx2+0x8e4>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x94(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1150 <unpack29_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x94(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x94(%rbp)
jmp    1bae <unpack32_avx2+0x89e>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x98(%rbp)
mov    -0x98(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1c49 <unpack32_avx2+0x939>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x98(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   10c0 <unpack30_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x98(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x98(%rbp)
jmp    1c03 <unpack32_avx2+0x8f3>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0x9c(%rbp)
mov    -0x9c(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1c9e <unpack32_avx2+0x98e>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0x9c(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   1190 <unpack31_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0x9c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x9c(%rbp)
jmp    1c58 <unpack32_avx2+0x948>
jmp    1cf8 <unpack32_avx2+0x9e8>
movl   $0x0,-0xa0(%rbp)
mov    -0xa0(%rbp),%eax
cmp    -0x1c(%rbp),%eax
jge    1cf3 <unpack32_avx2+0x9e3>
mov    -0x8(%rbp),%rdi
mov    -0x10(%rbp),%rsi
mov    -0xa0(%rbp),%eax
shl    $0x5,%eax
cltq
shl    $0x2,%rax
add    %rax,%rsi
call   10e0 <unpack32_32_avx2@plt>
mov    %rax,-0x8(%rbp)
mov    -0xa0(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xa0(%rbp)
jmp    1cad <unpack32_avx2+0x99d>
jmp    1cf8 <unpack32_avx2+0x9e8>
mov    -0x14(%rbp),%eax
add    $0xb0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<unpack32_avx2>:
push   %rbp
push   %r14
push   %rbx
lea    0x1f(%rdx),%r14d
test   %edx,%edx
cmovns %edx,%r14d
sar    $0x5,%r14d
cmp    $0x20,%ecx
ja     1925 <unpack32_avx2+0x615>
mov    %rsi,%rbx
mov    %rdi,%rax
mov    %ecx,%ecx
lea    0xcc6(%rip),%rsi
movslq (%rsi,%rcx,4),%rcx
add    %rsi,%rcx
jmp    *%rcx
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
nop
mov    %rax,%rdi
mov    %rbx,%rsi
call   1100 <unpack0_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1350 <unpack32_avx2+0x40>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1210 <unpack1_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1380 <unpack32_avx2+0x70>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1220 <unpack2_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    13b0 <unpack32_avx2+0xa0>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1200 <unpack3_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    13e0 <unpack32_avx2+0xd0>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1090 <unpack4_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1410 <unpack32_avx2+0x100>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   10b0 <unpack5_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1440 <unpack32_avx2+0x130>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   10a0 <unpack6_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1470 <unpack32_avx2+0x160>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   11c0 <unpack7_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    14a0 <unpack32_avx2+0x190>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1180 <unpack8_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    14d0 <unpack32_avx2+0x1c0>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1040 <unpack9_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1500 <unpack32_avx2+0x1f0>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1130 <unpack10_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1530 <unpack32_avx2+0x220>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   10d0 <unpack11_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1560 <unpack32_avx2+0x250>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1140 <unpack12_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1590 <unpack32_avx2+0x280>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   10f0 <unpack13_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    15c0 <unpack32_avx2+0x2b0>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1050 <unpack14_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    15f0 <unpack32_avx2+0x2e0>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   11e0 <unpack15_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1620 <unpack32_avx2+0x310>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1070 <unpack16_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1650 <unpack32_avx2+0x340>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1030 <unpack17_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1680 <unpack32_avx2+0x370>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1080 <unpack18_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    16b0 <unpack32_avx2+0x3a0>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1230 <unpack19_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    16e0 <unpack32_avx2+0x3d0>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1120 <unpack20_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1710 <unpack32_avx2+0x400>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1170 <unpack21_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1740 <unpack32_avx2+0x430>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   11d0 <unpack22_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1770 <unpack32_avx2+0x460>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   11a0 <unpack23_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    17a0 <unpack32_avx2+0x490>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1160 <unpack24_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    17d0 <unpack32_avx2+0x4c0>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1060 <unpack25_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1800 <unpack32_avx2+0x4f0>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1110 <unpack27_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1830 <unpack32_avx2+0x520>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   11b0 <unpack28_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1860 <unpack32_avx2+0x550>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
cs nopw 0x0(%rax,%rax,1)
mov    %rax,%rdi
mov    %rbx,%rsi
call   1150 <unpack29_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1890 <unpack32_avx2+0x580>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
nop
mov    %rax,%rdi
mov    %rbx,%rsi
call   10c0 <unpack30_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    18b0 <unpack32_avx2+0x5a0>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
nop
mov    %rax,%rdi
mov    %rbx,%rsi
call   1190 <unpack31_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    18d0 <unpack32_avx2+0x5c0>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
nop
mov    %rax,%rdi
mov    %rbx,%rsi
call   10e0 <unpack32_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    18f0 <unpack32_avx2+0x5e0>
jmp    1925 <unpack32_avx2+0x615>
cmp    $0x20,%edx
jl     1925 <unpack32_avx2+0x615>
mov    %r14d,%ebp
nop
mov    %rax,%rdi
mov    %rbx,%rsi
call   11f0 <unpack26_32_avx2@plt>
sub    $0xffffffffffffff80,%rbx
add    $0xffffffffffffffff,%rbp
jne    1910 <unpack32_avx2+0x600>
shl    $0x5,%r14d
mov    %r14d,%eax
pop    %rbx
pop    %r14
pop    %rbp
ret

LLVM IR (-O0):
define i32 @unpack32_avx2(i32* %0, i32* %1, i32 %2, i32 %3) {
%5 = alloca i32*
%6 = alloca i32*
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
%14 = alloca i32
%15 = alloca i32
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca i32
%21 = alloca i32
%22 = alloca i32
%23 = alloca i32
%24 = alloca i32
%25 = alloca i32
%26 = alloca i32
%27 = alloca i32
%28 = alloca i32
%29 = alloca i32
%30 = alloca i32
%31 = alloca i32
%32 = alloca i32
%33 = alloca i32
%34 = alloca i32
%35 = alloca i32
%36 = alloca i32
%37 = alloca i32
%38 = alloca i32
%39 = alloca i32
%40 = alloca i32
%41 = alloca i32
%42 = alloca i32
store i32* %0, i32** %5
store i32* %1, i32** %6
store i32 %2, i32* %7
store i32 %3, i32* %8
%43 = load i32, i32* %7
%44 = sdiv i32 %43, 32
%45 = mul nsw i32 %44, 32
store i32 %45, i32* %7
%46 = load i32, i32* %7
%47 = sdiv i32 %46, 32
store i32 %47, i32* %9
%48 = load i32, i32* %8
switch i32 %48, label %610 [
i32 0, label %49
i32 1, label %66
i32 2, label %83
i32 3, label %100
i32 4, label %117
i32 5, label %134
i32 6, label %151
i32 7, label %168
i32 8, label %185
i32 9, label %202
i32 10, label %219
i32 11, label %236
i32 12, label %253
i32 13, label %270
i32 14, label %287
i32 15, label %304
i32 16, label %321
i32 17, label %338
i32 18, label %355
i32 19, label %372
i32 20, label %389
i32 21, label %406
i32 22, label %423
i32 23, label %440
i32 24, label %457
i32 25, label %474
i32 26, label %491
i32 27, label %508
i32 28, label %525
i32 29, label %542
i32 30, label %559
i32 31, label %576
i32 32, label %593
]
49: ; preds = %4
store i32 0, i32* %10
br label %50
50: ; preds = %62, %49
%51 = load i32, i32* %10
%52 = load i32, i32* %9
%53 = icmp slt i32 %51, %52
br i1 %53, label %54, label %65
54: ; preds = %50
%55 = load i32*, i32** %5
%56 = load i32*, i32** %6
%57 = load i32, i32* %10
%58 = mul nsw i32 %57, 32
%59 = sext i32 %58 to i64
%60 = getelementptr inbounds i32, i32* %56, i64 %59
%61 = call i32* @unpack0_32_avx2(i32* %55, i32* %60)
store i32* %61, i32** %5
br label %62
62: ; preds = %54
%63 = load i32, i32* %10
%64 = add nsw i32 %63, 1
store i32 %64, i32* %10
br label %50
65: ; preds = %50
br label %610
66: ; preds = %4
store i32 0, i32* %11
br label %67
67: ; preds = %79, %66
%68 = load i32, i32* %11
%69 = load i32, i32* %9
%70 = icmp slt i32 %68, %69
br i1 %70, label %71, label %82
71: ; preds = %67
%72 = load i32*, i32** %5
%73 = load i32*, i32** %6
%74 = load i32, i32* %11
%75 = mul nsw i32 %74, 32
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds i32, i32* %73, i64 %76
%78 = call i32* @unpack1_32_avx2(i32* %72, i32* %77)
store i32* %78, i32** %5
br label %79
79: ; preds = %71
%80 = load i32, i32* %11
%81 = add nsw i32 %80, 1
store i32 %81, i32* %11
br label %67
82: ; preds = %67
br label %610
83: ; preds = %4
store i32 0, i32* %12
br label %84
84: ; preds = %96, %83
%85 = load i32, i32* %12
%86 = load i32, i32* %9
%87 = icmp slt i32 %85, %86
br i1 %87, label %88, label %99
88: ; preds = %84
%89 = load i32*, i32** %5
%90 = load i32*, i32** %6
%91 = load i32, i32* %12
%92 = mul nsw i32 %91, 32
%93 = sext i32 %92 to i64
%94 = getelementptr inbounds i32, i32* %90, i64 %93
%95 = call i32* @unpack2_32_avx2(i32* %89, i32* %94)
store i32* %95, i32** %5
br label %96
96: ; preds = %88
%97 = load i32, i32* %12
%98 = add nsw i32 %97, 1
store i32 %98, i32* %12
br label %84
99: ; preds = %84
br label %610
100: ; preds = %4
store i32 0, i32* %13
br label %101
101: ; preds = %113, %100
%102 = load i32, i32* %13
%103 = load i32, i32* %9
%104 = icmp slt i32 %102, %103
br i1 %104, label %105, label %116
105: ; preds = %101
%106 = load i32*, i32** %5
%107 = load i32*, i32** %6
%108 = load i32, i32* %13
%109 = mul nsw i32 %108, 32
%110 = sext i32 %109 to i64
%111 = getelementptr inbounds i32, i32* %107, i64 %110
%112 = call i32* @unpack3_32_avx2(i32* %106, i32* %111)
store i32* %112, i32** %5
br label %113
113: ; preds = %105
%114 = load i32, i32* %13
%115 = add nsw i32 %114, 1
store i32 %115, i32* %13
br label %101
116: ; preds = %101
br label %610
117: ; preds = %4
store i32 0, i32* %14
br label %118
118: ; preds = %130, %117
%119 = load i32, i32* %14
%120 = load i32, i32* %9
%121 = icmp slt i32 %119, %120
br i1 %121, label %122, label %133
122: ; preds = %118
%123 = load i32*, i32** %5
%124 = load i32*, i32** %6
%125 = load i32, i32* %14
%126 = mul nsw i32 %125, 32
%127 = sext i32 %126 to i64
%128 = getelementptr inbounds i32, i32* %124, i64 %127
%129 = call i32* @unpack4_32_avx2(i32* %123, i32* %128)
store i32* %129, i32** %5
br label %130
130: ; preds = %122
%131 = load i32, i32* %14
%132 = add nsw i32 %131, 1
store i32 %132, i32* %14
br label %118
133: ; preds = %118
br label %610
134: ; preds = %4
store i32 0, i32* %15
br label %135
135: ; preds = %147, %134
%136 = load i32, i32* %15
%137 = load i32, i32* %9
%138 = icmp slt i32 %136, %137
br i1 %138, label %139, label %150
139: ; preds = %135
%140 = load i32*, i32** %5
%141 = load i32*, i32** %6
%142 = load i32, i32* %15
%143 = mul nsw i32 %142, 32
%144 = sext i32 %143 to i64
%145 = getelementptr inbounds i32, i32* %141, i64 %144
%146 = call i32* @unpack5_32_avx2(i32* %140, i32* %145)
store i32* %146, i32** %5
br label %147
147: ; preds = %139
%148 = load i32, i32* %15
%149 = add nsw i32 %148, 1
store i32 %149, i32* %15
br label %135
150: ; preds = %135
br label %610
151: ; preds = %4
store i32 0, i32* %16
br label %152
152: ; preds = %164, %151
%153 = load i32, i32* %16
%154 = load i32, i32* %9
%155 = icmp slt i32 %153, %154
br i1 %155, label %156, label %167
156: ; preds = %152
%157 = load i32*, i32** %5
%158 = load i32*, i32** %6
%159 = load i32, i32* %16
%160 = mul nsw i32 %159, 32
%161 = sext i32 %160 to i64
%162 = getelementptr inbounds i32, i32* %158, i64 %161
%163 = call i32* @unpack6_32_avx2(i32* %157, i32* %162)
store i32* %163, i32** %5
br label %164
164: ; preds = %156
%165 = load i32, i32* %16
%166 = add nsw i32 %165, 1
store i32 %166, i32* %16
br label %152
167: ; preds = %152
br label %610
168: ; preds = %4
store i32 0, i32* %17
br label %169
169: ; preds = %181, %168
%170 = load i32, i32* %17
%171 = load i32, i32* %9
%172 = icmp slt i32 %170, %171
br i1 %172, label %173, label %184
173: ; preds = %169
%174 = load i32*, i32** %5
%175 = load i32*, i32** %6
%176 = load i32, i32* %17
%177 = mul nsw i32 %176, 32
%178 = sext i32 %177 to i64
%179 = getelementptr inbounds i32, i32* %175, i64 %178
%180 = call i32* @unpack7_32_avx2(i32* %174, i32* %179)
store i32* %180, i32** %5
br label %181
181: ; preds = %173
%182 = load i32, i32* %17
%183 = add nsw i32 %182, 1
store i32 %183, i32* %17
br label %169
184: ; preds = %169
br label %610
185: ; preds = %4
store i32 0, i32* %18
br label %186
186: ; preds = %198, %185
%187 = load i32, i32* %18
%188 = load i32, i32* %9
%189 = icmp slt i32 %187, %188
br i1 %189, label %190, label %201
190: ; preds = %186
%191 = load i32*, i32** %5
%192 = load i32*, i32** %6
%193 = load i32, i32* %18
%194 = mul nsw i32 %193, 32
%195 = sext i32 %194 to i64
%196 = getelementptr inbounds i32, i32* %192, i64 %195
%197 = call i32* @unpack8_32_avx2(i32* %191, i32* %196)
store i32* %197, i32** %5
br label %198
198: ; preds = %190
%199 = load i32, i32* %18
%200 = add nsw i32 %199, 1
store i32 %200, i32* %18
br label %186
201: ; preds = %186
br label %610
202: ; preds = %4
store i32 0, i32* %19
br label %203
203: ; preds = %215, %202
%204 = load i32, i32* %19
%205 = load i32, i32* %9
%206 = icmp slt i32 %204, %205
br i1 %206, label %207, label %218
207: ; preds = %203
%208 = load i32*, i32** %5
%209 = load i32*, i32** %6
%210 = load i32, i32* %19
%211 = mul nsw i32 %210, 32
%212 = sext i32 %211 to i64
%213 = getelementptr inbounds i32, i32* %209, i64 %212
%214 = call i32* @unpack9_32_avx2(i32* %208, i32* %213)
store i32* %214, i32** %5
br label %215
215: ; preds = %207
%216 = load i32, i32* %19
%217 = add nsw i32 %216, 1
store i32 %217, i32* %19
br label %203
218: ; preds = %203
br label %610
219: ; preds = %4
store i32 0, i32* %20
br label %220
220: ; preds = %232, %219
%221 = load i32, i32* %20
%222 = load i32, i32* %9
%223 = icmp slt i32 %221, %222
br i1 %223, label %224, label %235
224: ; preds = %220
%225 = load i32*, i32** %5
%226 = load i32*, i32** %6
%227 = load i32, i32* %20
%228 = mul nsw i32 %227, 32
%229 = sext i32 %228 to i64
%230 = getelementptr inbounds i32, i32* %226, i64 %229
%231 = call i32* @unpack10_32_avx2(i32* %225, i32* %230)
store i32* %231, i32** %5
br label %232
232: ; preds = %224
%233 = load i32, i32* %20
%234 = add nsw i32 %233, 1
store i32 %234, i32* %20
br label %220
235: ; preds = %220
br label %610
236: ; preds = %4
store i32 0, i32* %21
br label %237
237: ; preds = %249, %236
%238 = load i32, i32* %21
%239 = load i32, i32* %9
%240 = icmp slt i32 %238, %239
br i1 %240, label %241, label %252
241: ; preds = %237
%242 = load i32*, i32** %5
%243 = load i32*, i32** %6
%244 = load i32, i32* %21
%245 = mul nsw i32 %244, 32
%246 = sext i32 %245 to i64
%247 = getelementptr inbounds i32, i32* %243, i64 %246
%248 = call i32* @unpack11_32_avx2(i32* %242, i32* %247)
store i32* %248, i32** %5
br label %249
249: ; preds = %241
%250 = load i32, i32* %21
%251 = add nsw i32 %250, 1
store i32 %251, i32* %21
br label %237
252: ; preds = %237
br label %610
253: ; preds = %4
store i32 0, i32* %22
br label %254
254: ; preds = %266, %253
%255 = load i32, i32* %22
%256 = load i32, i32* %9
%257 = icmp slt i32 %255, %256
br i1 %257, label %258, label %269
258: ; preds = %254
%259 = load i32*, i32** %5
%260 = load i32*, i32** %6
%261 = load i32, i32* %22
%262 = mul nsw i32 %261, 32
%263 = sext i32 %262 to i64
%264 = getelementptr inbounds i32, i32* %260, i64 %263
%265 = call i32* @unpack12_32_avx2(i32* %259, i32* %264)
store i32* %265, i32** %5
br label %266
266: ; preds = %258
%267 = load i32, i32* %22
%268 = add nsw i32 %267, 1
store i32 %268, i32* %22
br label %254
269: ; preds = %254
br label %610
270: ; preds = %4
store i32 0, i32* %23
br label %271
271: ; preds = %283, %270
%272 = load i32, i32* %23
%273 = load i32, i32* %9
%274 = icmp slt i32 %272, %273
br i1 %274, label %275, label %286
275: ; preds = %271
%276 = load i32*, i32** %5
%277 = load i32*, i32** %6
%278 = load i32, i32* %23
%279 = mul nsw i32 %278, 32
%280 = sext i32 %279 to i64
%281 = getelementptr inbounds i32, i32* %277, i64 %280
%282 = call i32* @unpack13_32_avx2(i32* %276, i32* %281)
store i32* %282, i32** %5
br label %283
283: ; preds = %275
%284 = load i32, i32* %23
%285 = add nsw i32 %284, 1
store i32 %285, i32* %23
br label %271
286: ; preds = %271
br label %610
287: ; preds = %4
store i32 0, i32* %24
br label %288
288: ; preds = %300, %287
%289 = load i32, i32* %24
%290 = load i32, i32* %9
%291 = icmp slt i32 %289, %290
br i1 %291, label %292, label %303
292: ; preds = %288
%293 = load i32*, i32** %5
%294 = load i32*, i32** %6
%295 = load i32, i32* %24
%296 = mul nsw i32 %295, 32
%297 = sext i32 %296 to i64
%298 = getelementptr inbounds i32, i32* %294, i64 %297
%299 = call i32* @unpack14_32_avx2(i32* %293, i32* %298)
store i32* %299, i32** %5
br label %300
300: ; preds = %292
%301 = load i32, i32* %24
%302 = add nsw i32 %301, 1
store i32 %302, i32* %24
br label %288
303: ; preds = %288
br label %610
304: ; preds = %4
store i32 0, i32* %25
br label %305
305: ; preds = %317, %304
%306 = load i32, i32* %25
%307 = load i32, i32* %9
%308 = icmp slt i32 %306, %307
br i1 %308, label %309, label %320
309: ; preds = %305
%310 = load i32*, i32** %5
%311 = load i32*, i32** %6
%312 = load i32, i32* %25
%313 = mul nsw i32 %312, 32
%314 = sext i32 %313 to i64
%315 = getelementptr inbounds i32, i32* %311, i64 %314
%316 = call i32* @unpack15_32_avx2(i32* %310, i32* %315)
store i32* %316, i32** %5
br label %317
317: ; preds = %309
%318 = load i32, i32* %25
%319 = add nsw i32 %318, 1
store i32 %319, i32* %25
br label %305
320: ; preds = %305
br label %610
321: ; preds = %4
store i32 0, i32* %26
br label %322
322: ; preds = %334, %321
%323 = load i32, i32* %26
%324 = load i32, i32* %9
%325 = icmp slt i32 %323, %324
br i1 %325, label %326, label %337
326: ; preds = %322
%327 = load i32*, i32** %5
%328 = load i32*, i32** %6
%329 = load i32, i32* %26
%330 = mul nsw i32 %329, 32
%331 = sext i32 %330 to i64
%332 = getelementptr inbounds i32, i32* %328, i64 %331
%333 = call i32* @unpack16_32_avx2(i32* %327, i32* %332)
store i32* %333, i32** %5
br label %334
334: ; preds = %326
%335 = load i32, i32* %26
%336 = add nsw i32 %335, 1
store i32 %336, i32* %26
br label %322
337: ; preds = %322
br label %610
338: ; preds = %4
store i32 0, i32* %27
br label %339
339: ; preds = %351, %338
%340 = load i32, i32* %27
%341 = load i32, i32* %9
%342 = icmp slt i32 %340, %341
br i1 %342, label %343, label %354
343: ; preds = %339
%344 = load i32*, i32** %5
%345 = load i32*, i32** %6
%346 = load i32, i32* %27
%347 = mul nsw i32 %346, 32
%348 = sext i32 %347 to i64
%349 = getelementptr inbounds i32, i32* %345, i64 %348
%350 = call i32* @unpack17_32_avx2(i32* %344, i32* %349)
store i32* %350, i32** %5
br label %351
351: ; preds = %343
%352 = load i32, i32* %27
%353 = add nsw i32 %352, 1
store i32 %353, i32* %27
br label %339
354: ; preds = %339
br label %610
355: ; preds = %4
store i32 0, i32* %28
br label %356
356: ; preds = %368, %355
%357 = load i32, i32* %28
%358 = load i32, i32* %9
%359 = icmp slt i32 %357, %358
br i1 %359, label %360, label %371
360: ; preds = %356
%361 = load i32*, i32** %5
%362 = load i32*, i32** %6
%363 = load i32, i32* %28
%364 = mul nsw i32 %363, 32
%365 = sext i32 %364 to i64
%366 = getelementptr inbounds i32, i32* %362, i64 %365
%367 = call i32* @unpack18_32_avx2(i32* %361, i32* %366)
store i32* %367, i32** %5
br label %368
368: ; preds = %360
%369 = load i32, i32* %28
%370 = add nsw i32 %369, 1
store i32 %370, i32* %28
br label %356
371: ; preds = %356
br label %610
372: ; preds = %4
store i32 0, i32* %29
br label %373
373: ; preds = %385, %372
%374 = load i32, i32* %29
%375 = load i32, i32* %9
%376 = icmp slt i32 %374, %375
br i1 %376, label %377, label %388
377: ; preds = %373
%378 = load i32*, i32** %5
%379 = load i32*, i32** %6
%380 = load i32, i32* %29
%381 = mul nsw i32 %380, 32
%382 = sext i32 %381 to i64
%383 = getelementptr inbounds i32, i32* %379, i64 %382
%384 = call i32* @unpack19_32_avx2(i32* %378, i32* %383)
store i32* %384, i32** %5
br label %385
385: ; preds = %377
%386 = load i32, i32* %29
%387 = add nsw i32 %386, 1
store i32 %387, i32* %29
br label %373
388: ; preds = %373
br label %610
389: ; preds = %4
store i32 0, i32* %30
br label %390
390: ; preds = %402, %389
%391 = load i32, i32* %30
%392 = load i32, i32* %9
%393 = icmp slt i32 %391, %392
br i1 %393, label %394, label %405
394: ; preds = %390
%395 = load i32*, i32** %5
%396 = load i32*, i32** %6
%397 = load i32, i32* %30
%398 = mul nsw i32 %397, 32
%399 = sext i32 %398 to i64
%400 = getelementptr inbounds i32, i32* %396, i64 %399
%401 = call i32* @unpack20_32_avx2(i32* %395, i32* %400)
store i32* %401, i32** %5
br label %402
402: ; preds = %394
%403 = load i32, i32* %30
%404 = add nsw i32 %403, 1
store i32 %404, i32* %30
br label %390
405: ; preds = %390
br label %610
406: ; preds = %4
store i32 0, i32* %31
br label %407
407: ; preds = %419, %406
%408 = load i32, i32* %31
%409 = load i32, i32* %9
%410 = icmp slt i32 %408, %409
br i1 %410, label %411, label %422
411: ; preds = %407
%412 = load i32*, i32** %5
%413 = load i32*, i32** %6
%414 = load i32, i32* %31
%415 = mul nsw i32 %414, 32
%416 = sext i32 %415 to i64
%417 = getelementptr inbounds i32, i32* %413, i64 %416
%418 = call i32* @unpack21_32_avx2(i32* %412, i32* %417)
store i32* %418, i32** %5
br label %419
419: ; preds = %411
%420 = load i32, i32* %31
%421 = add nsw i32 %420, 1
store i32 %421, i32* %31
br label %407
422: ; preds = %407
br label %610
423: ; preds = %4
store i32 0, i32* %32
br label %424
424: ; preds = %436, %423
%425 = load i32, i32* %32
%426 = load i32, i32* %9
%427 = icmp slt i32 %425, %426
br i1 %427, label %428, label %439
428: ; preds = %424
%429 = load i32*, i32** %5
%430 = load i32*, i32** %6
%431 = load i32, i32* %32
%432 = mul nsw i32 %431, 32
%433 = sext i32 %432 to i64
%434 = getelementptr inbounds i32, i32* %430, i64 %433
%435 = call i32* @unpack22_32_avx2(i32* %429, i32* %434)
store i32* %435, i32** %5
br label %436
436: ; preds = %428
%437 = load i32, i32* %32
%438 = add nsw i32 %437, 1
store i32 %438, i32* %32
br label %424
439: ; preds = %424
br label %610
440: ; preds = %4
store i32 0, i32* %33
br label %441
441: ; preds = %453, %440
%442 = load i32, i32* %33
%443 = load i32, i32* %9
%444 = icmp slt i32 %442, %443
br i1 %444, label %445, label %456
445: ; preds = %441
%446 = load i32*, i32** %5
%447 = load i32*, i32** %6
%448 = load i32, i32* %33
%449 = mul nsw i32 %448, 32
%450 = sext i32 %449 to i64
%451 = getelementptr inbounds i32, i32* %447, i64 %450
%452 = call i32* @unpack23_32_avx2(i32* %446, i32* %451)
store i32* %452, i32** %5
br label %453
453: ; preds = %445
%454 = load i32, i32* %33
%455 = add nsw i32 %454, 1
store i32 %455, i32* %33
br label %441
456: ; preds = %441
br label %610
457: ; preds = %4
store i32 0, i32* %34
br label %458
458: ; preds = %470, %457
%459 = load i32, i32* %34
%460 = load i32, i32* %9
%461 = icmp slt i32 %459, %460
br i1 %461, label %462, label %473
462: ; preds = %458
%463 = load i32*, i32** %5
%464 = load i32*, i32** %6
%465 = load i32, i32* %34
%466 = mul nsw i32 %465, 32
%467 = sext i32 %466 to i64
%468 = getelementptr inbounds i32, i32* %464, i64 %467
%469 = call i32* @unpack24_32_avx2(i32* %463, i32* %468)
store i32* %469, i32** %5
br label %470
470: ; preds = %462
%471 = load i32, i32* %34
%472 = add nsw i32 %471, 1
store i32 %472, i32* %34
br label %458
473: ; preds = %458
br label %610
474: ; preds = %4
store i32 0, i32* %35
br label %475
475: ; preds = %487, %474
%476 = load i32, i32* %35
%477 = load i32, i32* %9
%478 = icmp slt i32 %476, %477
br i1 %478, label %479, label %490
479: ; preds = %475
%480 = load i32*, i32** %5
%481 = load i32*, i32** %6
%482 = load i32, i32* %35
%483 = mul nsw i32 %482, 32
%484 = sext i32 %483 to i64
%485 = getelementptr inbounds i32, i32* %481, i64 %484
%486 = call i32* @unpack25_32_avx2(i32* %480, i32* %485)
store i32* %486, i32** %5
br label %487
487: ; preds = %479
%488 = load i32, i32* %35
%489 = add nsw i32 %488, 1
store i32 %489, i32* %35
br label %475
490: ; preds = %475
br label %610
491: ; preds = %4
store i32 0, i32* %36
br label %492
492: ; preds = %504, %491
%493 = load i32, i32* %36
%494 = load i32, i32* %9
%495 = icmp slt i32 %493, %494
br i1 %495, label %496, label %507
496: ; preds = %492
%497 = load i32*, i32** %5
%498 = load i32*, i32** %6
%499 = load i32, i32* %36
%500 = mul nsw i32 %499, 32
%501 = sext i32 %500 to i64
%502 = getelementptr inbounds i32, i32* %498, i64 %501
%503 = call i32* @unpack26_32_avx2(i32* %497, i32* %502)
store i32* %503, i32** %5
br label %504
504: ; preds = %496
%505 = load i32, i32* %36
%506 = add nsw i32 %505, 1
store i32 %506, i32* %36
br label %492
507: ; preds = %492
br label %610
508: ; preds = %4
store i32 0, i32* %37
br label %509
509: ; preds = %521, %508
%510 = load i32, i32* %37
%511 = load i32, i32* %9
%512 = icmp slt i32 %510, %511
br i1 %512, label %513, label %524
513: ; preds = %509
%514 = load i32*, i32** %5
%515 = load i32*, i32** %6
%516 = load i32, i32* %37
%517 = mul nsw i32 %516, 32
%518 = sext i32 %517 to i64
%519 = getelementptr inbounds i32, i32* %515, i64 %518
%520 = call i32* @unpack27_32_avx2(i32* %514, i32* %519)
store i32* %520, i32** %5
br label %521
521: ; preds = %513
%522 = load i32, i32* %37
%523 = add nsw i32 %522, 1
store i32 %523, i32* %37
br label %509
524: ; preds = %509
br label %610
525: ; preds = %4
store i32 0, i32* %38
br label %526
526: ; preds = %538, %525
%527 = load i32, i32* %38
%528 = load i32, i32* %9
%529 = icmp slt i32 %527, %528
br i1 %529, label %530, label %541
530: ; preds = %526
%531 = load i32*, i32** %5
%532 = load i32*, i32** %6
%533 = load i32, i32* %38
%534 = mul nsw i32 %533, 32
%535 = sext i32 %534 to i64
%536 = getelementptr inbounds i32, i32* %532, i64 %535
%537 = call i32* @unpack28_32_avx2(i32* %531, i32* %536)
store i32* %537, i32** %5
br label %538
538: ; preds = %530
%539 = load i32, i32* %38
%540 = add nsw i32 %539, 1
store i32 %540, i32* %38
br label %526
541: ; preds = %526
br label %610
542: ; preds = %4
store i32 0, i32* %39
br label %543
543: ; preds = %555, %542
%544 = load i32, i32* %39
%545 = load i32, i32* %9
%546 = icmp slt i32 %544, %545
br i1 %546, label %547, label %558
547: ; preds = %543
%548 = load i32*, i32** %5
%549 = load i32*, i32** %6
%550 = load i32, i32* %39
%551 = mul nsw i32 %550, 32
%552 = sext i32 %551 to i64
%553 = getelementptr inbounds i32, i32* %549, i64 %552
%554 = call i32* @unpack29_32_avx2(i32* %548, i32* %553)
store i32* %554, i32** %5
br label %555
555: ; preds = %547
%556 = load i32, i32* %39
%557 = add nsw i32 %556, 1
store i32 %557, i32* %39
br label %543
558: ; preds = %543
br label %610
559: ; preds = %4
store i32 0, i32* %40
br label %560
560: ; preds = %572, %559
%561 = load i32, i32* %40
%562 = load i32, i32* %9
%563 = icmp slt i32 %561, %562
br i1 %563, label %564, label %575
564: ; preds = %560
%565 = load i32*, i32** %5
%566 = load i32*, i32** %6
%567 = load i32, i32* %40
%568 = mul nsw i32 %567, 32
%569 = sext i32 %568 to i64
%570 = getelementptr inbounds i32, i32* %566, i64 %569
%571 = call i32* @unpack30_32_avx2(i32* %565, i32* %570)
store i32* %571, i32** %5
br label %572
572: ; preds = %564
%573 = load i32, i32* %40
%574 = add nsw i32 %573, 1
store i32 %574, i32* %40
br label %560
575: ; preds = %560
br label %610
576: ; preds = %4
store i32 0, i32* %41
br label %577
577: ; preds = %589, %576
%578 = load i32, i32* %41
%579 = load i32, i32* %9
%580 = icmp slt i32 %578, %579
br i1 %580, label %581, label %592
581: ; preds = %577
%582 = load i32*, i32** %5
%583 = load i32*, i32** %6
%584 = load i32, i32* %41
%585 = mul nsw i32 %584, 32
%586 = sext i32 %585 to i64
%587 = getelementptr inbounds i32, i32* %583, i64 %586
%588 = call i32* @unpack31_32_avx2(i32* %582, i32* %587)
store i32* %588, i32** %5
br label %589
589: ; preds = %581
%590 = load i32, i32* %41
%591 = add nsw i32 %590, 1
store i32 %591, i32* %41
br label %577
592: ; preds = %577
br label %610
593: ; preds = %4
store i32 0, i32* %42
br label %594
594: ; preds = %606, %593
%595 = load i32, i32* %42
%596 = load i32, i32* %9
%597 = icmp slt i32 %595, %596
br i1 %597, label %598, label %609
598: ; preds = %594
%599 = load i32*, i32** %5
%600 = load i32*, i32** %6
%601 = load i32, i32* %42
%602 = mul nsw i32 %601, 32
%603 = sext i32 %602 to i64
%604 = getelementptr inbounds i32, i32* %600, i64 %603
%605 = call i32* @unpack32_32_avx2(i32* %599, i32* %604)
store i32* %605, i32** %5
br label %606
606: ; preds = %598
%607 = load i32, i32* %42
%608 = add nsw i32 %607, 1
store i32 %608, i32* %42
br label %594
609: ; preds = %594
br label %610
610: ; preds = %4, %609, %592, %575, %558, %541, %524, %507, %490, %473, %456, %439, %422, %405, %388, %371, %354, %337, %320, %303, %286, %269, %252, %235, %218, %201, %184, %167, %150, %133, %116, %99, %82, %65
%611 = load i32, i32* %7
ret i32 %611
}

LLVM IR (-O2):
define i32 @unpack32_avx2(i32* %0, i32* %1, i32 %2, i32 %3) {
%5 = sdiv i32 %2, 32
switch i32 %3, label %402 [
i32 0, label %134
i32 1, label %130
i32 2, label %126
i32 3, label %122
i32 4, label %118
i32 5, label %114
i32 6, label %110
i32 7, label %106
i32 8, label %102
i32 9, label %98
i32 10, label %94
i32 11, label %90
i32 12, label %86
i32 13, label %82
i32 14, label %78
i32 15, label %74
i32 16, label %70
i32 17, label %66
i32 18, label %62
i32 19, label %58
i32 20, label %54
i32 21, label %50
i32 22, label %46
i32 23, label %42
i32 24, label %38
i32 25, label %34
i32 26, label %30
i32 27, label %26
i32 28, label %22
i32 29, label %18
i32 30, label %14
i32 31, label %10
i32 32, label %6
]
6: ; preds = %4
%7 = icmp sgt i32 %2, 31
br i1 %7, label %8, label %402
8: ; preds = %6
%9 = zext i32 %5 to i64
br label %394
10: ; preds = %4
%11 = icmp sgt i32 %2, 31
br i1 %11, label %12, label %402
12: ; preds = %10
%13 = zext i32 %5 to i64
br label %386
14: ; preds = %4
%15 = icmp sgt i32 %2, 31
br i1 %15, label %16, label %402
16: ; preds = %14
%17 = zext i32 %5 to i64
br label %378
18: ; preds = %4
%19 = icmp sgt i32 %2, 31
br i1 %19, label %20, label %402
20: ; preds = %18
%21 = zext i32 %5 to i64
br label %370
22: ; preds = %4
%23 = icmp sgt i32 %2, 31
br i1 %23, label %24, label %402
24: ; preds = %22
%25 = zext i32 %5 to i64
br label %362
26: ; preds = %4
%27 = icmp sgt i32 %2, 31
br i1 %27, label %28, label %402
28: ; preds = %26
%29 = zext i32 %5 to i64
br label %354
30: ; preds = %4
%31 = icmp sgt i32 %2, 31
br i1 %31, label %32, label %402
32: ; preds = %30
%33 = zext i32 %5 to i64
br label %346
34: ; preds = %4
%35 = icmp sgt i32 %2, 31
br i1 %35, label %36, label %402
36: ; preds = %34
%37 = zext i32 %5 to i64
br label %338
38: ; preds = %4
%39 = icmp sgt i32 %2, 31
br i1 %39, label %40, label %402
40: ; preds = %38
%41 = zext i32 %5 to i64
br label %330
42: ; preds = %4
%43 = icmp sgt i32 %2, 31
br i1 %43, label %44, label %402
44: ; preds = %42
%45 = zext i32 %5 to i64
br label %322
46: ; preds = %4
%47 = icmp sgt i32 %2, 31
br i1 %47, label %48, label %402
48: ; preds = %46
%49 = zext i32 %5 to i64
br label %314
50: ; preds = %4
%51 = icmp sgt i32 %2, 31
br i1 %51, label %52, label %402
52: ; preds = %50
%53 = zext i32 %5 to i64
br label %306
54: ; preds = %4
%55 = icmp sgt i32 %2, 31
br i1 %55, label %56, label %402
56: ; preds = %54
%57 = zext i32 %5 to i64
br label %298
58: ; preds = %4
%59 = icmp sgt i32 %2, 31
br i1 %59, label %60, label %402
60: ; preds = %58
%61 = zext i32 %5 to i64
br label %290
62: ; preds = %4
%63 = icmp sgt i32 %2, 31
br i1 %63, label %64, label %402
64: ; preds = %62
%65 = zext i32 %5 to i64
br label %282
66: ; preds = %4
%67 = icmp sgt i32 %2, 31
br i1 %67, label %68, label %402
68: ; preds = %66
%69 = zext i32 %5 to i64
br label %274
70: ; preds = %4
%71 = icmp sgt i32 %2, 31
br i1 %71, label %72, label %402
72: ; preds = %70
%73 = zext i32 %5 to i64
br label %266
74: ; preds = %4
%75 = icmp sgt i32 %2, 31
br i1 %75, label %76, label %402
76: ; preds = %74
%77 = zext i32 %5 to i64
br label %258
78: ; preds = %4
%79 = icmp sgt i32 %2, 31
br i1 %79, label %80, label %402
80: ; preds = %78
%81 = zext i32 %5 to i64
br label %250
82: ; preds = %4
%83 = icmp sgt i32 %2, 31
br i1 %83, label %84, label %402
84: ; preds = %82
%85 = zext i32 %5 to i64
br label %242
86: ; preds = %4
%87 = icmp sgt i32 %2, 31
br i1 %87, label %88, label %402
88: ; preds = %86
%89 = zext i32 %5 to i64
br label %234
90: ; preds = %4
%91 = icmp sgt i32 %2, 31
br i1 %91, label %92, label %402
92: ; preds = %90
%93 = zext i32 %5 to i64
br label %226
94: ; preds = %4
%95 = icmp sgt i32 %2, 31
br i1 %95, label %96, label %402
96: ; preds = %94
%97 = zext i32 %5 to i64
br label %218
98: ; preds = %4
%99 = icmp sgt i32 %2, 31
br i1 %99, label %100, label %402
100: ; preds = %98
%101 = zext i32 %5 to i64
br label %210
102: ; preds = %4
%103 = icmp sgt i32 %2, 31
br i1 %103, label %104, label %402
104: ; preds = %102
%105 = zext i32 %5 to i64
br label %202
106: ; preds = %4
%107 = icmp sgt i32 %2, 31
br i1 %107, label %108, label %402
108: ; preds = %106
%109 = zext i32 %5 to i64
br label %194
110: ; preds = %4
%111 = icmp sgt i32 %2, 31
br i1 %111, label %112, label %402
112: ; preds = %110
%113 = zext i32 %5 to i64
br label %186
114: ; preds = %4
%115 = icmp sgt i32 %2, 31
br i1 %115, label %116, label %402
116: ; preds = %114
%117 = zext i32 %5 to i64
br label %178
118: ; preds = %4
%119 = icmp sgt i32 %2, 31
br i1 %119, label %120, label %402
120: ; preds = %118
%121 = zext i32 %5 to i64
br label %170
122: ; preds = %4
%123 = icmp sgt i32 %2, 31
br i1 %123, label %124, label %402
124: ; preds = %122
%125 = zext i32 %5 to i64
br label %162
126: ; preds = %4
%127 = icmp sgt i32 %2, 31
br i1 %127, label %128, label %402
128: ; preds = %126
%129 = zext i32 %5 to i64
br label %154
130: ; preds = %4
%131 = icmp sgt i32 %2, 31
br i1 %131, label %132, label %402
132: ; preds = %130
%133 = zext i32 %5 to i64
br label %146
134: ; preds = %4
%135 = icmp sgt i32 %2, 31
br i1 %135, label %136, label %402
136: ; preds = %134
%137 = zext i32 %5 to i64
br label %138
138: ; preds = %136, %138
%139 = phi i64 [ 0, %136 ], [ %144, %138 ]
%140 = phi i32* [ %0, %136 ], [ %143, %138 ]
%141 = shl nsw i64 %139, 5
%142 = getelementptr inbounds i32, i32* %1, i64 %141
%143 = tail call i32* @unpack0_32_avx2(i32* %140, i32* %142)
%144 = add nuw nsw i64 %139, 1
%145 = icmp eq i64 %144, %137
br i1 %145, label %402, label %138
146: ; preds = %132, %146
%147 = phi i64 [ 0, %132 ], [ %152, %146 ]
%148 = phi i32* [ %0, %132 ], [ %151, %146 ]
%149 = shl nsw i64 %147, 5
%150 = getelementptr inbounds i32, i32* %1, i64 %149
%151 = tail call i32* @unpack1_32_avx2(i32* %148, i32* %150)
%152 = add nuw nsw i64 %147, 1
%153 = icmp eq i64 %152, %133
br i1 %153, label %402, label %146
154: ; preds = %128, %154
%155 = phi i64 [ 0, %128 ], [ %160, %154 ]
%156 = phi i32* [ %0, %128 ], [ %159, %154 ]
%157 = shl nsw i64 %155, 5
%158 = getelementptr inbounds i32, i32* %1, i64 %157
%159 = tail call i32* @unpack2_32_avx2(i32* %156, i32* %158)
%160 = add nuw nsw i64 %155, 1
%161 = icmp eq i64 %160, %129
br i1 %161, label %402, label %154
162: ; preds = %124, %162
%163 = phi i64 [ 0, %124 ], [ %168, %162 ]
%164 = phi i32* [ %0, %124 ], [ %167, %162 ]
%165 = shl nsw i64 %163, 5
%166 = getelementptr inbounds i32, i32* %1, i64 %165
%167 = tail call i32* @unpack3_32_avx2(i32* %164, i32* %166)
%168 = add nuw nsw i64 %163, 1
%169 = icmp eq i64 %168, %125
br i1 %169, label %402, label %162
170: ; preds = %120, %170
%171 = phi i64 [ 0, %120 ], [ %176, %170 ]
%172 = phi i32* [ %0, %120 ], [ %175, %170 ]
%173 = shl nsw i64 %171, 5
%174 = getelementptr inbounds i32, i32* %1, i64 %173
%175 = tail call i32* @unpack4_32_avx2(i32* %172, i32* %174)
%176 = add nuw nsw i64 %171, 1
%177 = icmp eq i64 %176, %121
br i1 %177, label %402, label %170
178: ; preds = %116, %178
%179 = phi i64 [ 0, %116 ], [ %184, %178 ]
%180 = phi i32* [ %0, %116 ], [ %183, %178 ]
%181 = shl nsw i64 %179, 5
%182 = getelementptr inbounds i32, i32* %1, i64 %181
%183 = tail call i32* @unpack5_32_avx2(i32* %180, i32* %182)
%184 = add nuw nsw i64 %179, 1
%185 = icmp eq i64 %184, %117
br i1 %185, label %402, label %178
186: ; preds = %112, %186
%187 = phi i64 [ 0, %112 ], [ %192, %186 ]
%188 = phi i32* [ %0, %112 ], [ %191, %186 ]
%189 = shl nsw i64 %187, 5
%190 = getelementptr inbounds i32, i32* %1, i64 %189
%191 = tail call i32* @unpack6_32_avx2(i32* %188, i32* %190)
%192 = add nuw nsw i64 %187, 1
%193 = icmp eq i64 %192, %113
br i1 %193, label %402, label %186
194: ; preds = %108, %194
%195 = phi i64 [ 0, %108 ], [ %200, %194 ]
%196 = phi i32* [ %0, %108 ], [ %199, %194 ]
%197 = shl nsw i64 %195, 5
%198 = getelementptr inbounds i32, i32* %1, i64 %197
%199 = tail call i32* @unpack7_32_avx2(i32* %196, i32* %198)
%200 = add nuw nsw i64 %195, 1
%201 = icmp eq i64 %200, %109
br i1 %201, label %402, label %194
202: ; preds = %104, %202
%203 = phi i64 [ 0, %104 ], [ %208, %202 ]
%204 = phi i32* [ %0, %104 ], [ %207, %202 ]
%205 = shl nsw i64 %203, 5
%206 = getelementptr inbounds i32, i32* %1, i64 %205
%207 = tail call i32* @unpack8_32_avx2(i32* %204, i32* %206)
%208 = add nuw nsw i64 %203, 1
%209 = icmp eq i64 %208, %105
br i1 %209, label %402, label %202
210: ; preds = %100, %210
%211 = phi i64 [ 0, %100 ], [ %216, %210 ]
%212 = phi i32* [ %0, %100 ], [ %215, %210 ]
%213 = shl nsw i64 %211, 5
%214 = getelementptr inbounds i32, i32* %1, i64 %213
%215 = tail call i32* @unpack9_32_avx2(i32* %212, i32* %214)
%216 = add nuw nsw i64 %211, 1
%217 = icmp eq i64 %216, %101
br i1 %217, label %402, label %210
218: ; preds = %96, %218
%219 = phi i64 [ 0, %96 ], [ %224, %218 ]
%220 = phi i32* [ %0, %96 ], [ %223, %218 ]
%221 = shl nsw i64 %219, 5
%222 = getelementptr inbounds i32, i32* %1, i64 %221
%223 = tail call i32* @unpack10_32_avx2(i32* %220, i32* %222)
%224 = add nuw nsw i64 %219, 1
%225 = icmp eq i64 %224, %97
br i1 %225, label %402, label %218
226: ; preds = %92, %226
%227 = phi i64 [ 0, %92 ], [ %232, %226 ]
%228 = phi i32* [ %0, %92 ], [ %231, %226 ]
%229 = shl nsw i64 %227, 5
%230 = getelementptr inbounds i32, i32* %1, i64 %229
%231 = tail call i32* @unpack11_32_avx2(i32* %228, i32* %230)
%232 = add nuw nsw i64 %227, 1
%233 = icmp eq i64 %232, %93
br i1 %233, label %402, label %226
234: ; preds = %88, %234
%235 = phi i64 [ 0, %88 ], [ %240, %234 ]
%236 = phi i32* [ %0, %88 ], [ %239, %234 ]
%237 = shl nsw i64 %235, 5
%238 = getelementptr inbounds i32, i32* %1, i64 %237
%239 = tail call i32* @unpack12_32_avx2(i32* %236, i32* %238)
%240 = add nuw nsw i64 %235, 1
%241 = icmp eq i64 %240, %89
br i1 %241, label %402, label %234
242: ; preds = %84, %242
%243 = phi i64 [ 0, %84 ], [ %248, %242 ]
%244 = phi i32* [ %0, %84 ], [ %247, %242 ]
%245 = shl nsw i64 %243, 5
%246 = getelementptr inbounds i32, i32* %1, i64 %245
%247 = tail call i32* @unpack13_32_avx2(i32* %244, i32* %246)
%248 = add nuw nsw i64 %243, 1
%249 = icmp eq i64 %248, %85
br i1 %249, label %402, label %242
250: ; preds = %80, %250
%251 = phi i64 [ 0, %80 ], [ %256, %250 ]
%252 = phi i32* [ %0, %80 ], [ %255, %250 ]
%253 = shl nsw i64 %251, 5
%254 = getelementptr inbounds i32, i32* %1, i64 %253
%255 = tail call i32* @unpack14_32_avx2(i32* %252, i32* %254)
%256 = add nuw nsw i64 %251, 1
%257 = icmp eq i64 %256, %81
br i1 %257, label %402, label %250
258: ; preds = %76, %258
%259 = phi i64 [ 0, %76 ], [ %264, %258 ]
%260 = phi i32* [ %0, %76 ], [ %263, %258 ]
%261 = shl nsw i64 %259, 5
%262 = getelementptr inbounds i32, i32* %1, i64 %261
%263 = tail call i32* @unpack15_32_avx2(i32* %260, i32* %262)
%264 = add nuw nsw i64 %259, 1
%265 = icmp eq i64 %264, %77
br i1 %265, label %402, label %258
266: ; preds = %72, %266
%267 = phi i64 [ 0, %72 ], [ %272, %266 ]
%268 = phi i32* [ %0, %72 ], [ %271, %266 ]
%269 = shl nsw i64 %267, 5
%270 = getelementptr inbounds i32, i32* %1, i64 %269
%271 = tail call i32* @unpack16_32_avx2(i32* %268, i32* %270)
%272 = add nuw nsw i64 %267, 1
%273 = icmp eq i64 %272, %73
br i1 %273, label %402, label %266
274: ; preds = %68, %274
%275 = phi i64 [ 0, %68 ], [ %280, %274 ]
%276 = phi i32* [ %0, %68 ], [ %279, %274 ]
%277 = shl nsw i64 %275, 5
%278 = getelementptr inbounds i32, i32* %1, i64 %277
%279 = tail call i32* @unpack17_32_avx2(i32* %276, i32* %278)
%280 = add nuw nsw i64 %275, 1
%281 = icmp eq i64 %280, %69
br i1 %281, label %402, label %274
282: ; preds = %64, %282
%283 = phi i64 [ 0, %64 ], [ %288, %282 ]
%284 = phi i32* [ %0, %64 ], [ %287, %282 ]
%285 = shl nsw i64 %283, 5
%286 = getelementptr inbounds i32, i32* %1, i64 %285
%287 = tail call i32* @unpack18_32_avx2(i32* %284, i32* %286)
%288 = add nuw nsw i64 %283, 1
%289 = icmp eq i64 %288, %65
br i1 %289, label %402, label %282
290: ; preds = %60, %290
%291 = phi i64 [ 0, %60 ], [ %296, %290 ]
%292 = phi i32* [ %0, %60 ], [ %295, %290 ]
%293 = shl nsw i64 %291, 5
%294 = getelementptr inbounds i32, i32* %1, i64 %293
%295 = tail call i32* @unpack19_32_avx2(i32* %292, i32* %294)
%296 = add nuw nsw i64 %291, 1
%297 = icmp eq i64 %296, %61
br i1 %297, label %402, label %290
298: ; preds = %56, %298
%299 = phi i64 [ 0, %56 ], [ %304, %298 ]
%300 = phi i32* [ %0, %56 ], [ %303, %298 ]
%301 = shl nsw i64 %299, 5
%302 = getelementptr inbounds i32, i32* %1, i64 %301
%303 = tail call i32* @unpack20_32_avx2(i32* %300, i32* %302)
%304 = add nuw nsw i64 %299, 1
%305 = icmp eq i64 %304, %57
br i1 %305, label %402, label %298
306: ; preds = %52, %306
%307 = phi i64 [ 0, %52 ], [ %312, %306 ]
%308 = phi i32* [ %0, %52 ], [ %311, %306 ]
%309 = shl nsw i64 %307, 5
%310 = getelementptr inbounds i32, i32* %1, i64 %309
%311 = tail call i32* @unpack21_32_avx2(i32* %308, i32* %310)
%312 = add nuw nsw i64 %307, 1
%313 = icmp eq i64 %312, %53
br i1 %313, label %402, label %306
314: ; preds = %48, %314
%315 = phi i64 [ 0, %48 ], [ %320, %314 ]
%316 = phi i32* [ %0, %48 ], [ %319, %314 ]
%317 = shl nsw i64 %315, 5
%318 = getelementptr inbounds i32, i32* %1, i64 %317
%319 = tail call i32* @unpack22_32_avx2(i32* %316, i32* %318)
%320 = add nuw nsw i64 %315, 1
%321 = icmp eq i64 %320, %49
br i1 %321, label %402, label %314
322: ; preds = %44, %322
%323 = phi i64 [ 0, %44 ], [ %328, %322 ]
%324 = phi i32* [ %0, %44 ], [ %327, %322 ]
%325 = shl nsw i64 %323, 5
%326 = getelementptr inbounds i32, i32* %1, i64 %325
%327 = tail call i32* @unpack23_32_avx2(i32* %324, i32* %326)
%328 = add nuw nsw i64 %323, 1
%329 = icmp eq i64 %328, %45
br i1 %329, label %402, label %322
330: ; preds = %40, %330
%331 = phi i64 [ 0, %40 ], [ %336, %330 ]
%332 = phi i32* [ %0, %40 ], [ %335, %330 ]
%333 = shl nsw i64 %331, 5
%334 = getelementptr inbounds i32, i32* %1, i64 %333
%335 = tail call i32* @unpack24_32_avx2(i32* %332, i32* %334)
%336 = add nuw nsw i64 %331, 1
%337 = icmp eq i64 %336, %41
br i1 %337, label %402, label %330
338: ; preds = %36, %338
%339 = phi i64 [ 0, %36 ], [ %344, %338 ]
%340 = phi i32* [ %0, %36 ], [ %343, %338 ]
%341 = shl nsw i64 %339, 5
%342 = getelementptr inbounds i32, i32* %1, i64 %341
%343 = tail call i32* @unpack25_32_avx2(i32* %340, i32* %342)
%344 = add nuw nsw i64 %339, 1
%345 = icmp eq i64 %344, %37
br i1 %345, label %402, label %338
346: ; preds = %32, %346
%347 = phi i64 [ 0, %32 ], [ %352, %346 ]
%348 = phi i32* [ %0, %32 ], [ %351, %346 ]
%349 = shl nsw i64 %347, 5
%350 = getelementptr inbounds i32, i32* %1, i64 %349
%351 = tail call i32* @unpack26_32_avx2(i32* %348, i32* %350)
%352 = add nuw nsw i64 %347, 1
%353 = icmp eq i64 %352, %33
br i1 %353, label %402, label %346
354: ; preds = %28, %354
%355 = phi i64 [ 0, %28 ], [ %360, %354 ]
%356 = phi i32* [ %0, %28 ], [ %359, %354 ]
%357 = shl nsw i64 %355, 5
%358 = getelementptr inbounds i32, i32* %1, i64 %357
%359 = tail call i32* @unpack27_32_avx2(i32* %356, i32* %358)
%360 = add nuw nsw i64 %355, 1
%361 = icmp eq i64 %360, %29
br i1 %361, label %402, label %354
362: ; preds = %24, %362
%363 = phi i64 [ 0, %24 ], [ %368, %362 ]
%364 = phi i32* [ %0, %24 ], [ %367, %362 ]
%365 = shl nsw i64 %363, 5
%366 = getelementptr inbounds i32, i32* %1, i64 %365
%367 = tail call i32* @unpack28_32_avx2(i32* %364, i32* %366)
%368 = add nuw nsw i64 %363, 1
%369 = icmp eq i64 %368, %25
br i1 %369, label %402, label %362
370: ; preds = %20, %370
%371 = phi i64 [ 0, %20 ], [ %376, %370 ]
%372 = phi i32* [ %0, %20 ], [ %375, %370 ]
%373 = shl nsw i64 %371, 5
%374 = getelementptr inbounds i32, i32* %1, i64 %373
%375 = tail call i32* @unpack29_32_avx2(i32* %372, i32* %374)
%376 = add nuw nsw i64 %371, 1
%377 = icmp eq i64 %376, %21
br i1 %377, label %402, label %370
378: ; preds = %16, %378
%379 = phi i64 [ 0, %16 ], [ %384, %378 ]
%380 = phi i32* [ %0, %16 ], [ %383, %378 ]
%381 = shl nsw i64 %379, 5
%382 = getelementptr inbounds i32, i32* %1, i64 %381
%383 = tail call i32* @unpack30_32_avx2(i32* %380, i32* %382)
%384 = add nuw nsw i64 %379, 1
%385 = icmp eq i64 %384, %17
br i1 %385, label %402, label %378
386: ; preds = %12, %386
%387 = phi i64 [ 0, %12 ], [ %392, %386 ]
%388 = phi i32* [ %0, %12 ], [ %391, %386 ]
%389 = shl nsw i64 %387, 5
%390 = getelementptr inbounds i32, i32* %1, i64 %389
%391 = tail call i32* @unpack31_32_avx2(i32* %388, i32* %390)
%392 = add nuw nsw i64 %387, 1
%393 = icmp eq i64 %392, %13
br i1 %393, label %402, label %386
394: ; preds = %8, %394
%395 = phi i64 [ 0, %8 ], [ %400, %394 ]
%396 = phi i32* [ %0, %8 ], [ %399, %394 ]
%397 = shl nsw i64 %395, 5
%398 = getelementptr inbounds i32, i32* %1, i64 %397
%399 = tail call i32* @unpack32_32_avx2(i32* %396, i32* %398)
%400 = add nuw nsw i64 %395, 1
%401 = icmp eq i64 %400, %9
br i1 %401, label %402, label %394
402: ; preds = %394, %386, %378, %370, %362, %354, %346, %338, %330, %322, %314, %306, %298, %290, %282, %274, %266, %258, %250, %242, %234, %226, %218, %210, %202, %194, %186, %178, %170, %162, %154, %146, %138, %6, %10, %14, %18, %22, %26, %30, %34, %38, %42, %46, %50, %54, %58, %62, %66, %70, %74, %78, %82, %86, %90, %94, %98, %102, %106, %110, %114, %118, %122, %126, %130, %134, %4
%403 = shl nsw i32 %5, 5
ret i32 %403
}