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

// Assembly:
vmovd %xmm0, %eax
movswl %ax, %r8d
movl $0x8000, %eax           # imm = 0x8000
addl %eax, %r8d
movslq %esi, %rcx
movl %r8d, (%rdi,%rcx,4)
vpextrw $0x1, %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
leal (%rdx,%rcx), %r8d
movslq %r8d, %r8
vpextrw $0x2, %xmm0, %r9d
movl %esi, (%rdi,%r8,4)
movswl %r9w, %esi
addl %eax, %esi
leal (%rcx,%rdx,2), %r8d
movslq %r8d, %r8
movl %esi, (%rdi,%r8,4)
vpextrw $0x3, %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
leal (%rdx,%rdx,2), %r8d
addl %ecx, %r8d
movslq %r8d, %r8
movl %esi, (%rdi,%r8,4)
vpextrw $0x4, %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
leal (%rcx,%rdx,4), %r8d
movslq %r8d, %r8
movl %esi, (%rdi,%r8,4)
vpextrw $0x5, %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
leal (%rdx,%rdx,4), %r8d
addl %ecx, %r8d
movslq %r8d, %r8
movl %esi, (%rdi,%r8,4)
vpextrw $0x6, %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
imull $0x6, %edx, %r8d
addl %ecx, %r8d
movslq %r8d, %r8
movl %esi, (%rdi,%r8,4)
vpextrw $0x7, %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
imull $0x7, %edx, %r8d
addl %ecx, %r8d
movslq %r8d, %r8
movl %esi, (%rdi,%r8,4)
vextracti128 $0x1, %ymm0, %xmm0
vmovd %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
leal (%rcx,%rdx,8), %r8d
movslq %r8d, %r8
movl %esi, (%rdi,%r8,4)
vpextrw $0x1, %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
leal (%rdx,%rdx,8), %r8d
addl %ecx, %r8d
movslq %r8d, %r8
movl %esi, (%rdi,%r8,4)
vpextrw $0x2, %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
imull $0xa, %edx, %r8d
addl %ecx, %r8d
movslq %r8d, %r8
movl %esi, (%rdi,%r8,4)
vpextrw $0x3, %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
imull $0xb, %edx, %r8d
addl %ecx, %r8d
movslq %r8d, %r8
movl %esi, (%rdi,%r8,4)
vpextrw $0x4, %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
imull $0xc, %edx, %r8d
addl %ecx, %r8d
movslq %r8d, %r8
movl %esi, (%rdi,%r8,4)
vpextrw $0x5, %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
imull $0xd, %edx, %r8d
addl %ecx, %r8d
movslq %r8d, %r8
movl %esi, (%rdi,%r8,4)
vpextrw $0x6, %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
imull $0xe, %edx, %r8d
addl %ecx, %r8d
movslq %r8d, %r8
movl %esi, (%rdi,%r8,4)
vpextrw $0x7, %xmm0, %esi
movswl %si, %esi
addl %eax, %esi
imull $0xf, %edx, %eax
addl %ecx, %eax
cltq
movl %esi, (%rdi,%rax,4)
vzeroupper
retq