void run_tests() {
  int dice0[6] = {1, -1, -1, -1, -1, -1};
  assert(score_dice(dice0) == 100);
  int dice1[6] = {5, -1, -1, -1, -1, -1};
  assert(score_dice(dice1) == 50);
  int dice2[6] = {2, -1, -1, -1, -1, -1};
  assert(score_dice(dice2) == 0);
  int dice3[6] = {3, -1, -1, -1, -1, -1};
  assert(score_dice(dice3) == 0);
  int dice4[6] = {4, -1, -1, -1, -1, -1};
  assert(score_dice(dice4) == 0);
  int dice5[6] = {6, -1, -1, -1, -1, -1};
  assert(score_dice(dice5) == 0);
  int dice6[6] = {1, 5, -1, -1, -1, -1};
  assert(score_dice(dice6) == 150);
  int dice7[6] = {1, 1, -1, -1, -1, -1};
  assert(score_dice(dice7) == 200);
  int dice8[6] = {5, 5, -1, -1, -1, -1};
  assert(score_dice(dice8) == 100);
  int dice9[6] = {2, 3, -1, -1, -1, -1};
  assert(score_dice(dice9) == 0);
  int dice10[6] = {4, 6, -1, -1, -1, -1};
  assert(score_dice(dice10) == 0);
  int dice11[6] = {1, 1, 1, -1, -1, -1};
  assert(score_dice(dice11) == 300);
  int dice12[6] = {2, 2, 2, -1, -1, -1};
  assert(score_dice(dice12) == 200);
  int dice13[6] = {3, 3, 3, -1, -1, -1};
  assert(score_dice(dice13) == 300);
  int dice14[6] = {4, 4, 4, -1, -1, -1};
  assert(score_dice(dice14) == 400);
  int dice15[6] = {5, 5, 5, -1, -1, -1};
  assert(score_dice(dice15) == 500);
  int dice16[6] = {6, 6, 6, -1, -1, -1};
  assert(score_dice(dice16) == 600);
  int dice17[6] = {2, 3, 4, -1, -1, -1};
  assert(score_dice(dice17) == 0);
  int dice18[6] = {1, 5, 6, -1, -1, -1};
  assert(score_dice(dice18) == 150);
  int dice19[6] = {3, 5, 6, -1, -1, -1};
  assert(score_dice(dice19) == 50);
  int dice20[6] = {1, 1, 1, 1, -1, -1};
  assert(score_dice(dice20) == 1000);
  int dice21[6] = {2, 2, 2, 2, -1, -1};
  assert(score_dice(dice21) == 1000);
  int dice22[6] = {3, 3, 3, 3, -1, -1};
  assert(score_dice(dice22) == 1000);
  int dice23[6] = {4, 4, 4, 4, -1, -1};
  assert(score_dice(dice23) == 1000);
  int dice24[6] = {5, 5, 5, 5, -1, -1};
  assert(score_dice(dice24) == 1000);
  int dice25[6] = {6, 6, 6, 6, -1, -1};
  assert(score_dice(dice25) == 1000);
  int dice26[6] = {6, 6, 6, 1, -1, -1};
  assert(score_dice(dice26) == 700);
  int dice27[6] = {4, 4, 4, 5, -1, -1};
  assert(score_dice(dice27) == 450);
  int dice28[6] = {3, 3, 3, 4, -1, -1};
  assert(score_dice(dice28) == 300);
  int dice29[6] = {1, 2, 3, 4, -1, -1};
  assert(score_dice(dice29) == 100);
  int dice30[6] = {3, 4, 5, 6, -1, -1};
  assert(score_dice(dice30) == 50);
  int dice31[6] = {2, 3, 4, 6, -1, -1};
  assert(score_dice(dice31) == 0);
  int dice32[6] = {1, 1, 1, 1, 1, -1};
  assert(score_dice(dice32) == 2000);
  int dice33[6] = {2, 2, 2, 2, 2, -1};
  assert(score_dice(dice33) == 2000);
  int dice34[6] = {3, 3, 3, 3, 3, -1};
  assert(score_dice(dice34) == 2000);
  int dice35[6] = {4, 4, 4, 4, 4, -1};
  assert(score_dice(dice35) == 2000);
  int dice36[6] = {5, 5, 5, 5, 5, -1};
  assert(score_dice(dice36) == 2000);
  int dice37[6] = {6, 6, 6, 6, 6, -1};
  assert(score_dice(dice37) == 2000);
  int dice38[6] = {1, 1, 1, 1, 1, 1};
  assert(score_dice(dice38) == 3000);
  int dice39[6] = {2, 2, 2, 2, 2, 2};
  assert(score_dice(dice39) == 3000);
  int dice40[6] = {3, 3, 3, 3, 3, 3};
  assert(score_dice(dice40) == 3000);
  int dice41[6] = {4, 4, 4, 4, 4, 4};
  assert(score_dice(dice41) == 3000);
  int dice42[6] = {5, 5, 5, 5, 5, 5};
  assert(score_dice(dice42) == 3000);
  int dice43[6] = {6, 6, 6, 6, 6, 6};
  assert(score_dice(dice43) == 3000);
  int dice44[6] = {1, 1, 1, 2, 2, 2};
  assert(score_dice(dice44) == 2500);
  int dice45[6] = {3, 3, 3, 4, 4, 4};
  assert(score_dice(dice45) == 2500);
  int dice46[6] = {5, 5, 5, 6, 6, 6};
  assert(score_dice(dice46) == 2500);
  int dice47[6] = {1, 1, 2, 2, 3, 3};
  assert(score_dice(dice47) == 1500);
  int dice48[6] = {4, 4, 5, 5, 6, 6};
  assert(score_dice(dice48) == 1500);
  int dice49[6] = {1, 1, 1, 1, 2, 2};
  assert(score_dice(dice49) == 1500);
  int dice50[6] = {3, 3, 3, 3, 4, 4};
  assert(score_dice(dice50) == 1500);
  int dice51[6] = {5, 5, 5, 5, 6, 6};
  assert(score_dice(dice51) == 1500);
  int dice52[6] = {6, 2, 5, 2, 6, 4};
  assert(score_dice(dice52) == 50);
  int dice53[6] = {6, 5, 3, 2, 1, 1};
  assert(score_dice(dice53) == 250);
}


x86 assembly (clang, -O0):
<run_tests>:
push   %rbp
mov    %rsp,%rbp
sub    $0x6c0,%rsp
mov    0x1ece(%rip),%rax
mov    %rax,-0x20(%rbp)
mov    0x1ecb(%rip),%rax
mov    %rax,-0x18(%rbp)
mov    0x1ec8(%rip),%rax
mov    %rax,-0x10(%rbp)
lea    -0x20(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x64,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1eb0(%rip),%rax
mov    %rax,-0x40(%rbp)
mov    0x1ead(%rip),%rax
mov    %rax,-0x38(%rbp)
mov    0x1eaa(%rip),%rax
mov    %rax,-0x30(%rbp)
lea    -0x40(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x32,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1e92(%rip),%rax
mov    %rax,-0x60(%rbp)
mov    0x1e8f(%rip),%rax
mov    %rax,-0x58(%rbp)
mov    0x1e8c(%rip),%rax
mov    %rax,-0x50(%rbp)
lea    -0x60(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1e74(%rip),%rax
mov    %rax,-0x80(%rbp)
mov    0x1e71(%rip),%rax
mov    %rax,-0x78(%rbp)
mov    0x1e6e(%rip),%rax
mov    %rax,-0x70(%rbp)
lea    -0x80(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1e56(%rip),%rax
mov    %rax,-0xa0(%rbp)
mov    0x1e50(%rip),%rax
mov    %rax,-0x98(%rbp)
mov    0x1e4a(%rip),%rax
mov    %rax,-0x90(%rbp)
lea    -0xa0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1e2c(%rip),%rax
mov    %rax,-0xc0(%rbp)
mov    0x1e26(%rip),%rax
mov    %rax,-0xb8(%rbp)
mov    0x1e20(%rip),%rax
mov    %rax,-0xb0(%rbp)
lea    -0xc0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1e02(%rip),%rax
mov    %rax,-0xe0(%rbp)
mov    0x1dfc(%rip),%rax
mov    %rax,-0xd8(%rbp)
mov    0x1df6(%rip),%rax
mov    %rax,-0xd0(%rbp)
lea    -0xe0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x96,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1dd6(%rip),%rax
mov    %rax,-0x100(%rbp)
mov    0x1dd0(%rip),%rax
mov    %rax,-0xf8(%rbp)
mov    0x1dca(%rip),%rax
mov    %rax,-0xf0(%rbp)
lea    -0x100(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0xc8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1daa(%rip),%rax
mov    %rax,-0x120(%rbp)
mov    0x1da4(%rip),%rax
mov    %rax,-0x118(%rbp)
mov    0x1d9e(%rip),%rax
mov    %rax,-0x110(%rbp)
lea    -0x120(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x64,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1d80(%rip),%rax
mov    %rax,-0x140(%rbp)
mov    0x1d7a(%rip),%rax
mov    %rax,-0x138(%rbp)
mov    0x1d74(%rip),%rax
mov    %rax,-0x130(%rbp)
lea    -0x140(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1d56(%rip),%rax
mov    %rax,-0x160(%rbp)
mov    0x1d50(%rip),%rax
mov    %rax,-0x158(%rbp)
mov    0x1d4a(%rip),%rax
mov    %rax,-0x150(%rbp)
lea    -0x160(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1d2c(%rip),%rax
mov    %rax,-0x180(%rbp)
mov    0x1d26(%rip),%rax
mov    %rax,-0x178(%rbp)
mov    0x1d20(%rip),%rax
mov    %rax,-0x170(%rbp)
lea    -0x180(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x12c,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1d00(%rip),%rax
mov    %rax,-0x1a0(%rbp)
mov    0x1cfa(%rip),%rax
mov    %rax,-0x198(%rbp)
mov    0x1cf4(%rip),%rax
mov    %rax,-0x190(%rbp)
lea    -0x1a0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0xc8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1cd4(%rip),%rax
mov    %rax,-0x1c0(%rbp)
mov    0x1cce(%rip),%rax
mov    %rax,-0x1b8(%rbp)
mov    0x1cc8(%rip),%rax
mov    %rax,-0x1b0(%rbp)
lea    -0x1c0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x12c,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1ca8(%rip),%rax
mov    %rax,-0x1e0(%rbp)
mov    0x1ca2(%rip),%rax
mov    %rax,-0x1d8(%rbp)
mov    0x1c9c(%rip),%rax
mov    %rax,-0x1d0(%rbp)
lea    -0x1e0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x190,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1c7c(%rip),%rax
mov    %rax,-0x200(%rbp)
mov    0x1c76(%rip),%rax
mov    %rax,-0x1f8(%rbp)
mov    0x1c70(%rip),%rax
mov    %rax,-0x1f0(%rbp)
lea    -0x200(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x1f4,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1c50(%rip),%rax
mov    %rax,-0x220(%rbp)
mov    0x1c4a(%rip),%rax
mov    %rax,-0x218(%rbp)
mov    0x1c44(%rip),%rax
mov    %rax,-0x210(%rbp)
lea    -0x220(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x258,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1c24(%rip),%rax
mov    %rax,-0x240(%rbp)
mov    0x1c1e(%rip),%rax
mov    %rax,-0x238(%rbp)
mov    0x1c18(%rip),%rax
mov    %rax,-0x230(%rbp)
lea    -0x240(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1bfa(%rip),%rax
mov    %rax,-0x260(%rbp)
mov    0x1bf4(%rip),%rax
mov    %rax,-0x258(%rbp)
mov    0x1bee(%rip),%rax
mov    %rax,-0x250(%rbp)
lea    -0x260(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x96,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1bce(%rip),%rax
mov    %rax,-0x280(%rbp)
mov    0x1bc8(%rip),%rax
mov    %rax,-0x278(%rbp)
mov    0x1bc2(%rip),%rax
mov    %rax,-0x270(%rbp)
lea    -0x280(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x32,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1ba4(%rip),%rax
mov    %rax,-0x2a0(%rbp)
mov    0x1b9e(%rip),%rax
mov    %rax,-0x298(%rbp)
mov    0x1b98(%rip),%rax
mov    %rax,-0x290(%rbp)
lea    -0x2a0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x3e8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1b78(%rip),%rax
mov    %rax,-0x2c0(%rbp)
mov    0x1b72(%rip),%rax
mov    %rax,-0x2b8(%rbp)
mov    0x1b6c(%rip),%rax
mov    %rax,-0x2b0(%rbp)
lea    -0x2c0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x3e8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1b4c(%rip),%rax
mov    %rax,-0x2e0(%rbp)
mov    0x1b46(%rip),%rax
mov    %rax,-0x2d8(%rbp)
mov    0x1b40(%rip),%rax
mov    %rax,-0x2d0(%rbp)
lea    -0x2e0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x3e8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1b20(%rip),%rax
mov    %rax,-0x300(%rbp)
mov    0x1b1a(%rip),%rax
mov    %rax,-0x2f8(%rbp)
mov    0x1b14(%rip),%rax
mov    %rax,-0x2f0(%rbp)
lea    -0x300(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x3e8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1af4(%rip),%rax
mov    %rax,-0x320(%rbp)
mov    0x1aee(%rip),%rax
mov    %rax,-0x318(%rbp)
mov    0x1ae8(%rip),%rax
mov    %rax,-0x310(%rbp)
lea    -0x320(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x3e8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1ac8(%rip),%rax
mov    %rax,-0x340(%rbp)
mov    0x1ac2(%rip),%rax
mov    %rax,-0x338(%rbp)
mov    0x1abc(%rip),%rax
mov    %rax,-0x330(%rbp)
lea    -0x340(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x3e8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1a9c(%rip),%rax
mov    %rax,-0x360(%rbp)
mov    0x1a96(%rip),%rax
mov    %rax,-0x358(%rbp)
mov    0x1a90(%rip),%rax
mov    %rax,-0x350(%rbp)
lea    -0x360(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x2bc,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1a70(%rip),%rax
mov    %rax,-0x380(%rbp)
mov    0x1a6a(%rip),%rax
mov    %rax,-0x378(%rbp)
mov    0x1a64(%rip),%rax
mov    %rax,-0x370(%rbp)
lea    -0x380(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x1c2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1a44(%rip),%rax
mov    %rax,-0x3a0(%rbp)
mov    0x1a3e(%rip),%rax
mov    %rax,-0x398(%rbp)
mov    0x1a38(%rip),%rax
mov    %rax,-0x390(%rbp)
lea    -0x3a0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x12c,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1a18(%rip),%rax
mov    %rax,-0x3c0(%rbp)
mov    0x1a12(%rip),%rax
mov    %rax,-0x3b8(%rbp)
mov    0x1a0c(%rip),%rax
mov    %rax,-0x3b0(%rbp)
lea    -0x3c0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x64,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x19ee(%rip),%rax
mov    %rax,-0x3e0(%rbp)
mov    0x19e8(%rip),%rax
mov    %rax,-0x3d8(%rbp)
mov    0x19e2(%rip),%rax
mov    %rax,-0x3d0(%rbp)
lea    -0x3e0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x32,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x19c4(%rip),%rax
mov    %rax,-0x400(%rbp)
mov    0x19be(%rip),%rax
mov    %rax,-0x3f8(%rbp)
mov    0x19b8(%rip),%rax
mov    %rax,-0x3f0(%rbp)
lea    -0x400(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x199a(%rip),%rax
mov    %rax,-0x420(%rbp)
mov    0x1994(%rip),%rax
mov    %rax,-0x418(%rbp)
mov    0x198e(%rip),%rax
mov    %rax,-0x410(%rbp)
lea    -0x420(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x7d0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x196e(%rip),%rax
mov    %rax,-0x440(%rbp)
mov    0x1968(%rip),%rax
mov    %rax,-0x438(%rbp)
mov    0x1962(%rip),%rax
mov    %rax,-0x430(%rbp)
lea    -0x440(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x7d0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1942(%rip),%rax
mov    %rax,-0x460(%rbp)
mov    0x193c(%rip),%rax
mov    %rax,-0x458(%rbp)
mov    0x1936(%rip),%rax
mov    %rax,-0x450(%rbp)
lea    -0x460(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x7d0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1916(%rip),%rax
mov    %rax,-0x480(%rbp)
mov    0x1910(%rip),%rax
mov    %rax,-0x478(%rbp)
mov    0x190a(%rip),%rax
mov    %rax,-0x470(%rbp)
lea    -0x480(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x7d0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x18ea(%rip),%rax
mov    %rax,-0x4a0(%rbp)
mov    0x18e4(%rip),%rax
mov    %rax,-0x498(%rbp)
mov    0x18de(%rip),%rax
mov    %rax,-0x490(%rbp)
lea    -0x4a0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x7d0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x18be(%rip),%rax
mov    %rax,-0x4c0(%rbp)
mov    0x18b8(%rip),%rax
mov    %rax,-0x4b8(%rbp)
mov    0x18b2(%rip),%rax
mov    %rax,-0x4b0(%rbp)
lea    -0x4c0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x7d0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1892(%rip),%rax
mov    %rax,-0x4e0(%rbp)
mov    0x188c(%rip),%rax
mov    %rax,-0x4d8(%rbp)
mov    0x1886(%rip),%rax
mov    %rax,-0x4d0(%rbp)
lea    -0x4e0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0xbb8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1866(%rip),%rax
mov    %rax,-0x500(%rbp)
mov    0x1860(%rip),%rax
mov    %rax,-0x4f8(%rbp)
mov    0x185a(%rip),%rax
mov    %rax,-0x4f0(%rbp)
lea    -0x500(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0xbb8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x183a(%rip),%rax
mov    %rax,-0x520(%rbp)
mov    0x1834(%rip),%rax
mov    %rax,-0x518(%rbp)
mov    0x182e(%rip),%rax
mov    %rax,-0x510(%rbp)
lea    -0x520(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0xbb8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x180e(%rip),%rax
mov    %rax,-0x540(%rbp)
mov    0x1808(%rip),%rax
mov    %rax,-0x538(%rbp)
mov    0x1802(%rip),%rax
mov    %rax,-0x530(%rbp)
lea    -0x540(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0xbb8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x17e2(%rip),%rax
mov    %rax,-0x560(%rbp)
mov    0x17dc(%rip),%rax
mov    %rax,-0x558(%rbp)
mov    0x17d6(%rip),%rax
mov    %rax,-0x550(%rbp)
lea    -0x560(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0xbb8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x17b6(%rip),%rax
mov    %rax,-0x580(%rbp)
mov    0x17b0(%rip),%rax
mov    %rax,-0x578(%rbp)
mov    0x17aa(%rip),%rax
mov    %rax,-0x570(%rbp)
lea    -0x580(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0xbb8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x178a(%rip),%rax
mov    %rax,-0x5a0(%rbp)
mov    0x1784(%rip),%rax
mov    %rax,-0x598(%rbp)
mov    0x177e(%rip),%rax
mov    %rax,-0x590(%rbp)
lea    -0x5a0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x9c4,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x175e(%rip),%rax
mov    %rax,-0x5c0(%rbp)
mov    0x1758(%rip),%rax
mov    %rax,-0x5b8(%rbp)
mov    0x1752(%rip),%rax
mov    %rax,-0x5b0(%rbp)
lea    -0x5c0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x9c4,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1732(%rip),%rax
mov    %rax,-0x5e0(%rbp)
mov    0x172c(%rip),%rax
mov    %rax,-0x5d8(%rbp)
mov    0x1726(%rip),%rax
mov    %rax,-0x5d0(%rbp)
lea    -0x5e0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x9c4,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1706(%rip),%rax
mov    %rax,-0x600(%rbp)
mov    0x1700(%rip),%rax
mov    %rax,-0x5f8(%rbp)
mov    0x16fa(%rip),%rax
mov    %rax,-0x5f0(%rbp)
lea    -0x600(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x5dc,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x16da(%rip),%rax
mov    %rax,-0x620(%rbp)
mov    0x16d4(%rip),%rax
mov    %rax,-0x618(%rbp)
mov    0x16ce(%rip),%rax
mov    %rax,-0x610(%rbp)
lea    -0x620(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x5dc,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x16ae(%rip),%rax
mov    %rax,-0x640(%rbp)
mov    0x16a8(%rip),%rax
mov    %rax,-0x638(%rbp)
mov    0x16a2(%rip),%rax
mov    %rax,-0x630(%rbp)
lea    -0x640(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x5dc,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1682(%rip),%rax
mov    %rax,-0x660(%rbp)
mov    0x167c(%rip),%rax
mov    %rax,-0x658(%rbp)
mov    0x1676(%rip),%rax
mov    %rax,-0x650(%rbp)
lea    -0x660(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x5dc,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1656(%rip),%rax
mov    %rax,-0x680(%rbp)
mov    0x1650(%rip),%rax
mov    %rax,-0x678(%rbp)
mov    0x164a(%rip),%rax
mov    %rax,-0x670(%rbp)
lea    -0x680(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x5dc,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x162a(%rip),%rax
mov    %rax,-0x6a0(%rbp)
mov    0x1624(%rip),%rax
mov    %rax,-0x698(%rbp)
mov    0x161e(%rip),%rax
mov    %rax,-0x690(%rbp)
lea    -0x6a0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0x32,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
mov    0x1600(%rip),%rax
mov    %rax,-0x6c0(%rbp)
mov    0x15fa(%rip),%rax
mov    %rax,-0x6b8(%rbp)
mov    0x15f4(%rip),%rax
mov    %rax,-0x6b0(%rbp)
lea    -0x6c0(%rbp),%rdi
mov    $0x0,%al
call   1030 <score_dice@plt>
cmp    $0xfa,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1040 <assert@plt>
add    $0x6c0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<run_tests>:
sub    $0x6b8,%rsp
mov    0xee2(%rip),%rax
mov    %rax,0x6b0(%rsp)
movaps 0xec3(%rip),%xmm0
movaps %xmm0,0x6a0(%rsp)
lea    0x6a0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x64,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xec5(%rip),%rax
mov    %rax,0x690(%rsp)
movaps 0xea6(%rip),%xmm0
movaps %xmm0,0x680(%rsp)
lea    0x680(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x32,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xea8(%rip),%rax
mov    %rax,0x670(%rsp)
movaps 0xe89(%rip),%xmm0
movaps %xmm0,0x660(%rsp)
lea    0x660(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xe8c(%rip),%rax
mov    %rax,0x650(%rsp)
movaps 0xe6d(%rip),%xmm0
movaps %xmm0,0x640(%rsp)
lea    0x640(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xe70(%rip),%rax
mov    %rax,0x630(%rsp)
movaps 0xe51(%rip),%xmm0
movaps %xmm0,0x620(%rsp)
lea    0x620(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xe54(%rip),%rax
mov    %rax,0x610(%rsp)
movaps 0xe35(%rip),%xmm0
movaps %xmm0,0x600(%rsp)
lea    0x600(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xe38(%rip),%rax
mov    %rax,0x5f0(%rsp)
movaps 0xe19(%rip),%xmm0
movaps %xmm0,0x5e0(%rsp)
lea    0x5e0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x96,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xe19(%rip),%rax
mov    %rax,0x5d0(%rsp)
movaps 0xdfa(%rip),%xmm0
movaps %xmm0,0x5c0(%rsp)
lea    0x5c0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0xc8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xdfa(%rip),%rax
mov    %rax,0x5b0(%rsp)
movaps 0xddb(%rip),%xmm0
movaps %xmm0,0x5a0(%rsp)
lea    0x5a0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x64,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xddd(%rip),%rax
mov    %rax,0x590(%rsp)
movaps 0xdbe(%rip),%xmm0
movaps %xmm0,0x580(%rsp)
lea    0x580(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xdc1(%rip),%rax
mov    %rax,0x570(%rsp)
movaps 0xda2(%rip),%xmm0
movaps %xmm0,0x560(%rsp)
lea    0x560(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xda5(%rip),%rax
mov    %rax,0x550(%rsp)
movaps 0xd86(%rip),%xmm0
movaps %xmm0,0x540(%rsp)
lea    0x540(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x12c,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xd86(%rip),%rax
mov    %rax,0x530(%rsp)
movaps 0xd67(%rip),%xmm0
movaps %xmm0,0x520(%rsp)
lea    0x520(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0xc8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xd67(%rip),%rax
mov    %rax,0x510(%rsp)
movaps 0xd48(%rip),%xmm0
movaps %xmm0,0x500(%rsp)
lea    0x500(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x12c,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xd48(%rip),%rax
mov    %rax,0x4f0(%rsp)
movaps 0xd29(%rip),%xmm0
movaps %xmm0,0x4e0(%rsp)
lea    0x4e0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x190,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xd29(%rip),%rax
mov    %rax,0x4d0(%rsp)
movaps 0xd0a(%rip),%xmm0
movaps %xmm0,0x4c0(%rsp)
lea    0x4c0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x1f4,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xd0a(%rip),%rax
mov    %rax,0x4b0(%rsp)
movaps 0xceb(%rip),%xmm0
movaps %xmm0,0x4a0(%rsp)
lea    0x4a0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x258,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xceb(%rip),%rax
mov    %rax,0x490(%rsp)
movaps 0xccc(%rip),%xmm0
movaps %xmm0,0x480(%rsp)
lea    0x480(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xccf(%rip),%rax
mov    %rax,0x470(%rsp)
movaps 0xcb0(%rip),%xmm0
movaps %xmm0,0x460(%rsp)
lea    0x460(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x96,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xcb0(%rip),%rax
mov    %rax,0x450(%rsp)
movaps 0xc91(%rip),%xmm0
movaps %xmm0,0x440(%rsp)
lea    0x440(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x32,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xc93(%rip),%rax
mov    %rax,0x430(%rsp)
movaps 0xc74(%rip),%xmm0
movaps %xmm0,0x420(%rsp)
lea    0x420(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x3e8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xc74(%rip),%rax
mov    %rax,0x410(%rsp)
movaps 0xc55(%rip),%xmm0
movaps %xmm0,0x400(%rsp)
lea    0x400(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x3e8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xc55(%rip),%rax
mov    %rax,0x3f0(%rsp)
movaps 0xc36(%rip),%xmm0
movaps %xmm0,0x3e0(%rsp)
lea    0x3e0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x3e8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xc36(%rip),%rax
mov    %rax,0x3d0(%rsp)
movaps 0xc17(%rip),%xmm0
movaps %xmm0,0x3c0(%rsp)
lea    0x3c0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x3e8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xc17(%rip),%rax
mov    %rax,0x3b0(%rsp)
movaps 0xbf8(%rip),%xmm0
movaps %xmm0,0x3a0(%rsp)
lea    0x3a0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x3e8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xbf8(%rip),%rax
mov    %rax,0x390(%rsp)
movaps 0xbd9(%rip),%xmm0
movaps %xmm0,0x380(%rsp)
lea    0x380(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x3e8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xbd9(%rip),%rax
mov    %rax,0x370(%rsp)
movaps 0xbba(%rip),%xmm0
movaps %xmm0,0x360(%rsp)
lea    0x360(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x2bc,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xbba(%rip),%rax
mov    %rax,0x350(%rsp)
movaps 0xb9b(%rip),%xmm0
movaps %xmm0,0x340(%rsp)
lea    0x340(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x1c2,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xb9b(%rip),%rax
mov    %rax,0x330(%rsp)
movaps 0xb7c(%rip),%xmm0
movaps %xmm0,0x320(%rsp)
lea    0x320(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x12c,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xb7c(%rip),%rax
mov    %rax,0x310(%rsp)
movaps 0xb5d(%rip),%xmm0
movaps %xmm0,0x300(%rsp)
lea    0x300(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x64,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xb5f(%rip),%rax
mov    %rax,0x2f0(%rsp)
movaps 0xb40(%rip),%xmm0
movaps %xmm0,0x2e0(%rsp)
lea    0x2e0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x32,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xb42(%rip),%rax
mov    %rax,0x2d0(%rsp)
movaps 0xb23(%rip),%xmm0
movaps %xmm0,0x2c0(%rsp)
lea    0x2c0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xb26(%rip),%rax
mov    %rax,0x2b0(%rsp)
movaps 0xb07(%rip),%xmm0
movaps %xmm0,0x2a0(%rsp)
lea    0x2a0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x7d0,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xb07(%rip),%rax
mov    %rax,0x290(%rsp)
movaps 0xae8(%rip),%xmm0
movaps %xmm0,0x280(%rsp)
lea    0x280(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x7d0,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xae8(%rip),%rax
mov    %rax,0x270(%rsp)
movaps 0xac9(%rip),%xmm0
movaps %xmm0,0x260(%rsp)
lea    0x260(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x7d0,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xac9(%rip),%rax
mov    %rax,0x250(%rsp)
movaps 0xaaa(%rip),%xmm0
movaps %xmm0,0x240(%rsp)
lea    0x240(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x7d0,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xaaa(%rip),%rax
mov    %rax,0x230(%rsp)
movaps 0xa8b(%rip),%xmm0
movaps %xmm0,0x220(%rsp)
lea    0x220(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x7d0,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xa8b(%rip),%rax
mov    %rax,0x210(%rsp)
movaps 0xa6c(%rip),%xmm0
movaps %xmm0,0x200(%rsp)
lea    0x200(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x7d0,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xa6c(%rip),%rax
mov    %rax,0x1f0(%rsp)
movaps 0xa4d(%rip),%xmm0
movaps %xmm0,0x1e0(%rsp)
lea    0x1e0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0xbb8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xa4d(%rip),%rax
mov    %rax,0x1d0(%rsp)
movaps 0xa2e(%rip),%xmm0
movaps %xmm0,0x1c0(%rsp)
lea    0x1c0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0xbb8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xa2e(%rip),%rax
mov    %rax,0x1b0(%rsp)
movaps 0xa0f(%rip),%xmm0
movaps %xmm0,0x1a0(%rsp)
lea    0x1a0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0xbb8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0xa0f(%rip),%rax
mov    %rax,0x190(%rsp)
movaps 0x9f0(%rip),%xmm0
movaps %xmm0,0x180(%rsp)
lea    0x180(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0xbb8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0x9f0(%rip),%rax
mov    %rax,0x170(%rsp)
movaps 0x9d1(%rip),%xmm0
movaps %xmm0,0x160(%rsp)
lea    0x160(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0xbb8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0x9d1(%rip),%rax
mov    %rax,0x150(%rsp)
movaps 0x9b2(%rip),%xmm0
movaps %xmm0,0x140(%rsp)
lea    0x140(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0xbb8,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0x9b2(%rip),%rax
mov    %rax,0x130(%rsp)
movaps 0x993(%rip),%xmm0
movaps %xmm0,0x120(%rsp)
lea    0x120(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x9c4,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0x993(%rip),%rax
mov    %rax,0x110(%rsp)
movaps 0x974(%rip),%xmm0
movaps %xmm0,0x100(%rsp)
lea    0x100(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x9c4,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0x974(%rip),%rax
mov    %rax,0xf0(%rsp)
movaps 0x955(%rip),%xmm0
movaps %xmm0,0xe0(%rsp)
lea    0xe0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x9c4,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0x955(%rip),%rax
mov    %rax,0xd0(%rsp)
movaps 0x936(%rip),%xmm0
movaps %xmm0,0xc0(%rsp)
lea    0xc0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x5dc,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0x936(%rip),%rax
mov    %rax,0xb0(%rsp)
movaps 0x917(%rip),%xmm0
movaps %xmm0,0xa0(%rsp)
lea    0xa0(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x5dc,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0x917(%rip),%rax
mov    %rax,0x90(%rsp)
movaps 0x8f8(%rip),%xmm0
movaps %xmm0,0x80(%rsp)
lea    0x80(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x5dc,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0x8f8(%rip),%rax
mov    %rax,0x70(%rsp)
movaps 0x8dc(%rip),%xmm0
movaps %xmm0,0x60(%rsp)
lea    0x60(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x5dc,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0x8e2(%rip),%rax
mov    %rax,0x50(%rsp)
movaps 0x8c6(%rip),%xmm0
movaps %xmm0,0x40(%rsp)
lea    0x40(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x5dc,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0x8cc(%rip),%rax
mov    %rax,0x30(%rsp)
movaps 0x8b0(%rip),%xmm0
movaps %xmm0,0x20(%rsp)
lea    0x20(%rsp),%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0x32,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
mov    0x8b8(%rip),%rax
mov    %rax,0x10(%rsp)
movaps 0x89c(%rip),%xmm0
movaps %xmm0,(%rsp)
mov    %rsp,%rdi
xor    %eax,%eax
call   1030 <score_dice@plt>
xor    %edi,%edi
cmp    $0xfa,%eax
sete   %dil
xor    %eax,%eax
call   1040 <assert@plt>
add    $0x6b8,%rsp
ret

LLVM IR (-O0):
@__const.run_tests.dice0 = [6 x i32] [i32 1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice1 = [6 x i32] [i32 5, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice2 = [6 x i32] [i32 2, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice3 = [6 x i32] [i32 3, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice4 = [6 x i32] [i32 4, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice5 = [6 x i32] [i32 6, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice6 = [6 x i32] [i32 1, i32 5, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice7 = [6 x i32] [i32 1, i32 1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice8 = [6 x i32] [i32 5, i32 5, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice9 = [6 x i32] [i32 2, i32 3, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice10 = [6 x i32] [i32 4, i32 6, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice11 = [6 x i32] [i32 1, i32 1, i32 1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice12 = [6 x i32] [i32 2, i32 2, i32 2, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice13 = [6 x i32] [i32 3, i32 3, i32 3, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice14 = [6 x i32] [i32 4, i32 4, i32 4, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice15 = [6 x i32] [i32 5, i32 5, i32 5, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice16 = [6 x i32] [i32 6, i32 6, i32 6, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice17 = [6 x i32] [i32 2, i32 3, i32 4, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice18 = [6 x i32] [i32 1, i32 5, i32 6, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice19 = [6 x i32] [i32 3, i32 5, i32 6, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice20 = [6 x i32] [i32 1, i32 1, i32 1, i32 1, i32 -1, i32 -1]
@__const.run_tests.dice21 = [6 x i32] [i32 2, i32 2, i32 2, i32 2, i32 -1, i32 -1]
@__const.run_tests.dice22 = [6 x i32] [i32 3, i32 3, i32 3, i32 3, i32 -1, i32 -1]
@__const.run_tests.dice23 = [6 x i32] [i32 4, i32 4, i32 4, i32 4, i32 -1, i32 -1]
@__const.run_tests.dice24 = [6 x i32] [i32 5, i32 5, i32 5, i32 5, i32 -1, i32 -1]
@__const.run_tests.dice25 = [6 x i32] [i32 6, i32 6, i32 6, i32 6, i32 -1, i32 -1]
@__const.run_tests.dice26 = [6 x i32] [i32 6, i32 6, i32 6, i32 1, i32 -1, i32 -1]
@__const.run_tests.dice27 = [6 x i32] [i32 4, i32 4, i32 4, i32 5, i32 -1, i32 -1]
@__const.run_tests.dice28 = [6 x i32] [i32 3, i32 3, i32 3, i32 4, i32 -1, i32 -1]
@__const.run_tests.dice29 = [6 x i32] [i32 1, i32 2, i32 3, i32 4, i32 -1, i32 -1]
@__const.run_tests.dice30 = [6 x i32] [i32 3, i32 4, i32 5, i32 6, i32 -1, i32 -1]
@__const.run_tests.dice31 = [6 x i32] [i32 2, i32 3, i32 4, i32 6, i32 -1, i32 -1]
@__const.run_tests.dice32 = [6 x i32] [i32 1, i32 1, i32 1, i32 1, i32 1, i32 -1]
@__const.run_tests.dice33 = [6 x i32] [i32 2, i32 2, i32 2, i32 2, i32 2, i32 -1]
@__const.run_tests.dice34 = [6 x i32] [i32 3, i32 3, i32 3, i32 3, i32 3, i32 -1]
@__const.run_tests.dice35 = [6 x i32] [i32 4, i32 4, i32 4, i32 4, i32 4, i32 -1]
@__const.run_tests.dice36 = [6 x i32] [i32 5, i32 5, i32 5, i32 5, i32 5, i32 -1]
@__const.run_tests.dice37 = [6 x i32] [i32 6, i32 6, i32 6, i32 6, i32 6, i32 -1]
@__const.run_tests.dice38 = [6 x i32] [i32 1, i32 1, i32 1, i32 1, i32 1, i32 1]
@__const.run_tests.dice39 = [6 x i32] [i32 2, i32 2, i32 2, i32 2, i32 2, i32 2]
@__const.run_tests.dice40 = [6 x i32] [i32 3, i32 3, i32 3, i32 3, i32 3, i32 3]
@__const.run_tests.dice41 = [6 x i32] [i32 4, i32 4, i32 4, i32 4, i32 4, i32 4]
@__const.run_tests.dice42 = [6 x i32] [i32 5, i32 5, i32 5, i32 5, i32 5, i32 5]
@__const.run_tests.dice43 = [6 x i32] [i32 6, i32 6, i32 6, i32 6, i32 6, i32 6]
@__const.run_tests.dice44 = [6 x i32] [i32 1, i32 1, i32 1, i32 2, i32 2, i32 2]
@__const.run_tests.dice45 = [6 x i32] [i32 3, i32 3, i32 3, i32 4, i32 4, i32 4]
@__const.run_tests.dice46 = [6 x i32] [i32 5, i32 5, i32 5, i32 6, i32 6, i32 6]
@__const.run_tests.dice47 = [6 x i32] [i32 1, i32 1, i32 2, i32 2, i32 3, i32 3]
@__const.run_tests.dice48 = [6 x i32] [i32 4, i32 4, i32 5, i32 5, i32 6, i32 6]
@__const.run_tests.dice49 = [6 x i32] [i32 1, i32 1, i32 1, i32 1, i32 2, i32 2]
@__const.run_tests.dice50 = [6 x i32] [i32 3, i32 3, i32 3, i32 3, i32 4, i32 4]
@__const.run_tests.dice51 = [6 x i32] [i32 5, i32 5, i32 5, i32 5, i32 6, i32 6]
@__const.run_tests.dice52 = [6 x i32] [i32 6, i32 2, i32 5, i32 2, i32 6, i32 4]
@__const.run_tests.dice53 = [6 x i32] [i32 6, i32 5, i32 3, i32 2, i32 1, i32 1]
define void @run_tests() {
%1 = alloca [6 x i32]
%2 = alloca [6 x i32]
%3 = alloca [6 x i32]
%4 = alloca [6 x i32]
%5 = alloca [6 x i32]
%6 = alloca [6 x i32]
%7 = alloca [6 x i32]
%8 = alloca [6 x i32]
%9 = alloca [6 x i32]
%10 = alloca [6 x i32]
%11 = alloca [6 x i32]
%12 = alloca [6 x i32]
%13 = alloca [6 x i32]
%14 = alloca [6 x i32]
%15 = alloca [6 x i32]
%16 = alloca [6 x i32]
%17 = alloca [6 x i32]
%18 = alloca [6 x i32]
%19 = alloca [6 x i32]
%20 = alloca [6 x i32]
%21 = alloca [6 x i32]
%22 = alloca [6 x i32]
%23 = alloca [6 x i32]
%24 = alloca [6 x i32]
%25 = alloca [6 x i32]
%26 = alloca [6 x i32]
%27 = alloca [6 x i32]
%28 = alloca [6 x i32]
%29 = alloca [6 x i32]
%30 = alloca [6 x i32]
%31 = alloca [6 x i32]
%32 = alloca [6 x i32]
%33 = alloca [6 x i32]
%34 = alloca [6 x i32]
%35 = alloca [6 x i32]
%36 = alloca [6 x i32]
%37 = alloca [6 x i32]
%38 = alloca [6 x i32]
%39 = alloca [6 x i32]
%40 = alloca [6 x i32]
%41 = alloca [6 x i32]
%42 = alloca [6 x i32]
%43 = alloca [6 x i32]
%44 = alloca [6 x i32]
%45 = alloca [6 x i32]
%46 = alloca [6 x i32]
%47 = alloca [6 x i32]
%48 = alloca [6 x i32]
%49 = alloca [6 x i32]
%50 = alloca [6 x i32]
%51 = alloca [6 x i32]
%52 = alloca [6 x i32]
%53 = alloca [6 x i32]
%54 = alloca [6 x i32]
%55 = bitcast [6 x i32]* %1 to i8*
%56 = getelementptr inbounds [6 x i32], [6 x i32]* %1, i64 0, i64 0
%57 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %56)
%58 = icmp eq i32 %57, 100
%59 = zext i1 %58 to i32
%60 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %59)
%61 = bitcast [6 x i32]* %2 to i8*
%62 = getelementptr inbounds [6 x i32], [6 x i32]* %2, i64 0, i64 0
%63 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %62)
%64 = icmp eq i32 %63, 50
%65 = zext i1 %64 to i32
%66 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %65)
%67 = bitcast [6 x i32]* %3 to i8*
%68 = getelementptr inbounds [6 x i32], [6 x i32]* %3, i64 0, i64 0
%69 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %68)
%70 = icmp eq i32 %69, 0
%71 = zext i1 %70 to i32
%72 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %71)
%73 = bitcast [6 x i32]* %4 to i8*
%74 = getelementptr inbounds [6 x i32], [6 x i32]* %4, i64 0, i64 0
%75 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %74)
%76 = icmp eq i32 %75, 0
%77 = zext i1 %76 to i32
%78 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %77)
%79 = bitcast [6 x i32]* %5 to i8*
%80 = getelementptr inbounds [6 x i32], [6 x i32]* %5, i64 0, i64 0
%81 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %80)
%82 = icmp eq i32 %81, 0
%83 = zext i1 %82 to i32
%84 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %83)
%85 = bitcast [6 x i32]* %6 to i8*
%86 = getelementptr inbounds [6 x i32], [6 x i32]* %6, i64 0, i64 0
%87 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %86)
%88 = icmp eq i32 %87, 0
%89 = zext i1 %88 to i32
%90 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %89)
%91 = bitcast [6 x i32]* %7 to i8*
%92 = getelementptr inbounds [6 x i32], [6 x i32]* %7, i64 0, i64 0
%93 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %92)
%94 = icmp eq i32 %93, 150
%95 = zext i1 %94 to i32
%96 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %95)
%97 = bitcast [6 x i32]* %8 to i8*
%98 = getelementptr inbounds [6 x i32], [6 x i32]* %8, i64 0, i64 0
%99 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %98)
%100 = icmp eq i32 %99, 200
%101 = zext i1 %100 to i32
%102 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %101)
%103 = bitcast [6 x i32]* %9 to i8*
%104 = getelementptr inbounds [6 x i32], [6 x i32]* %9, i64 0, i64 0
%105 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %104)
%106 = icmp eq i32 %105, 100
%107 = zext i1 %106 to i32
%108 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %107)
%109 = bitcast [6 x i32]* %10 to i8*
%110 = getelementptr inbounds [6 x i32], [6 x i32]* %10, i64 0, i64 0
%111 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %110)
%112 = icmp eq i32 %111, 0
%113 = zext i1 %112 to i32
%114 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %113)
%115 = bitcast [6 x i32]* %11 to i8*
%116 = getelementptr inbounds [6 x i32], [6 x i32]* %11, i64 0, i64 0
%117 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %116)
%118 = icmp eq i32 %117, 0
%119 = zext i1 %118 to i32
%120 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %119)
%121 = bitcast [6 x i32]* %12 to i8*
%122 = getelementptr inbounds [6 x i32], [6 x i32]* %12, i64 0, i64 0
%123 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %122)
%124 = icmp eq i32 %123, 300
%125 = zext i1 %124 to i32
%126 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %125)
%127 = bitcast [6 x i32]* %13 to i8*
%128 = getelementptr inbounds [6 x i32], [6 x i32]* %13, i64 0, i64 0
%129 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %128)
%130 = icmp eq i32 %129, 200
%131 = zext i1 %130 to i32
%132 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %131)
%133 = bitcast [6 x i32]* %14 to i8*
%134 = getelementptr inbounds [6 x i32], [6 x i32]* %14, i64 0, i64 0
%135 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %134)
%136 = icmp eq i32 %135, 300
%137 = zext i1 %136 to i32
%138 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %137)
%139 = bitcast [6 x i32]* %15 to i8*
%140 = getelementptr inbounds [6 x i32], [6 x i32]* %15, i64 0, i64 0
%141 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %140)
%142 = icmp eq i32 %141, 400
%143 = zext i1 %142 to i32
%144 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %143)
%145 = bitcast [6 x i32]* %16 to i8*
%146 = getelementptr inbounds [6 x i32], [6 x i32]* %16, i64 0, i64 0
%147 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %146)
%148 = icmp eq i32 %147, 500
%149 = zext i1 %148 to i32
%150 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %149)
%151 = bitcast [6 x i32]* %17 to i8*
%152 = getelementptr inbounds [6 x i32], [6 x i32]* %17, i64 0, i64 0
%153 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %152)
%154 = icmp eq i32 %153, 600
%155 = zext i1 %154 to i32
%156 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %155)
%157 = bitcast [6 x i32]* %18 to i8*
%158 = getelementptr inbounds [6 x i32], [6 x i32]* %18, i64 0, i64 0
%159 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %158)
%160 = icmp eq i32 %159, 0
%161 = zext i1 %160 to i32
%162 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %161)
%163 = bitcast [6 x i32]* %19 to i8*
%164 = getelementptr inbounds [6 x i32], [6 x i32]* %19, i64 0, i64 0
%165 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %164)
%166 = icmp eq i32 %165, 150
%167 = zext i1 %166 to i32
%168 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %167)
%169 = bitcast [6 x i32]* %20 to i8*
%170 = getelementptr inbounds [6 x i32], [6 x i32]* %20, i64 0, i64 0
%171 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %170)
%172 = icmp eq i32 %171, 50
%173 = zext i1 %172 to i32
%174 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %173)
%175 = bitcast [6 x i32]* %21 to i8*
%176 = getelementptr inbounds [6 x i32], [6 x i32]* %21, i64 0, i64 0
%177 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %176)
%178 = icmp eq i32 %177, 1000
%179 = zext i1 %178 to i32
%180 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %179)
%181 = bitcast [6 x i32]* %22 to i8*
%182 = getelementptr inbounds [6 x i32], [6 x i32]* %22, i64 0, i64 0
%183 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %182)
%184 = icmp eq i32 %183, 1000
%185 = zext i1 %184 to i32
%186 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %185)
%187 = bitcast [6 x i32]* %23 to i8*
%188 = getelementptr inbounds [6 x i32], [6 x i32]* %23, i64 0, i64 0
%189 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %188)
%190 = icmp eq i32 %189, 1000
%191 = zext i1 %190 to i32
%192 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %191)
%193 = bitcast [6 x i32]* %24 to i8*
%194 = getelementptr inbounds [6 x i32], [6 x i32]* %24, i64 0, i64 0
%195 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %194)
%196 = icmp eq i32 %195, 1000
%197 = zext i1 %196 to i32
%198 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %197)
%199 = bitcast [6 x i32]* %25 to i8*
%200 = getelementptr inbounds [6 x i32], [6 x i32]* %25, i64 0, i64 0
%201 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %200)
%202 = icmp eq i32 %201, 1000
%203 = zext i1 %202 to i32
%204 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %203)
%205 = bitcast [6 x i32]* %26 to i8*
%206 = getelementptr inbounds [6 x i32], [6 x i32]* %26, i64 0, i64 0
%207 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %206)
%208 = icmp eq i32 %207, 1000
%209 = zext i1 %208 to i32
%210 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %209)
%211 = bitcast [6 x i32]* %27 to i8*
%212 = getelementptr inbounds [6 x i32], [6 x i32]* %27, i64 0, i64 0
%213 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %212)
%214 = icmp eq i32 %213, 700
%215 = zext i1 %214 to i32
%216 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %215)
%217 = bitcast [6 x i32]* %28 to i8*
%218 = getelementptr inbounds [6 x i32], [6 x i32]* %28, i64 0, i64 0
%219 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %218)
%220 = icmp eq i32 %219, 450
%221 = zext i1 %220 to i32
%222 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %221)
%223 = bitcast [6 x i32]* %29 to i8*
%224 = getelementptr inbounds [6 x i32], [6 x i32]* %29, i64 0, i64 0
%225 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %224)
%226 = icmp eq i32 %225, 300
%227 = zext i1 %226 to i32
%228 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %227)
%229 = bitcast [6 x i32]* %30 to i8*
%230 = getelementptr inbounds [6 x i32], [6 x i32]* %30, i64 0, i64 0
%231 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %230)
%232 = icmp eq i32 %231, 100
%233 = zext i1 %232 to i32
%234 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %233)
%235 = bitcast [6 x i32]* %31 to i8*
%236 = getelementptr inbounds [6 x i32], [6 x i32]* %31, i64 0, i64 0
%237 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %236)
%238 = icmp eq i32 %237, 50
%239 = zext i1 %238 to i32
%240 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %239)
%241 = bitcast [6 x i32]* %32 to i8*
%242 = getelementptr inbounds [6 x i32], [6 x i32]* %32, i64 0, i64 0
%243 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %242)
%244 = icmp eq i32 %243, 0
%245 = zext i1 %244 to i32
%246 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %245)
%247 = bitcast [6 x i32]* %33 to i8*
%248 = getelementptr inbounds [6 x i32], [6 x i32]* %33, i64 0, i64 0
%249 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %248)
%250 = icmp eq i32 %249, 2000
%251 = zext i1 %250 to i32
%252 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %251)
%253 = bitcast [6 x i32]* %34 to i8*
%254 = getelementptr inbounds [6 x i32], [6 x i32]* %34, i64 0, i64 0
%255 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %254)
%256 = icmp eq i32 %255, 2000
%257 = zext i1 %256 to i32
%258 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %257)
%259 = bitcast [6 x i32]* %35 to i8*
%260 = getelementptr inbounds [6 x i32], [6 x i32]* %35, i64 0, i64 0
%261 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %260)
%262 = icmp eq i32 %261, 2000
%263 = zext i1 %262 to i32
%264 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %263)
%265 = bitcast [6 x i32]* %36 to i8*
%266 = getelementptr inbounds [6 x i32], [6 x i32]* %36, i64 0, i64 0
%267 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %266)
%268 = icmp eq i32 %267, 2000
%269 = zext i1 %268 to i32
%270 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %269)
%271 = bitcast [6 x i32]* %37 to i8*
%272 = getelementptr inbounds [6 x i32], [6 x i32]* %37, i64 0, i64 0
%273 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %272)
%274 = icmp eq i32 %273, 2000
%275 = zext i1 %274 to i32
%276 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %275)
%277 = bitcast [6 x i32]* %38 to i8*
%278 = getelementptr inbounds [6 x i32], [6 x i32]* %38, i64 0, i64 0
%279 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %278)
%280 = icmp eq i32 %279, 2000
%281 = zext i1 %280 to i32
%282 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %281)
%283 = bitcast [6 x i32]* %39 to i8*
%284 = getelementptr inbounds [6 x i32], [6 x i32]* %39, i64 0, i64 0
%285 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %284)
%286 = icmp eq i32 %285, 3000
%287 = zext i1 %286 to i32
%288 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %287)
%289 = bitcast [6 x i32]* %40 to i8*
%290 = getelementptr inbounds [6 x i32], [6 x i32]* %40, i64 0, i64 0
%291 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %290)
%292 = icmp eq i32 %291, 3000
%293 = zext i1 %292 to i32
%294 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %293)
%295 = bitcast [6 x i32]* %41 to i8*
%296 = getelementptr inbounds [6 x i32], [6 x i32]* %41, i64 0, i64 0
%297 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %296)
%298 = icmp eq i32 %297, 3000
%299 = zext i1 %298 to i32
%300 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %299)
%301 = bitcast [6 x i32]* %42 to i8*
%302 = getelementptr inbounds [6 x i32], [6 x i32]* %42, i64 0, i64 0
%303 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %302)
%304 = icmp eq i32 %303, 3000
%305 = zext i1 %304 to i32
%306 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %305)
%307 = bitcast [6 x i32]* %43 to i8*
%308 = getelementptr inbounds [6 x i32], [6 x i32]* %43, i64 0, i64 0
%309 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %308)
%310 = icmp eq i32 %309, 3000
%311 = zext i1 %310 to i32
%312 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %311)
%313 = bitcast [6 x i32]* %44 to i8*
%314 = getelementptr inbounds [6 x i32], [6 x i32]* %44, i64 0, i64 0
%315 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %314)
%316 = icmp eq i32 %315, 3000
%317 = zext i1 %316 to i32
%318 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %317)
%319 = bitcast [6 x i32]* %45 to i8*
%320 = getelementptr inbounds [6 x i32], [6 x i32]* %45, i64 0, i64 0
%321 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %320)
%322 = icmp eq i32 %321, 2500
%323 = zext i1 %322 to i32
%324 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %323)
%325 = bitcast [6 x i32]* %46 to i8*
%326 = getelementptr inbounds [6 x i32], [6 x i32]* %46, i64 0, i64 0
%327 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %326)
%328 = icmp eq i32 %327, 2500
%329 = zext i1 %328 to i32
%330 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %329)
%331 = bitcast [6 x i32]* %47 to i8*
%332 = getelementptr inbounds [6 x i32], [6 x i32]* %47, i64 0, i64 0
%333 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %332)
%334 = icmp eq i32 %333, 2500
%335 = zext i1 %334 to i32
%336 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %335)
%337 = bitcast [6 x i32]* %48 to i8*
%338 = getelementptr inbounds [6 x i32], [6 x i32]* %48, i64 0, i64 0
%339 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %338)
%340 = icmp eq i32 %339, 1500
%341 = zext i1 %340 to i32
%342 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %341)
%343 = bitcast [6 x i32]* %49 to i8*
%344 = getelementptr inbounds [6 x i32], [6 x i32]* %49, i64 0, i64 0
%345 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %344)
%346 = icmp eq i32 %345, 1500
%347 = zext i1 %346 to i32
%348 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %347)
%349 = bitcast [6 x i32]* %50 to i8*
%350 = getelementptr inbounds [6 x i32], [6 x i32]* %50, i64 0, i64 0
%351 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %350)
%352 = icmp eq i32 %351, 1500
%353 = zext i1 %352 to i32
%354 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %353)
%355 = bitcast [6 x i32]* %51 to i8*
%356 = getelementptr inbounds [6 x i32], [6 x i32]* %51, i64 0, i64 0
%357 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %356)
%358 = icmp eq i32 %357, 1500
%359 = zext i1 %358 to i32
%360 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %359)
%361 = bitcast [6 x i32]* %52 to i8*
%362 = getelementptr inbounds [6 x i32], [6 x i32]* %52, i64 0, i64 0
%363 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %362)
%364 = icmp eq i32 %363, 1500
%365 = zext i1 %364 to i32
%366 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %365)
%367 = bitcast [6 x i32]* %53 to i8*
%368 = getelementptr inbounds [6 x i32], [6 x i32]* %53, i64 0, i64 0
%369 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %368)
%370 = icmp eq i32 %369, 50
%371 = zext i1 %370 to i32
%372 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %371)
%373 = bitcast [6 x i32]* %54 to i8*
%374 = getelementptr inbounds [6 x i32], [6 x i32]* %54, i64 0, i64 0
%375 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %374)
%376 = icmp eq i32 %375, 250
%377 = zext i1 %376 to i32
%378 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %377)
ret void
}

