// File: /workspace/github_c_makefile_star2_O3/rouming[P]io/io-test.c
// Function: do_fixed_len_req
static void do_fixed_len_req(struct loop_ctx *ctx)
{
	int rc;
	struct io_req *m_s_req1, *m_s_req2, *s_m_req;

	/* Write master->slave, part1 */
	m_s_req1 = io_req_create(&ctx->master, REQ_WR, ctx,
				 on_write_fixed_len_req__master_to_slave);
	assert(m_s_req1);
	m_s_req1->buf = (struct io_buf){
		.iov[0] = {
			.iov_base = "fixed ",
			.iov_len  = strlen("fixed ")
		},
		.iov_num  = 1,
		.is_vari_len = false
	};
	rc = io_queue_submit(m_s_req1);
	assert(rc == 0);

	/* Write master->slave, part1 */
	m_s_req2 = io_req_create(&ctx->master, REQ_WR, ctx,
				 on_write_fixed_len_req__master_to_slave);
	assert(m_s_req2);
	m_s_req2->buf = (struct io_buf){
		.iov[0] = {
			.iov_base = "msg",
			.iov_len  = strlen("msg")
		},
		.iov_num  = 1,
		.is_vari_len = false
	};
	rc = io_queue_submit(m_s_req2);
	assert(rc == 0);

	/* Read slave<-master, part1 + part2 */
	s_m_req = io_req_create(&ctx->slave, REQ_RD, ctx,
				on_read_fixed_len_req__slave_from_master);
	assert(s_m_req);
	s_m_req->buf = (struct io_buf){
		.iov[0] = {
			.iov_base = NULL,
			.iov_len  = 3
		},
		.iov[1] = {
			.iov_base = NULL,
			.iov_len  = 6
		},
		.iov_num  = 2,
		.is_vari_len = false
	};
	rc = io_queue_submit(s_m_req);
	assert(rc == 0);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x120, %rsp            # imm = 0x120
movq %rdi, %rbx
leaq 0x422(%rip), %rcx       # 0x1b5e
movl $0x1, %esi
movq %rdi, %rdx
callq 0x4097
testq %rax, %rax
je 0x18be
movq %rax, %r14
leaq 0x3993(%rip), %rax      # 0x50ef
movq %rax, 0x28(%r14)
movq $0x6, 0x30(%r14)
movq %r14, %rdi
addq $0x38, %rdi
movl $0x110, %edx            # imm = 0x110
xorl %esi, %esi
callq 0x10b0
movq $0x1, 0x148(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x150(%r14)
movups %xmm0, 0x160(%r14)
movq %r14, %rdi
callq 0x3db2
testl %eax, %eax
jne 0x18dd
leaq 0x3ae(%rip), %rcx       # 0x1b5e
movq %rbx, %rdi
movl $0x1, %esi
movq %rbx, %rdx
callq 0x4097
testq %rax, %rax
je 0x18fc
movq %rax, %r14
leaq 0x392c(%rip), %rax      # 0x50ff
movq %rax, 0x28(%r14)
movq $0x3, 0x30(%r14)
movq %r14, %rdi
addq $0x38, %rdi
movl $0x110, %edx            # imm = 0x110
xorl %esi, %esi
callq 0x10b0
movq $0x1, 0x148(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x150(%r14)
movups %xmm0, 0x160(%r14)
movq %r14, %rdi
callq 0x3db2
testl %eax, %eax
jne 0x191b
leaq 0x178(%rbx), %rdi
leaq 0x35f(%rip), %rcx       # 0x1b8d
xorl %esi, %esi
movq %rbx, %rdx
callq 0x4097
testq %rax, %rax
je 0x193a
movq %rax, %rbx
movq %rax, %r14
addq $0x28, %r14
xorps %xmm0, %xmm0
movq %rsp, %r15
movups %xmm0, 0x110(%r15)
movups %xmm0, 0x100(%r15)
leaq 0x3c78(%rip), %rsi      # 0x54e0
movl $0x100, %edx            # imm = 0x100
movq %r15, %rdi
callq 0x1140
movl $0x120, %edx            # imm = 0x120
movq %r14, %rdi
movq %r15, %rsi
callq 0x1140
movq $0x2, 0x148(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x150(%rbx)
movups %xmm0, 0x160(%rbx)
movq %rbx, %rdi
callq 0x3db2
testl %eax, %eax
jne 0x1959
addq $0x120, %rsp            # imm = 0x120
popq %rbx
popq %r14
popq %r15
retq
leaq 0x37f8(%rip), %rdi      # 0x50bd
leaq 0x3741(%rip), %rsi      # 0x500d
leaq 0x37f3(%rip), %rcx      # 0x50c6
movl $0x5d, %edx
callq 0x10a0
leaq 0x37d1(%rip), %rdi      # 0x50b5
leaq 0x3722(%rip), %rsi      # 0x500d
leaq 0x37d4(%rip), %rcx      # 0x50c6
movl $0x67, %edx
callq 0x10a0
leaq 0x37f3(%rip), %rdi      # 0x50f6
leaq 0x3703(%rip), %rsi      # 0x500d
leaq 0x37b5(%rip), %rcx      # 0x50c6
movl $0x6c, %edx
callq 0x10a0
leaq 0x3793(%rip), %rdi      # 0x50b5
leaq 0x36e4(%rip), %rsi      # 0x500d
leaq 0x3796(%rip), %rcx      # 0x50c6
movl $0x76, %edx
callq 0x10a0
leaq 0x37c2(%rip), %rdi      # 0x5103
leaq 0x36c5(%rip), %rsi      # 0x500d
leaq 0x3777(%rip), %rcx      # 0x50c6
movl $0x7b, %edx
callq 0x10a0
leaq 0x3755(%rip), %rdi      # 0x50b5
leaq 0x36a6(%rip), %rsi      # 0x500d
leaq 0x3758(%rip), %rcx      # 0x50c6
movl $0x89, %edx
callq 0x10a0