// File: /workspace/github_c_makefile_star2_O2/nh13[P]ksw/src/parasail/src/nw_stats_scan_avx2_256_16.c
// Function: arr_store_col
static inline void arr_store_col(
        int *col,
        __m256i vH,
        int32_t t,
        int32_t seglen)
{
    col[ 0*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH,  0);
    col[ 1*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH,  1);
    col[ 2*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH,  2);
    col[ 3*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH,  3);
    col[ 4*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH,  4);
    col[ 5*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH,  5);
    col[ 6*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH,  6);
    col[ 7*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH,  7);
    col[ 8*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH,  8);
    col[ 9*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH,  9);
    col[10*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH, 10);
    col[11*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH, 11);
    col[12*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH, 12);
    col[13*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH, 13);
    col[14*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH, 14);
    col[15*seglen+t] = (int16_t)_mm256_extract_epi16_rpl(vH, 15);
}

// Assembly:
vmovd %xmm0, %eax
movswl %ax, %ecx
movslq %esi, %rax
vpextrw $0x1, %xmm0, %esi
movl %ecx, (%rdi,%rax,4)
movswl %si, %ecx
leal (%rdx,%rax), %esi
movslq %esi, %rsi
movl %ecx, (%rdi,%rsi,4)
vpextrw $0x2, %xmm0, %ecx
movswl %cx, %ecx
leal (%rax,%rdx,2), %esi
movslq %esi, %rsi
vpextrw $0x3, %xmm0, %r8d
movl %ecx, (%rdi,%rsi,4)
movswl %r8w, %ecx
leal (%rdx,%rdx,2), %esi
addl %eax, %esi
movslq %esi, %rsi
movl %ecx, (%rdi,%rsi,4)
vpextrw $0x4, %xmm0, %ecx
movswl %cx, %ecx
leal (%rax,%rdx,4), %esi
movslq %esi, %rsi
movl %ecx, (%rdi,%rsi,4)
vpextrw $0x5, %xmm0, %ecx
movswl %cx, %ecx
leal (%rdx,%rdx,4), %esi
addl %eax, %esi
movslq %esi, %rsi
vpextrw $0x6, %xmm0, %r8d
movl %ecx, (%rdi,%rsi,4)
movswl %r8w, %ecx
imull $0x6, %edx, %esi
addl %eax, %esi
movslq %esi, %rsi
movl %ecx, (%rdi,%rsi,4)
vpextrw $0x7, %xmm0, %ecx
movswl %cx, %ecx
imull $0x7, %edx, %esi
addl %eax, %esi
movslq %esi, %rsi
movl %ecx, (%rdi,%rsi,4)
vextracti128 $0x1, %ymm0, %xmm0
vmovd %xmm0, %ecx
movswl %cx, %ecx
leal (%rax,%rdx,8), %esi
movslq %esi, %rsi
vpextrw $0x1, %xmm0, %r8d
movl %ecx, (%rdi,%rsi,4)
movswl %r8w, %ecx
leal (%rdx,%rdx,8), %esi
addl %eax, %esi
movslq %esi, %rsi
movl %ecx, (%rdi,%rsi,4)
vpextrw $0x2, %xmm0, %ecx
movswl %cx, %ecx
imull $0xa, %edx, %esi
addl %eax, %esi
movslq %esi, %rsi
movl %ecx, (%rdi,%rsi,4)
vpextrw $0x3, %xmm0, %ecx
movswl %cx, %ecx
imull $0xb, %edx, %esi
addl %eax, %esi
movslq %esi, %rsi
movl %ecx, (%rdi,%rsi,4)
vpextrw $0x4, %xmm0, %ecx
movswl %cx, %ecx
imull $0xc, %edx, %esi
addl %eax, %esi
movslq %esi, %rsi
vpextrw $0x5, %xmm0, %r8d
movl %ecx, (%rdi,%rsi,4)
movswl %r8w, %ecx
imull $0xd, %edx, %esi
addl %eax, %esi
movslq %esi, %rsi
movl %ecx, (%rdi,%rsi,4)
vpextrw $0x6, %xmm0, %ecx
movswl %cx, %ecx
imull $0xe, %edx, %esi
addl %eax, %esi
movslq %esi, %rsi
movl %ecx, (%rdi,%rsi,4)
vpextrw $0x7, %xmm0, %ecx
movswl %cx, %ecx
imull $0xf, %edx, %edx
addl %eax, %edx
movslq %edx, %rax
movl %ecx, (%rdi,%rax,4)
vzeroupper
retq
nopl (%rax)