user: Converte this assembly snippet into its equivalent C code:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %edi,-0x14(%rbp)
  mov    %rsi,-0x20(%rbp)
  movl   $0x0,-0x8(%rbp)
  movl   $0x0,-0x4(%rbp)
  lea    D305(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D439(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D305(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_sdot@plt>
  mov    %eax,%esi
  lea    D80(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L333
  addl   $0x1,-0x8(%rbp)
L333:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_saxpy@plt>
  mov    %eax,%esi
  lea    D362(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L117
  addl   $0x1,-0x8(%rbp)
L117:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_srotg@plt>
  mov    %eax,%esi
  lea    D3(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L56
  addl   $0x1,-0x8(%rbp)
L56:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_srot@plt>
  mov    %eax,%esi
  lea    D163(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L484
  addl   $0x1,-0x8(%rbp)
L484:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_scopy@plt>
  mov    %eax,%esi
  lea    D227(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L357
  addl   $0x1,-0x8(%rbp)
L357:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_sswap@plt>
  mov    %eax,%esi
  lea    D385(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L264
  addl   $0x1,-0x8(%rbp)
L264:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_snrm2@plt>
  mov    %eax,%esi
  lea    D339(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L146
  addl   $0x1,-0x8(%rbp)
L146:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_sasum@plt>
  mov    %eax,%esi
  lea    D13(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L410
  addl   $0x1,-0x8(%rbp)
L410:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_sscal@plt>
  mov    %eax,%esi
  lea    D320(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L251
  addl   $0x1,-0x8(%rbp)
L251:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_isamax@plt>
  mov    %eax,%esi
  lea    D418(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L104
  addl   $0x1,-0x8(%rbp)
L104:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_srotmg@plt>
  mov    %eax,%esi
  lea    D359(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L483
  addl   $0x1,-0x8(%rbp)
L483:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_srotm@plt>
  mov    %eax,%esi
  lea    D449(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L94
  addl   $0x1,-0x8(%rbp)
L94:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_sdsdot@plt>
  mov    %eax,%esi
  lea    D195(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L255
  addl   $0x1,-0x8(%rbp)
L255:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_ddot@plt>
  mov    %eax,%esi
  lea    D10(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L441
  addl   $0x1,-0x8(%rbp)
L441:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_daxpy@plt>
  mov    %eax,%esi
  lea    D269(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L253
  addl   $0x1,-0x8(%rbp)
L253:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_drotg@plt>
  mov    %eax,%esi
  lea    D354(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L286
  addl   $0x1,-0x8(%rbp)
L286:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_drot@plt>
  mov    %eax,%esi
  lea    D306(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L398
  addl   $0x1,-0x8(%rbp)
L398:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_dcopy@plt>
  mov    %eax,%esi
  lea    D90(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L425
  addl   $0x1,-0x8(%rbp)
L425:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_dswap@plt>
  mov    %eax,%esi
  lea    D361(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L118
  addl   $0x1,-0x8(%rbp)
L118:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_dnrm2@plt>
  mov    %eax,%esi
  lea    D201(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L240
  addl   $0x1,-0x8(%rbp)
L240:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_dasum@plt>
  mov    %eax,%esi
  lea    D91(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L393
  addl   $0x1,-0x8(%rbp)
L393:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_dscal@plt>
  mov    %eax,%esi
  lea    D451(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L173
  addl   $0x1,-0x8(%rbp)
L173:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_idamax@plt>
  mov    %eax,%esi
  lea    D297(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L327
  addl   $0x1,-0x8(%rbp)
L327:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_drotmg@plt>
  mov    %eax,%esi
  lea    D57(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L157
  addl   $0x1,-0x8(%rbp)
L157:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_drotm@plt>
  mov    %eax,%esi
  lea    D454(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L237
  addl   $0x1,-0x8(%rbp)
L237:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_dsdot@plt>
  mov    %eax,%esi
  lea    D114(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L54
  addl   $0x1,-0x8(%rbp)
L54:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_cdotc@plt>
  mov    %eax,%esi
  lea    D376(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L252
  addl   $0x1,-0x8(%rbp)
L252:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_cdotu@plt>
  mov    %eax,%esi
  lea    D62(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L11
  addl   $0x1,-0x8(%rbp)
L11:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_caxpy@plt>
  mov    %eax,%esi
  lea    D360(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L15
  addl   $0x1,-0x8(%rbp)
L15:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_ccopy@plt>
  mov    %eax,%esi
  lea    D378(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L85
  addl   $0x1,-0x8(%rbp)
L85:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_cswap@plt>
  mov    %eax,%esi
  lea    D368(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L271
  addl   $0x1,-0x8(%rbp)
L271:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_scnrm2@plt>
  mov    %eax,%esi
  lea    D250(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L59
  addl   $0x1,-0x8(%rbp)
L59:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_scasum@plt>
  mov    %eax,%esi
  lea    D277(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L153
  addl   $0x1,-0x8(%rbp)
L153:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_cscal@plt>
  mov    %eax,%esi
  lea    D397(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L143
  addl   $0x1,-0x8(%rbp)
L143:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_csscal@plt>
  mov    %eax,%esi
  lea    D142(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L142
  addl   $0x1,-0x8(%rbp)
L142:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_icamax@plt>
  mov    %eax,%esi
  lea    D137(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L405
  addl   $0x1,-0x8(%rbp)
L405:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_zdotc@plt>
  mov    %eax,%esi
  lea    D455(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L69
  addl   $0x1,-0x8(%rbp)
L69:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_zdotu@plt>
  mov    %eax,%esi
  lea    D340(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L112
  addl   $0x1,-0x8(%rbp)
L112:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_zaxpy@plt>
  mov    %eax,%esi
  lea    D168(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L198
  addl   $0x1,-0x8(%rbp)
L198:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_zcopy@plt>
  mov    %eax,%esi
  lea    D494(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L19
  addl   $0x1,-0x8(%rbp)
L19:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_zswap@plt>
  mov    %eax,%esi
  lea    D26(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L498
  addl   $0x1,-0x8(%rbp)
L498:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_dznrm2@plt>
  mov    %eax,%esi
  lea    D493(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L156
  addl   $0x1,-0x8(%rbp)
L156:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_dzasum@plt>
  mov    %eax,%esi
  lea    D478(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L63
  addl   $0x1,-0x8(%rbp)
L63:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_zscal@plt>
  mov    %eax,%esi
  lea    D271(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L194
  addl   $0x1,-0x8(%rbp)
L194:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_zdscal@plt>
  mov    %eax,%esi
  lea    D98(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L110
  addl   $0x1,-0x8(%rbp)
L110:
  mov    -0x4(%rbp),%eax
  mov    %eax,%edi
  call   <check_izamax@plt>
  mov    %eax,%esi
  lea    D398(%rip),%rax
  mov    %rax,%rdi
  call   <test_function@plt>
  test   %rax,%rax
  je     L12
  addl   $0x1,-0x8(%rbp)
L12:
  lea    D305(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  cmpl   $0x0,-0x8(%rbp)
  jne    L250
  lea    D263(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L235
L250:
  cmpl   $0x1,-0x8(%rbp)
  jne    L103
  lea    D289(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  jmp    L235
L103:
  mov    -0x8(%rbp),%eax
  mov    %eax,%esi
  lea    D207(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L235:
  mov    -0x8(%rbp),%eax
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_label: D305
datatype: string
name: parse_data
arguments: data_label: D439
datatype: string
name: parse_data
arguments: data_label: D80
datatype: string
name: parse_data
arguments: data_label: D362
datatype: string
name: parse_data
arguments: data_label: D3
datatype: string
name: parse_data
arguments: data_label: D163
datatype: string
name: parse_data
arguments: data_label: D227
datatype: string
name: parse_data
arguments: data_label: D385
datatype: string
name: parse_data
arguments: data_label: D339
datatype: string
name: parse_data
arguments: data_label: D13
datatype: string
name: parse_data
arguments: data_label: D320
datatype: string
name: parse_data
arguments: data_label: D418
datatype: string
name: parse_data
arguments: data_label: D359
datatype: string
name: parse_data
arguments: data_label: D449
datatype: string
name: parse_data
arguments: data_label: D195
datatype: string
name: parse_data
arguments: data_label: D10
datatype: string
name: parse_data
arguments: data_label: D269
datatype: string
name: parse_data
arguments: data_label: D354
datatype: string
name: parse_data
arguments: data_label: D306
datatype: string
name: parse_data
arguments: data_label: D90
datatype: string
name: parse_data
arguments: data_label: D361
datatype: string
name: parse_data
arguments: data_label: D201
datatype: string
name: parse_data
arguments: data_label: D91
datatype: string
name: parse_data
arguments: data_label: D451
datatype: string
name: parse_data
arguments: data_label: D297
datatype: string
name: parse_data
arguments: data_label: D57
datatype: string
name: parse_data
arguments: data_label: D454
datatype: string
name: parse_data
arguments: data_label: D114
datatype: string
name: parse_data
arguments: data_label: D376
datatype: string
name: parse_data
arguments: data_label: D62
datatype: string
name: parse_data
arguments: data_label: D360
datatype: string
name: parse_data
arguments: data_label: D378
datatype: string
name: parse_data
arguments: data_label: D368
datatype: string
name: parse_data
arguments: data_label: D250
datatype: string
name: parse_data
arguments: data_label: D277
datatype: string
name: parse_data
arguments: data_label: D397
datatype: string
name: parse_data
arguments: data_label: D142
datatype: string
name: parse_data
arguments: data_label: D137
datatype: string
name: parse_data
arguments: data_label: D455
datatype: string
name: parse_data
arguments: data_label: D340
datatype: string
name: parse_data
arguments: data_label: D168
datatype: string
name: parse_data
arguments: data_label: D494
datatype: string
name: parse_data
arguments: data_label: D26
datatype: string
name: parse_data
arguments: data_label: D493
datatype: string
name: parse_data
arguments: data_label: D478
datatype: string
name: parse_data
arguments: data_label: D271
datatype: string
name: parse_data
arguments: data_label: D98
datatype: string
name: parse_data
arguments: data_label: D398
datatype: string
name: parse_data
arguments: data_label: D263
datatype: string
name: parse_data
arguments: data_label: D289
datatype: string
name: parse_data
arguments: data_label: D207
datatype: string

tool: D305:  ---------------------------

tool: D439:       CoBLAS Test Suite     

tool: D80: cblas_sdot  

tool: D362: cblas_saxpy 

tool: D3: cblas_srotg 

tool: D163: cblas_srot  

tool: D227: cblas_scopy 

tool: D385: cblas_sswap 

tool: D339: cblas_snrm2 

tool: D13: cblas_sasum 

tool: D320: cblas_sscal 

tool: D418: cblas_isamax

tool: D359: cblas_srotmg

tool: D449: cblas_srotm 

tool: D195: cblas_sdsdot

tool: D10: cblas_ddot  

tool: D269: cblas_daxpy 

tool: D354: cblas_drotg 

tool: D306: cblas_drot  

tool: D90: cblas_dcopy 

tool: D361: cblas_dswap 

tool: D201: cblas_dnrm2 

tool: D91: cblas_dasum 

tool: D451: cblas_dscal 

tool: D297: cblas_idamax

tool: D57: cblas_drotmg

tool: D454: cblas_drotm 

tool: D114: cblas_dsdot 

tool: D376: cblas_cdotc 

tool: D62: cblas_cdotu 

tool: D360: cblas_caxpy 

tool: D378: cblas_ccopy 

tool: D368: cblas_cswap 

tool: D250: cblas_scnrm2

tool: D277: cblas_scasum

tool: D397: cblas_cscal 

tool: D142: cblas_csscal

tool: D137: cblas_icamax

tool: D455: cblas_zdotc 

tool: D340: cblas_zdotu 

tool: D168: cblas_zaxpy 

tool: D494: cblas_zcopy 

tool: D26: cblas_zswap 

tool: D493: cblas_dznrm2

tool: D478: cblas_dzasum

tool: D271: cblas_zscal 

tool: D98: cblas_zdscal

tool: D398: cblas_izamax

tool: D263:  All tests passed.

tool: D289:  There was one failed test.

tool: D207:  There were %d failed tests.


assistant: ```c
int main(int argc, char *argv[]) {
  int fail = 0;
  bool verbose = false;
  printf(" ---------------------------\n");
  printf("      CoBLAS Test Suite     \n");
  printf(" ---------------------------\n");
  if (test_function("cblas_sdot  ", check_sdot(verbose)))
    fail++;
  if (test_function("cblas_saxpy ", check_saxpy(verbose)))
    fail++;
  if (test_function("cblas_srotg ", check_srotg(verbose)))
    fail++;
  if (test_function("cblas_srot  ", check_srot(verbose)))
    fail++;
  if (test_function("cblas_scopy ", check_scopy(verbose)))
    fail++;
  if (test_function("cblas_sswap ", check_sswap(verbose)))
    fail++;
  if (test_function("cblas_snrm2 ", check_snrm2(verbose)))
    fail++;
  if (test_function("cblas_sasum ", check_sasum(verbose)))
    fail++;
  if (test_function("cblas_sscal ", check_sscal(verbose)))
    fail++;
  if (test_function("cblas_isamax", check_isamax(verbose)))
    fail++;
  if (test_function("cblas_srotmg", check_srotmg(verbose)))
    fail++;
  if (test_function("cblas_srotm ", check_srotm(verbose)))
    fail++;
  if (test_function("cblas_sdsdot", check_sdsdot(verbose)))
    fail++;
  if (test_function("cblas_ddot  ", check_ddot(verbose)))
    fail++;
  if (test_function("cblas_daxpy ", check_daxpy(verbose)))
    fail++;
  if (test_function("cblas_drotg ", check_drotg(verbose)))
    fail++;
  if (test_function("cblas_drot  ", check_drot(verbose)))
    fail++;
  if (test_function("cblas_dcopy ", check_dcopy(verbose)))
    fail++;
  if (test_function("cblas_dswap ", check_dswap(verbose)))
    fail++;
  if (test_function("cblas_dnrm2 ", check_dnrm2(verbose)))
    fail++;
  if (test_function("cblas_dasum ", check_dasum(verbose)))
    fail++;
  if (test_function("cblas_dscal ", check_dscal(verbose)))
    fail++;
  if (test_function("cblas_idamax", check_idamax(verbose)))
    fail++;
  if (test_function("cblas_drotmg", check_drotmg(verbose)))
    fail++;
  if (test_function("cblas_drotm ", check_drotm(verbose)))
    fail++;
  if (test_function("cblas_dsdot ", check_dsdot(verbose)))
    fail++;
  if (test_function("cblas_cdotc ", check_cdotc(verbose)))
    fail++;
  if (test_function("cblas_cdotu ", check_cdotu(verbose)))
    fail++;
  if (test_function("cblas_caxpy ", check_caxpy(verbose)))
    fail++;
  if (test_function("cblas_ccopy ", check_ccopy(verbose)))
    fail++;
  if (test_function("cblas_cswap ", check_cswap(verbose)))
    fail++;
  if (test_function("cblas_scnrm2", check_scnrm2(verbose)))
    fail++;
  if (test_function("cblas_scasum", check_scasum(verbose)))
    fail++;
  if (test_function("cblas_cscal ", check_cscal(verbose)))
    fail++;
  if (test_function("cblas_csscal", check_csscal(verbose)))
    fail++;
  if (test_function("cblas_icamax", check_icamax(verbose)))
    fail++;
  if (test_function("cblas_zdotc ", check_zdotc(verbose)))
    fail++;
  if (test_function("cblas_zdotu ", check_zdotu(verbose)))
    fail++;
  if (test_function("cblas_zaxpy ", check_zaxpy(verbose)))
    fail++;
  if (test_function("cblas_zcopy ", check_zcopy(verbose)))
    fail++;
  if (test_function("cblas_zswap ", check_zswap(verbose)))
    fail++;
  if (test_function("cblas_dznrm2", check_dznrm2(verbose)))
    fail++;
  if (test_function("cblas_dzasum", check_dzasum(verbose)))
    fail++;
  if (test_function("cblas_zscal ", check_zscal(verbose)))
    fail++;
  if (test_function("cblas_zdscal", check_zdscal(verbose)))
    fail++;
  if (test_function("cblas_izamax", check_izamax(verbose)))
    fail++;
  printf(" ---------------------------\n");
  if (fail == 0)
    printf(" All tests passed.\n");
  else if (fail == 1)
    printf(" There was one failed test.\n");
  else
    printf(" There were %d failed tests.\n", fail);
  return fail;
}
```