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

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdi, %r12
vmovd %xmm0, %eax
movswl %ax, %r10d
movl $0x8000, %r15d          # imm = 0x8000
addl %r15d, %r10d
movslq %esi, %r9
movl %r8d, %esi
leal (%rdx,%r9), %eax
movslq %eax, %r8
imulq %rsi, %r8
leal (%r9,%rdx,2), %eax
movslq %eax, %r11
imulq %rsi, %r11
leal (%rdx,%rdx,2), %eax
addl %r9d, %eax
cltq
imulq %rsi, %rax
leal (%r9,%rdx,4), %ebx
movslq %ebx, %rbx
imulq %rsi, %rbx
movq %rsi, %r14
imulq %r9, %r14
movslq %ecx, %rdi
leaq (%r12,%r14,4), %r14
vpextrw $0x1, %xmm0, %ebp
movl %r10d, (%r14,%rdi,4)
movswl %bp, %r10d
addl %r15d, %r10d
movq %r12, -0x8(%rsp)
leaq (%r12,%r8,4), %r8
movl %r10d, (%r8,%rdi,4)
vpextrw $0x2, %xmm0, %r8d
movswl %r8w, %r8d
addl %r15d, %r8d
leaq (%r12,%r11,4), %r10
vpextrw $0x3, %xmm0, %r11d
movl %r8d, (%r10,%rdi,4)
movswl %r11w, %r8d
addl %r15d, %r8d
leaq (%r12,%rax,4), %rax
movl %r8d, (%rax,%rdi,4)
vpextrw $0x4, %xmm0, %eax
cwtl
addl %r15d, %eax
leaq (%r12,%rbx,4), %r8
movl %eax, (%r8,%rdi,4)
leal (%rdx,%rdx,4), %ecx
addl %r9d, %ecx
imull $0x6, %edx, %r10d
addl %r9d, %r10d
imull $0x7, %edx, %r11d
addl %r9d, %r11d
leal (%rdx,%rdx,8), %ebx
addl %r9d, %ebx
imull $0xa, %edx, %ebp
addl %r9d, %ebp
imull $0xb, %edx, %r14d
addl %r9d, %r14d
imull $0xc, %edx, %r15d
addl %r9d, %r15d
imull $0xd, %edx, %r12d
addl %r9d, %r12d
imull $0xe, %edx, %r8d
addl %r9d, %r8d
leal (%r9,%rdx,8), %r13d
imull $0xf, %edx, %eax
addl %r9d, %eax
movslq %ecx, %rcx
imulq %rsi, %rcx
movslq %r10d, %r10
imulq %rsi, %r10
movslq %r11d, %rdx
imulq %rsi, %rdx
movslq %r13d, %r9
imulq %rsi, %r9
movslq %ebx, %r13
imulq %rsi, %r13
movslq %ebp, %rbx
imulq %rsi, %rbx
movslq %r14d, %r11
imulq %rsi, %r11
movslq %r15d, %rbp
imulq %rsi, %rbp
movslq %r12d, %r15
imulq %rsi, %r15
movslq %r8d, %r8
imulq %rsi, %r8
movslq %eax, %r14
imulq %rsi, %r14
vpextrw $0x5, %xmm0, %eax
cwtl
movl $0x8000, %r12d          # imm = 0x8000
addl %r12d, %eax
movq -0x8(%rsp), %rsi
leaq (%rsi,%rcx,4), %rcx
movl %eax, (%rcx,%rdi,4)
vpextrw $0x6, %xmm0, %eax
cwtl
addl %r12d, %eax
leaq (%rsi,%r10,4), %rcx
movl %eax, (%rcx,%rdi,4)
vpextrw $0x7, %xmm0, %eax
cwtl
addl %r12d, %eax
leaq (%rsi,%rdx,4), %rcx
movl %eax, (%rcx,%rdi,4)
vextracti128 $0x1, %ymm0, %xmm0
vmovd %xmm0, %eax
cwtl
addl %r12d, %eax
leaq (%rsi,%r9,4), %rcx
movl %eax, (%rcx,%rdi,4)
vpextrw $0x1, %xmm0, %eax
cwtl
addl %r12d, %eax
leaq (%rsi,%r13,4), %rcx
movl %eax, (%rcx,%rdi,4)
vpextrw $0x2, %xmm0, %eax
cwtl
addl %r12d, %eax
leaq (%rsi,%rbx,4), %rcx
movl %eax, (%rcx,%rdi,4)
vpextrw $0x3, %xmm0, %eax
cwtl
addl %r12d, %eax
leaq (%rsi,%r11,4), %rcx
movl %eax, (%rcx,%rdi,4)
vpextrw $0x4, %xmm0, %eax
cwtl
addl %r12d, %eax
leaq (%rsi,%rbp,4), %rcx
movl %eax, (%rcx,%rdi,4)
vpextrw $0x5, %xmm0, %eax
cwtl
addl %r12d, %eax
leaq (%rsi,%r15,4), %rcx
movl %eax, (%rcx,%rdi,4)
vpextrw $0x6, %xmm0, %eax
cwtl
addl %r12d, %eax
movl $0x8000, %edx           # imm = 0x8000
leaq (%rsi,%r8,4), %rcx
movl %eax, (%rcx,%rdi,4)
vpextrw $0x7, %xmm0, %eax
cwtl
addl %edx, %eax
leaq (%rsi,%r14,4), %rcx
movl %eax, (%rcx,%rdi,4)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
vzeroupper
retq
nopl (%rax)