// File: /workspace/github_cpp_makefile_star2_O1/dsharlet[P]array/test/algorithm.cpp
// Function: nda::test_algorithm_equal_body()
TEST(algorithm_equal) {
  dense_array<int, 3> a1({10, 20, {0, 30, 205}});
  generate(a1, rand);
  dense_array<int, 3> a2 = make_compact_copy(a1);
  dense_array<int, 3> b(a2);
  fill(b, 0);

  ASSERT(a1 != a2);
  ASSERT(equal(a1, a2));
  ASSERT(!equal(a1, b));
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x688, %rsp            # imm = 0x688
movabsq $-0x8000000000000000, %r12 # imm = 0x8000000000000000
xorl %r15d, %r15d
leaq 0x108(%rsp), %r14
movq %r15, (%r14)
movl $0xa, %r13d
movq %r13, 0x8(%r14)
movq $0x1, 0x10(%r14)
xorl %edi, %edi
movq %r14, %rsi
callq 0xd09f
leaq 0x190(%rsp), %rbx
xorps %xmm0, %xmm0
movups %xmm0, -0x18(%rbx)
movups %xmm0, -0x8(%rbx)
movq $0x1e, 0x8(%rbx)
movq $0xcd, 0x10(%rbx)
movq %r15, 0x18(%rbx)
movq $0x14, 0x20(%rbx)
movq %r12, 0x28(%rbx)
movq %r15, 0x30(%rbx)
movq %r13, 0x38(%rbx)
leaq 0x170(%rsp), %r15
movq %r15, %rdi
callq 0xc2a2
movq %r15, %rdi
callq 0xc38a
movq 0x18(%r15), %rax
movq %rax, (%r14)
leaq 0x110(%rsp), %r8
movl $0x9, %ecx
movq %r8, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movq 0xda008(%rip), %rcx     # 0xe4fa0
leaq 0xa0(%rsp), %rdx
movq %rcx, (%rdx)
movq %r8, %rdi
movq %rax, %rsi
callq 0xd268
movq 0x188(%rsp), %rcx
leaq 0xa8(%rsp), %rax
movq %rcx, -0x8(%rax)
movl $0x9, %ecx
movq %rax, %rdi
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movq %rsp, %rdi
movq %rax, %rsi
callq 0xc1de
leaq 0x108(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
movq %rsp, %rdx
leaq 0x50(%rsp), %rcx
callq 0xc041
xorps %xmm0, %xmm0
leaq 0xa0(%rsp), %rdi
movups %xmm0, 0x18(%rdi)
movups %xmm0, 0x8(%rdi)
movq $0x0, 0x28(%rdi)
movq %r12, 0x30(%rdi)
movups %xmm0, 0x38(%rdi)
movq %r12, 0x48(%rdi)
movups %xmm0, 0x50(%rdi)
leaq 0x108(%rsp), %rsi
callq 0xd3e4
leaq 0xc0(%rsp), %r14
movq -0x8(%r14), %rax
leaq 0x8(%rsp), %r8
movq %rax, -0x8(%r8)
movl $0x9, %ecx
movq %r8, %rdi
movq %r14, %rsi
rep  movsq (%rsi), %es:(%rdi)
leaq 0x50(%rsp), %rdx
movl $0x0, (%rdx)
movq %r8, %rdi
movq %rax, %rsi
callq 0xd8a8
movq 0x188(%rsp), %rax
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movl $0x9, %ecx
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
leaq 0x128(%rsp), %r15
movq -0x8(%r15), %rax
leaq 0x58(%rsp), %rdi
movq %rax, -0x8(%rdi)
movl $0x9, %ecx
movq %r15, %rsi
rep  movsq (%rsi), %es:(%rdi)
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0xd9ae
movl %eax, %ebp
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x95f6b(%rip), %rsi     # 0xa1030
leaq 0x95f6c(%rip), %rdx     # 0xa1038
movq %rsp, %rdi
callq 0xd0b8
movzbl %bpl, %esi
leaq 0x4f8(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf0a
leaq 0x4f8(%rsp), %rdi
callq 0xbf62
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xb10b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x188(%rsp), %rax
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movl $0x9, %ecx
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movq 0x120(%rsp), %rax
leaq 0x58(%rsp), %rdi
movq %rax, -0x8(%rdi)
movl $0x9, %ecx
movq %r15, %rsi
rep  movsq (%rsi), %es:(%rdi)
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0xdc96
movl %eax, %ebp
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x95eda(%rip), %rsi     # 0xa1039
leaq 0x95ee0(%rip), %rdx     # 0xa1046
callq 0xd0b8
movzbl %bpl, %esi
leaq 0x368(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf0a
leaq 0x368(%rsp), %rdi
callq 0xbf62
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xb1a2
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x188(%rsp), %rax
leaq 0x8(%rsp), %rdi
movq %rax, -0x8(%rdi)
movl $0x9, %ecx
movq %rbx, %rsi
rep  movsq (%rsi), %es:(%rdi)
movq 0xb8(%rsp), %rax
leaq 0x58(%rsp), %rdi
movq %rax, -0x8(%rdi)
movl $0x9, %ecx
movq %r14, %rsi
rep  movsq (%rsi), %es:(%rdi)
movq %rsp, %rdi
leaq 0x50(%rsp), %rsi
callq 0xdc96
movl %eax, %ebx
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x95e51(%rip), %rsi     # 0xa1047
leaq 0x95e57(%rip), %rdx     # 0xa1054
callq 0xd0b8
xorb $0x1, %bl
movzbl %bl, %esi
leaq 0x1d8(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf0a
leaq 0x1d8(%rsp), %rdi
callq 0xbf62
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xb23b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0xa0(%rsp), %rdi
callq 0xd16c
leaq 0x108(%rsp), %rdi
callq 0xd16c
leaq 0x170(%rsp), %rdi
callq 0xd16c
addq $0x688, %rsp            # imm = 0x688
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xb2e3
jmp 0xb2e3
jmp 0xb2e3
jmp 0xb2ad
jmp 0xb2ad
jmp 0xb2ad
jmp 0xb2ad
movq %rax, %rbx
jmp 0xb2bd
jmp 0xb2a8
jmp 0xb28d
jmp 0xb28d
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xb2b0
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
jmp 0xb2b0
movq %rax, %rbx
jmp 0xb2ca
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0xd16c
leaq 0x108(%rsp), %rdi
callq 0xd16c
leaq 0x170(%rsp), %rdi
callq 0xd16c
movq %rbx, %rdi
callq 0x2300
jmp 0xb2e3
jmp 0xb2e3
movq %rax, %rdi
callq 0xc036