// File: /workspace/github_c_makefile_star2_O0/00pauln00[P]yapio/yapio.c
// Function: yapio_exec_all_tests
static void
yapio_exec_all_tests(void)
{
    yapio_test_group_t *ytg = yapioMyTestGroup;

    yapio_mpi_barrier(yapioMyTestGroup->ytg_comm);

    log_msg_r0(YAPIO_LL_DEBUG,
               "g@%p nctxs=%d nranks=%d nblks=%zu blksz=%zu fpp=%d lr=%d %s",
               ytg, ytg->ytg_num_contexts, ytg->ytg_num_ranks,
               ytg->ytg_num_blks_per_rank, ytg->ytg_blk_sz,
               ytg->ytg_file_per_process, ytg->ytg_leader_rank,
               ytg->ytg_suffix);

    int i;
    for (i = 0; i < yapioMyTestGroup->ytg_num_contexts; i++)
    {
        yapio_test_ctx_t *ytc = &yapioMyTestGroup->ytg_contexts[i];
        ytc->ytc_group = yapioMyTestGroup;
        strncpy(ytc->ytc_suffix, yapioMyTestGroup->ytg_suffix,
                YAPIO_MKSTEMP_TEMPLATE_LEN + 1);
        /* Setup may require a notable amount of time for buffer exchange and
         * file descriptor operations.
         */
        if (yapio_leader_rank())
            yapio_start_timer(&ytc->ytc_setup_time);

        int rc = yapio_test_context_setup(ytc, i);
        if (rc)
            yapio_exit(rc);

        yapio_mpi_barrier(yapioMyTestGroup->ytg_comm); //setup barrier

        if (yapio_leader_rank())
            yapio_end_timer(&ytc->ytc_setup_time);

        ytc->ytc_run_status = YAPIO_TEST_CTX_RUN_STARTED;

        /* Sync all ranks before and after starting the test.
         */
        yapio_mpi_barrier(yapioMyTestGroup->ytg_comm);
        if (yapio_leader_rank())
            yapio_start_timer(&ytc->ytc_test_duration);

        yapioIOErrorCnt += yapio_perform_io(ytc);

        yapio_start_timer(&ytc->ytc_barrier_wait[0]);
        yapio_mpi_barrier(yapioMyTestGroup->ytg_comm);
        yapio_start_timer(&ytc->ytc_barrier_wait[1]);

        /* Result is in barrier[0]
         */
        yapio_get_time_duration(&ytc->ytc_barrier_wait[0],
                                &ytc->ytc_barrier_wait[1]);
        yapio_get_time_duration(&ytc->ytc_test_duration,
                                &ytc->ytc_barrier_wait[1]);

        ytc->ytc_run_status = YAPIO_TEST_CTX_RUN_COMPLETE;

        yapio_gather_test_barrier_results(ytc);
        yapio_send_test_results(ytc);

        yapio_try_sync_md(ytc, i == ytg->ytg_last_writer_ctx ?
                          true : false);

        /* Free memory allocated in the test.
         */
        yapio_test_ctx_release(ytc);

        if (ytc->ytc_stonewalled)
        {
            log_msg(YAPIO_LL_WARN, "stonewalled, stopping");
            break;
        }
    }

    yapio_stat_ready();

    yapioHaltStonewallThread = true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x70, %rsp
movq 0xb8cd(%rip), %rax      # 0xf250
movq %rax, 0x68(%rsp)
movq 0xb8c1(%rip), %rax      # 0xf250
movq (%rax), %rdi
callq 0x3930
callq 0x5910
testb $0x1, %al
jne 0x39a5
jmp 0x3a82
movl $0x3, %eax
cmpl 0xb860(%rip), %eax      # 0xf210
jg 0x3a80
movq 0xb623(%rip), %rax      # 0xefe0
movq (%rax), %rax
movq %rax, 0x48(%rsp)
movl $0x3, %edi
callq 0x4890
movq 0x48(%rsp), %rdi
movq %rax, %rdx
movl 0xb8b2(%rip), %r8d      # 0xf290
movq 0x68(%rsp), %r12
movq 0x68(%rsp), %rax
movl 0xb010(%rax), %r15d
movq 0x68(%rsp), %rax
movl 0xb01c(%rax), %ebp
movq 0x68(%rsp), %rax
movq 0xb020(%rax), %r14
movq 0x68(%rsp), %rax
movq 0xb028(%rax), %rbx
movq 0x68(%rsp), %rax
movb 0xb030(%rax), %al
andb $0x1, %al
movzbl %al, %r11d
movq 0x68(%rsp), %rax
movb 0xb032(%rax), %al
andb $0x1, %al
movzbl %al, %r10d
movq 0x68(%rsp), %rax
addq $0xb038, %rax           # imm = 0xB038
leaq 0x8b76(%rip), %rsi      # 0xc5bc
leaq 0x8bba(%rip), %rcx      # 0xc607
movl $0xa35, %r9d            # imm = 0xA35
movq %r12, (%rsp)
movl %r15d, 0x8(%rsp)
movl %ebp, 0x10(%rsp)
movq %r14, 0x18(%rsp)
movq %rbx, 0x20(%rsp)
movl %r11d, 0x28(%rsp)
movl %r10d, 0x30(%rsp)
movq %rax, 0x38(%rsp)
movb $0x0, %al
callq 0x2370
jmp 0x3a82
movl $0x0, 0x64(%rsp)
movl 0x64(%rsp), %eax
movq 0xb7bb(%rip), %rcx      # 0xf250
cmpl 0xb010(%rcx), %eax
jge 0x3cd3
movq 0xb7a8(%rip), %rax      # 0xf250
addq $0x10, %rax
movslq 0x64(%rsp), %rcx
imulq $0xb0, %rcx, %rcx
addq %rcx, %rax
movq %rax, 0x58(%rsp)
movq 0xb789(%rip), %rcx      # 0xf250
movq 0x58(%rsp), %rax
movq %rcx, 0xa0(%rax)
movq 0x58(%rsp), %rdi
addq $0x98, %rdi
movq 0xb76a(%rip), %rsi      # 0xf250
addq $0xb038, %rsi           # imm = 0xB038
movl $0x7, %edx
callq 0x2310
callq 0x5910
testb $0x1, %al
jne 0x3b02
jmp 0x3b10
movq 0x58(%rsp), %rdi
addq $0x18, %rdi
callq 0x79d0
movq 0x58(%rsp), %rdi
movl 0x64(%rsp), %esi
callq 0x7bb0
movl %eax, 0x54(%rsp)
cmpl $0x0, 0x54(%rsp)
je 0x3b32
movl 0x54(%rsp), %edi
callq 0x40f0
movq 0xb717(%rip), %rax      # 0xf250
movq (%rax), %rdi
callq 0x3930
callq 0x5910
testb $0x1, %al
jne 0x3b4c
jmp 0x3b5a
movq 0x58(%rsp), %rdi
addq $0x18, %rdi
callq 0x73e0
movq 0x58(%rsp), %rax
movl $0x1, 0x14(%rax)
movq 0xb6e3(%rip), %rax      # 0xf250
movq (%rax), %rdi
callq 0x3930
callq 0x5910
testb $0x1, %al
jne 0x3b80
jmp 0x3b8e
movq 0x58(%rsp), %rdi
addq $0x28, %rdi
callq 0x79d0
movq 0x58(%rsp), %rdi
callq 0x7cf0
addl 0xe16fee(%rip), %eax    # 0xe1ab8c
movl %eax, 0xe16fe8(%rip)    # 0xe1ab8c
movq 0x58(%rsp), %rdi
addq $0x48, %rdi
callq 0x79d0
movq 0xb697(%rip), %rax      # 0xf250
movq (%rax), %rdi
callq 0x3930
movq 0x58(%rsp), %rdi
addq $0x48, %rdi
addq $0x10, %rdi
callq 0x79d0
movq 0x58(%rsp), %rdi
addq $0x48, %rdi
movq 0x58(%rsp), %rsi
addq $0x48, %rsi
addq $0x10, %rsi
callq 0x79e0
movq 0x58(%rsp), %rdi
addq $0x28, %rdi
movq 0x58(%rsp), %rsi
addq $0x48, %rsi
addq $0x10, %rsi
callq 0x79e0
movq 0x58(%rsp), %rax
movl $0x2, 0x14(%rax)
movq 0x58(%rsp), %rdi
callq 0x83a0
movq 0x58(%rsp), %rdi
callq 0x83d0
movq 0x58(%rsp), %rdi
movl 0x64(%rsp), %edx
movq 0x68(%rsp), %rax
movl 0xb034(%rax), %esi
xorl %eax, %eax
movl $0x1, %ecx
cmpl %esi, %edx
cmovel %ecx, %eax
cmpl $0x0, %eax
setne %al
movzbl %al, %esi
andl $0x1, %esi
callq 0x8580
movq 0x58(%rsp), %rdi
callq 0x8680
movq 0x58(%rsp), %rax
testb $0x1, 0x1(%rax)
je 0x3cc1
movl $0x2, %eax
cmpl 0xb596(%rip), %eax      # 0xf210
jg 0x3cbf
movq 0xb35d(%rip), %rax      # 0xefe0
movq (%rax), %rax
movq %rax, 0x40(%rsp)
movl $0x2, %edi
callq 0x4890
movq 0x40(%rsp), %rdi
movq %rax, %rdx
movl 0xb5ec(%rip), %r8d      # 0xf290
leaq 0x8971(%rip), %rsi      # 0xc61c
leaq 0x8955(%rip), %rcx      # 0xc607
movl $0xa70, %r9d            # imm = 0xA70
movb $0x0, %al
callq 0x2370
jmp 0x3cd3
jmp 0x3cc3
movl 0x64(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x64(%rsp)
jmp 0x3a8a
callq 0x7ac0
movb $0x1, 0xe16e99(%rip)    # 0xe1ab78
addq $0x70, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax)