// File: /workspace/github_cpp_makefile_star2_O2/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 $0x288, %rsp            # imm = 0x288
xorps %xmm0, %xmm0
movaps %xmm0, 0x90(%rsp)
andq $0x0, 0xa0(%rsp)
movaps %xmm0, 0x70(%rsp)
andq $0x0, 0x80(%rsp)
movaps %xmm0, 0x50(%rsp)
andq $0x0, 0x60(%rsp)
leaq 0xf0(%rsp), %rsi
andq $0x0, (%rsi)
movq $0xa, 0x8(%rsi)
leaq 0xc0(%rsp), %rdi
callq 0x6d760
movq 0xd0(%rsp), %rax
leaq 0xf0(%rsp), %rbx
movq %rax, 0x10(%rbx)
movups 0xc0(%rsp), %xmm0
movaps %xmm0, (%rbx)
movq 0xd8(%rsp), %r12
leaq 0x90(%rsp), %r14
leaq 0x30(%rsp), %r15
movq 0xf0(%rsp), %rax
cmpq %r12, %rax
je 0x879a3
movq %rax, 0x30(%rsp)
movq $0x3, 0x38(%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x89f90
movq %rbx, %rdi
callq 0x6a80e
jmp 0x87973
movq 0xd0(%rsp), %rax
leaq 0xf0(%rsp), %rbx
movq %rax, 0x10(%rbx)
movups 0xc0(%rsp), %xmm0
movaps %xmm0, (%rbx)
leaq 0x70(%rsp), %r14
leaq 0x30(%rsp), %r15
movq 0xd8(%rsp), %rax
movq 0xf0(%rsp), %rcx
cmpq %rax, %rcx
je 0x87a04
movq %rcx, 0x30(%rsp)
movq $0x3, 0x38(%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x89f90
movq %rbx, %rdi
callq 0x6a80e
jmp 0x879cc
movq 0xc0(%rsp), %r12
movq 0xd0(%rsp), %r15
leaq -0x2(%r15), %r13
leaq 0x50(%rsp), %rbx
leaq 0xf0(%rsp), %r14
cmpq %rax, %r12
je 0x87a6d
movq %r12, 0xf0(%rsp)
movq $0x3, 0xf8(%rsp)
movq %rbx, %rdi
movq %r14, %rsi
callq 0x89f90
leaq 0x3(%r12), %rax
addq $0x5, %r12
cmpq %r15, %r12
movq %rax, %r12
cmovgq %r13, %r12
cmpq %r15, %rax
cmovgq %rax, %r12
movq 0xd8(%rsp), %rax
jmp 0x87a25
leaq 0xf0(%rsp), %rsi
andq $0x0, (%rsi)
pushq $0x3
popq %rax
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 0x10(%rsp), %rdi
pushq $0x4
popq %rdx
leaq 0x30(%rsp), %rcx
callq 0x88fb2
movq 0x90(%rsp), %r14
movq 0x98(%rsp), %rbx
movq 0x10(%rsp), %r12
movq 0x18(%rsp), %r15
leaq 0x243f5(%rip), %rsi     # 0xabec8
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x66a0
subq %r12, %r15
subq %r14, %rbx
xorl %esi, %esi
cmpq %r15, %rbx
sete %sil
leaq 0xf0(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x6894
leaq 0x5b3d(%rip), %rsi      # 0x8d647
leaq 0xf0(%rsp), %rdi
callq 0x106fe
leaq 0x243cb(%rip), %rsi     # 0xabee9
movq %rax, %rdi
callq 0x1082e
leaq 0x9ac5(%rip), %rsi      # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x98(%rsp), %rcx
subq 0x90(%rsp), %rcx
sarq $0x4, %rcx
leaq 0x28(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x11052
leaq 0x5ae7(%rip), %rsi      # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x24369(%rip), %rsi     # 0xabed8
movq %rax, %rdi
callq 0x1087a
leaq 0x9a74(%rip), %rsi      # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x18(%rsp), %rcx
subq 0x10(%rsp), %rcx
sarq $0x4, %rcx
leaq 0xb0(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x11052
leaq 0x1d6f4(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0xf0(%rsp), %rdi
callq 0x68d4
leaq 0x30(%rsp), %rdi
callq 0x2090
movq 0x70(%rsp), %r14
movq 0x78(%rsp), %rbx
movq 0x10(%rsp), %r12
movq 0x18(%rsp), %r15
leaq 0x2430e(%rip), %rsi     # 0xabef6
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x66a0
subq %r12, %r15
subq %r14, %rbx
xorl %esi, %esi
cmpq %r15, %rbx
sete %sil
leaq 0xf0(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x6894
leaq 0x5a28(%rip), %rsi      # 0x8d647
leaq 0xf0(%rsp), %rdi
callq 0x106fe
leaq 0x242e2(%rip), %rsi     # 0xabf15
movq %rax, %rdi
callq 0x107d8
leaq 0x99b0(%rip), %rsi      # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x78(%rsp), %rcx
subq 0x70(%rsp), %rcx
sarq $0x4, %rcx
leaq 0x28(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x11052
leaq 0x59d8(%rip), %rsi      # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x2425a(%rip), %rsi     # 0xabed8
movq %rax, %rdi
callq 0x1087a
leaq 0x9965(%rip), %rsi      # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x18(%rsp), %rcx
subq 0x10(%rsp), %rcx
sarq $0x4, %rcx
leaq 0xb0(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x11052
leaq 0x1d5e5(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0xf0(%rsp), %rdi
callq 0x68d4
leaq 0x30(%rsp), %rdi
callq 0x2090
movq 0x50(%rsp), %r14
movq 0x58(%rsp), %rbx
movq 0x10(%rsp), %r12
movq 0x18(%rsp), %r15
leaq 0x24229(%rip), %rsi     # 0xabf20
leaq 0x30(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x66a0
subq %r12, %r15
subq %r14, %rbx
xorl %esi, %esi
cmpq %r15, %rbx
sete %sil
leaq 0xf0(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x6894
leaq 0x5919(%rip), %rsi      # 0x8d647
leaq 0xf0(%rsp), %rdi
callq 0x106fe
leaq 0x241fe(%rip), %rsi     # 0xabf40
movq %rax, %rdi
callq 0x46c4c
leaq 0x98a1(%rip), %rsi      # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x58(%rsp), %rcx
subq 0x50(%rsp), %rcx
sarq $0x4, %rcx
leaq 0x28(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x11052
leaq 0x58c9(%rip), %rsi      # 0x8d647
movq %rax, %rdi
callq 0x106fe
leaq 0x2414b(%rip), %rsi     # 0xabed8
movq %rax, %rdi
callq 0x1087a
leaq 0x9856(%rip), %rsi      # 0x915f2
movq %rax, %rdi
callq 0x106fe
movq 0x18(%rsp), %rcx
subq 0x10(%rsp), %rcx
sarq $0x4, %rcx
leaq 0xb0(%rsp), %rsi
movq %rcx, (%rsi)
movq %rax, %rdi
callq 0x11052
leaq 0x1d4d6(%rip), %rsi     # 0xa52a2
movq %rax, %rdi
callq 0x106fe
leaq 0xf0(%rsp), %rdi
callq 0x68d4
leaq 0x30(%rsp), %rbx
movq %rbx, %rdi
callq 0x2090
xorl %ebp, %ebp
xorl %edx, %edx
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
subq %rax, %rcx
sarq $0x4, %rcx
cmpq %rcx, %rdx
jae 0x880e4
movq %rdx, 0xb8(%rsp)
movq 0x90(%rsp), %rcx
movq (%rcx,%rbp), %r13
movq 0x8(%rcx,%rbp), %r14
movq (%rax,%rbp), %r12
movq 0x8(%rax,%rbp), %r15
movq %rbx, %rdi
leaq 0x24114(%rip), %rsi     # 0xabf4c
leaq 0x28(%rsp), %rdx
callq 0x66a0
xorq %r12, %r13
xorq %r15, %r14
xorl %esi, %esi
orq %r13, %r14
sete %sil
leaq 0xf0(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rdx
callq 0x6894
movq %r14, %rdi
leaq 0x57d9(%rip), %r15      # 0x8d647
movq %r15, %rsi
callq 0x106fe
leaq 0x9775(%rip), %r12      # 0x915f2
movq %rax, %rdi
leaq 0x240de(%rip), %rsi     # 0xabf65
callq 0x118ac
movq %rax, %rdi
movq %r12, %rsi
callq 0x106fe
movq 0x90(%rsp), %rsi
addq %rbp, %rsi
movq %rax, %rdi
callq 0x88fec
movq %rax, %rdi
movq %r15, %rsi
callq 0x106fe
movq %rax, %rdi
leaq 0x24099(%rip), %rsi     # 0xabf58
callq 0x1082e
movq %rax, %rdi
movq %r12, %rsi
callq 0x106fe
movq 0x10(%rsp), %rsi
addq %rbp, %rsi
movq %rax, %rdi
callq 0x88fec
movq %rax, %rdi
leaq 0x1d3b9(%rip), %rsi     # 0xa52a2
callq 0x106fe
movq %r14, %rdi
callq 0x68d4
movq %rbx, %rdi
callq 0x2090
movq 0x70(%rsp), %rax
movq 0x10(%rsp), %rcx
movq (%rax,%rbp), %r13
movq 0x8(%rax,%rbp), %r14
movq (%rcx,%rbp), %r12
movq 0x8(%rcx,%rbp), %r15
movq %rbx, %rdi
leaq 0x2404a(%rip), %rsi     # 0xabf6e
leaq 0x28(%rsp), %rdx
callq 0x66a0
xorq %r12, %r13
xorq %r15, %r14
xorl %esi, %esi
orq %r13, %r14
sete %sil
leaq 0xf0(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rdx
callq 0x6894
movq %r14, %rdi
leaq 0x56ed(%rip), %r15      # 0x8d647
movq %r15, %rsi
callq 0x106fe
leaq 0x9689(%rip), %r12      # 0x915f2
movq %rax, %rdi
leaq 0x24012(%rip), %rsi     # 0xabf85
callq 0x46b68
movq %rax, %rdi
movq %r12, %rsi
callq 0x106fe
movq 0x70(%rsp), %rsi
addq %rbp, %rsi
movq %rax, %rdi
callq 0x88fec
movq %rax, %rdi
movq %r15, %rsi
callq 0x106fe
movq %rax, %rdi
leaq 0x23fb0(%rip), %rsi     # 0xabf58
callq 0x1082e
movq %rax, %rdi
movq %r12, %rsi
callq 0x106fe
movq 0x10(%rsp), %rsi
addq %rbp, %rsi
movq %rax, %rdi
callq 0x88fec
movq %rax, %rdi
leaq 0x1d2d0(%rip), %rsi     # 0xa52a2
callq 0x106fe
movq %r14, %rdi
callq 0x68d4
movq %rbx, %rdi
callq 0x2090
movq 0x50(%rsp), %rax
movq 0x10(%rsp), %rcx
movq (%rax,%rbp), %r13
movq 0x8(%rax,%rbp), %r14
movq (%rcx,%rbp), %r12
movq 0x8(%rcx,%rbp), %r15
movq %rbx, %rdi
leaq 0x23f7f(%rip), %rsi     # 0xabf8c
leaq 0x28(%rsp), %rdx
callq 0x66a0
xorq %r12, %r13
xorq %r15, %r14
xorl %esi, %esi
orq %r13, %r14
sete %sil
leaq 0xf0(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rdx
callq 0x6894
leaq 0x5607(%rip), %r15      # 0x8d647
leaq 0x95ab(%rip), %r12      # 0x915f2
movq %r14, %rdi
movq %r15, %rsi
callq 0x106fe
movq %rax, %rdi
leaq 0x23f48(%rip), %rsi     # 0xabfa4
callq 0x107f4
movq %rax, %rdi
movq %r12, %rsi
callq 0x106fe
movq 0x50(%rsp), %rsi
addq %rbp, %rsi
movq %rax, %rdi
callq 0x88fec
movq %rax, %rdi
movq %r15, %rsi
callq 0x106fe
movq %rax, %rdi
leaq 0x23ec7(%rip), %rsi     # 0xabf58
callq 0x1082e
movq %rax, %rdi
movq %r12, %rsi
callq 0x106fe
movq 0x10(%rsp), %rsi
addq %rbp, %rsi
movq %rax, %rdi
callq 0x88fec
movq %rax, %rdi
leaq 0x1d1e7(%rip), %rsi     # 0xa52a2
callq 0x106fe
movq %r14, %rdi
callq 0x68d4
movq %rbx, %rdi
callq 0x2090
movq 0xb8(%rsp), %rdx
incq %rdx
addq $0x10, %rbp
jmp 0x87df2
leaq 0x10(%rsp), %rdi
callq 0x89f5c
leaq 0x50(%rsp), %rdi
callq 0x89f5c
leaq 0x70(%rsp), %rdi
callq 0x89f5c
leaq 0x90(%rsp), %rdi
callq 0x89f5c
addq $0x288, %rsp            # imm = 0x288
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x88177
jmp 0x88177
jmp 0x88177
jmp 0x88184
jmp 0x88184
jmp 0x8813d
jmp 0x8818d
jmp 0x8814f
jmp 0x8818d
jmp 0x88161
jmp 0x8818d
jmp 0x8813d
jmp 0x8814f
jmp 0x88161
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x68d4
jmp 0x881c6
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x68d4
jmp 0x881c6
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x68d4
jmp 0x881c6
jmp 0x88177
jmp 0x88177
movq %rax, %rbx
jmp 0x881d0
jmp 0x88184
jmp 0x88184
jmp 0x88184
jmp 0x88184
movq %rax, %rbx
jmp 0x881da
jmp 0x8818d
jmp 0x8818d
movq %rax, %rbx
jmp 0x881c6
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x68d4
jmp 0x881c6
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x68d4
jmp 0x881c6
movq %rax, %rbx
leaq 0xf0(%rsp), %rdi
callq 0x68d4
leaq 0x30(%rsp), %rdi
callq 0x2090
leaq 0x10(%rsp), %rdi
callq 0x89f5c
leaq 0x50(%rsp), %rdi
callq 0x89f5c
leaq 0x70(%rsp), %rdi
callq 0x89f5c
leaq 0x90(%rsp), %rdi
callq 0x89f5c
movq %rbx, %rdi
callq 0x22f0
movq %rax, %rdi
callq 0x6bba