// File: /workspace/github_cpp_makefile_star2_O3/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 0x9d580
movups 0xa8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x88(%rsp)
jmp 0x9d58b
movq %rbx, %rdi
movq %r14, %rdx
callq 0x9fdf8
leaq 0x3(%r15), %rax
addq $-0x5, %r15
cmpq $0x2, %r15
cmovbq %r12, %rax
movq %rax, %r15
cmpq $0xa, %rax
jne 0x9d544
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 0x9d5ed
movups 0xa8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x68(%rsp)
jmp 0x9d5f8
movq %rbx, %rdi
movq %r14, %rdx
callq 0x9fdf8
leaq 0x3(%r12), %rax
addq $-0x5, %r12
cmpq $0x2, %r12
cmovbq %r15, %rax
movq %rax, %r12
cmpq $0xa, %rax
jne 0x9d5ba
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 0x9d65b
movups 0xa8(%rsp), %xmm0
movups %xmm0, (%rsi)
addq $0x10, 0x48(%rsp)
jmp 0x9d666
movq %rbx, %rdi
movq %r14, %rdx
callq 0x9fdf8
leaq 0x3(%r12), %rax
addq $-0x5, %r12
cmpq $0x2, %r12
cmovbq %r15, %rax
movq %rax, %r12
cmpq $0xa, %rax
jne 0x9d628
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 0x9f442
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 0x22fed(%rip), %rsi     # 0xc06e3
leaq 0x23006(%rip), %rdx     # 0xc0703
leaq 0x8(%rsp), %rdi
callq 0xd14c
subq %r12, %r15
subq %r14, %rbx
xorl %esi, %esi
cmpq %r15, %rbx
sete %sil
leaq 0xa8(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0xbf80
leaq 0x5f55(%rip), %rsi      # 0xa3684
leaq 0xa8(%rsp), %rdi
callq 0x18fba
leaq 0x22fc1(%rip), %rsi     # 0xc0704
movq %rax, %rdi
callq 0x190d2
leaq 0x9b04(%rip), %rsi      # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x9d786
movq 0x88(%rsp), %rsi
subq 0x80(%rsp), %rsi
sarq $0x4, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x5ef7(%rip), %rsi      # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x22f57(%rip), %rsi     # 0xc06f3
movq %rax, %rdi
callq 0x19142
leaq 0x9aab(%rip), %rsi      # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x9d7d9
movq 0x30(%rsp), %rsi
subq 0x28(%rsp), %rsi
sarq $0x4, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x1cab9(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0xa8(%rsp), %rdi
callq 0xbfd8
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9d811
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 0x22ed8(%rip), %rsi     # 0xc0711
leaq 0x22eef(%rip), %rdx     # 0xc072f
callq 0xd14c
subq %r12, %r15
subq %r14, %rbx
xorl %esi, %esi
cmpq %r15, %rbx
sete %sil
leaq 0xa8(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0xbf80
leaq 0x5e17(%rip), %rsi      # 0xa3684
leaq 0xa8(%rsp), %rdi
callq 0x18fba
leaq 0x22eaf(%rip), %rsi     # 0xc0730
movq %rax, %rdi
callq 0x19062
leaq 0x99c6(%rip), %rsi      # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x9d8be
movq 0x68(%rsp), %rsi
subq 0x60(%rsp), %rsi
sarq $0x4, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x5dbf(%rip), %rsi      # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x22e1f(%rip), %rsi     # 0xc06f3
movq %rax, %rdi
callq 0x19142
leaq 0x9973(%rip), %rsi      # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x9d911
movq 0x30(%rsp), %rsi
subq 0x28(%rsp), %rsi
sarq $0x4, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x1c981(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0xa8(%rsp), %rdi
callq 0xbfd8
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9d949
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 0x22dca(%rip), %rsi     # 0xc073b
leaq 0x22de2(%rip), %rdx     # 0xc075a
callq 0xd14c
subq %r12, %r15
subq %r14, %rbx
xorl %esi, %esi
cmpq %r15, %rbx
sete %sil
leaq 0xa8(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0xbf80
leaq 0x5cdf(%rip), %rsi      # 0xa3684
leaq 0xa8(%rsp), %rdi
callq 0x18fba
leaq 0x22da2(%rip), %rsi     # 0xc075b
movq %rax, %rdi
callq 0x57bb2
leaq 0x988e(%rip), %rsi      # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x9d9f6
movq 0x48(%rsp), %rsi
subq 0x40(%rsp), %rsi
sarq $0x4, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x5c87(%rip), %rsi      # 0xa3684
movq %rbx, %rdi
callq 0x18fba
leaq 0x22ce7(%rip), %rsi     # 0xc06f3
movq %rax, %rdi
callq 0x19142
leaq 0x983b(%rip), %rsi      # 0xa7256
movq %rax, %rdi
callq 0x18fba
movq %rax, %rbx
cmpb $0x1, 0x188(%rax)
jne 0x9da49
movq 0x30(%rsp), %rsi
subq 0x28(%rsp), %rsi
sarq $0x4, %rsi
movq %rbx, %rdi
addq $0x10, %rdi
callq 0x2110
leaq 0x1c849(%rip), %rsi     # 0xba299
movq %rbx, %rdi
callq 0x18fba
leaq 0xa8(%rsp), %rdi
callq 0xbfd8
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9da81
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x28(%rsp), %rdi
cmpq %rdi, 0x30(%rsp)
je 0x9de57
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 0x22c96(%rip), %rsi     # 0xc0767
leaq 0x22ca7(%rip), %rdx     # 0xc077f
callq 0xd14c
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 0xbf80
leaq 0x5b7e(%rip), %r15      # 0xa3684
leaq 0x9749(%rip), %r12      # 0xa7256
movq %rbx, %rdi
movq %r15, %rsi
callq 0x18fba
movq %rax, %rdi
leaq 0x22c5e(%rip), %rsi     # 0xc0780
callq 0x1a146
movq %rax, %rdi
movq %r12, %rsi
callq 0x18fba
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x9db55
movq 0x80(%rsp), %rsi
addq %rbp, %rsi
movq %r14, %rdi
addq $0x10, %rdi
callq 0x9ffb7
movq %r14, %rdi
movq %r15, %rsi
callq 0x18fba
movq %rax, %rdi
leaq 0x22c09(%rip), %rsi     # 0xc0773
callq 0x190d2
movq %rax, %rdi
movq %r12, %rsi
callq 0x18fba
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x9db9a
movq 0x28(%rsp), %rsi
addq %rbp, %rsi
movq %r14, %rdi
addq $0x10, %rdi
callq 0x9ffb7
movq %r14, %rdi
leaq 0x1c6f5(%rip), %rsi     # 0xba299
callq 0x18fba
movq %rbx, %rdi
callq 0xbfd8
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9dbcd
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 0x22b87(%rip), %rsi     # 0xc0789
leaq 0x22b96(%rip), %rdx     # 0xc079f
callq 0xd14c
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 0xbf80
leaq 0x5a4d(%rip), %r15      # 0xa3684
leaq 0x9618(%rip), %r12      # 0xa7256
movq %rbx, %rdi
movq %r15, %rsi
callq 0x18fba
movq %rax, %rdi
leaq 0x22b4d(%rip), %rsi     # 0xc07a0
callq 0x57b7a
movq %rax, %rdi
movq %r12, %rsi
callq 0x18fba
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x9dc83
movq 0x60(%rsp), %rsi
addq %rbp, %rsi
movq %r14, %rdi
addq $0x10, %rdi
callq 0x9ffb7
movq %r14, %rdi
movq %r15, %rsi
callq 0x18fba
movq %rax, %rdi
leaq 0x22adb(%rip), %rsi     # 0xc0773
callq 0x190d2
movq %rax, %rdi
movq %r12, %rsi
callq 0x18fba
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x9dcc8
movq 0x28(%rsp), %rsi
addq %rbp, %rsi
movq %r14, %rdi
addq $0x10, %rdi
callq 0x9ffb7
movq %r14, %rdi
leaq 0x1c5c7(%rip), %rsi     # 0xba299
callq 0x18fba
movq %rbx, %rdi
callq 0xbfd8
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9dcfb
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 0x22a77(%rip), %rsi     # 0xc07a7
leaq 0x22a87(%rip), %rdx     # 0xc07be
callq 0xd14c
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 0xbf80
leaq 0x591f(%rip), %r15      # 0xa3684
leaq 0x94ea(%rip), %r12      # 0xa7256
movq 0xa0(%rsp), %r13
movq %rbx, %rdi
movq %r15, %rsi
callq 0x18fba
movq %rax, %rdi
leaq 0x22a36(%rip), %rsi     # 0xc07bf
callq 0x1909a
movq %rax, %rdi
movq %r12, %rsi
callq 0x18fba
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x9ddb9
movq 0x40(%rsp), %rsi
addq %rbp, %rsi
movq %r14, %rdi
addq $0x10, %rdi
callq 0x9ffb7
movq %r14, %rdi
movq %r15, %rsi
callq 0x18fba
movq %rax, %rdi
leaq 0x229a5(%rip), %rsi     # 0xc0773
callq 0x190d2
movq %rax, %rdi
movq %r12, %rsi
callq 0x18fba
movq %rax, %r14
cmpb $0x1, 0x188(%rax)
jne 0x9ddfe
movq 0x28(%rsp), %rsi
addq %rbp, %rsi
movq %r14, %rdi
addq $0x10, %rdi
callq 0x9ffb7
movq %r14, %rdi
leaq 0x1c491(%rip), %rsi     # 0xba299
callq 0x18fba
movq %rbx, %rdi
callq 0xbfd8
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9de31
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 0x9da9b
testq %rdi, %rdi
je 0x9de69
movq 0x38(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x9de80
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x9de97
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x9deb4
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 0x9df23
jmp 0x9df23
jmp 0x9df23
jmp 0x9df1a
jmp 0x9dee0
jmp 0x9def2
jmp 0x9df04
jmp 0x9df2c
jmp 0x9df2c
jmp 0x9df2c
jmp 0x9dee0
jmp 0x9def2
jmp 0x9df04
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbfd8
jmp 0x9df65
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbfd8
jmp 0x9df65
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbfd8
jmp 0x9df65
jmp 0x9df1a
jmp 0x9df1a
movq %rax, %rbx
jmp 0x9df98
jmp 0x9df23
jmp 0x9df23
movq %rax, %rbx
jmp 0x9df81
jmp 0x9df2c
jmp 0x9df2c
movq %rax, %rbx
jmp 0x9df65
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbfd8
jmp 0x9df65
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbfd8
jmp 0x9df65
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xbfd8
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x9df81
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x21f0
movq 0x28(%rsp), %rdi
testq %rdi, %rdi
je 0x9df98
movq 0x38(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq 0x40(%rsp), %rdi
testq %rdi, %rdi
je 0x9dfaf
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq 0x60(%rsp), %rdi
testq %rdi, %rdi
je 0x9dfc6
movq 0x70(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x9dfe3
movq 0x90(%rsp), %rsi
subq %rdi, %rsi
callq 0x21f0
movq %rbx, %rdi
callq 0x2300
movq %rax, %rdi
callq 0xc0a9