// File: /workspace/github_cpp_makefile_star2_O1/dsharlet[P]array/test/split.cpp
// Function: nda::test_split_iterator_increment_body()
TEST(split_uneven_constant) {
  dense_array<int, 3> a({dense_dim<>(2, 8), dim<>(1, 9), 4});
  for (auto yo : split<4>(a.y())) {
    for (auto xo : split<5>(a.x())) {
      auto a_inner = a(xo, yo, _);
      // Compile-time constant splits should always be the same size.
      ASSERT_EQ(a_inner.size(), 80);
      fill_pattern(a_inner);
    }
  }
  check_pattern(a);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x238, %rsp            # imm = 0x238
xorps %xmm0, %xmm0
leaq 0x80(%rsp), %rbx
movaps %xmm0, (%rbx)
xorl %r15d, %r15d
movq %r15, 0x10(%rbx)
movq %r15, 0x70(%rsp)
movaps %xmm0, 0x60(%rsp)
movq %r15, 0x50(%rsp)
movaps %xmm0, 0x40(%rsp)
leaq 0xa8(%rsp), %r14
movl $0x7, %r12d
movq %r15, 0xa8(%rsp)
movq $0x3, 0xb0(%rsp)
movq 0x88(%rsp), %rsi
cmpq 0x90(%rsp), %rsi
je 0x9b888
movups 0xa8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x88(%rsp)
jmp 0x9b893
movq %rbx, %rdi
movq %r14, %rdx
callq 0x9e132
leaq 0x3(%r15), %rax
addq $-0x5, %r15
cmpq $0x2, %r15
cmovbq %r12, %rax
movq %rax, %r15
cmpq $0xa, %rax
jne 0x9b84c
xorl %r12d, %r12d
leaq 0x60(%rsp), %rbx
leaq 0xa8(%rsp), %r14
movl $0x7, %r15d
movq %r12, 0xa8(%rsp)
movq $0x3, 0xb0(%rsp)
movq 0x68(%rsp), %rsi
cmpq 0x70(%rsp), %rsi
je 0x9b8f5
movups 0xa8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x68(%rsp)
jmp 0x9b900
movq %rbx, %rdi
movq %r14, %rdx
callq 0x9e132
leaq 0x3(%r12), %rax
addq $-0x5, %r12
cmpq $0x2, %r12
cmovbq %r15, %rax
movq %rax, %r12
cmpq $0xa, %rax
jne 0x9b8c2
xorl %r12d, %r12d
leaq 0x40(%rsp), %rbx
leaq 0xa8(%rsp), %r14
movl $0x7, %r15d
movq %r12, 0xa8(%rsp)
movq $0x3, 0xb0(%rsp)
movq 0x48(%rsp), %rsi
cmpq 0x50(%rsp), %rsi
je 0x9b963
movups 0xa8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x48(%rsp)
jmp 0x9b96e
movq %rbx, %rdi
movq %r14, %rdx
callq 0x9e132
leaq 0x3(%r12), %rax
addq $-0x5, %r12
cmpq $0x2, %r12
cmovbq %r15, %rax
movq %rax, %r12
cmpq $0xa, %rax
jne 0x9b930
leaq 0xa8(%rsp), %rsi
movq $0x0, (%rsi)
movl $0x3, %eax
movq %rax, 0x8(%rsi)
movq %rax, 0x10(%rsi)
movq %rax, 0x18(%rsi)
movq $0x6, 0x20(%rsi)
movq %rax, 0x28(%rsi)
movq $0x7, 0x30(%rsi)
movq %rax, 0x38(%rsi)
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rcx
movl $0x4, %edx
callq 0x9d760
movq 0x80(%rsp), %r14
movq 0x88(%rsp), %rbx
movq 0x28(%rsp), %r12
movq 0x30(%rsp), %r15
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x23185(%rip), %rsi     # 0xbeb83
leaq 0x2319e(%rip), %rdx     # 0xbeba3
leaq 0x8(%rsp), %rdi
callq 0xd0b8
subq %r12, %r15
subq %r14, %rbx
xorl %esi, %esi
cmpq %r15, %rbx
sete %sil
leaq 0xa8(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0xbf0a
leaq 0x5c1d(%rip), %rsi      # 0xa1654
leaq 0xa8(%rsp), %rdi
callq 0x18a16
leaq 0x23159(%rip), %rsi     # 0xbeba4
movq %rax, %rdi
callq 0x18b2e
leaq 0x98d0(%rip), %rsi      # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x9ba8e
movq 0x88(%rsp), %rsi
subq 0x80(%rsp), %rsi
sarq $0x4, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x5bbf(%rip), %rsi      # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x230ef(%rip), %rsi     # 0xbeb93
movq %rax, %rdi
callq 0x18b9e
leaq 0x9877(%rip), %rsi      # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x9bae1
movq 0x30(%rsp), %rsi
subq 0x28(%rsp), %rsi
sarq $0x4, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x1c881(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0xa8(%rsp), %rdi
callq 0xbf62
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9bb19
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x60(%rsp), %r14
movq 0x68(%rsp), %rbx
movq 0x28(%rsp), %r12
movq 0x30(%rsp), %r15
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x23070(%rip), %rsi     # 0xbebb1
leaq 0x23087(%rip), %rdx     # 0xbebcf
callq 0xd0b8
subq %r12, %r15
subq %r14, %rbx
xorl %esi, %esi
cmpq %r15, %rbx
sete %sil
leaq 0xa8(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0xbf0a
leaq 0x5adf(%rip), %rsi      # 0xa1654
leaq 0xa8(%rsp), %rdi
callq 0x18a16
leaq 0x23047(%rip), %rsi     # 0xbebd0
movq %rax, %rdi
callq 0x18abe
leaq 0x9792(%rip), %rsi      # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x9bbc6
movq 0x68(%rsp), %rsi
subq 0x60(%rsp), %rsi
sarq $0x4, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x5a87(%rip), %rsi      # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x22fb7(%rip), %rsi     # 0xbeb93
movq %rax, %rdi
callq 0x18b9e
leaq 0x973f(%rip), %rsi      # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x9bc19
movq 0x30(%rsp), %rsi
subq 0x28(%rsp), %rsi
sarq $0x4, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x1c749(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0xa8(%rsp), %rdi
callq 0xbf62
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9bc51
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x40(%rsp), %r14
movq 0x48(%rsp), %rbx
movq 0x28(%rsp), %r12
movq 0x30(%rsp), %r15
leaq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
movq %rax, (%rdi)
leaq 0x22f62(%rip), %rsi     # 0xbebdb
leaq 0x22f7a(%rip), %rdx     # 0xbebfa
callq 0xd0b8
subq %r12, %r15
subq %r14, %rbx
xorl %esi, %esi
cmpq %r15, %rbx
sete %sil
leaq 0xa8(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0xbf0a
leaq 0x59a7(%rip), %rsi      # 0xa1654
leaq 0xa8(%rsp), %rdi
callq 0x18a16
leaq 0x22f3a(%rip), %rsi     # 0xbebfb
movq %rax, %rdi
callq 0x56a5c
leaq 0x965a(%rip), %rsi      # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x9bcfe
movq 0x48(%rsp), %rsi
subq 0x40(%rsp), %rsi
sarq $0x4, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x594f(%rip), %rsi      # 0xa1654
movq %rbx, %rdi
callq 0x18a16
leaq 0x22e7f(%rip), %rsi     # 0xbeb93
movq %rax, %rdi
callq 0x18b9e
leaq 0x9607(%rip), %rsi      # 0xa532a
movq %rax, %rdi
callq 0x18a16
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x9bd51
movq 0x30(%rsp), %rsi
subq 0x28(%rsp), %rsi
sarq $0x4, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x1c611(%rip), %rsi     # 0xb8369
movq %rbx, %rdi
callq 0x18a16
leaq 0xa8(%rsp), %rdi
callq 0xbf62
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9bd89
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x28(%rsp), %rdi
cmpq %rdi, 0x30(%rsp)
je 0x9c15f
xorl %ebp, %ebp
leaq 0x8(%rsp), %r15
xorl %r13d, %r13d
movq %r13, 0xa0(%rsp)
movq 0x80(%rsp), %rax
movq (%rax,%rbp), %r14
movq 0x8(%rax,%rbp), %r13
movq (%rdi,%rbp), %r12
movq 0x8(%rdi,%rbp), %rbx
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %r15, %rdi
leaq 0x22e2e(%rip), %rsi     # 0xbec07
leaq 0x22e3f(%rip), %rdx     # 0xbec1f
callq 0xd0b8
xorq %r12, %r14
xorq %rbx, %r13
xorl %esi, %esi
orq %r14, %r13
sete %sil
leaq 0xa8(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rdx
callq 0xbf0a
leaq 0x5846(%rip), %r15      # 0xa1654
leaq 0x9515(%rip), %r12      # 0xa532a
movq %rbx, %rdi
movq %r15, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x22df6(%rip), %rsi     # 0xbec20
callq 0x19c24
movq %rax, %rdi
movq %r12, %rsi
callq 0x18a16
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x9be5d
movq 0x80(%rsp), %rsi
addq %rbp, %rsi
movq %r14, %rdi
addq $0x10, %rdi
callq 0x9e2ec
movq %r14, %rdi
movq %r15, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x22da1(%rip), %rsi     # 0xbec13
callq 0x18b2e
movq %rax, %rdi
movq %r12, %rsi
callq 0x18a16
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x9bea2
movq 0x28(%rsp), %rsi
addq %rbp, %rsi
movq %r14, %rdi
addq $0x10, %rdi
callq 0x9e2ec
movq %r14, %rdi
leaq 0x1c4bd(%rip), %rsi     # 0xb8369
callq 0x18a16
movq %rbx, %rdi
callq 0xbf62
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9bed5
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x60(%rsp), %rax
movq 0x28(%rsp), %rcx
movq (%rax,%rbp), %r14
movq 0x8(%rax,%rbp), %r13
movq (%rcx,%rbp), %r12
movq 0x8(%rcx,%rbp), %rbx
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x8(%rsp), %r15
movq %r15, %rdi
leaq 0x22d1f(%rip), %rsi     # 0xbec29
leaq 0x22d2e(%rip), %rdx     # 0xbec3f
callq 0xd0b8
xorq %r12, %r14
xorq %rbx, %r13
xorl %esi, %esi
orq %r14, %r13
sete %sil
leaq 0xa8(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rdx
callq 0xbf0a
leaq 0x5715(%rip), %r15      # 0xa1654
leaq 0x93e4(%rip), %r12      # 0xa532a
movq %rbx, %rdi
movq %r15, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x22ce5(%rip), %rsi     # 0xbec40
callq 0x56a24
movq %rax, %rdi
movq %r12, %rsi
callq 0x18a16
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x9bf8b
movq 0x60(%rsp), %rsi
addq %rbp, %rsi
movq %r14, %rdi
addq $0x10, %rdi
callq 0x9e2ec
movq %r14, %rdi
movq %r15, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x22c73(%rip), %rsi     # 0xbec13
callq 0x18b2e
movq %rax, %rdi
movq %r12, %rsi
callq 0x18a16
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x9bfd0
movq 0x28(%rsp), %rsi
addq %rbp, %rsi
movq %r14, %rdi
addq $0x10, %rdi
callq 0x9e2ec
movq %r14, %rdi
leaq 0x1c38f(%rip), %rsi     # 0xb8369
callq 0x18a16
movq %rbx, %rdi
callq 0xbf62
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9c003
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x40(%rsp), %rax
movq 0x28(%rsp), %rcx
movq (%rax,%rbp), %r14
movq 0x8(%rax,%rbp), %r13
movq (%rcx,%rbp), %r12
movq 0x8(%rcx,%rbp), %rbx
leaq 0x18(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x8(%rsp), %r15
movq %r15, %rdi
leaq 0x22c0f(%rip), %rsi     # 0xbec47
leaq 0x22c1f(%rip), %rdx     # 0xbec5e
callq 0xd0b8
xorq %r12, %r14
xorq %rbx, %r13
xorl %esi, %esi
orq %r14, %r13
sete %sil
leaq 0xa8(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rdx
callq 0xbf0a
leaq 0x55e7(%rip), %r15      # 0xa1654
leaq 0x92b6(%rip), %r12      # 0xa532a
movq 0xa0(%rsp), %r13
movq %rbx, %rdi
movq %r15, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x22bce(%rip), %rsi     # 0xbec5f
callq 0x18af6
movq %rax, %rdi
movq %r12, %rsi
callq 0x18a16
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x9c0c1
movq 0x40(%rsp), %rsi
addq %rbp, %rsi
movq %r14, %rdi
addq $0x10, %rdi
callq 0x9e2ec
movq %r14, %rdi
movq %r15, %rsi
callq 0x18a16
movq %rax, %rdi
leaq 0x22b3d(%rip), %rsi     # 0xbec13
callq 0x18b2e
movq %rax, %rdi
movq %r12, %rsi
callq 0x18a16
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x9c106
movq 0x28(%rsp), %rsi
addq %rbp, %rsi
movq %r14, %rdi
addq $0x10, %rdi
callq 0x9e2ec
movq %r14, %rdi
leaq 0x1c259(%rip), %rsi     # 0xb8369
callq 0x18a16
movq %rbx, %rdi
callq 0xbf62
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9c139
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21f0
incq %r13
movq 0x28(%rsp), %rdi
movq 0x30(%rsp), %rax
subq %rdi, %rax
sarq $0x4, %rax
addq $0x10, %rbp
cmpq %rax, %r13
leaq 0x8(%rsp), %r15
jb 0x9bda3
testq %rdi, %rdi
je 0x9c171
movq 0x38(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x9c188
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x9c19f
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x9c1bc
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
addq $0x238, %rsp            # imm = 0x238
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x9c22b
jmp 0x9c22b
jmp 0x9c22b
jmp 0x9c222
jmp 0x9c1e8
jmp 0x9c1fa
jmp 0x9c20c
jmp 0x9c234
jmp 0x9c234
jmp 0x9c234
jmp 0x9c1e8
jmp 0x9c1fa
jmp 0x9c20c
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbf62
jmp 0x9c26d
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbf62
jmp 0x9c26d
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbf62
jmp 0x9c26d
jmp 0x9c222
jmp 0x9c222
movq %rax, %rbx
jmp 0x9c2a0
jmp 0x9c22b
jmp 0x9c22b
movq %rax, %rbx
jmp 0x9c289
jmp 0x9c234
jmp 0x9c234
movq %rax, %rbx
jmp 0x9c26d
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbf62
jmp 0x9c26d
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbf62
jmp 0x9c26d
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbf62
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9c289
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x9c2a0
movq 0x38(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x9c2b7
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x9c2ce
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x9c2eb
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq %rbx, %rdi
callq 0x2300
movq %rax, %rdi
callq 0xc036