// File: /workspace/github_cpp_makefile_star2_O2/kdungs[P]cpp-prelude/test_prelude.cc
// Function: test_zipWith3()
auto test_zipWith3() -> void {
  using Prelude::zipWith3;
  auto expect = std::vector<std::string>{"aaa", "", "ccccc"};
  auto result =
      zipWith3([](int x, bool y, char z) { return y ? std::string(x, z) : ""; },
               std::vector<int>{3, 4, 5}, std::list<bool>{true, false, true},
               std::list<char>{'a', 'b', 'c'});
  assert(result == expect);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf8, %rsp
leaq 0x4946(%rip), %rsi      # 0x95f9
leaq 0x88(%rsp), %r14
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
callq 0x5c7a
leaq 0xa8(%rsp), %r15
leaq 0x4987(%rip), %rsi      # 0x965e
leaq 0x40(%rsp), %rdx
movq %r15, %rdi
callq 0x5c7a
leaq 0xc8(%rsp), %r15
leaq 0x490a(%rip), %rsi      # 0x95fd
leaq 0x28(%rsp), %rdx
movq %r15, %rdi
callq 0x5c7a
leaq 0x70(%rsp), %rdi
leaq 0x88(%rsp), %rsi
pushq $0x3
popq %rdx
leaq 0x58(%rsp), %rcx
callq 0x5cb6
pushq $0x40
popq %rbx
leaq (%rsp,%rbx), %rdi
addq $0x88, %rdi
callq 0x20a0
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x4d1d
movabsq $0x400000003, %rax      # imm = 0x400000003
leaq 0xec(%rsp), %rsi
movq %rax, (%rsi)
movl $0x5, 0x8(%rsi)
leaq 0x40(%rsp), %rdi
pushq $0x3
popq %rdx
leaq 0x8(%rsp), %rcx
callq 0x55b0
leaq 0xd(%rsp), %rsi
movw $0x1, (%rsi)
movb $0x1, 0x2(%rsi)
leaq 0x28(%rsp), %rdi
pushq $0x3
popq %rdx
leaq 0x7(%rsp), %rcx
callq 0x5b02
leaq 0xa(%rsp), %rsi
movw $0x6261, (%rsi)         # imm = 0x6261
movb $0x63, 0x2(%rsi)
leaq 0x58(%rsp), %rbp
pushq $0x3
popq %rdx
leaq 0x6(%rsp), %rcx
movq %rbp, %rdi
callq 0x5cf0
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %r15
andq $0x0, 0x10(%r15)
movaps %xmm0, (%r15)
movq 0x40(%rsp), %r13
leaq 0x88(%rsp), %r12
movq %rbp, %r14
leaq 0x28(%rsp), %rbx
movq (%rbx), %rbx
movq (%r14), %r14
leaq 0x28(%rsp), %rax
cmpq %rax, %rbx
setne %cl
cmpq %rbp, %r14
setne %al
cmpq 0x48(%rsp), %r13
je 0x4e4c
testb %cl, %cl
je 0x4e4c
testb %al, %al
je 0x4e4c
cmpb $0x1, 0x10(%rbx)
jne 0x4e1f
movslq (%r13), %rsi
movb 0x10(%r14), %al
leaq 0x98(%rsp), %rcx
movq %rcx, 0x88(%rsp)
movsbl %al, %edx
movq %r12, %rdi
callq 0x2150
jmp 0x4e33
movq %r12, %rdi
leaq 0x4835(%rip), %rsi      # 0x965e
leaq 0x9(%rsp), %rdx
callq 0x5c7a
movq %r15, %rdi
movq %r12, %rsi
callq 0x819a
movq %r12, %rdi
callq 0x20a0
addq $0x4, %r13
jmp 0x4dce
leaq 0x58(%rsp), %rdi
callq 0x6028
leaq 0x28(%rsp), %rdi
callq 0x5ffe
leaq 0x40(%rsp), %rdi
callq 0x62fa
leaq 0x10(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x5d26
testb %al, %al
je 0x4ea3
leaq 0x10(%rsp), %rdi
callq 0x5d50
leaq 0x70(%rsp), %rdi
callq 0x5d50
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x41f6(%rip), %rdi      # 0x90a0
leaq 0x41be(%rip), %rsi      # 0x906f
leaq 0x474b(%rip), %rcx      # 0x9603
movl $0x13d, %edx            # imm = 0x13D
callq 0x20c0
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x5d50
jmp 0x4f60
movq %rax, %rbx
jmp 0x4f4c
movq %rax, %rbx
jmp 0x4f56
movq %rax, %rbx
jmp 0x4f60
movq %rax, %rbx
pushq $0x40
popq %r14
leaq (%rsp,%r14), %rdi
addq $0x88, %rdi
callq 0x20a0
addq $-0x20, %r14
cmpq $-0x20, %r14
jne 0x4eea
jmp 0x4f6a
jmp 0x4f08
movq %rax, %rbx
addq $-0x20, %r15
movq %r15, %rdi
callq 0x20a0
cmpq %r14, %r15
jne 0x4f0b
jmp 0x4f6a
movq %rax, %rbx
jmp 0x4f6a
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x20a0
jmp 0x4f38
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x5d50
leaq 0x58(%rsp), %rdi
callq 0x6028
leaq 0x28(%rsp), %rdi
callq 0x5ffe
leaq 0x40(%rsp), %rdi
callq 0x62fa
leaq 0x70(%rsp), %rdi
callq 0x5d50
movq %rbx, %rdi
callq 0x21d0