// File: /workspace/github_cpp_makefile_star2_O2/dsharlet[P]array/test/array.cpp
// Function: nda::test_array_assign_body()
TEST(array_assign) {
  array_of_rank<int, 3> a({4, 5, 6});
  fill_pattern(a);

  array_of_rank<int, 3> b = array_of_rank<int, 3>({4, 5, 6});
  fill_pattern(b);
  ASSERT(a == b);

  array_of_rank<int, 3> c;
  c = array_of_rank<int, 3>({4, 5, 6});
  fill_pattern(c);
  ASSERT(a == c);

  c = array_of_rank<int, 3>({4, 5, 6});
  ASSERT(a != c);
  fill_pattern(c);
  ASSERT(a == c);

  c = array_of_rank<int, 3>({7, 5, 6});
  ASSERT(a != c);

  {
    array_of_rank<int, 3> d({4, 5, 6});
    fill_pattern(d);
    c = d;
  }
  ASSERT(a == c);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0xb48, %rsp            # imm = 0xB48
leaq 0x180(%rsp), %rbx
pushq $0x4
popq %rsi
pushq $0x5
popq %rdx
pushq $0x6
popq %rcx
movq %rbx, %rdi
callq 0x10b74
leaq 0x118(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x10b92
movq %r14, %rdi
xorl %esi, %esi
callq 0x10bbd
leaq 0x68(%rsp), %rdi
pushq $0x4
popq %rsi
pushq $0x5
popq %rdx
pushq $0x6
popq %rcx
callq 0x10b74
leaq 0x180(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x10b92
leaq 0x180(%rsp), %rdi
xorl %esi, %esi
callq 0x10bbd
leaq 0x118(%rsp), %rdi
leaq 0x180(%rsp), %rsi
callq 0x10bec
movl %eax, %ebx
leaq 0x81319(%rip), %rsi     # 0x8d087
leaq 0x68(%rsp), %rdi
movq %rsp, %rdx
callq 0x66a0
movzbl %bl, %esi
leaq 0x9b8(%rsp), %rdi
leaq 0x68(%rsp), %rdx
callq 0x6894
leaq 0x9b8(%rsp), %rdi
callq 0x68d4
leaq 0x68(%rsp), %rdi
callq 0x2090
leaq 0x68(%rsp), %rdi
callq 0x10c42
leaq 0xd0(%rsp), %rdi
pushq $0x4
popq %rsi
pushq $0x5
popq %rdx
pushq $0x6
popq %rcx
callq 0x10b74
movq %rsp, %rdi
leaq 0xd0(%rsp), %rsi
callq 0x10b92
leaq 0x68(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c78
movq %rsp, %rdi
callq 0x10d02
leaq 0x68(%rsp), %rdi
xorl %esi, %esi
callq 0x10bbd
leaq 0x118(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x10bec
movl %eax, %ebx
leaq 0x83350(%rip), %rsi     # 0x8f163
movq %rsp, %rdi
leaq 0xd0(%rsp), %rdx
callq 0x66a0
movzbl %bl, %esi
leaq 0x828(%rsp), %rdi
movq %rsp, %rdx
callq 0x6894
leaq 0x828(%rsp), %rdi
callq 0x68d4
movq %rsp, %rdi
callq 0x2090
leaq 0xd0(%rsp), %rdi
pushq $0x4
popq %rsi
pushq $0x5
popq %rdx
pushq $0x6
popq %rcx
callq 0x10b74
movq %rsp, %rdi
leaq 0xd0(%rsp), %rsi
callq 0x10b92
leaq 0x68(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c78
movq %rsp, %rdi
callq 0x10d02
leaq 0x118(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x10d12
movl %eax, %ebx
leaq 0x832c9(%rip), %rsi     # 0x8f16a
movq %rsp, %rdi
leaq 0xd0(%rsp), %rdx
callq 0x66a0
movzbl %bl, %esi
leaq 0x698(%rsp), %rdi
movq %rsp, %rdx
callq 0x6894
leaq 0x698(%rsp), %rdi
callq 0x68d4
movq %rsp, %rdi
callq 0x2090
leaq 0x68(%rsp), %rdi
xorl %esi, %esi
callq 0x10bbd
leaq 0x118(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x10bec
movl %eax, %ebx
leaq 0x83263(%rip), %rsi     # 0x8f163
movq %rsp, %rdi
leaq 0xd0(%rsp), %rdx
callq 0x66a0
movzbl %bl, %esi
leaq 0x508(%rsp), %rdi
movq %rsp, %rdx
callq 0x6894
leaq 0x508(%rsp), %rdi
callq 0x68d4
movq %rsp, %rdi
callq 0x2090
leaq 0xd0(%rsp), %rdi
pushq $0x7
popq %rsi
pushq $0x5
popq %rdx
pushq $0x6
popq %rcx
callq 0x10b74
movq %rsp, %rdi
leaq 0xd0(%rsp), %rsi
callq 0x10b92
leaq 0x68(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c78
movq %rsp, %rdi
callq 0x10d02
leaq 0x118(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x10d12
movl %eax, %ebx
leaq 0x831dc(%rip), %rsi     # 0x8f16a
movq %rsp, %rdi
leaq 0xd0(%rsp), %rdx
callq 0x66a0
movzbl %bl, %esi
leaq 0x378(%rsp), %rdi
movq %rsp, %rdx
callq 0x6894
leaq 0x378(%rsp), %rdi
callq 0x68d4
movq %rsp, %rdi
callq 0x2090
leaq 0xd0(%rsp), %rdi
pushq $0x4
popq %rsi
pushq $0x5
popq %rdx
pushq $0x6
popq %rcx
callq 0x10b74
movq %rsp, %rdi
leaq 0xd0(%rsp), %rsi
callq 0x10b92
movq %rsp, %rdi
xorl %esi, %esi
callq 0x10bbd
leaq 0x68(%rsp), %rdi
movq %rsp, %rsi
callq 0x10d68
movq %rsp, %rdi
callq 0x10d02
leaq 0x118(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x10bec
movl %eax, %ebx
leaq 0x8313d(%rip), %rsi     # 0x8f163
movq %rsp, %rdi
leaq 0xd0(%rsp), %rdx
callq 0x66a0
movzbl %bl, %esi
leaq 0x1e8(%rsp), %rdi
movq %rsp, %rdx
callq 0x6894
leaq 0x1e8(%rsp), %rdi
callq 0x68d4
movq %rsp, %rdi
callq 0x2090
leaq 0x68(%rsp), %rdi
callq 0x10d02
leaq 0x180(%rsp), %rdi
callq 0x10d02
leaq 0x118(%rsp), %rdi
callq 0x10d02
addq $0xb48, %rsp            # imm = 0xB48
popq %rbx
popq %r14
retq
jmp 0xc0e6
jmp 0xc0e6
jmp 0xc0a5
jmp 0xc0e6
jmp 0xc0e6
jmp 0xc0a5
jmp 0xc0e6
jmp 0xc0a5
jmp 0xc0dc
jmp 0xc0dc
jmp 0xc0e1
jmp 0xc0be
movq %rax, %rbx
movq %rsp, %rdi
callq 0x10d02
jmp 0xc0e9
jmp 0xc0e6
jmp 0xc0be
jmp 0xc0e6
jmp 0xc0be
jmp 0xc0be
jmp 0xc0e6
movq %rax, %rbx
movq %rsp, %rdi
callq 0x2090
jmp 0xc0e9
jmp 0xc0e6
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x2090
jmp 0xc0f3
movq %rax, %rbx
jmp 0xc0f3
movq %rax, %rbx
jmp 0xc100
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x10d02
leaq 0x180(%rsp), %rdi
callq 0x10d02
leaq 0x118(%rsp), %rdi
callq 0x10d02
movq %rbx, %rdi
callq 0x22f0