user: Translate the below assembly code into C programming language:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  lea    -0x9000(%rsp),%r11
L374:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L374
  sub    $0xc90,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    $0x0,%eax
  call   <check_offloading@plt>
  movl   $0x0,-0x9c90(%rbp)
  movl   $0x0,-0x9c8c(%rbp)
  jmp    L668
L1301:
  mov    -0x9c8c(%rbp),%eax
  cltq
  movsd  D1128(%rip),%xmm0
  movsd  %xmm0,-0x5d10(%rbp,%rax,8)
  pxor   %xmm0,%xmm0
  cvtsi2sdl -0x9c8c(%rbp),%xmm0
  mov    -0x9c8c(%rbp),%eax
  cltq
  movsd  %xmm0,-0x3e10(%rbp,%rax,8)
  mov    -0x9c8c(%rbp),%eax
  neg    %eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mov    -0x9c8c(%rbp),%eax
  cltq
  movsd  %xmm0,-0x1f10(%rbp,%rax,8)
  addl   $0x1,-0x9c8c(%rbp)
L668:
  cmpl   $0x3df,-0x9c8c(%rbp)
  jle    L1301
  movl   $0x0,-0x9c88(%rbp)
  jmp    L1233
L1453:
  mov    -0x9c88(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c88(%rbp)
L1233:
  cmpl   $0x3df,-0x9c88(%rbp)
  jle    L1453
  movl   $0x0,-0x9c84(%rbp)
  jmp    L1049
L726:
  movl   $0x0,-0x9c80(%rbp)
  jmp    L466
L1196:
  mov    -0x9c80(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c80(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c80(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c80(%rbp)
L466:
  cmpl   $0x1ff,-0x9c80(%rbp)
  jle    L1196
  addl   $0x1,-0x9c84(%rbp)
L1049:
  cmpl   $0x0,-0x9c84(%rbp)
  jle    L726
  movl   $0x0,-0x9c7c(%rbp)
  jmp    L1167
L806:
  mov    -0x9c7c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L995
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L243
L995:
  mov    -0x9c7c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D1128(%rip),%rdx
  mov    -0x9c7c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D784(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L243:
  addl   $0x1,-0x9c7c(%rbp)
L1167:
  cmpl   $0x1ff,-0x9c7c(%rbp)
  jle    L806
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1252
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1055
L1252:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1055:
  movl   $0x0,-0x9c78(%rbp)
  jmp    L1716
L1715:
  mov    -0x9c78(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c78(%rbp)
L1716:
  cmpl   $0x3df,-0x9c78(%rbp)
  jle    L1715
  movl   $0x0,-0x9c74(%rbp)
  jmp    L554
L1382:
  movl   $0x0,-0x9c70(%rbp)
  jmp    L2121
L403:
  mov    -0x9c70(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c70(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c70(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c70(%rbp)
L2121:
  cmpl   $0x1f3,-0x9c70(%rbp)
  jle    L403
  addl   $0x1,-0x9c74(%rbp)
L554:
  cmpl   $0x0,-0x9c74(%rbp)
  jle    L1382
  movl   $0x0,-0x9c6c(%rbp)
  jmp    L365
L893:
  mov    -0x9c6c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1174
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L2123
L1174:
  mov    -0x9c6c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D1128(%rip),%rdx
  mov    -0x9c6c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D784(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L2123:
  addl   $0x1,-0x9c6c(%rbp)
L365:
  cmpl   $0x1f3,-0x9c6c(%rbp)
  jle    L893
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1050
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L735
L1050:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L735:
  movl   $0x0,-0x9c68(%rbp)
  jmp    L1280
L2270:
  mov    -0x9c68(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c68(%rbp)
L1280:
  cmpl   $0x3df,-0x9c68(%rbp)
  jle    L2270
  movl   $0x0,-0x9c64(%rbp)
  jmp    L1646
L1227:
  movl   $0x0,-0x9c60(%rbp)
  jmp    L810
L1853:
  mov    -0x9c60(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c60(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c60(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c60(%rbp)
L810:
  cmpl   $0x7a,-0x9c60(%rbp)
  jle    L1853
  addl   $0x1,-0x9c64(%rbp)
L1646:
  cmpl   $0x0,-0x9c64(%rbp)
  jle    L1227
  movl   $0x0,-0x9c5c(%rbp)
  jmp    L791
L1159:
  mov    -0x9c5c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1331
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L311
L1331:
  mov    -0x9c5c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D1128(%rip),%rdx
  mov    -0x9c5c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D784(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L311:
  addl   $0x1,-0x9c5c(%rbp)
L791:
  cmpl   $0x7a,-0x9c5c(%rbp)
  jle    L1159
  cmpl   $0x0,-0x9c90(%rbp)
  je     L504
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1686
L504:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1686:
  movl   $0x0,-0x9c58(%rbp)
  jmp    L1518
L1366:
  mov    -0x9c58(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c58(%rbp)
L1518:
  cmpl   $0x3df,-0x9c58(%rbp)
  jle    L1366
  movl   $0x0,-0x9c54(%rbp)
  jmp    L546
L161:
  movl   $0x0,-0x9c50(%rbp)
  jmp    L1774
L2294:
  mov    -0x9c50(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c50(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c50(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c50(%rbp)
L1774:
  cmpl   $0x1ff,-0x9c50(%rbp)
  jle    L2294
  addl   $0x1,-0x9c54(%rbp)
L546:
  cmpl   $0x0,-0x9c54(%rbp)
  jle    L161
  movl   $0x0,-0x9c4c(%rbp)
  jmp    L1060
L1012:
  mov    -0x9c4c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1736
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L964
L1736:
  mov    -0x9c4c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D1128(%rip),%rdx
  mov    -0x9c4c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D784(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L964:
  addl   $0x1,-0x9c4c(%rbp)
L1060:
  cmpl   $0x1ff,-0x9c4c(%rbp)
  jle    L1012
  cmpl   $0x0,-0x9c90(%rbp)
  je     L2058
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L833
L2058:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L833:
  movl   $0x0,-0x9c48(%rbp)
  jmp    L427
L1113:
  mov    -0x9c48(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c48(%rbp)
L427:
  cmpl   $0x3df,-0x9c48(%rbp)
  jle    L1113
  movl   $0x0,-0x9c44(%rbp)
  jmp    L76
L288:
  movl   $0x0,-0x9c40(%rbp)
  jmp    L1189
L1338:
  mov    -0x9c40(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c40(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c40(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c40(%rbp)
L1189:
  cmpl   $0x1ff,-0x9c40(%rbp)
  jle    L1338
  addl   $0x1,-0x9c44(%rbp)
L76:
  cmpl   $0x0,-0x9c44(%rbp)
  jle    L288
  movl   $0x0,-0x9c3c(%rbp)
  jmp    L2
L125:
  mov    -0x9c3c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L2030
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L1210
L2030:
  mov    -0x9c3c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D1128(%rip),%rdx
  mov    -0x9c3c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D784(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1210:
  addl   $0x1,-0x9c3c(%rbp)
L2:
  cmpl   $0x1ff,-0x9c3c(%rbp)
  jle    L125
  cmpl   $0x0,-0x9c90(%rbp)
  je     L838
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L275
L838:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L275:
  movl   $0x0,-0x9c38(%rbp)
  jmp    L2028
L607:
  mov    -0x9c38(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c38(%rbp)
L2028:
  cmpl   $0x3df,-0x9c38(%rbp)
  jle    L607
  movl   $0xa,-0x9b54(%rbp)
  mov    $0x200,%eax
  cltd
  idivl  -0x9b54(%rbp)
  mov    %eax,-0x9b50(%rbp)
  movl   $0x0,-0x9c34(%rbp)
  jmp    L771
L1789:
  movl   $0x0,-0x9c30(%rbp)
  jmp    L2181
L1194:
  mov    -0x9c30(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c30(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c30(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c30(%rbp)
L2181:
  cmpl   $0x1ff,-0x9c30(%rbp)
  jle    L1194
  addl   $0x1,-0x9c34(%rbp)
L771:
  cmpl   $0x0,-0x9c34(%rbp)
  jle    L1789
  movl   $0x0,-0x9c2c(%rbp)
  jmp    L336
L286:
  mov    -0x9c2c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L778
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L338
L778:
  mov    -0x9c2c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D1128(%rip),%rdx
  mov    -0x9c2c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D784(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L338:
  addl   $0x1,-0x9c2c(%rbp)
L336:
  cmpl   $0x1ff,-0x9c2c(%rbp)
  jle    L286
  cmpl   $0x0,-0x9c90(%rbp)
  je     L324
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L2245
L324:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L2245:
  movl   $0x0,-0x9c28(%rbp)
  jmp    L1480
L437:
  mov    -0x9c28(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c28(%rbp)
L1480:
  cmpl   $0x3df,-0x9c28(%rbp)
  jle    L437
  movl   $0x0,-0x9c24(%rbp)
  jmp    L143
L2132:
  movl   $0x0,-0x9c20(%rbp)
  jmp    L1593
L1877:
  mov    -0x9c20(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c20(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c20(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c20(%rbp)
L1593:
  cmpl   $0x1f3,-0x9c20(%rbp)
  jle    L1877
  addl   $0x1,-0x9c24(%rbp)
L143:
  cmpl   $0x0,-0x9c24(%rbp)
  jle    L2132
  movl   $0x0,-0x9c1c(%rbp)
  jmp    L1403
L758:
  mov    -0x9c1c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1692
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L1279
L1692:
  mov    -0x9c1c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D1128(%rip),%rdx
  mov    -0x9c1c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D784(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1279:
  addl   $0x1,-0x9c1c(%rbp)
L1403:
  cmpl   $0x1f3,-0x9c1c(%rbp)
  jle    L758
  cmpl   $0x0,-0x9c90(%rbp)
  je     L973
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1720
L973:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1720:
  movl   $0x0,-0x9c18(%rbp)
  jmp    L2135
L2110:
  mov    -0x9c18(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c18(%rbp)
L2135:
  cmpl   $0x3df,-0x9c18(%rbp)
  jle    L2110
  movl   $0x0,-0x9c14(%rbp)
  jmp    L1878
L455:
  movl   $0x0,-0x9c10(%rbp)
  jmp    L985
L24:
  mov    -0x9c10(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c10(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c10(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c10(%rbp)
L985:
  cmpl   $0x1f3,-0x9c10(%rbp)
  jle    L24
  addl   $0x1,-0x9c14(%rbp)
L1878:
  cmpl   $0x0,-0x9c14(%rbp)
  jle    L455
  movl   $0x0,-0x9c0c(%rbp)
  jmp    L1256
L1885:
  mov    -0x9c0c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L1805
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L399
L1805:
  mov    -0x9c0c(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D1128(%rip),%rdx
  mov    -0x9c0c(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D784(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L399:
  addl   $0x1,-0x9c0c(%rbp)
L1256:
  cmpl   $0x1f3,-0x9c0c(%rbp)
  jle    L1885
  cmpl   $0x0,-0x9c90(%rbp)
  je     L585
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1818
L585:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1818:
  movl   $0x0,-0x9c08(%rbp)
  jmp    L293
L692:
  mov    -0x9c08(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c08(%rbp)
L293:
  cmpl   $0x3df,-0x9c08(%rbp)
  jle    L692
  movl   $0xa,-0x9b54(%rbp)
  mov    $0x1f4,%eax
  cltd
  idivl  -0x9b54(%rbp)
  mov    %eax,-0x9b50(%rbp)
  movl   $0x0,-0x9c04(%rbp)
  jmp    L2109
L431:
  movl   $0x0,-0x9c00(%rbp)
  jmp    L698
L163:
  mov    -0x9c00(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9c00(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9c00(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9c00(%rbp)
L698:
  cmpl   $0x1f3,-0x9c00(%rbp)
  jle    L163
  addl   $0x1,-0x9c04(%rbp)
L2109:
  cmpl   $0x0,-0x9c04(%rbp)
  jle    L431
  movl   $0x0,-0x9bfc(%rbp)
  jmp    L406
L1893:
  mov    -0x9bfc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L952
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L1456
L952:
  mov    -0x9bfc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D1128(%rip),%rdx
  mov    -0x9bfc(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D784(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1456:
  addl   $0x1,-0x9bfc(%rbp)
L406:
  cmpl   $0x1f3,-0x9bfc(%rbp)
  jle    L1893
  cmpl   $0x0,-0x9c90(%rbp)
  je     L2037
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1906
L2037:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1906:
  movl   $0x0,-0x9bf8(%rbp)
  jmp    L1627
L64:
  mov    -0x9bf8(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bf8(%rbp)
L1627:
  cmpl   $0x3df,-0x9bf8(%rbp)
  jle    L64
  movl   $0x0,-0x9bf4(%rbp)
  jmp    L644
L1854:
  movl   $0x0,-0x9bf0(%rbp)
  jmp    L2220
L44:
  mov    -0x9bf0(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9bf0(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9bf0(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bf0(%rbp)
L2220:
  cmpl   $0x7a,-0x9bf0(%rbp)
  jle    L44
  addl   $0x1,-0x9bf4(%rbp)
L644:
  cmpl   $0x0,-0x9bf4(%rbp)
  jle    L1854
  movl   $0x0,-0x9bec(%rbp)
  jmp    L1924
L1184:
  mov    -0x9bec(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L145
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L1191
L145:
  mov    -0x9bec(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D1128(%rip),%rdx
  mov    -0x9bec(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D784(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1191:
  addl   $0x1,-0x9bec(%rbp)
L1924:
  cmpl   $0x7a,-0x9bec(%rbp)
  jle    L1184
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1388
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1339
L1388:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1339:
  movl   $0x0,-0x9be8(%rbp)
  jmp    L1359
L1900:
  mov    -0x9be8(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9be8(%rbp)
L1359:
  cmpl   $0x3df,-0x9be8(%rbp)
  jle    L1900
  movl   $0x0,-0x9be4(%rbp)
  jmp    L1572
L1190:
  movl   $0x0,-0x9be0(%rbp)
  jmp    L863
L1072:
  mov    -0x9be0(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9be0(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9be0(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9be0(%rbp)
L863:
  cmpl   $0x7a,-0x9be0(%rbp)
  jle    L1072
  addl   $0x1,-0x9be4(%rbp)
L1572:
  cmpl   $0x0,-0x9be4(%rbp)
  jle    L1190
  movl   $0x0,-0x9bdc(%rbp)
  jmp    L1989
L1852:
  mov    -0x9bdc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L289
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L788
L289:
  mov    -0x9bdc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D1128(%rip),%rdx
  mov    -0x9bdc(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D784(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L788:
  addl   $0x1,-0x9bdc(%rbp)
L1989:
  cmpl   $0x7a,-0x9bdc(%rbp)
  jle    L1852
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1535
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L475
L1535:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L475:
  movl   $0x0,-0x9bd8(%rbp)
  jmp    L1205
L1652:
  mov    -0x9bd8(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bd8(%rbp)
L1205:
  cmpl   $0x3df,-0x9bd8(%rbp)
  jle    L1652
  movl   $0xa,-0x9b54(%rbp)
  mov    $0x7b,%eax
  cltd
  idivl  -0x9b54(%rbp)
  mov    %eax,-0x9b50(%rbp)
  movl   $0x0,-0x9bd4(%rbp)
  jmp    L1353
L1281:
  movl   $0x0,-0x9bd0(%rbp)
  jmp    L928
L2257:
  mov    -0x9bd0(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm1
  mov    -0x9bd0(%rbp),%eax
  cltq
  movsd  -0x5d10(%rbp,%rax,8),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x9bd0(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bd0(%rbp)
L928:
  cmpl   $0x7a,-0x9bd0(%rbp)
  jle    L2257
  addl   $0x1,-0x9bd4(%rbp)
L1353:
  cmpl   $0x0,-0x9bd4(%rbp)
  jle    L1281
  movl   $0x0,-0x9bcc(%rbp)
  jmp    L2023
L1663:
  mov    -0x9bcc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  jp     L2014
  movsd  D1128(%rip),%xmm1
  ucomisd %xmm1,%xmm0
  je     L1594
L2014:
  mov    -0x9bcc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D1128(%rip),%rdx
  mov    -0x9bcc(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D784(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1594:
  addl   $0x1,-0x9bcc(%rbp)
L2023:
  cmpl   $0x7a,-0x9bcc(%rbp)
  jle    L1663
  cmpl   $0x0,-0x9c90(%rbp)
  je     L227
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L2319
L227:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L2319:
  movl   $0x0,-0x9bc8(%rbp)
  jmp    L1915
L185:
  mov    -0x9bc8(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bc8(%rbp)
L1915:
  cmpl   $0x3df,-0x9bc8(%rbp)
  jle    L185
  movl   $0x0,-0x9bc4(%rbp)
  jmp    L408
L250:
  mov    -0x9bc4(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x7c10(%rbp,%rax,8)
  addl   $0x1,-0x9bc4(%rbp)
L408:
  cmpl   $0x3df,-0x9bc4(%rbp)
  jle    L250
  movsd  D397(%rip),%xmm0
  movsd  %xmm0,-0x9b48(%rbp)
  movsd  D495(%rip),%xmm0
  movsd  %xmm0,-0x9b40(%rbp)
  movl   $0x0,-0x9bc0(%rbp)
  jmp    L116
L166:
  movl   $0x0,-0x9bbc(%rbp)
  jmp    L1466
L0:
  movsd  D397(%rip),%xmm0
  movsd  %xmm0,-0x9b48(%rbp)
  movsd  D528(%rip),%xmm0
  movsd  %xmm0,-0x9b40(%rbp)
  mov    -0x9bbc(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  addsd  -0x9b48(%rbp),%xmm0
  mov    -0x9bbc(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  mov    -0x9bbc(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  addsd  -0x9b40(%rbp),%xmm0
  mov    -0x9bbc(%rbp),%eax
  cltq
  movsd  %xmm0,-0x7c10(%rbp,%rax,8)
  addl   $0x1,-0x9bbc(%rbp)
L1466:
  cmpl   $0x3df,-0x9bbc(%rbp)
  jle    L0
  addl   $0x1,-0x9bc0(%rbp)
L116:
  cmpl   $0x0,-0x9bc0(%rbp)
  jle    L166
  movl   $0x0,-0x9bb8(%rbp)
  jmp    L418
L376:
  mov    -0x9bb8(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  ucomisd D397(%rip),%xmm0
  jp     L783
  ucomisd D397(%rip),%xmm0
  je     L356
L783:
  mov    -0x9bb8(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D397(%rip),%rdx
  mov    -0x9bb8(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D822(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L356:
  mov    -0x9bb8(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  ucomisd D528(%rip),%xmm0
  jp     L1788
  ucomisd D528(%rip),%xmm0
  je     L1602
L1788:
  mov    -0x9bb8(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  mov    D528(%rip),%rdx
  mov    -0x9bb8(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D404(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1602:
  addl   $0x1,-0x9bb8(%rbp)
L418:
  cmpl   $0x3df,-0x9bb8(%rbp)
  jle    L376
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1701
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1641
L1701:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1641:
  movl   $0x0,-0x9bb4(%rbp)
  jmp    L1342
L1982:
  mov    -0x9bb4(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  addl   $0x1,-0x9bb4(%rbp)
L1342:
  cmpl   $0x3df,-0x9bb4(%rbp)
  jle    L1982
  movl   $0x0,-0x9bb0(%rbp)
  jmp    L1755
L318:
  mov    -0x9bb0(%rbp),%eax
  cltq
  pxor   %xmm0,%xmm0
  movsd  %xmm0,-0x7c10(%rbp,%rax,8)
  addl   $0x1,-0x9bb0(%rbp)
L1755:
  cmpl   $0x3df,-0x9bb0(%rbp)
  jle    L318
  movsd  D397(%rip),%xmm0
  movsd  %xmm0,-0x9b48(%rbp)
  movsd  D495(%rip),%xmm0
  movsd  %xmm0,-0x9b40(%rbp)
  movl   $0x0,-0x9bac(%rbp)
  jmp    L1848
L1212:
  movl   $0x0,-0x9ba8(%rbp)
  jmp    L424
L71:
  movsd  -0x9b48(%rbp),%xmm1
  movsd  D528(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x9b48(%rbp)
  movsd  -0x9b40(%rbp),%xmm1
  movsd  D8(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x9b40(%rbp)
  mov    -0x9ba8(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  addsd  -0x9b48(%rbp),%xmm0
  mov    -0x9ba8(%rbp),%eax
  cltq
  movsd  %xmm0,-0x9b10(%rbp,%rax,8)
  mov    -0x9ba8(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  addsd  -0x9b40(%rbp),%xmm0
  mov    -0x9ba8(%rbp),%eax
  cltq
  movsd  %xmm0,-0x7c10(%rbp,%rax,8)
  addl   $0x1,-0x9ba8(%rbp)
L424:
  cmpl   $0x7f,-0x9ba8(%rbp)
  jle    L71
  addl   $0x1,-0x9bac(%rbp)
L1848:
  cmpl   $0x0,-0x9bac(%rbp)
  jle    L1212
  movl   $0x0,-0x9ba4(%rbp)
  jmp    L1764
L628:
  mov    -0x9ba4(%rbp),%eax
  and    $0x1,%eax
  test   %eax,%eax
  jne    L979
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  ucomisd D167(%rip),%xmm0
  jp     L1645
  ucomisd D167(%rip),%xmm0
  je     L425
L1645:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D167(%rip),%rdx
  mov    -0x9ba4(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D822(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L425:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  ucomisd D482(%rip),%xmm0
  jp     L1589
  ucomisd D482(%rip),%xmm0
  je     L1771
L1589:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  mov    D482(%rip),%rdx
  mov    -0x9ba4(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D404(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
  jmp    L1771
L979:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  ucomisd D371(%rip),%xmm0
  jp     L736
  ucomisd D371(%rip),%xmm0
  je     L1477
L736:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x9b10(%rbp,%rax,8),%xmm0
  mov    D371(%rip),%rdx
  mov    -0x9ba4(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D822(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1477:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  ucomisd D1218(%rip),%xmm0
  jp     L1828
  ucomisd D1218(%rip),%xmm0
  je     L1771
L1828:
  mov    -0x9ba4(%rbp),%eax
  cltq
  movsd  -0x7c10(%rbp,%rax,8),%xmm0
  mov    D1218(%rip),%rdx
  mov    -0x9ba4(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rdx,%xmm0
  mov    %eax,%esi
  lea    D404(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1771:
  addl   $0x1,-0x9ba4(%rbp)
L1764:
  cmpl   $0x7f,-0x9ba4(%rbp)
  jle    L628
  cmpl   $0x0,-0x9c90(%rbp)
  je     L83
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1607
L83:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1607:
  movl   $0xffffffff,-0x9ba0(%rbp)
  movl   $0x0,-0x9b9c(%rbp)
  jmp    L1856
L1713:
  mov    $0x0,%eax
  call   <omp_get_team_num@plt>
  mov    %eax,-0x9ba0(%rbp)
  addl   $0x1,-0x9b9c(%rbp)
L1856:
  mov    $0x0,%eax
  call   <omp_get_num_teams@plt>
  cmp    %eax,-0x9b9c(%rbp)
  jl     L1713
  cmpl   $0x9,-0x9ba0(%rbp)
  je     L1148
  mov    -0x9ba0(%rbp),%eax
  mov    $0x9,%edx
  mov    %eax,%esi
  lea    D730(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L1148:
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1887
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1020
L1887:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1020:
  mov    $0x782000,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b38(%rbp)
  mov    $0x782000,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b30(%rbp)
  mov    $0x782000,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b28(%rbp)
  movl   $0x0,-0x9b98(%rbp)
  jmp    L856
L1544:
  movl   $0x0,-0x9b94(%rbp)
  jmp    L398
L614:
  mov    -0x9b98(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b94(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x9b98(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b94(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b30(%rbp),%rax
  add    %rdx,%rax
  movsd  D1128(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x9b98(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b94(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b28(%rbp),%rax
  add    %rdx,%rax
  movsd  D397(%rip),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x9b94(%rbp)
L398:
  cmpl   $0x3df,-0x9b94(%rbp)
  jle    L614
  addl   $0x1,-0x9b98(%rbp)
L856:
  cmpl   $0x3df,-0x9b98(%rbp)
  jle    L1544
  movl   $0x0,-0x9b90(%rbp)
  jmp    L494
L609:
  movl   $0x0,-0x9b8c(%rbp)
  jmp    L2013
L763:
  movl   $0x0,-0x9b88(%rbp)
  jmp    L857
L501:
  mov    -0x9b8c(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x9b8c(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b30(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm2
  mov    -0x9b8c(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b28(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  addsd  %xmm2,%xmm0
  mov    -0x9b8c(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b88(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x9b88(%rbp)
L857:
  cmpl   $0x3df,-0x9b88(%rbp)
  jle    L501
  addl   $0x1,-0x9b8c(%rbp)
L2013:
  cmpl   $0x3df,-0x9b8c(%rbp)
  jle    L763
  addl   $0x1,-0x9b90(%rbp)
L494:
  cmpl   $0x0,-0x9b90(%rbp)
  jle    L609
  movl   $0x0,-0x9b84(%rbp)
  jmp    L958
L1650:
  movl   $0x0,-0x9b80(%rbp)
  jmp    L1672
L295:
  mov    -0x9b84(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  ucomisd D528(%rip),%xmm0
  jp     L2295
  ucomisd D528(%rip),%xmm0
  je     L624
L2295:
  mov    -0x9b84(%rbp),%eax
  imul   $0x3e0,%eax,%edx
  mov    -0x9b80(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b38(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    D528(%rip),%rcx
  mov    -0x9b80(%rbp),%edx
  mov    -0x9b84(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rcx,%xmm0
  mov    %eax,%esi
  lea    D1003(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L624:
  addl   $0x1,-0x9b80(%rbp)
L1672:
  cmpl   $0x3df,-0x9b80(%rbp)
  jle    L295
  addl   $0x1,-0x9b84(%rbp)
L958:
  cmpl   $0x3df,-0x9b84(%rbp)
  jle    L1650
  cmpl   $0x0,-0x9c90(%rbp)
  je     L686
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L1606
L686:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L1606:
  movl   $0x7c,-0x9b4c(%rbp)
  mov    -0x9b4c(%rbp),%eax
  imul   %eax,%eax
  imul   -0x9b4c(%rbp),%eax
  cltq
  shl    $0x3,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b20(%rbp)
  mov    -0x9b4c(%rbp),%eax
  imul   %eax,%eax
  imul   -0x9b4c(%rbp),%eax
  cltq
  shl    $0x3,%eax
  mov    %eax,%edi
  call   <malloc@plt>
  mov    %rax,-0x9b18(%rbp)
  movl   $0x0,-0x9b7c(%rbp)
  jmp    L1332
L748:
  movl   $0x0,-0x9b78(%rbp)
  jmp    L2095
L298:
  movl   $0x0,-0x9b74(%rbp)
  jmp    L313
L1465:
  mov    -0x9b7c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b78(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  movsd  D397(%rip),%xmm0
  movsd  %xmm0,(%rax)
  mov    -0x9b7c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b78(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b74(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b18(%rbp),%rax
  add    %rdx,%rax
  movsd  D528(%rip),%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x9b74(%rbp)
L313:
  mov    -0x9b74(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L1465
  addl   $0x1,-0x9b78(%rbp)
L2095:
  mov    -0x9b78(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L298
  addl   $0x1,-0x9b7c(%rbp)
L1332:
  mov    -0x9b7c(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L748
  movl   $0x0,-0x9b70(%rbp)
  jmp    L1261
L658:
  movl   $0x0,-0x9b6c(%rbp)
  jmp    L1944
L206:
  movl   $0x0,-0x9b68(%rbp)
  jmp    L1120
L848:
  movl   $0x0,-0x9b64(%rbp)
  jmp    L1770
L1068:
  mov    -0x9b6c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b68(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm1
  mov    -0x9b6c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b68(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b18(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    -0x9b6c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b68(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b64(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  addsd  %xmm1,%xmm0
  movsd  %xmm0,(%rax)
  addl   $0x1,-0x9b64(%rbp)
L1770:
  mov    -0x9b64(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L1068
  addl   $0x1,-0x9b68(%rbp)
L1120:
  mov    -0x9b68(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L848
  addl   $0x1,-0x9b6c(%rbp)
L1944:
  mov    -0x9b6c(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L206
  addl   $0x1,-0x9b70(%rbp)
L1261:
  cmpl   $0x0,-0x9b70(%rbp)
  jle    L658
  movl   $0x0,-0x9b60(%rbp)
  jmp    L1614
L527:
  movl   $0x0,-0x9b5c(%rbp)
  jmp    L394
L951:
  movl   $0x0,-0x9b58(%rbp)
  jmp    L2044
L283:
  mov    -0x9b60(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b5c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b58(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  ucomisd D167(%rip),%xmm0
  jp     L495
  ucomisd D167(%rip),%xmm0
  je     L767
L495:
  mov    -0x9b60(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  mov    %eax,%edx
  mov    -0x9b5c(%rbp),%eax
  imul   -0x9b4c(%rbp),%eax
  add    %eax,%edx
  mov    -0x9b58(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,8),%rdx
  mov    -0x9b20(%rbp),%rax
  add    %rdx,%rax
  movsd  (%rax),%xmm0
  mov    D528(%rip),%rcx
  mov    -0x9b5c(%rbp),%edx
  mov    -0x9b60(%rbp),%eax
  movapd %xmm0,%xmm1
  movq   %rcx,%xmm0
  mov    %eax,%esi
  lea    D1003(%rip),%rax
  mov    %rax,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  movl   $0x1,-0x9c90(%rbp)
L767:
  addl   $0x1,-0x9b58(%rbp)
L2044:
  mov    -0x9b58(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L283
  addl   $0x1,-0x9b5c(%rbp)
L394:
  mov    -0x9b5c(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L951
  addl   $0x1,-0x9b60(%rbp)
L1614:
  mov    -0x9b60(%rbp),%eax
  cmp    -0x9b4c(%rbp),%eax
  jl     L527
  cmpl   $0x0,-0x9c90(%rbp)
  je     L1440
  lea    D326(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L2029
L1440:
  lea    D907(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
L2029:
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L835
  call   <__stack_chk_fail@plt>
L835:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_tag: D1128
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D784
datatype: string
name: extract_symbolic_data
arguments: data_tag: D326
datatype: string
name: extract_symbolic_data
arguments: data_tag: D907
datatype: string
name: extract_symbolic_data
arguments: data_tag: D397
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D495
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D528
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D822
datatype: string
name: extract_symbolic_data
arguments: data_tag: D404
datatype: string
name: extract_symbolic_data
arguments: data_tag: D8
datatype: f64
name: extract_symbolic_data
arguments: data_tag: D167
datatype: f32[2]
name: extract_symbolic_data
arguments: data_tag: D482
datatype: f32[2]
name: extract_symbolic_data
arguments: data_tag: D371
datatype: f32[2]
name: extract_symbolic_data
arguments: data_tag: D1218
datatype: f32[2]
name: extract_symbolic_data
arguments: data_tag: D730
datatype: string
name: extract_symbolic_data
arguments: data_tag: D1003
datatype: string

tool: D1128: 1

tool: D784: Error at %d, h = %lf, d = %lf


tool: D326: Failed

tool: D907: Succeeded

tool: D397: 2

tool: D495: 4

tool: D528: 3

tool: D822: Error at A[%d], h = %lf, d = %lf


tool: D404: Error at B[%d], h = %lf, d = %lf


tool: D8: 7

tool: {"D167": [0.0,2.3125]}

tool: {"D482": [0.0,2.59375]}

tool: {"D371": [0.0,2.5]}

tool: {"D1218": [0.0,2.78125]}

tool: D730: lastpriv value is %d and should have been %d


tool: D1003: Error at (%d,%d), h = %lf, d = %lf


assistant: ```c
int main(void) {
  check_offloading();
  double A[(992)], B[(992)], C[(992)], D[(992)], E[(992)];
  int fail = 0;
  {
    int i;
    for (i = 0; i < (992); i++) {
      {
        C[i] = 1;
        D[i] = i;
        E[i] = -i;
      }
    }
  };
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(512)
#pragma omp distribute parallel for simd
    for (int i = 0; i < 512; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 512; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute parallel for simd
    for (int i = 0; i < 500; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 500; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute parallel for simd
    for (int i = 0; i < 123; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 123; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(512)
#pragma omp distribute parallel for simd dist_schedule(static, 1)
    for (int i = 0; i < 512; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 512; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(512)
#pragma omp distribute parallel for simd dist_schedule(static, 512)
    for (int i = 0; i < 512; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 512; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  int ten = 10;
  int chunkSize = 512 / ten;
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(512)
#pragma omp distribute parallel for simd dist_schedule(static, chunkSize)
    for (int i = 0; i < 512; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 512; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute parallel for simd dist_schedule(static, 1)
    for (int i = 0; i < 500; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 500; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute parallel for simd dist_schedule(static, 500)
    for (int i = 0; i < 500; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 500; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  ten = 10;
  chunkSize = 500 / ten;
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute parallel for simd dist_schedule(static, chunkSize)
    for (int i = 0; i < 500; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 500; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute parallel for simd dist_schedule(static, 1)
    for (int i = 0; i < 123; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 123; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute parallel for simd dist_schedule(static, 123)
    for (int i = 0; i < 123; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 123; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  ten = 10;
  chunkSize = 123 / ten;
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
#pragma omp distribute parallel for simd dist_schedule(static, chunkSize)
    for (int i = 0; i < 123; i++) {
      A[i] += C[i];
    }
  }
  for (int i = 0; i < 123; i++)
    if (A[i] != (1)) {
      printf("Error at %d, h = %lf, d = %lf\n", i, (double)(1), A[i]);
      fail = 1;
    }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  {
    int i;
    for (i = 0; i < (992); i++) {
      B[i] = 0;
    }
  };
  double p = 2.0, q = 4.0;
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(256)
    {
#pragma omp distribute parallel for simd private(p, q)
      for (int i = 0; i < (992); i++) {
        p = 2;
        q = 3;
        A[i] += p;
        B[i] += q;
      }
    }
  }
  for (int i = 0; i < (992); i++) {
    if (A[i] != (1) * 2) {
      printf("Error at A[%d], h = %lf, d = %lf\n", i, (double)(1) * 2, A[i]);
      fail = 1;
    }
    if (B[i] != (1) * 3) {
      printf("Error at B[%d], h = %lf, d = %lf\n", i, (double)(1) * 3, B[i]);
      fail = 1;
    }
  }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  {
    int i;
    for (i = 0; i < (992); i++) {
      A[i] = 0;
    }
  };
  {
    int i;
    for (i = 0; i < (992); i++) {
      B[i] = 0;
    }
  };
  p = 2.0, q = 4.0;
  for (int t = 0; t < (1); t++) {
#pragma omp target
#pragma omp teams num_teams(64)
    {
#pragma omp distribute simd firstprivate(p, q)
      for (int i = 0; i < 128; i++) {
        p += 3.0;
        q += 7.0;
        A[i] += p;
        B[i] += q;
      }
    }
  }
  for (int i = 0; i < 128; i++) {
    if (i % 2 == 0) {
      if (A[i] != (2.0 + 3.0) * (1)) {
        printf("Error at A[%d], h = %lf, d = %lf\n", i, (double)(2.0 + 3.0) * (1), A[i]);
        fail = 1;
      }
      if (B[i] != (4.0 + 7.0) * (1)) {
        printf("Error at B[%d], h = %lf, d = %lf\n", i, (double)(4.0 + 7.0) * (1), B[i]);
        fail = 1;
      }
    } else {
      if (A[i] != (2.0 + 3.0 * 2) * (1)) {
        printf("Error at A[%d], h = %lf, d = %lf\n", i, (double)(2.0 + 3.0 * 2) * (1), A[i]);
        fail = 1;
      }
      if (B[i] != (4.0 + 7.0 * 2) * (1)) {
        printf("Error at B[%d], h = %lf, d = %lf\n", i, (double)(4.0 + 7.0 * 2) * (1), B[i]);
        fail = 1;
      }
    }
  }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  int lastpriv = -1;
#pragma omp target map(tofrom : lastpriv)
#pragma omp teams num_teams(10)
#pragma omp distribute parallel for simd lastprivate(lastpriv)
  for (int i = 0; i < omp_get_num_teams(); i++)
    lastpriv = omp_get_team_num();
  if (lastpriv != 9) {
    printf("lastpriv value is %d and should have been %d\n", lastpriv, 9);
    fail = 1;
  }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  double *S = malloc((992) * (992) * sizeof(double));
  double *T = malloc((992) * (992) * sizeof(double));
  double *U = malloc((992) * (992) * sizeof(double));
  for (int i = 0; i < (992); i++)
    for (int j = 0; j < (992); j++) {
      S[i * (992) + j] = 0.0;
      T[i * (992) + j] = 1.0;
      U[i * (992) + j] = 2.0;
    }
  for (int t = 0; t < (1); t++) {
#pragma omp target map(tofrom : S[:N * N]), map(to : T[:N * N], U[:N * N])
#pragma omp teams num_teams(512)
#pragma omp distribute parallel for simd collapse(2)
    for (int i = 0; i < (992); i++)
      for (int j = 0; j < (992); j++)
        S[i * (992) + j] += T[i * (992) + j] + U[i * (992) + j];
  }
  for (int i = 0; i < (992); i++)
    for (int j = 0; j < (992); j++)
      if (S[i * (992) + j] != (1) * 3.0) {
        printf("Error at (%d,%d), h = %lf, d = %lf\n", i, j, (double)(1) * 3.0, S[i * (992) + j]);
        fail = 1;
      }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  int M = (992) / 8;
  double *V = malloc(M * M * M * sizeof(double));
  double *Z = malloc(M * M * M * sizeof(double));
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++)
      for (int k = 0; k < M; k++) {
        V[i * M * M + j * M + k] = 2.0;
        Z[i * M * M + j * M + k] = 3.0;
      }
  for (int t = 0; t < (1); t++) {
#pragma omp target map(tofrom : V[:M * M * M]), map(to : Z[:M * M * M])
#pragma omp teams num_teams(512)
#pragma omp distribute parallel for simd collapse(3)
    for (int i = 0; i < M; i++)
      for (int j = 0; j < M; j++)
        for (int k = 0; k < M; k++)
          V[i * M * M + j * M + k] += Z[i * M * M + j * M + k];
  }
  for (int i = 0; i < M; i++)
    for (int j = 0; j < M; j++)
      for (int k = 0; k < M; k++)
        if (V[i * M * M + j * M + k] != 2.0 + (1) * 3.0) {
          printf("Error at (%d,%d), h = %lf, d = %lf\n", i, j, (double)(1) * 3.0, V[i * M * M + j * M + k]);
          fail = 1;
        }
  if (fail)
    printf("Failed\n");
  else
    printf("Succeeded\n");
  return 0;
}
```