// File: travisdowns[P]avx-turbo/avx-turbo.cpp
// Function: test_thread::operator()()
void operator()() {
        // if (verbose) printf("Running test in thread %lu, this = %p\n", id, this);
        if (!arg_no_pin) {
            pin_to_cpu(id);
        }
        aperf_ghz aperf_timer;
        outer_timer& outer = use_aperf ? static_cast<outer_timer&>(aperf_timer) : dummy_outer::dummy;
        warmup w{arg_warm_ms.Get()};
        long warms = w.warm();
        if (verbose) printf("[%2lu] Warmup iters %lu\n", id, warms);
        if (!arg_nobarrier) {
            long count = start_barrier->wait();
            if (verbose) printf("[%2lu] Thread loop count: %ld\n", id, count);
        }
        res.start_ts = RdtscClock::now();
        res.inner = run_test<RdtscClock>(test->func, iters, outer, stop_barrier);
        res.end_ts = RdtscClock::now();
        res.aperf_am   = use_aperf ? aperf_timer.am_ratio() : 0.0;
        res.aperf_mt   = use_aperf ? aperf_timer.mt_ratio() : 0.0;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x29d6f(%rip), %rdi     # 0x5b7f0
callq 0x10ee0
testb $0x1, %al
jne 0x31a9b
movq -0x90(%rbp), %rax
movq (%rax), %rax
movl %eax, %edi
callq 0xa560
leaq -0x30(%rbp), %rdi
callq 0x31cf0
movq -0x90(%rbp), %rax
testb $0x1, 0x70(%rax)
je 0x31abe
leaq -0x30(%rbp), %rax
movq %rax, -0x98(%rbp)
jmp 0x31ace
leaq 0x2999b(%rip), %rax     # 0x5b460
movq %rax, -0x98(%rbp)
jmp 0x31ace
movq -0x98(%rbp), %rax
movq %rax, -0x38(%rbp)
leaq 0x2a7b0(%rip), %rdi     # 0x5c290
callq 0x12940
movq (%rax), %rsi
leaq -0x40(%rbp), %rdi
callq 0x31d40
jmp 0x31af3
leaq -0x40(%rbp), %rdi
callq 0x31d60
movq %rax, -0xa0(%rbp)
jmp 0x31b05
movq -0xa0(%rbp), %rax
movq %rax, -0x58(%rbp)
testb $0x1, 0x2a851(%rip)     # 0x5c368
je 0x31b53
movq -0x90(%rbp), %rax
movq (%rax), %rsi
movq -0x58(%rbp), %rdx
leaq 0xfd2b(%rip), %rdi      # 0x41859
xorl %eax, %eax
callq 0x7080
jmp 0x31b37
jmp 0x31b53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x32300
jmp 0x31cdf
leaq 0x29e26(%rip), %rdi     # 0x5b980
callq 0x10ee0
testb $0x1, %al
jne 0x31bb2
movq -0x90(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x31dc0
movq %rax, -0xa8(%rbp)
jmp 0x31b7c
movq -0xa8(%rbp), %rax
movq %rax, -0x60(%rbp)
testb $0x1, 0x2a7da(%rip)     # 0x5c368
je 0x31bb0
movq -0x90(%rbp), %rax
movq (%rax), %rsi
movq -0x60(%rbp), %rdx
leaq 0xfccd(%rip), %rdi      # 0x41872
xorl %eax, %eax
callq 0x7080
jmp 0x31bae
jmp 0x31bb0
jmp 0x31bb2
callq 0x31e10
movq %rax, -0xb0(%rbp)
jmp 0x31bc0
movq -0x90(%rbp), %rax
movq -0xb0(%rbp), %rcx
movq %rcx, 0x40(%rax)
movq 0x10(%rax), %r8
movq 0x60(%rax), %rcx
movq (%rcx), %rsi
movq 0x68(%rax), %rdx
movq -0x38(%rbp), %rcx
leaq -0x88(%rbp), %rdi
callq 0x31e40
jmp 0x31bf3
movq -0x90(%rbp), %rax
movq -0x68(%rbp), %rcx
movq %rcx, 0x38(%rax)
movups -0x88(%rbp), %xmm0
movups -0x78(%rbp), %xmm1
movups %xmm1, 0x28(%rax)
movups %xmm0, 0x18(%rax)
callq 0x31e10
movq %rax, -0xb8(%rbp)
jmp 0x31c23
movq -0x90(%rbp), %rax
movq -0xb8(%rbp), %rcx
movq %rcx, 0x48(%rax)
testb $0x1, 0x70(%rax)
je 0x31c60
leaq -0x30(%rbp), %rdi
callq 0x32140
movsd %xmm0, -0xc0(%rbp)
jmp 0x31c4e
movsd -0xc0(%rbp), %xmm0
movsd %xmm0, -0xc8(%rbp)
jmp 0x31c6d
xorps %xmm0, %xmm0
movsd %xmm0, -0xc8(%rbp)
jmp 0x31c6d
movq -0x90(%rbp), %rax
movsd -0xc8(%rbp), %xmm0
movsd %xmm0, 0x50(%rax)
testb $0x1, 0x70(%rax)
je 0x31cac
leaq -0x30(%rbp), %rdi
callq 0x32220
movsd %xmm0, -0xd0(%rbp)
jmp 0x31c9a
movsd -0xd0(%rbp), %xmm0
movsd %xmm0, -0xd8(%rbp)
jmp 0x31cb9
xorps %xmm0, %xmm0
movsd %xmm0, -0xd8(%rbp)
jmp 0x31cb9
movq -0x90(%rbp), %rax
movsd -0xd8(%rbp), %xmm0
movsd %xmm0, 0x58(%rax)
leaq -0x30(%rbp), %rdi
callq 0x32300
addq $0xe0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x77b0
nopl (%rax,%rax)