// File: /workspace/github_c_makefile_star2_O3/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 0x2144
leaq 0x18(%rsp), %r14
movq $0x0, -0x8(%r14)
movq %r14, %rdi
xorl %esi, %esi
callq 0x10f0
testl %eax, %eax
jne 0x2163
leaq 0x10(%rsp), %rcx
movl $0x0, 0x38(%rcx)
leaq 0xb7e(%rip), %rdx       # 0x2a7c
movq %rsp, %rdi
xorl %esi, %esi
callq 0x1130
testl %eax, %eax
jne 0x2182
movl $0x1, %ecx
xorl %eax, %eax
lock
cmpxchgq %rcx, 0x10(%rsp)
jne 0x208c
cmpl $0x1, 0x48(%rsp)
je 0x1f5b
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
callq 0x1da3
testl %eax, %eax
je 0x1f24
leaq 0x137b(%rip), %rdi      # 0x32be
leaq 0x120c(%rip), %rsi      # 0x3156
leaq 0x12c0(%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 0x209b
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq *%rbx
xorl %eax, %eax
lock
cmpxchgq %r12, (%r15)
jne 0x20aa
movl $0x2, 0x48(%rsp)
movq %r14, %rdi
callq 0x10c0
testl %eax, %eax
jne 0x21a1
xorl %ecx, %ecx
movl $0x1, %eax
lock
cmpxchgq %rcx, 0x10(%rsp)
jne 0x20b9
movq (%rsp), %rdi
xorl %esi, %esi
callq 0x1170
testl %eax, %eax
jne 0x21c0
cmpq $0x0, 0x10(%rsp)
jne 0x21df
movq %r14, %rdi
callq 0x1150
testl %eax, %eax
jne 0x21fe
testl %ebp, %ebp
je 0x207f
movq %rsp, %r14
movq $0x0, (%r14)
xorl %r12d, %r12d
leaq 0xb24(%rip), %r15       # 0x2b27
leaq (%rsp,%r12), %rdi
addq $0x10, %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r14, %rcx
callq 0x1130
testl %eax, %eax
jne 0x20c8
addq $0x8, %r12
cmpq $0x50, %r12
jne 0x2003
callq 0x2bac
movq %rsp, %rdi
callq *%rbx
xorl %r14d, %r14d
leaq 0x8(%rsp), %rbx
movq 0x10(%rsp,%r14,8), %rdi
callq 0x1190
testl %eax, %eax
jne 0x2125
movq 0x10(%rsp,%r14,8), %rdi
movq %rbx, %rsi
callq 0x1170
testl %eax, %eax
jne 0x2106
cmpq $-0x1, 0x8(%rsp)
jne 0x20e7
incq %r14
cmpq $0xa, %r14
jne 0x203c
cmpq $0x0, (%rsp)
jne 0x221d
addq $0x60, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x10(%rsp), %rdi
callq 0x1230
jmp 0x1f24
leaq 0x10(%rsp), %rdi
callq 0x125b
jmp 0x1f75
leaq 0x10(%rsp), %rdi
callq 0x1286
jmp 0x1f8c
leaq 0x10(%rsp), %rdi
callq 0x12b1
jmp 0x1fb8
leaq 0x1399(%rip), %rdi      # 0x3468
leaq 0x1080(%rip), %rsi      # 0x3156
leaq 0x135b(%rip), %rcx      # 0x3438
movl $0x141, %edx            # imm = 0x141
callq 0x10b0
leaq 0x13fb(%rip), %rdi      # 0x34e9
leaq 0x1061(%rip), %rsi      # 0x3156
leaq 0x133c(%rip), %rcx      # 0x3438
movl $0x14a, %edx            # imm = 0x14A
callq 0x10b0
leaq 0x13b9(%rip), %rdi      # 0x34c6
leaq 0x1042(%rip), %rsi      # 0x3156
leaq 0x131d(%rip), %rcx      # 0x3438
movl $0x149, %edx            # imm = 0x149
callq 0x10b0
leaq 0x137e(%rip), %rdi      # 0x34aa
leaq 0x1023(%rip), %rsi      # 0x3156
leaq 0x12fe(%rip), %rcx      # 0x3438
movl $0x148, %edx            # imm = 0x148
callq 0x10b0
leaq 0x10a8(%rip), %rdi      # 0x31f3
leaq 0x1004(%rip), %rsi      # 0x3156
leaq 0x106a(%rip), %rcx      # 0x31c3
movl $0xef, %edx
callq 0x10b0
leaq 0x10da(%rip), %rdi      # 0x3244
leaq 0xfe5(%rip), %rsi       # 0x3156
leaq 0x1099(%rip), %rcx      # 0x3211
movl $0x112, %edx            # imm = 0x112
callq 0x10b0
leaq 0x10de(%rip), %rdi      # 0x3267
leaq 0xfc6(%rip), %rsi       # 0x3156
leaq 0x107a(%rip), %rcx      # 0x3211
movl $0x114, %edx            # imm = 0x114
callq 0x10b0
leaq 0x1163(%rip), %rdi      # 0x330b
leaq 0xfa7(%rip), %rsi       # 0x3156
leaq 0x105b(%rip), %rcx      # 0x3211
movl $0x120, %edx            # imm = 0x120
callq 0x10b0
leaq 0x1163(%rip), %rdi      # 0x332a
leaq 0xf88(%rip), %rsi       # 0x3156
leaq 0x103c(%rip), %rcx      # 0x3211
movl $0x123, %edx            # imm = 0x123
callq 0x10b0
leaq 0x1160(%rip), %rdi      # 0x3346
leaq 0xf69(%rip), %rsi       # 0x3156
leaq 0x101d(%rip), %rcx      # 0x3211
movl $0x124, %edx            # imm = 0x124
callq 0x10b0
leaq 0x1162(%rip), %rdi      # 0x3367
leaq 0xf4a(%rip), %rsi       # 0x3156
leaq 0xffe(%rip), %rcx       # 0x3211
movl $0x125, %edx            # imm = 0x125
callq 0x10b0
leaq 0xfcf(%rip), %rdi       # 0x31f3
leaq 0xf2b(%rip), %rsi       # 0x3156
leaq 0x1206(%rip), %rcx      # 0x3438
movl $0x14d, %edx            # imm = 0x14D
callq 0x10b0