LLVM IR (-O2):
@__const.run_tests.dice0 = [6 x i32] [i32 1, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice1 = [6 x i32] [i32 5, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice2 = [6 x i32] [i32 2, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice3 = [6 x i32] [i32 3, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice4 = [6 x i32] [i32 4, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice5 = [6 x i32] [i32 6, i32 -1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice6 = [6 x i32] [i32 1, i32 5, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice7 = [6 x i32] [i32 1, i32 1, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice8 = [6 x i32] [i32 5, i32 5, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice9 = [6 x i32] [i32 2, i32 3, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice10 = [6 x i32] [i32 4, i32 6, i32 -1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice11 = [6 x i32] [i32 1, i32 1, i32 1, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice12 = [6 x i32] [i32 2, i32 2, i32 2, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice13 = [6 x i32] [i32 3, i32 3, i32 3, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice14 = [6 x i32] [i32 4, i32 4, i32 4, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice15 = [6 x i32] [i32 5, i32 5, i32 5, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice16 = [6 x i32] [i32 6, i32 6, i32 6, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice17 = [6 x i32] [i32 2, i32 3, i32 4, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice18 = [6 x i32] [i32 1, i32 5, i32 6, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice19 = [6 x i32] [i32 3, i32 5, i32 6, i32 -1, i32 -1, i32 -1]
@__const.run_tests.dice20 = [6 x i32] [i32 1, i32 1, i32 1, i32 1, i32 -1, i32 -1]
@__const.run_tests.dice21 = [6 x i32] [i32 2, i32 2, i32 2, i32 2, i32 -1, i32 -1]
@__const.run_tests.dice22 = [6 x i32] [i32 3, i32 3, i32 3, i32 3, i32 -1, i32 -1]
@__const.run_tests.dice23 = [6 x i32] [i32 4, i32 4, i32 4, i32 4, i32 -1, i32 -1]
@__const.run_tests.dice24 = [6 x i32] [i32 5, i32 5, i32 5, i32 5, i32 -1, i32 -1]
@__const.run_tests.dice25 = [6 x i32] [i32 6, i32 6, i32 6, i32 6, i32 -1, i32 -1]
@__const.run_tests.dice26 = [6 x i32] [i32 6, i32 6, i32 6, i32 1, i32 -1, i32 -1]
@__const.run_tests.dice27 = [6 x i32] [i32 4, i32 4, i32 4, i32 5, i32 -1, i32 -1]
@__const.run_tests.dice28 = [6 x i32] [i32 3, i32 3, i32 3, i32 4, i32 -1, i32 -1]
@__const.run_tests.dice29 = [6 x i32] [i32 1, i32 2, i32 3, i32 4, i32 -1, i32 -1]
@__const.run_tests.dice30 = [6 x i32] [i32 3, i32 4, i32 5, i32 6, i32 -1, i32 -1]
@__const.run_tests.dice31 = [6 x i32] [i32 2, i32 3, i32 4, i32 6, i32 -1, i32 -1]
@__const.run_tests.dice32 = [6 x i32] [i32 1, i32 1, i32 1, i32 1, i32 1, i32 -1]
@__const.run_tests.dice33 = [6 x i32] [i32 2, i32 2, i32 2, i32 2, i32 2, i32 -1]
@__const.run_tests.dice34 = [6 x i32] [i32 3, i32 3, i32 3, i32 3, i32 3, i32 -1]
@__const.run_tests.dice35 = [6 x i32] [i32 4, i32 4, i32 4, i32 4, i32 4, i32 -1]
@__const.run_tests.dice36 = [6 x i32] [i32 5, i32 5, i32 5, i32 5, i32 5, i32 -1]
@__const.run_tests.dice37 = [6 x i32] [i32 6, i32 6, i32 6, i32 6, i32 6, i32 -1]
@__const.run_tests.dice38 = [6 x i32] [i32 1, i32 1, i32 1, i32 1, i32 1, i32 1]
@__const.run_tests.dice39 = [6 x i32] [i32 2, i32 2, i32 2, i32 2, i32 2, i32 2]
@__const.run_tests.dice40 = [6 x i32] [i32 3, i32 3, i32 3, i32 3, i32 3, i32 3]
@__const.run_tests.dice41 = [6 x i32] [i32 4, i32 4, i32 4, i32 4, i32 4, i32 4]
@__const.run_tests.dice42 = [6 x i32] [i32 5, i32 5, i32 5, i32 5, i32 5, i32 5]
@__const.run_tests.dice43 = [6 x i32] [i32 6, i32 6, i32 6, i32 6, i32 6, i32 6]
@__const.run_tests.dice44 = [6 x i32] [i32 1, i32 1, i32 1, i32 2, i32 2, i32 2]
@__const.run_tests.dice45 = [6 x i32] [i32 3, i32 3, i32 3, i32 4, i32 4, i32 4]
@__const.run_tests.dice46 = [6 x i32] [i32 5, i32 5, i32 5, i32 6, i32 6, i32 6]
@__const.run_tests.dice47 = [6 x i32] [i32 1, i32 1, i32 2, i32 2, i32 3, i32 3]
@__const.run_tests.dice48 = [6 x i32] [i32 4, i32 4, i32 5, i32 5, i32 6, i32 6]
@__const.run_tests.dice49 = [6 x i32] [i32 1, i32 1, i32 1, i32 1, i32 2, i32 2]
@__const.run_tests.dice50 = [6 x i32] [i32 3, i32 3, i32 3, i32 3, i32 4, i32 4]
@__const.run_tests.dice51 = [6 x i32] [i32 5, i32 5, i32 5, i32 5, i32 6, i32 6]
@__const.run_tests.dice52 = [6 x i32] [i32 6, i32 2, i32 5, i32 2, i32 6, i32 4]
@__const.run_tests.dice53 = [6 x i32] [i32 6, i32 5, i32 3, i32 2, i32 1, i32 1]
define void @run_tests() {
%1 = alloca [6 x i32]
%2 = alloca [6 x i32]
%3 = alloca [6 x i32]
%4 = alloca [6 x i32]
%5 = alloca [6 x i32]
%6 = alloca [6 x i32]
%7 = alloca [6 x i32]
%8 = alloca [6 x i32]
%9 = alloca [6 x i32]
%10 = alloca [6 x i32]
%11 = alloca [6 x i32]
%12 = alloca [6 x i32]
%13 = alloca [6 x i32]
%14 = alloca [6 x i32]
%15 = alloca [6 x i32]
%16 = alloca [6 x i32]
%17 = alloca [6 x i32]
%18 = alloca [6 x i32]
%19 = alloca [6 x i32]
%20 = alloca [6 x i32]
%21 = alloca [6 x i32]
%22 = alloca [6 x i32]
%23 = alloca [6 x i32]
%24 = alloca [6 x i32]
%25 = alloca [6 x i32]
%26 = alloca [6 x i32]
%27 = alloca [6 x i32]
%28 = alloca [6 x i32]
%29 = alloca [6 x i32]
%30 = alloca [6 x i32]
%31 = alloca [6 x i32]
%32 = alloca [6 x i32]
%33 = alloca [6 x i32]
%34 = alloca [6 x i32]
%35 = alloca [6 x i32]
%36 = alloca [6 x i32]
%37 = alloca [6 x i32]
%38 = alloca [6 x i32]
%39 = alloca [6 x i32]
%40 = alloca [6 x i32]
%41 = alloca [6 x i32]
%42 = alloca [6 x i32]
%43 = alloca [6 x i32]
%44 = alloca [6 x i32]
%45 = alloca [6 x i32]
%46 = alloca [6 x i32]
%47 = alloca [6 x i32]
%48 = alloca [6 x i32]
%49 = alloca [6 x i32]
%50 = alloca [6 x i32]
%51 = alloca [6 x i32]
%52 = alloca [6 x i32]
%53 = alloca [6 x i32]
%54 = alloca [6 x i32]
%55 = bitcast [6 x i32]* %1 to i8*
%56 = getelementptr inbounds [6 x i32], [6 x i32]* %1, i64 0, i64 0
%57 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %56)
%58 = icmp eq i32 %57, 100
%59 = zext i1 %58 to i32
%60 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %59)
%61 = bitcast [6 x i32]* %2 to i8*
%62 = getelementptr inbounds [6 x i32], [6 x i32]* %2, i64 0, i64 0
%63 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %62)
%64 = icmp eq i32 %63, 50
%65 = zext i1 %64 to i32
%66 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %65)
%67 = bitcast [6 x i32]* %3 to i8*
%68 = getelementptr inbounds [6 x i32], [6 x i32]* %3, i64 0, i64 0
%69 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %68)
%70 = icmp eq i32 %69, 0
%71 = zext i1 %70 to i32
%72 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %71)
%73 = bitcast [6 x i32]* %4 to i8*
%74 = getelementptr inbounds [6 x i32], [6 x i32]* %4, i64 0, i64 0
%75 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %74)
%76 = icmp eq i32 %75, 0
%77 = zext i1 %76 to i32
%78 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %77)
%79 = bitcast [6 x i32]* %5 to i8*
%80 = getelementptr inbounds [6 x i32], [6 x i32]* %5, i64 0, i64 0
%81 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %80)
%82 = icmp eq i32 %81, 0
%83 = zext i1 %82 to i32
%84 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %83)
%85 = bitcast [6 x i32]* %6 to i8*
%86 = getelementptr inbounds [6 x i32], [6 x i32]* %6, i64 0, i64 0
%87 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %86)
%88 = icmp eq i32 %87, 0
%89 = zext i1 %88 to i32
%90 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %89)
%91 = bitcast [6 x i32]* %7 to i8*
%92 = getelementptr inbounds [6 x i32], [6 x i32]* %7, i64 0, i64 0
%93 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %92)
%94 = icmp eq i32 %93, 150
%95 = zext i1 %94 to i32
%96 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %95)
%97 = bitcast [6 x i32]* %8 to i8*
%98 = getelementptr inbounds [6 x i32], [6 x i32]* %8, i64 0, i64 0
%99 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %98)
%100 = icmp eq i32 %99, 200
%101 = zext i1 %100 to i32
%102 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %101)
%103 = bitcast [6 x i32]* %9 to i8*
%104 = getelementptr inbounds [6 x i32], [6 x i32]* %9, i64 0, i64 0
%105 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %104)
%106 = icmp eq i32 %105, 100
%107 = zext i1 %106 to i32
%108 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %107)
%109 = bitcast [6 x i32]* %10 to i8*
%110 = getelementptr inbounds [6 x i32], [6 x i32]* %10, i64 0, i64 0
%111 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %110)
%112 = icmp eq i32 %111, 0
%113 = zext i1 %112 to i32
%114 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %113)
%115 = bitcast [6 x i32]* %11 to i8*
%116 = getelementptr inbounds [6 x i32], [6 x i32]* %11, i64 0, i64 0
%117 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %116)
%118 = icmp eq i32 %117, 0
%119 = zext i1 %118 to i32
%120 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %119)
%121 = bitcast [6 x i32]* %12 to i8*
%122 = getelementptr inbounds [6 x i32], [6 x i32]* %12, i64 0, i64 0
%123 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %122)
%124 = icmp eq i32 %123, 300
%125 = zext i1 %124 to i32
%126 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %125)
%127 = bitcast [6 x i32]* %13 to i8*
%128 = getelementptr inbounds [6 x i32], [6 x i32]* %13, i64 0, i64 0
%129 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %128)
%130 = icmp eq i32 %129, 200
%131 = zext i1 %130 to i32
%132 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %131)
%133 = bitcast [6 x i32]* %14 to i8*
%134 = getelementptr inbounds [6 x i32], [6 x i32]* %14, i64 0, i64 0
%135 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %134)
%136 = icmp eq i32 %135, 300
%137 = zext i1 %136 to i32
%138 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %137)
%139 = bitcast [6 x i32]* %15 to i8*
%140 = getelementptr inbounds [6 x i32], [6 x i32]* %15, i64 0, i64 0
%141 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %140)
%142 = icmp eq i32 %141, 400
%143 = zext i1 %142 to i32
%144 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %143)
%145 = bitcast [6 x i32]* %16 to i8*
%146 = getelementptr inbounds [6 x i32], [6 x i32]* %16, i64 0, i64 0
%147 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %146)
%148 = icmp eq i32 %147, 500
%149 = zext i1 %148 to i32
%150 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %149)
%151 = bitcast [6 x i32]* %17 to i8*
%152 = getelementptr inbounds [6 x i32], [6 x i32]* %17, i64 0, i64 0
%153 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %152)
%154 = icmp eq i32 %153, 600
%155 = zext i1 %154 to i32
%156 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %155)
%157 = bitcast [6 x i32]* %18 to i8*
%158 = getelementptr inbounds [6 x i32], [6 x i32]* %18, i64 0, i64 0
%159 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %158)
%160 = icmp eq i32 %159, 0
%161 = zext i1 %160 to i32
%162 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %161)
%163 = bitcast [6 x i32]* %19 to i8*
%164 = getelementptr inbounds [6 x i32], [6 x i32]* %19, i64 0, i64 0
%165 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %164)
%166 = icmp eq i32 %165, 150
%167 = zext i1 %166 to i32
%168 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %167)
%169 = bitcast [6 x i32]* %20 to i8*
%170 = getelementptr inbounds [6 x i32], [6 x i32]* %20, i64 0, i64 0
%171 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %170)
%172 = icmp eq i32 %171, 50
%173 = zext i1 %172 to i32
%174 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %173)
%175 = bitcast [6 x i32]* %21 to i8*
%176 = getelementptr inbounds [6 x i32], [6 x i32]* %21, i64 0, i64 0
%177 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %176)
%178 = icmp eq i32 %177, 1000
%179 = zext i1 %178 to i32
%180 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %179)
%181 = bitcast [6 x i32]* %22 to i8*
%182 = getelementptr inbounds [6 x i32], [6 x i32]* %22, i64 0, i64 0
%183 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %182)
%184 = icmp eq i32 %183, 1000
%185 = zext i1 %184 to i32
%186 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %185)
%187 = bitcast [6 x i32]* %23 to i8*
%188 = getelementptr inbounds [6 x i32], [6 x i32]* %23, i64 0, i64 0
%189 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %188)
%190 = icmp eq i32 %189, 1000
%191 = zext i1 %190 to i32
%192 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %191)
%193 = bitcast [6 x i32]* %24 to i8*
%194 = getelementptr inbounds [6 x i32], [6 x i32]* %24, i64 0, i64 0
%195 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %194)
%196 = icmp eq i32 %195, 1000
%197 = zext i1 %196 to i32
%198 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %197)
%199 = bitcast [6 x i32]* %25 to i8*
%200 = getelementptr inbounds [6 x i32], [6 x i32]* %25, i64 0, i64 0
%201 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %200)
%202 = icmp eq i32 %201, 1000
%203 = zext i1 %202 to i32
%204 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %203)
%205 = bitcast [6 x i32]* %26 to i8*
%206 = getelementptr inbounds [6 x i32], [6 x i32]* %26, i64 0, i64 0
%207 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %206)
%208 = icmp eq i32 %207, 1000
%209 = zext i1 %208 to i32
%210 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %209)
%211 = bitcast [6 x i32]* %27 to i8*
%212 = getelementptr inbounds [6 x i32], [6 x i32]* %27, i64 0, i64 0
%213 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %212)
%214 = icmp eq i32 %213, 700
%215 = zext i1 %214 to i32
%216 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %215)
%217 = bitcast [6 x i32]* %28 to i8*
%218 = getelementptr inbounds [6 x i32], [6 x i32]* %28, i64 0, i64 0
%219 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %218)
%220 = icmp eq i32 %219, 450
%221 = zext i1 %220 to i32
%222 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %221)
%223 = bitcast [6 x i32]* %29 to i8*
%224 = getelementptr inbounds [6 x i32], [6 x i32]* %29, i64 0, i64 0
%225 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %224)
%226 = icmp eq i32 %225, 300
%227 = zext i1 %226 to i32
%228 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %227)
%229 = bitcast [6 x i32]* %30 to i8*
%230 = getelementptr inbounds [6 x i32], [6 x i32]* %30, i64 0, i64 0
%231 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %230)
%232 = icmp eq i32 %231, 100
%233 = zext i1 %232 to i32
%234 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %233)
%235 = bitcast [6 x i32]* %31 to i8*
%236 = getelementptr inbounds [6 x i32], [6 x i32]* %31, i64 0, i64 0
%237 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %236)
%238 = icmp eq i32 %237, 50
%239 = zext i1 %238 to i32
%240 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %239)
%241 = bitcast [6 x i32]* %32 to i8*
%242 = getelementptr inbounds [6 x i32], [6 x i32]* %32, i64 0, i64 0
%243 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %242)
%244 = icmp eq i32 %243, 0
%245 = zext i1 %244 to i32
%246 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %245)
%247 = bitcast [6 x i32]* %33 to i8*
%248 = getelementptr inbounds [6 x i32], [6 x i32]* %33, i64 0, i64 0
%249 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %248)
%250 = icmp eq i32 %249, 2000
%251 = zext i1 %250 to i32
%252 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %251)
%253 = bitcast [6 x i32]* %34 to i8*
%254 = getelementptr inbounds [6 x i32], [6 x i32]* %34, i64 0, i64 0
%255 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %254)
%256 = icmp eq i32 %255, 2000
%257 = zext i1 %256 to i32
%258 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %257)
%259 = bitcast [6 x i32]* %35 to i8*
%260 = getelementptr inbounds [6 x i32], [6 x i32]* %35, i64 0, i64 0
%261 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %260)
%262 = icmp eq i32 %261, 2000
%263 = zext i1 %262 to i32
%264 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %263)
%265 = bitcast [6 x i32]* %36 to i8*
%266 = getelementptr inbounds [6 x i32], [6 x i32]* %36, i64 0, i64 0
%267 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %266)
%268 = icmp eq i32 %267, 2000
%269 = zext i1 %268 to i32
%270 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %269)
%271 = bitcast [6 x i32]* %37 to i8*
%272 = getelementptr inbounds [6 x i32], [6 x i32]* %37, i64 0, i64 0
%273 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %272)
%274 = icmp eq i32 %273, 2000
%275 = zext i1 %274 to i32
%276 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %275)
%277 = bitcast [6 x i32]* %38 to i8*
%278 = getelementptr inbounds [6 x i32], [6 x i32]* %38, i64 0, i64 0
%279 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %278)
%280 = icmp eq i32 %279, 2000
%281 = zext i1 %280 to i32
%282 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %281)
%283 = bitcast [6 x i32]* %39 to i8*
%284 = getelementptr inbounds [6 x i32], [6 x i32]* %39, i64 0, i64 0
%285 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %284)
%286 = icmp eq i32 %285, 3000
%287 = zext i1 %286 to i32
%288 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %287)
%289 = bitcast [6 x i32]* %40 to i8*
%290 = getelementptr inbounds [6 x i32], [6 x i32]* %40, i64 0, i64 0
%291 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %290)
%292 = icmp eq i32 %291, 3000
%293 = zext i1 %292 to i32
%294 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %293)
%295 = bitcast [6 x i32]* %41 to i8*
%296 = getelementptr inbounds [6 x i32], [6 x i32]* %41, i64 0, i64 0
%297 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %296)
%298 = icmp eq i32 %297, 3000
%299 = zext i1 %298 to i32
%300 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %299)
%301 = bitcast [6 x i32]* %42 to i8*
%302 = getelementptr inbounds [6 x i32], [6 x i32]* %42, i64 0, i64 0
%303 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %302)
%304 = icmp eq i32 %303, 3000
%305 = zext i1 %304 to i32
%306 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %305)
%307 = bitcast [6 x i32]* %43 to i8*
%308 = getelementptr inbounds [6 x i32], [6 x i32]* %43, i64 0, i64 0
%309 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %308)
%310 = icmp eq i32 %309, 3000
%311 = zext i1 %310 to i32
%312 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %311)
%313 = bitcast [6 x i32]* %44 to i8*
%314 = getelementptr inbounds [6 x i32], [6 x i32]* %44, i64 0, i64 0
%315 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %314)
%316 = icmp eq i32 %315, 3000
%317 = zext i1 %316 to i32
%318 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %317)
%319 = bitcast [6 x i32]* %45 to i8*
%320 = getelementptr inbounds [6 x i32], [6 x i32]* %45, i64 0, i64 0
%321 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %320)
%322 = icmp eq i32 %321, 2500
%323 = zext i1 %322 to i32
%324 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %323)
%325 = bitcast [6 x i32]* %46 to i8*
%326 = getelementptr inbounds [6 x i32], [6 x i32]* %46, i64 0, i64 0
%327 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %326)
%328 = icmp eq i32 %327, 2500
%329 = zext i1 %328 to i32
%330 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %329)
%331 = bitcast [6 x i32]* %47 to i8*
%332 = getelementptr inbounds [6 x i32], [6 x i32]* %47, i64 0, i64 0
%333 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %332)
%334 = icmp eq i32 %333, 2500
%335 = zext i1 %334 to i32
%336 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %335)
%337 = bitcast [6 x i32]* %48 to i8*
%338 = getelementptr inbounds [6 x i32], [6 x i32]* %48, i64 0, i64 0
%339 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %338)
%340 = icmp eq i32 %339, 1500
%341 = zext i1 %340 to i32
%342 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %341)
%343 = bitcast [6 x i32]* %49 to i8*
%344 = getelementptr inbounds [6 x i32], [6 x i32]* %49, i64 0, i64 0
%345 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %344)
%346 = icmp eq i32 %345, 1500
%347 = zext i1 %346 to i32
%348 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %347)
%349 = bitcast [6 x i32]* %50 to i8*
%350 = getelementptr inbounds [6 x i32], [6 x i32]* %50, i64 0, i64 0
%351 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %350)
%352 = icmp eq i32 %351, 1500
%353 = zext i1 %352 to i32
%354 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %353)
%355 = bitcast [6 x i32]* %51 to i8*
%356 = getelementptr inbounds [6 x i32], [6 x i32]* %51, i64 0, i64 0
%357 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %356)
%358 = icmp eq i32 %357, 1500
%359 = zext i1 %358 to i32
%360 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %359)
%361 = bitcast [6 x i32]* %52 to i8*
%362 = getelementptr inbounds [6 x i32], [6 x i32]* %52, i64 0, i64 0
%363 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %362)
%364 = icmp eq i32 %363, 1500
%365 = zext i1 %364 to i32
%366 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %365)
%367 = bitcast [6 x i32]* %53 to i8*
%368 = getelementptr inbounds [6 x i32], [6 x i32]* %53, i64 0, i64 0
%369 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %368)
%370 = icmp eq i32 %369, 50
%371 = zext i1 %370 to i32
%372 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %371)
%373 = bitcast [6 x i32]* %54 to i8*
%374 = getelementptr inbounds [6 x i32], [6 x i32]* %54, i64 0, i64 0
%375 = call i32 (i32*, ...) bitcast (i32 (...)* @score_dice to i32 (i32*, ...)*)(i32* %374)
%376 = icmp eq i32 %375, 250
%377 = zext i1 %376 to i32
%378 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %377)
ret void
}