// File: /workspace/github_cpp_makefile_star2_O1/kdungs[P]cpp-prelude/test_prelude.cc
// Function: test_zip3()
auto test_zip3() -> void {
  using Prelude::zip3;
  auto expect = std::vector<std::tuple<int, bool, char>>{
      std::make_tuple(1, true, 'a'), std::make_tuple(2, false, 'b'),
      std::make_tuple(3, true, 'm')};
  auto result =
      zip3(std::vector<int>{1, 2, 3}, std::list<bool>{true, false, true},
           std::vector<char>{'a', 'b', 'm'});
  assert(result == expect);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0xa0, %rsp
leaq 0x60(%rsp), %rsi
movw $0x161, (%rsi)          # imm = 0x161
movl $0x1, 0x4(%rsi)
movw $0x62, 0x8(%rsi)
movl $0x2, 0xc(%rsi)
movw $0x16d, 0x10(%rsi)      # imm = 0x16D
movl $0x3, %ebx
movl %ebx, 0x14(%rsi)
leaq 0x30(%rsp), %rdi
leaq 0x18(%rsp), %rcx
movl $0x3, %edx
callq 0x74bc
movabsq $0x200000001, %rax      # imm = 0x200000001
leaq 0x94(%rsp), %rsi
movq %rax, (%rsi)
movl %ebx, 0x8(%rsi)
leaq 0x18(%rsp), %rdi
leaq 0x11(%rsp), %rcx
movl $0x3, %edx
callq 0x7016
leaq 0x15(%rsp), %rsi
movw $0x1, (%rsi)
movb $0x1, 0x2(%rsi)
leaq 0x78(%rsp), %rbx
leaq 0x10(%rsp), %rcx
movl $0x3, %edx
movq %rbx, %rdi
callq 0x746e
leaq 0x12(%rsp), %rsi
movw $0x6261, (%rsi)         # imm = 0x6261
movb $0x6d, 0x2(%rsi)
leaq 0x48(%rsp), %rdi
leaq 0xf(%rsp), %rcx
movl $0x3, %edx
callq 0x75aa
leaq 0x60(%rsp), %rdi
leaq 0x18(%rsp), %rsi
leaq 0x78(%rsp), %r14
leaq 0x48(%rsp), %rcx
movq %r14, %rdx
callq 0x7501
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x5dd4
movq 0x58(%rsp), %rsi
subq %rdi, %rsi
callq 0x20f0
movq 0x78(%rsp), %rdi
cmpq %r14, %rdi
je 0x5df3
movq (%rdi), %rbx
movl $0x18, %esi
callq 0x20f0
movq %rbx, %rdi
cmpq %r14, %rbx
jne 0x5dde
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x5e0a
movq 0x28(%rsp), %rsi
subq %rdi, %rsi
callq 0x20f0
movq 0x60(%rsp), %rdi
movq 0x68(%rsp), %rax
movq %rax, %rdx
subq %rdi, %rdx
movq 0x30(%rsp), %rcx
movq 0x38(%rsp), %rsi
subq %rcx, %rsi
cmpq %rsi, %rdx
jne 0x5e72
cmpq %rax, %rdi
sete %sil
je 0x5e91
movl 0x4(%rdi), %edx
cmpl 0x4(%rcx), %edx
jne 0x5e72
leaq 0x8(%rdi), %rdx
movb -0x7(%rdx), %sil
cmpb 0x1(%rcx), %sil
jne 0x5e72
movb (%rcx), %sil
cmpb %sil, -0x8(%rdx)
jne 0x5e72
cmpq %rax, %rdx
sete %sil
je 0x5e91
leaq 0x8(%rcx), %rsi
movl 0x4(%rdx), %r8d
addq $0x8, %rdx
cmpl 0xc(%rcx), %r8d
movq %rsi, %rcx
je 0x5e41
leaq 0x4227(%rip), %rdi      # 0xa0a0
leaq 0x41ef(%rip), %rsi      # 0xa06f
leaq 0x474d(%rip), %rcx      # 0xa5d4
movl $0x12a, %edx            # imm = 0x12A
callq 0x2090
testb %sil, %sil
je 0x5e72
testq %rdi, %rdi
je 0x5ea8
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x20f0
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x5ebf
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x20f0
addq $0xa0, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %r14
movq 0x48(%rsp), %rdi
testq %rdi, %rdi
je 0x5eeb
movq 0x58(%rsp), %rsi
subq %rdi, %rsi
callq 0x20f0
jmp 0x5eeb
movq %rax, %r14
movq 0x78(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5f0f
movq (%rdi), %r15
movl $0x18, %esi
callq 0x20f0
movq %r15, %rdi
cmpq %rbx, %r15
jne 0x5ef5
jmp 0x5f0f
movq %rax, %r14
movq 0x18(%rsp), %rdi
testq %rdi, %rdi
je 0x5f2b
movq 0x28(%rsp), %rsi
subq %rdi, %rsi
callq 0x20f0
jmp 0x5f2b
movq %rax, %r14
movq 0x30(%rsp), %rdi
testq %rdi, %rdi
je 0x5f42
movq 0x40(%rsp), %rsi
subq %rdi, %rsi
callq 0x20f0
movq %r14, %rdi
callq 0x2170