// File: /workspace/github_cpp_makefile_star2_O3/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 0xd133
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 0xc30a
movq %r15, %rdi
callq 0xc412
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 0xdbf38(%rip), %rcx     # 0xe6fa0
leaq 0xa0(%rsp), %rdx
movq %rcx, (%rdx)
movq %r8, %rdi
movq %rax, %rsi
callq 0xd302
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 0xc23c
leaq 0x108(%rsp), %rdi
leaq 0xa0(%rsp), %rsi
movq %rsp, %rdx
leaq 0x50(%rsp), %rcx
callq 0xc0b4
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 0xd47e
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 0xd942
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 0xdc64
movl %eax, %ebp
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x97ecb(%rip), %rsi     # 0xa3060
leaq 0x97ecc(%rip), %rdx     # 0xa3068
movq %rsp, %rdi
callq 0xd14c
movzbl %bpl, %esi
leaq 0x4f8(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf80
leaq 0x4f8(%rsp), %rdi
callq 0xbfd8
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xb1db
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 0xdf4c
movl %eax, %ebp
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x97e3a(%rip), %rsi     # 0xa3069
leaq 0x97e40(%rip), %rdx     # 0xa3076
callq 0xd14c
movzbl %bpl, %esi
leaq 0x368(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf80
leaq 0x368(%rsp), %rdi
callq 0xbfd8
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xb272
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 0xdf4c
movl %eax, %ebx
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x97db1(%rip), %rsi     # 0xa3077
leaq 0x97db7(%rip), %rdx     # 0xa3084
callq 0xd14c
xorb $0x1, %bl
movzbl %bl, %esi
leaq 0x1d8(%rsp), %rdi
movq %rsp, %rdx
callq 0xbf80
leaq 0x1d8(%rsp), %rdi
callq 0xbfd8
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xb30b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
leaq 0xa0(%rsp), %rdi
callq 0xd206
leaq 0x108(%rsp), %rdi
callq 0xd206
leaq 0x170(%rsp), %rdi
callq 0xd206
addq $0x688, %rsp            # imm = 0x688
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xb3b3
jmp 0xb3b3
jmp 0xb3b3
jmp 0xb37d
jmp 0xb37d
jmp 0xb37d
jmp 0xb37d
movq %rax, %rbx
jmp 0xb38d
jmp 0xb378
jmp 0xb35d
jmp 0xb35d
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0xb380
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x21f0
jmp 0xb380
movq %rax, %rbx
jmp 0xb39a
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0xd206
leaq 0x108(%rsp), %rdi
callq 0xd206
leaq 0x170(%rsp), %rdi
callq 0xd206
movq %rbx, %rdi
callq 0x2300
jmp 0xb3b3
jmp 0xb3b3
movq %rax, %rdi
callq 0xc0a9