// File: /workspace/github_c_makefile_star2_O1/dpw[P]skinny-mutex/test.c
// Function: do_test
static void do_test(void (*f)(skinny_mutex_t *m), int hammer)
{
	do_test_simple(f);
	do_test_cond_wait(f);
	if (hammer)
		do_test_hammer(f);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x60, %rsp
movl %esi, %ebp
movq %rdi, %rbx
leaq 0x10(%rsp), %r14
movq $0x0, (%r14)
movq %r14, %rdi
callq *%rbx
cmpq $0x0, (%r14)
jne 0x2168
leaq 0x18(%rsp), %r14
movq $0x0, -0x8(%r14)
movq %r14, %rdi
xorl %esi, %esi
callq 0x10f0
testl %eax, %eax
jne 0x2187
leaq 0x10(%rsp), %rcx
movl $0x0, 0x38(%rcx)
leaq 0xb7e(%rip), %rdx       # 0x2aa0
movq %rsp, %rdi
xorl %esi, %esi
callq 0x1130
testl %eax, %eax
jne 0x21a6
movl $0x1, %ecx
xorl %eax, %eax
lock
cmpxchgq %rcx, 0x10(%rsp)
jne 0x20b0
cmpl $0x1, 0x48(%rsp)
je 0x1f7f
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x1dc9
testl %eax, %eax
je 0x1f48
leaq 0x1357(%rip), %rdi      # 0x32be
leaq 0x11e8(%rip), %rsi      # 0x3156
leaq 0x129c(%rip), %rcx      # 0x3211
movl $0x118, %edx            # imm = 0x118
callq 0x10b0
xorl %ecx, %ecx
movl $0x1, %r12d
movl $0x1, %eax
lock
cmpxchgq %rcx, 0x10(%rsp)
jne 0x20bf
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq *%rbx
xorl %eax, %eax
lock
cmpxchgq %r12, (%r15)
jne 0x20ce
movl $0x2, 0x48(%rsp)
movq %r14, %rdi
callq 0x10c0
testl %eax, %eax
jne 0x21c5
xorl %ecx, %ecx
movl $0x1, %eax
lock
cmpxchgq %rcx, 0x10(%rsp)
jne 0x20dd
movq (%rsp), %rdi
xorl %esi, %esi
callq 0x1170
testl %eax, %eax
jne 0x21e4
cmpq $0x0, 0x10(%rsp)
jne 0x2203
movq %r14, %rdi
callq 0x1150
testl %eax, %eax
jne 0x2222
testl %ebp, %ebp
je 0x20a3
movq %rsp, %r14
movq $0x0, (%r14)
xorl %r12d, %r12d
leaq 0xb24(%rip), %r15       # 0x2b4b
leaq (%rsp,%r12), %rdi
addq $0x10, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r14, %rcx
callq 0x1130
testl %eax, %eax
jne 0x20ec
addq $0x8, %r12
cmpq $0x50, %r12
jne 0x2027
callq 0x2bd0
movq %rsp, %rdi
callq *%rbx
xorl %r14d, %r14d
leaq 0x8(%rsp), %rbx
movq 0x10(%rsp,%r14,8), %rdi
callq 0x1190
testl %eax, %eax
jne 0x2149
movq 0x10(%rsp,%r14,8), %rdi
movq %rbx, %rsi
callq 0x1170
testl %eax, %eax
jne 0x212a
cmpq $-0x1, 0x8(%rsp)
jne 0x210b
incq %r14
cmpq $0xa, %r14
jne 0x2060
cmpq $0x0, (%rsp)
jne 0x2241
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x10(%rsp), %rdi
callq 0x1230
jmp 0x1f48
leaq 0x10(%rsp), %rdi
callq 0x125b
jmp 0x1f99
leaq 0x10(%rsp), %rdi
callq 0x1286
jmp 0x1fb0
leaq 0x10(%rsp), %rdi
callq 0x12b1
jmp 0x1fdc
leaq 0x1375(%rip), %rdi      # 0x3468
leaq 0x105c(%rip), %rsi      # 0x3156
leaq 0x1337(%rip), %rcx      # 0x3438
movl $0x141, %edx            # imm = 0x141
callq 0x10b0
leaq 0x13d7(%rip), %rdi      # 0x34e9
leaq 0x103d(%rip), %rsi      # 0x3156
leaq 0x1318(%rip), %rcx      # 0x3438
movl $0x14a, %edx            # imm = 0x14A
callq 0x10b0
leaq 0x1395(%rip), %rdi      # 0x34c6
leaq 0x101e(%rip), %rsi      # 0x3156
leaq 0x12f9(%rip), %rcx      # 0x3438
movl $0x149, %edx            # imm = 0x149
callq 0x10b0
leaq 0x135a(%rip), %rdi      # 0x34aa
leaq 0xfff(%rip), %rsi       # 0x3156
leaq 0x12da(%rip), %rcx      # 0x3438
movl $0x148, %edx            # imm = 0x148
callq 0x10b0
leaq 0x1084(%rip), %rdi      # 0x31f3
leaq 0xfe0(%rip), %rsi       # 0x3156
leaq 0x1046(%rip), %rcx      # 0x31c3
movl $0xef, %edx
callq 0x10b0
leaq 0x10b6(%rip), %rdi      # 0x3244
leaq 0xfc1(%rip), %rsi       # 0x3156
leaq 0x1075(%rip), %rcx      # 0x3211
movl $0x112, %edx            # imm = 0x112
callq 0x10b0
leaq 0x10ba(%rip), %rdi      # 0x3267
leaq 0xfa2(%rip), %rsi       # 0x3156
leaq 0x1056(%rip), %rcx      # 0x3211
movl $0x114, %edx            # imm = 0x114
callq 0x10b0
leaq 0x113f(%rip), %rdi      # 0x330b
leaq 0xf83(%rip), %rsi       # 0x3156
leaq 0x1037(%rip), %rcx      # 0x3211
movl $0x120, %edx            # imm = 0x120
callq 0x10b0
leaq 0x113f(%rip), %rdi      # 0x332a
leaq 0xf64(%rip), %rsi       # 0x3156
leaq 0x1018(%rip), %rcx      # 0x3211
movl $0x123, %edx            # imm = 0x123
callq 0x10b0
leaq 0x113c(%rip), %rdi      # 0x3346
leaq 0xf45(%rip), %rsi       # 0x3156
leaq 0xff9(%rip), %rcx       # 0x3211
movl $0x124, %edx            # imm = 0x124
callq 0x10b0
leaq 0x113e(%rip), %rdi      # 0x3367
leaq 0xf26(%rip), %rsi       # 0x3156
leaq 0xfda(%rip), %rcx       # 0x3211
movl $0x125, %edx            # imm = 0x125
callq 0x10b0
leaq 0xfab(%rip), %rdi       # 0x31f3
leaq 0xf07(%rip), %rsi       # 0x3156
leaq 0x11e2(%rip), %rcx      # 0x3438
movl $0x14d, %edx            # imm = 0x14D
callq 0x10b0