user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  lea    -0x5000(%rsp),%r11
L1101:
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  cmp    %r11,%rsp
  jne    L1101
  sub    $0xd28,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x5d18(%rsp)
  xor    %eax,%eax
  call   <check_offloading@plt>
  lea    0x3e10(%rsp),%r13
  lea    0x5d10(%rsp),%rdx
  mov    %r13,%rax
  movsd  D484(%rip),%xmm0
L195:
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  cmp    %rdx,%rax
  jne    L195
  lea    0x10(%rsp),%rbp
  lea    0x1f10(%rsp),%r12
  mov    %rbp,%rax
L649:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L649
  lea    0x1000(%rbp),%r15
  mov    %r13,%rdx
  mov    %rbp,%rax
L1528:
  movsd  (%rax),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    $0x8,%rdx
  cmp    %r15,%rax
  jne    L1528
  mov    $0x0,%r14d
  mov    $0x0,%ebx
  jmp    L566
L773:
  movsd  D484(%rip),%xmm0
  lea    D231(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L590:
  add    $0x1,%r14
  cmp    $0x200,%r14
  je     L1477
L566:
  mov    %r14d,%esi
  movsd  0x10(%rsp,%r14,8),%xmm1
  ucomisd D484(%rip),%xmm1
  jp     L773
  je     L590
  jmp    L773
L1477:
  test   %ebx,%ebx
  je     L615
  lea    D663(%rip),%rdi
  call   <puts@plt>
L148:
  mov    %rbp,%rax
L1444:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L1444
  lea    0xfa0(%rbp),%rax
  mov    %rax,0x8(%rsp)
  mov    %r13,%rdx
  mov    %rbp,%rax
L1082:
  movsd  (%rax),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    $0x8,%rdx
  cmp    0x8(%rsp),%rax
  jne    L1082
  mov    $0x0,%r14d
  jmp    L307
L615:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L148
L677:
  movsd  D484(%rip),%xmm0
  lea    D231(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L1284:
  add    $0x1,%r14
  cmp    $0x1f4,%r14
  je     L80
L307:
  mov    %r14d,%esi
  movsd  0x10(%rsp,%r14,8),%xmm1
  ucomisd D484(%rip),%xmm1
  jp     L677
  je     L1284
  jmp    L677
L80:
  test   %ebx,%ebx
  je     L838
  lea    D663(%rip),%rdi
  call   <puts@plt>
L499:
  mov    %rbp,%rax
L1769:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L1769
  lea    0x3d8(%rbp),%rax
  mov    %rax,(%rsp)
  mov    %r13,%rdx
  mov    %rbp,%rax
L591:
  movsd  (%rax),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    $0x8,%rdx
  cmp    %rax,(%rsp)
  jne    L591
  mov    $0x0,%r14d
  jmp    L1566
L838:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L499
L382:
  movsd  D484(%rip),%xmm0
  lea    D231(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L1022:
  add    $0x1,%r14
  cmp    $0x7b,%r14
  je     L391
L1566:
  mov    %r14d,%esi
  movsd  0x10(%rsp,%r14,8),%xmm1
  ucomisd D484(%rip),%xmm1
  jp     L382
  je     L1022
  jmp    L382
L391:
  test   %ebx,%ebx
  je     L1063
  lea    D663(%rip),%rdi
  call   <puts@plt>
L192:
  mov    %rbp,%rax
L1128:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L1128
  mov    %r13,%rdx
  mov    %rbp,%rax
L280:
  movsd  (%rax),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    $0x8,%rdx
  cmp    %r15,%rax
  jne    L280
  mov    $0x0,%r14d
  jmp    L347
L1063:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L192
L497:
  movsd  D484(%rip),%xmm0
  lea    D231(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L903:
  add    $0x1,%r14
  cmp    $0x200,%r14
  je     L205
L347:
  mov    %r14d,%esi
  movsd  0x10(%rsp,%r14,8),%xmm1
  ucomisd D484(%rip),%xmm1
  jp     L497
  je     L903
  jmp    L497
L205:
  test   %ebx,%ebx
  je     L1209
  lea    D663(%rip),%rdi
  call   <puts@plt>
L839:
  mov    %rbp,%rax
L579:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L579
  mov    %r13,%rdx
  mov    %rbp,%rax
L440:
  movsd  (%rax),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    $0x8,%rdx
  cmp    %r15,%rax
  jne    L440
  mov    $0x0,%r14d
  jmp    L450
L1209:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L839
L1469:
  movsd  D484(%rip),%xmm0
  lea    D231(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L1057:
  add    $0x1,%r14
  cmp    $0x200,%r14
  je     L346
L450:
  mov    %r14d,%esi
  movsd  0x10(%rsp,%r14,8),%xmm1
  ucomisd D484(%rip),%xmm1
  jp     L1469
  je     L1057
  jmp    L1469
L346:
  test   %ebx,%ebx
  je     L83
  lea    D663(%rip),%rdi
  call   <puts@plt>
L1357:
  mov    %rbp,%rax
L811:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L811
  mov    %r13,%rdx
  mov    %rbp,%rax
L1338:
  movsd  (%rax),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    $0x8,%rdx
  cmp    %r15,%rax
  jne    L1338
  mov    $0x0,%r14d
  lea    D231(%rip),%r15
  jmp    L881
L83:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L1357
L757:
  movsd  D484(%rip),%xmm0
  mov    %r15,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L1412:
  add    $0x1,%r14
  cmp    $0x200,%r14
  je     L1594
L881:
  mov    %r14d,%esi
  movsd  0x10(%rsp,%r14,8),%xmm1
  ucomisd D484(%rip),%xmm1
  jp     L757
  je     L1412
  jmp    L757
L1594:
  test   %ebx,%ebx
  je     L1376
  lea    D663(%rip),%rdi
  call   <puts@plt>
L474:
  mov    %rbp,%rax
L588:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L588
  mov    %r13,%rdx
  mov    %rbp,%rax
L1109:
  movsd  (%rax),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    $0x8,%rdx
  cmp    0x8(%rsp),%rax
  jne    L1109
  mov    $0x0,%r14d
  lea    D231(%rip),%r15
  jmp    L965
L1376:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L474
L1081:
  movsd  D484(%rip),%xmm0
  mov    %r15,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L1400:
  add    $0x1,%r14
  cmp    $0x1f4,%r14
  je     L1428
L965:
  mov    %r14d,%esi
  movsd  0x10(%rsp,%r14,8),%xmm1
  ucomisd D484(%rip),%xmm1
  jp     L1081
  je     L1400
  jmp    L1081
L1428:
  test   %ebx,%ebx
  je     L1561
  lea    D663(%rip),%rdi
  call   <puts@plt>
L1316:
  mov    %rbp,%rax
L1518:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L1518
  mov    %r13,%rdx
  mov    %rbp,%rax
L1139:
  movsd  (%rax),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    $0x8,%rdx
  cmp    0x8(%rsp),%rax
  jne    L1139
  mov    $0x0,%r14d
  lea    D231(%rip),%r15
  jmp    L1113
L1561:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L1316
L981:
  movsd  D484(%rip),%xmm0
  mov    %r15,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L1032:
  add    $0x1,%r14
  cmp    $0x1f4,%r14
  je     L1148
L1113:
  mov    %r14d,%esi
  movsd  0x10(%rsp,%r14,8),%xmm1
  ucomisd D484(%rip),%xmm1
  jp     L981
  je     L1032
  jmp    L981
L1148:
  test   %ebx,%ebx
  je     L116
  lea    D663(%rip),%rdi
  call   <puts@plt>
L1067:
  mov    %rbp,%rax
L1380:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L1380
  mov    %r13,%rdx
  mov    %rbp,%rax
L1161:
  movsd  (%rax),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    $0x8,%rdx
  cmp    0x8(%rsp),%rax
  jne    L1161
  mov    $0x0,%r14d
  lea    D231(%rip),%r15
  jmp    L1398
L116:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L1067
L191:
  movsd  D484(%rip),%xmm0
  mov    %r15,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L1783:
  add    $0x1,%r14
  cmp    $0x1f4,%r14
  je     L112
L1398:
  mov    %r14d,%esi
  movsd  0x10(%rsp,%r14,8),%xmm1
  ucomisd D484(%rip),%xmm1
  jp     L191
  je     L1783
  jmp    L191
L112:
  test   %ebx,%ebx
  je     L1187
  lea    D663(%rip),%rdi
  call   <puts@plt>
L1574:
  mov    %rbp,%rax
L704:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L704
  mov    %r13,%rdx
  mov    %rbp,%rax
L434:
  movsd  (%rax),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    $0x8,%rdx
  cmp    (%rsp),%rax
  jne    L434
  mov    $0x0,%r14d
  lea    D231(%rip),%r15
  jmp    L1722
L1187:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L1574
L481:
  movsd  D484(%rip),%xmm0
  mov    %r15,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L1370:
  add    $0x1,%r14
  cmp    $0x7b,%r14
  je     L621
L1722:
  mov    %r14d,%esi
  movsd  0x10(%rsp,%r14,8),%xmm1
  ucomisd D484(%rip),%xmm1
  jp     L481
  je     L1370
  jmp    L481
L621:
  test   %ebx,%ebx
  je     L458
  lea    D663(%rip),%rdi
  call   <puts@plt>
L1343:
  mov    %rbp,%rax
L871:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L871
  mov    %r13,%rdx
  mov    %rbp,%rax
L803:
  movsd  (%rax),%xmm0
  addsd  (%rdx),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    $0x8,%rdx
  cmp    (%rsp),%rax
  jne    L803
  mov    $0x0,%r14d
  lea    D231(%rip),%r15
  jmp    L285
L458:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L1343
L1188:
  movsd  D484(%rip),%xmm0
  mov    %r15,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L834:
  add    $0x1,%r14
  cmp    $0x7b,%r14
  je     L461
L285:
  mov    %r14d,%esi
  movsd  0x10(%rsp,%r14,8),%xmm1
  ucomisd D484(%rip),%xmm1
  jp     L1188
  je     L834
  jmp    L1188
L461:
  test   %ebx,%ebx
  je     L506
  lea    D663(%rip),%rdi
  call   <puts@plt>
L25:
  mov    %rbp,%rax
L859:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L859
  mov    %rbp,%rax
L685:
  movsd  (%rax),%xmm0
  addsd  0x0(%r13),%xmm0
  movsd  %xmm0,(%rax)
  add    $0x8,%rax
  add    $0x8,%r13
  cmp    (%rsp),%rax
  jne    L685
  mov    $0x0,%r13d
  lea    D231(%rip),%r14
  jmp    L1543
L506:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L25
L1114:
  movsd  D484(%rip),%xmm0
  mov    %r14,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L60:
  add    $0x1,%r13
  cmp    $0x7b,%r13
  je     L1564
L1543:
  mov    %r13d,%esi
  movsd  0x10(%rsp,%r13,8),%xmm1
  ucomisd D484(%rip),%xmm1
  jp     L1114
  je     L60
  jmp    L1114
L1564:
  test   %ebx,%ebx
  je     L819
  lea    D663(%rip),%rdi
  call   <puts@plt>
L1244:
  mov    %rbp,%rax
L887:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L887
  lea    0x1f10(%rsp),%r13
  lea    0x3e10(%rsp),%r15
  mov    %r13,%rax
L1781:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %rax,%r15
  jne    L1781
  mov    %r13,%rdx
  mov    %rbp,%rax
  movsd  D205(%rip),%xmm1
  movsd  D798(%rip),%xmm0
L1075:
  movapd %xmm1,%xmm2
  addsd  (%rax),%xmm2
  movsd  %xmm2,(%rax)
  movapd %xmm0,%xmm2
  addsd  (%rdx),%xmm2
  movsd  %xmm2,(%rdx)
  add    $0x8,%rax
  add    $0x8,%rdx
  cmp    %r12,%rax
  jne    L1075
  mov    $0x0,%r14d
  jmp    L1434
L819:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L1244
L1335:
  movsd  D205(%rip),%xmm0
  mov    (%rsp),%esi
  lea    D602(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
  jmp    L158
L629:
  movsd  D798(%rip),%xmm0
  mov    (%rsp),%esi
  lea    D707(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L1432:
  add    $0x1,%r14
  cmp    $0x3e0,%r14
  je     L1458
L1434:
  mov    %r14d,(%rsp)
  movsd  0x10(%rsp,%r14,8),%xmm1
  ucomisd D205(%rip),%xmm1
  jp     L1335
  jne    L1335
L158:
  movsd  0x1f10(%rsp,%r14,8),%xmm1
  ucomisd D798(%rip),%xmm1
  jp     L629
  je     L1432
  jmp    L629
L1458:
  test   %ebx,%ebx
  je     L807
  lea    D663(%rip),%rdi
  call   <puts@plt>
L661:
  mov    %rbp,%rax
L929:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %r12,%rax
  jne    L929
  mov    %r13,%rax
L775:
  movq   $0x0,(%rax)
  add    $0x8,%rax
  cmp    %rax,%r15
  jne    L775
  lea    0x400(%rbp),%rax
  movsd  D11(%rip),%xmm1
  movsd  D205(%rip),%xmm0
L678:
  addsd  D798(%rip),%xmm0
  addsd  D110(%rip),%xmm1
  movapd %xmm0,%xmm2
  addsd  0x0(%rbp),%xmm2
  movsd  %xmm2,0x0(%rbp)
  movapd %xmm1,%xmm2
  addsd  0x0(%r13),%xmm2
  movsd  %xmm2,0x0(%r13)
  add    $0x8,%rbp
  add    $0x8,%r13
  cmp    %rbp,%rax
  jne    L678
  mov    $0x0,%ebp
  lea    D707(%rip),%r13
  jmp    L304
L807:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L661
L714:
  movsd  D33(%rip),%xmm0
  mov    %r12d,%esi
  lea    D602(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
  jmp    L1406
L82:
  movsd  0x10(%rsp,%rbp,8),%xmm1
  ucomisd D83(%rip),%xmm1
  jp     L1677
  jne    L1677
L1180:
  movsd  0x1f10(%rsp,%rbp,8),%xmm1
  ucomisd D939(%rip),%xmm1
  jp     L772
  jne    L772
L991:
  add    $0x1,%rbp
  cmp    $0x80,%rbp
  je     L952
L304:
  mov    %ebp,%r12d
  test   $0x1,%bpl
  jne    L82
  movsd  0x10(%rsp,%rbp,8),%xmm1
  ucomisd D33(%rip),%xmm1
  jp     L714
  jne    L714
L1406:
  movsd  0x1f10(%rsp,%rbp,8),%xmm1
  ucomisd D1048(%rip),%xmm1
  jp     L1503
  je     L991
L1503:
  movsd  D1048(%rip),%xmm0
  mov    %r12d,%esi
  mov    %r13,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
  jmp    L991
L1677:
  movsd  D83(%rip),%xmm0
  mov    %r12d,%esi
  lea    D602(%rip),%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
  jmp    L1180
L772:
  movsd  D939(%rip),%xmm0
  mov    %r12d,%esi
  mov    %r13,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
  jmp    L991
L952:
  test   %ebx,%ebx
  je     L1092
  lea    D663(%rip),%rdi
  call   <puts@plt>
L1590:
  mov    $0x0,%r12d
  mov    $0xffffffff,%ebp
  jmp    L266
L1092:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L1590
L1266:
  mov    $0x0,%eax
  call   <omp_get_team_num@plt>
  mov    %eax,%ebp
  add    $0x1,%r12d
L266:
  mov    $0x0,%eax
  call   <omp_get_num_teams@plt>
  cmp    %r12d,%eax
  jg     L1266
  cmp    $0x9,%ebp
  jne    L185
  test   %ebx,%ebx
  jne    L449
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L877
L185:
  mov    $0x9,%edx
  mov    %ebp,%esi
  lea    D729(%rip),%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L449:
  lea    D663(%rip),%rdi
  call   <puts@plt>
  mov    $0x1,%ebx
L877:
  mov    $0x782000,%edi
  call   <malloc@plt>
  mov    %rax,%rbp
  mov    $0x782000,%edi
  call   <malloc@plt>
  mov    %rax,%r12
  mov    $0x782000,%edi
  call   <malloc@plt>
  mov    %rax,%rcx
  mov    $0x0,%eax
  movsd  D484(%rip),%xmm1
  movsd  D205(%rip),%xmm0
L1051:
  mov    %rax,%rdx
  add    $0x1f00,%rax
L1647:
  movq   $0x0,0x0(%rbp,%rdx,1)
  movsd  %xmm1,(%r12,%rdx,1)
  movsd  %xmm0,(%rcx,%rdx,1)
  add    $0x8,%rdx
  cmp    %rdx,%rax
  jne    L1647
  cmp    $0x782000,%rax
  jne    L1051
  mov    $0x1f00,%edx
L429:
  lea    -0x1f00(%rdx),%rax
L754:
  movsd  (%r12,%rax,1),%xmm0
  addsd  (%rcx,%rax,1),%xmm0
  addsd  0x0(%rbp,%rax,1),%xmm0
  movsd  %xmm0,0x0(%rbp,%rax,1)
  add    $0x8,%rax
  cmp    %rax,%rdx
  jne    L754
  add    $0x1f00,%rdx
  cmp    $0x783f00,%rdx
  jne    L429
  mov    $0x0,%r13d
  lea    D594(%rip),%r14
  jmp    L1344
L1373:
  movsd  D798(%rip),%xmm0
  mov    %r13d,%esi
  mov    %r14,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L1753:
  add    $0x1,%r12
  cmp    $0x3e0,%r12
  je     L1773
L1598:
  mov    %r12d,%edx
  movsd  0x0(%rbp,%r12,8),%xmm1
  ucomisd D798(%rip),%xmm1
  jp     L1373
  je     L1753
  jmp    L1373
L1773:
  add    $0x1,%r13d
  add    $0x1f00,%rbp
  cmp    $0x3e0,%r13d
  je     L1220
L1344:
  mov    $0x0,%r12d
  jmp    L1598
L1220:
  test   %ebx,%ebx
  je     L828
  lea    D663(%rip),%rdi
  call   <puts@plt>
L1691:
  mov    $0xe8be00,%edi
  call   <malloc@plt>
  mov    %rax,%rbp
  mov    $0xe8be00,%edi
  call   <malloc@plt>
  mov    %rax,%rcx
  mov    $0x1e460,%esi
  movsd  D205(%rip),%xmm1
  movsd  D798(%rip),%xmm0
L995:
  lea    -0x1e080(%rsi),%rdx
L1726:
  lea    -0x3e0(%rdx),%rax
L1332:
  movsd  %xmm1,0x0(%rbp,%rax,1)
  movsd  %xmm0,(%rcx,%rax,1)
  add    $0x8,%rax
  cmp    %rax,%rdx
  jne    L1332
  add    $0x3e0,%rdx
  cmp    %rdx,%rsi
  jne    L1726
  add    $0x1e080,%rsi
  cmp    $0xeaa260,%rsi
  jne    L995
  mov    $0x0,%esi
  jmp    L1233
L828:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L1691
L927:
  add    $0x3e0,%rdx
  cmp    %rdx,%r12
  je     L681
L1733:
  lea    -0x3e0(%rdx),%rax
L1425:
  movsd  0x0(%rbp,%rax,1),%xmm0
  addsd  (%rcx,%rax,1),%xmm0
  movsd  %xmm0,0x0(%rbp,%rax,1)
  add    $0x8,%rax
  cmp    %rax,%rdx
  jne    L1425
  jmp    L927
L681:
  add    $0x3c10,%esi
  cmp    $0x1d17c0,%esi
  je     L650
L1233:
  mov    %r12,%rdx
  add    $0x1e080,%r12
  jmp    L1733
L650:
  lea    0x3e0(%rbp),%rax
  mov    %rax,(%rsp)
  mov    $0x0,%r14d
  lea    D594(%rip),%r15
  jmp    L1279
L1204:
  movsd  D798(%rip),%xmm0
  mov    %r13d,%edx
  mov    %r14d,%esi
  mov    %r15,%rdi
  mov    $0x2,%eax
  call   <printf@plt>
  mov    $0x1,%ebx
L1646:
  add    $0x8,%rbp
  cmp    %rbp,%r12
  je     L1615
L1062:
  movsd  0x0(%rbp),%xmm1
  ucomisd D33(%rip),%xmm1
  jp     L1204
  je     L1646
  jmp    L1204
L1615:
  add    $0x1,%r13d
  add    $0x3e0,%r12
  cmp    $0x7c,%r13d
  je     L1730
L315:
  lea    -0x3e0(%r12),%rbp
  jmp    L1062
L1730:
  add    $0x1,%r14d
  addq   $0x1e080,(%rsp)
  cmp    $0x7c,%r14d
  je     L989
L1279:
  mov    (%rsp),%r12
  mov    $0x0,%r13d
  jmp    L315
L989:
  test   %ebx,%ebx
  je     L413
  lea    D663(%rip),%rdi
  call   <puts@plt>
L1354:
  mov    0x5d18(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L1470
  mov    $0x0,%eax
  add    $0x5d28,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L413:
  lea    D404(%rip),%rdi
  call   <puts@plt>
  jmp    L1354
L1470:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: parse_data
arguments: label: D484
type_infered: f64
name: parse_data
arguments: label: D231
type_infered: string
name: parse_data
arguments: label: D663
type_infered: string
name: parse_data
arguments: label: D404
type_infered: string
name: parse_data
arguments: label: D205
type_infered: f64
name: parse_data
arguments: label: D798
type_infered: f64
name: parse_data
arguments: label: D602
type_infered: string
name: parse_data
arguments: label: D707
type_infered: string
name: parse_data
arguments: label: D11
type_infered: f64
name: parse_data
arguments: label: D110
type_infered: f64
name: parse_data
arguments: label: D33
type_infered: f32[2]
name: parse_data
arguments: label: D83
type_infered: f32[2]
name: parse_data
arguments: label: D939
type_infered: f32[2]
name: parse_data
arguments: label: D1048
type_infered: f32[2]
name: parse_data
arguments: label: D729
type_infered: string
name: parse_data
arguments: label: D594
type_infered: string

tool: D484: 1

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


tool: D663: Failed

tool: D404: Succeeded

tool: D205: 2

tool: D798: 3

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


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


tool: D11: 4

tool: D110: 7

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

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

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

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

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


tool: D594: 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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;
}
```