// File: /workspace/github_c_makefile_star2_O1/jwang11[P]intel_avx_perf/matrix_int.c
// Function: main
int main() {
  init();
  TIME(LOOP(calc_non()));
  DEBUG
  TIME(LOOP(calc_avx2()));
  DEBUG
  TIME(LOOP(calc_avx512()));
  DEBUG
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
andq $-0x40, %rsp
subq $0x80, %rsp
callq 0x118c
leaq 0xc11(%rip), %rdi       # 0x2008
callq 0x1030
callq 0x1040
movq %rax, %rbx
leaq 0xc0e(%rip), %rdi       # 0x2019
xorl %r12d, %r12d
movl $0x186a0, %esi          # imm = 0x186A0
xorl %eax, %eax
callq 0x1050
leaq 0x2c4f(%rip), %rax      # 0x4070
leaq 0x82c48(%rip), %r15     # 0x84070
leaq 0x84c41(%rip), %r14     # 0x86070
movq %rax, %rcx
xorl %edx, %edx
vpxor %xmm0, %xmm0, %xmm0
xorl %esi, %esi
vmovdqu64 (%rsi,%r15), %zmm1
vpmulld (%rcx,%rsi), %zmm1, %zmm1
vpaddd %zmm0, %zmm1, %zmm0
addq $0x40, %rsi
cmpq $0x2000, %rsi           # imm = 0x2000
jne 0x143a
vextracti64x4 $0x1, %zmm0, %ymm1
vpaddd %zmm1, %zmm0, %zmm0
vextracti128 $0x1, %ymm0, %xmm1
vpaddd %xmm1, %xmm0, %xmm0
vpshufd $0xee, %xmm0, %xmm1     # xmm1 = xmm0[2,3,2,3]
vpaddd %xmm1, %xmm0, %xmm0
vpshufd $0x55, %xmm0, %xmm1     # xmm1 = xmm0[1,1,1,1]
vpaddd %xmm1, %xmm0, %xmm0
vmovd %xmm0, (%r14,%rdx,4)
incq %rdx
addq $0x2000, %rcx           # imm = 0x2000
cmpq $0x40, %rdx
jne 0x1434
incl %r12d
cmpl $0x186a0, %r12d         # imm = 0x186A0
jne 0x142f
vzeroupper
callq 0x1040
vcvtsi2ss %rax, %xmm2, %xmm0
vcvtsi2ss %rbx, %xmm2, %xmm1
vsubss %xmm1, %xmm0, %xmm0
vdivss 0xb40(%rip), %xmm0, %xmm0 # 0x2004
vcvtss2sd %xmm0, %xmm0, %xmm0
leaq 0xb54(%rip), %rdi       # 0x2023
movb $0x1, %al
callq 0x1050
leaq 0xb60(%rip), %rbx       # 0x203d
xorl %r12d, %r12d
movl (%r12,%r14), %esi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1050
addq $0x4, %r12
cmpq $0x20, %r12
jne 0x14e0
leaq 0xb69(%rip), %rdi       # 0x2068
callq 0x1030
leaq 0xb37(%rip), %rdi       # 0x2042
callq 0x1030
callq 0x1040
movq %rax, %rbx
leaq 0xafa(%rip), %rdi       # 0x2019
xorl %r12d, %r12d
movl $0x186a0, %esi          # imm = 0x186A0
xorl %eax, %eax
callq 0x1050
leaq 0x2b3b(%rip), %rax      # 0x4070
vxorps %xmm0, %xmm0, %xmm0
movq %rax, %rcx
xorl %edx, %edx
vmovaps %ymm0, (%rsp)
movq $-0x8, %rsi
movq %r15, %rdi
vmovdqa 0x20(%rcx,%rsi,4), %ymm1
vpmulld (%rdi), %ymm1, %ymm1
vpaddd (%rsp), %ymm1, %ymm1
vmovdqa %ymm1, (%rsp)
addq $0x8, %rsi
addq $0x20, %rdi
cmpq $0x7f8, %rsi            # imm = 0x7F8
jb 0x154d
vmovdqa 0x10(%rsp), %xmm1
vphaddd (%rsp), %xmm1, %xmm1
vphaddd %xmm1, %xmm1, %xmm1
vphaddd %xmm1, %xmm1, %xmm1
vmovd %xmm1, (%r14,%rdx,4)
incq %rdx
addq $0x2000, %rcx           # imm = 0x2000
cmpq $0x40, %rdx
jne 0x153e
incl %r12d
cmpl $0x186a0, %r12d         # imm = 0x186A0
jne 0x1539
vzeroupper
callq 0x1040
vcvtsi2ss %rax, %xmm2, %xmm0
vcvtsi2ss %rbx, %xmm2, %xmm1
vsubss %xmm1, %xmm0, %xmm0
vdivss 0xa3b(%rip), %xmm0, %xmm0 # 0x2004
vcvtss2sd %xmm0, %xmm0, %xmm0
leaq 0xa4f(%rip), %rdi       # 0x2023
movb $0x1, %al
callq 0x1050
leaq 0xa5b(%rip), %rbx       # 0x203d
xorl %r15d, %r15d
movl (%r15,%r14), %esi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1050
addq $0x4, %r15
cmpq $0x20, %r15
jne 0x15e5
leaq 0xa64(%rip), %rdi       # 0x2068
callq 0x1030
leaq 0xa44(%rip), %rdi       # 0x2054
callq 0x1030
callq 0x1040
movq %rax, %rbx
leaq 0x9f5(%rip), %rdi       # 0x2019
xorl %r15d, %r15d
movl $0x186a0, %esi          # imm = 0x186A0
xorl %eax, %eax
callq 0x1050
leaq 0x2a36(%rip), %rax      # 0x4070
vxorps %xmm0, %xmm0, %xmm0
leaq 0x82a2b(%rip), %rcx     # 0x84070
movq %rax, %rdx
xorl %esi, %esi
vmovaps %zmm0, (%rsp)
movq $-0x10, %rdi
movq %rcx, %r8
vmovdqa64 0x40(%rdx,%rdi,4), %zmm1
vpmulld (%r8), %zmm1, %zmm1
vpaddd (%rsp), %zmm1, %zmm1
vmovdqa64 %zmm1, (%rsp)
addq $0x10, %rdi
addq $0x40, %r8
cmpq $0x7f0, %rdi            # imm = 0x7F0
jb 0x165b
vmovdqa 0x20(%rsp), %ymm1
vpaddd (%rsp), %zmm1, %zmm1
vextracti128 $0x1, %ymm1, %xmm2
vpaddd %xmm2, %xmm1, %xmm1
vpshufd $0xee, %xmm1, %xmm2     # xmm2 = xmm1[2,3,2,3]
vpaddd %xmm2, %xmm1, %xmm1
vpshufd $0x55, %xmm1, %xmm2     # xmm2 = xmm1[1,1,1,1]
vpaddd %xmm2, %xmm1, %xmm1
vmovd %xmm1, (%r14,%rsi,4)
incq %rsi
addq $0x2000, %rdx           # imm = 0x2000
cmpq $0x40, %rsi
jne 0x164a
incl %r15d
cmpl $0x186a0, %r15d         # imm = 0x186A0
jne 0x1645
vzeroupper
callq 0x1040
vcvtsi2ss %rax, %xmm3, %xmm0
vcvtsi2ss %rbx, %xmm3, %xmm1
vsubss %xmm1, %xmm0, %xmm0
vdivss 0x90f(%rip), %xmm0, %xmm0 # 0x2004
vcvtss2sd %xmm0, %xmm0, %xmm0
leaq 0x923(%rip), %rdi       # 0x2023
movb $0x1, %al
callq 0x1050
leaq 0x92f(%rip), %rbx       # 0x203d
xorl %r15d, %r15d
movl (%r15,%r14), %esi
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1050
addq $0x4, %r15
cmpq $0x20, %r15
jne 0x1711
leaq 0x938(%rip), %rdi       # 0x2068
callq 0x1030
xorl %eax, %eax
leaq -0x20(%rbp), %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq