void valid_tokens() {
  char keyword[][20] = {
      "auto",    "extern", "sizeof",   "break",    "float",    "static",
      "case",    "for",    "struct",   "char",     "goto",     "switch",
      "const",   "if",     "typedef",  "continue", "int",      "union",
      "default", "long",   "unsigned", "do",       "register", "void",
      "return",  "double", "volatile", "else",     "short",    "while",
      "enum",    "signed"};
  char arithmetic[][20] = {"+", "-", "*", "/", "%"};
  char relational[][20] = {"<", ">", ">=", "<=", "==", "!="};
  char conditional[][20] = {"&&", "||", "!"};
  char assignment[][20] = {"="};
  char inc_dec[][20] = {"++", "--"};
  char punctuation[][20] = {"{", ",", ";", "}", " "};
  int k = 0, i;
  for (i = 0; i < (sizeof(keyword) / sizeof(keyword[0])); i++) {
    verify(keyword[i], k, "KEYWORD");
    k++;
  }
  for (i = 0; i < (sizeof(arithmetic) / sizeof(arithmetic[0])); i++) {
    verify(arithmetic[i], k, "ARITHMETIC OPERATOR");
    k++;
  }
  for (i = 0; i < (sizeof(relational) / sizeof(relational[0])); i++) {
    verify(relational[i], k, "RELATIONAL OPERATOR");
    k++;
  }
  for (i = 0; i < (sizeof(conditional) / sizeof(conditional[0])); i++) {
    verify(conditional[i], k, "CONDITIONAL OPERATOR");
    k++;
  }
  for (i = 0; i < (sizeof(assignment) / sizeof(assignment[0])); i++) {
    verify(assignment[i], k, "ASSIGNMENT OPERATOR");
    k++;
  }
  for (i = 0; i < (sizeof(inc_dec) / sizeof(inc_dec[0])); i++) {
    verify(inc_dec[i], k, "INC-DEC OPERATOR");
    k++;
  }
  for (i = 0; i < (sizeof(punctuation) / sizeof(punctuation[0])); i++) {
    verify(punctuation[i], k, "PUNCTUATION SYMBOL");
    k++;
  }
}


x86 assembly (clang, -O0):
<valid_tokens>:
push   %rbp
mov    %rsp,%rbp
sub    $0x480,%rsp
lea    -0x280(%rbp),%rdi
lea    0xeb7(%rip),%rsi
mov    $0x280,%edx
call   1040 <memcpy@plt>
lea    -0x2f0(%rbp),%rdi
xor    %esi,%esi
mov    $0x64,%edx
call   1030 <memset@plt>
movb   $0x2b,-0x2f0(%rbp)
movb   $0x2d,-0x2dc(%rbp)
movb   $0x2a,-0x2c8(%rbp)
movb   $0x2f,-0x2b4(%rbp)
movb   $0x25,-0x2a0(%rbp)
lea    -0x370(%rbp),%rdi
lea    0x10e9(%rip),%rsi
mov    $0x78,%edx
call   1040 <memcpy@plt>
lea    -0x3b0(%rbp),%rdi
xor    %esi,%esi
mov    $0x3c,%edx
call   1030 <memset@plt>
movb   $0x26,-0x3b0(%rbp)
movb   $0x26,-0x3af(%rbp)
movb   $0x7c,-0x39c(%rbp)
movb   $0x7c,-0x39b(%rbp)
movb   $0x21,-0x388(%rbp)
mov    0x1122(%rip),%rax
mov    %rax,-0x3d0(%rbp)
mov    0x111c(%rip),%rax
mov    %rax,-0x3c8(%rbp)
mov    0x1117(%rip),%eax
mov    %eax,-0x3c0(%rbp)
lea    -0x400(%rbp),%rdi
xor    %esi,%esi
mov    $0x28,%edx
call   1030 <memset@plt>
movb   $0x2b,-0x400(%rbp)
movb   $0x2b,-0x3ff(%rbp)
movb   $0x2d,-0x3ec(%rbp)
movb   $0x2d,-0x3eb(%rbp)
lea    -0x470(%rbp),%rdi
xor    %esi,%esi
mov    $0x64,%edx
call   1030 <memset@plt>
movb   $0x7b,-0x470(%rbp)
movb   $0x2c,-0x45c(%rbp)
movb   $0x3b,-0x448(%rbp)
movb   $0x7d,-0x434(%rbp)
movb   $0x20,-0x420(%rbp)
movl   $0x0,-0x474(%rbp)
movl   $0x0,-0x478(%rbp)
movslq -0x478(%rbp),%rax
cmp    $0x20,%rax
jae    12d5 <valid_tokens+0x1a5>
movslq -0x478(%rbp),%rax
lea    -0x280(%rbp),%rdi
imul   $0x14,%rax,%rax
add    %rax,%rdi
mov    -0x474(%rbp),%esi
lea    0x1069(%rip),%rdx
mov    $0x0,%al
call   1050 <verify@plt>
mov    -0x474(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x474(%rbp)
mov    -0x478(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x478(%rbp)
jmp    1278 <valid_tokens+0x148>
movl   $0x0,-0x478(%rbp)
movslq -0x478(%rbp),%rax
cmp    $0x5,%rax
jae    133c <valid_tokens+0x20c>
movslq -0x478(%rbp),%rax
lea    -0x2f0(%rbp),%rdi
imul   $0x14,%rax,%rax
add    %rax,%rdi
mov    -0x474(%rbp),%esi
lea    0x100a(%rip),%rdx
mov    $0x0,%al
call   1050 <verify@plt>
mov    -0x474(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x474(%rbp)
mov    -0x478(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x478(%rbp)
jmp    12df <valid_tokens+0x1af>
movl   $0x0,-0x478(%rbp)
movslq -0x478(%rbp),%rax
cmp    $0x6,%rax
jae    13a3 <valid_tokens+0x273>
movslq -0x478(%rbp),%rax
lea    -0x370(%rbp),%rdi
imul   $0x14,%rax,%rax
add    %rax,%rdi
mov    -0x474(%rbp),%esi
lea    0xfb7(%rip),%rdx
mov    $0x0,%al
call   1050 <verify@plt>
mov    -0x474(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x474(%rbp)
mov    -0x478(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x478(%rbp)
jmp    1346 <valid_tokens+0x216>
movl   $0x0,-0x478(%rbp)
movslq -0x478(%rbp),%rax
cmp    $0x3,%rax
jae    140a <valid_tokens+0x2da>
movslq -0x478(%rbp),%rax
lea    -0x3b0(%rbp),%rdi
imul   $0x14,%rax,%rax
add    %rax,%rdi
mov    -0x474(%rbp),%esi
lea    0xf64(%rip),%rdx
mov    $0x0,%al
call   1050 <verify@plt>
mov    -0x474(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x474(%rbp)
mov    -0x478(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x478(%rbp)
jmp    13ad <valid_tokens+0x27d>
movl   $0x0,-0x478(%rbp)
movslq -0x478(%rbp),%rax
cmp    $0x1,%rax
jae    1471 <valid_tokens+0x341>
movslq -0x478(%rbp),%rax
lea    -0x3d0(%rbp),%rdi
imul   $0x14,%rax,%rax
add    %rax,%rdi
mov    -0x474(%rbp),%esi
lea    0xf12(%rip),%rdx
mov    $0x0,%al
call   1050 <verify@plt>
mov    -0x474(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x474(%rbp)
mov    -0x478(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x478(%rbp)
jmp    1414 <valid_tokens+0x2e4>
movl   $0x0,-0x478(%rbp)
movslq -0x478(%rbp),%rax
cmp    $0x2,%rax
jae    14d8 <valid_tokens+0x3a8>
movslq -0x478(%rbp),%rax
lea    -0x400(%rbp),%rdi
imul   $0x14,%rax,%rax
add    %rax,%rdi
mov    -0x474(%rbp),%esi
lea    0xebf(%rip),%rdx
mov    $0x0,%al
call   1050 <verify@plt>
mov    -0x474(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x474(%rbp)
mov    -0x478(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x478(%rbp)
jmp    147b <valid_tokens+0x34b>
movl   $0x0,-0x478(%rbp)
movslq -0x478(%rbp),%rax
cmp    $0x5,%rax
jae    153f <valid_tokens+0x40f>
movslq -0x478(%rbp),%rax
lea    -0x470(%rbp),%rdi
imul   $0x14,%rax,%rax
add    %rax,%rdi
mov    -0x474(%rbp),%esi
lea    0xe69(%rip),%rdx
mov    $0x0,%al
call   1050 <verify@plt>
mov    -0x474(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x474(%rbp)
mov    -0x478(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x478(%rbp)
jmp    14e2 <valid_tokens+0x3b2>
add    $0x480,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<valid_tokens>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x478,%rsp
lea    0xec8(%rip),%rsi
lea    0x1f0(%rsp),%rbx
mov    $0x280,%edx
mov    %rbx,%rdi
call   1030 <memcpy@plt>
xorps  %xmm0,%xmm0
movaps %xmm0,0xa0(%rsp)
movaps %xmm0,0xb0(%rsp)
movaps %xmm0,0xc0(%rsp)
movaps %xmm0,0xd0(%rsp)
movaps %xmm0,0xf0(%rsp)
movaps %xmm0,0xe0(%rsp)
movl   $0x0,0x100(%rsp)
movb   $0x2b,0xa0(%rsp)
2b
lea    0xb4(%rsp),%rbp
movb   $0x2d,0xb4(%rsp)
2d
lea    0xc8(%rsp),%r13
movb   $0x2a,0xc8(%rsp)
2a
lea    0xdc(%rsp),%r12
movb   $0x2f,0xdc(%rsp)
2f
movb   $0x25,0xf0(%rsp)
25
mov    0x111e(%rip),%rax
mov    %rax,0x1e0(%rsp)
movaps 0x10ff(%rip),%xmm1
movaps %xmm1,0x1d0(%rsp)
movaps 0x10e0(%rip),%xmm1
movaps %xmm1,0x1c0(%rsp)
movaps 0x10c1(%rip),%xmm1
movaps %xmm1,0x1b0(%rsp)
movaps 0x10a2(%rip),%xmm1
movaps %xmm1,0x1a0(%rsp)
movaps 0x1083(%rip),%xmm1
movaps %xmm1,0x190(%rsp)
movaps 0x1064(%rip),%xmm1
movaps %xmm1,0x180(%rsp)
movaps 0x1045(%rip),%xmm1
movaps %xmm1,0x170(%rsp)
movaps %xmm0,0x110(%rsp)
movaps %xmm0,0x120(%rsp)
movaps %xmm0,0x130(%rsp)
movups %xmm0,0x13c(%rsp)
movw   $0x2626,0x110(%rsp)
movw   $0x7c7c,0x124(%rsp)
movb   $0x21,0x138(%rsp)
21
mov    0x108b(%rip),%eax
mov    %eax,0x160(%rsp)
movaps 0x106d(%rip),%xmm1
movaps %xmm1,0x150(%rsp)
movaps %xmm0,(%rsp)
movaps %xmm0,0x10(%rsp)
movq   $0x0,0x20(%rsp)
movw   $0x2b2b,(%rsp)
movw   $0x2d2d,0x14(%rsp)
movaps %xmm0,0x30(%rsp)
movaps %xmm0,0x40(%rsp)
movaps %xmm0,0x50(%rsp)
movaps %xmm0,0x60(%rsp)
movaps %xmm0,0x80(%rsp)
movaps %xmm0,0x70(%rsp)
movl   $0x0,0x90(%rsp)
movb   $0x7b,0x30(%rsp)
movb   $0x2c,0x44(%rsp)
movb   $0x3b,0x58(%rsp)
movb   $0x7d,0x6c(%rsp)
movb   $0x20,0x80(%rsp)
20
lea    0x100b(%rip),%r14
xor    %r15d,%r15d
nopl   0x0(%rax)
mov    %rbx,%rdi
mov    %r15d,%esi
mov    %r14,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
add    $0x1,%r15
add    $0x14,%rbx
cmp    $0x20,%r15
jne    1310 <valid_tokens+0x1f0>
lea    0xfe7(%rip),%rbx
lea    0xa0(%rsp),%rdi
mov    $0x20,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
mov    %rbp,%rdi
mov    $0x21,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
mov    %r13,%rdi
mov    $0x22,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
mov    %r12,%rdi
mov    $0x23,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0xf0(%rsp),%rdi
mov    $0x24,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0xf90(%rip),%rbx
lea    0x170(%rsp),%rdi
mov    $0x25,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0x184(%rsp),%rdi
mov    $0x26,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0x198(%rsp),%rdi
mov    $0x27,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0x1ac(%rsp),%rdi
mov    $0x28,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0x1c0(%rsp),%rdi
mov    $0x29,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0x1d4(%rsp),%rdi
mov    $0x2a,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0xf13(%rip),%rbx
lea    0x110(%rsp),%rdi
mov    $0x2b,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0x124(%rsp),%rdi
mov    $0x2c,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0x138(%rsp),%rdi
mov    $0x2d,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0xedc(%rip),%rdx
lea    0x150(%rsp),%rdi
mov    $0x2e,%esi
xor    %eax,%eax
call   1040 <verify@plt>
lea    0xed5(%rip),%rbx
mov    %rsp,%rdi
mov    $0x2f,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0x14(%rsp),%rdi
mov    $0x30,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0xeb9(%rip),%rbx
lea    0x30(%rsp),%rdi
mov    $0x31,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0x44(%rsp),%rdi
mov    $0x32,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0x58(%rsp),%rdi
mov    $0x33,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0x6c(%rsp),%rdi
mov    $0x34,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
lea    0x80(%rsp),%rdi
mov    $0x35,%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1040 <verify@plt>
add    $0x478,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@__const.valid_tokens.keyword = [32 x [20 x i8]] [[20 x i8] c"auto\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"extern\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"sizeof\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"break\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"float\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"static\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"case\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"for\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"struct\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"char\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"goto\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"switch\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"const\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"if\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"typedef\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"continue\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"int\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"union\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"default\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"long\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"unsigned\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"do\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"register\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"void\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"return\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"double\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"volatile\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"else\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"short\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"while\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"enum\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"signed\00\00\00\00\00\00\00\00\00\00\00\00\00\00"]
@__const.valid_tokens.relational = [6 x [20 x i8]] [[20 x i8] c"<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c">\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c">=\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"<=\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"==\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"!=\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00"]
@__const.valid_tokens.assignment = [1 x [20 x i8]] [[20 x i8] c"=\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00"]
@.str = [8 x i8] c"KEYWORD\00"
@.str.1 = [20 x i8] c"ARITHMETIC OPERATOR\00"
@.str.2 = [20 x i8] c"RELATIONAL OPERATOR\00"
@.str.3 = [21 x i8] c"CONDITIONAL OPERATOR\00"
@.str.4 = [20 x i8] c"ASSIGNMENT OPERATOR\00"
@.str.5 = [17 x i8] c"INC-DEC OPERATOR\00"
@.str.6 = [19 x i8] c"PUNCTUATION SYMBOL\00"
define void @valid_tokens() {
%1 = alloca [32 x [20 x i8]]
%2 = alloca [5 x [20 x i8]]
%3 = alloca [6 x [20 x i8]]
%4 = alloca [3 x [20 x i8]]
%5 = alloca [1 x [20 x i8]]
%6 = alloca [2 x [20 x i8]]
%7 = alloca [5 x [20 x i8]]
%8 = alloca i32
%9 = alloca i32
%10 = bitcast [32 x [20 x i8]]* %1 to i8*
%11 = bitcast [5 x [20 x i8]]* %2 to i8*
%12 = bitcast i8* %11 to [5 x [20 x i8]]*
%13 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %12, i32 0, i32 0
%14 = getelementptr inbounds [20 x i8], [20 x i8]* %13, i32 0, i32 0
store i8 43, i8* %14
%15 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %12, i32 0, i32 1
%16 = getelementptr inbounds [20 x i8], [20 x i8]* %15, i32 0, i32 0
store i8 45, i8* %16
%17 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %12, i32 0, i32 2
%18 = getelementptr inbounds [20 x i8], [20 x i8]* %17, i32 0, i32 0
store i8 42, i8* %18
%19 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %12, i32 0, i32 3
%20 = getelementptr inbounds [20 x i8], [20 x i8]* %19, i32 0, i32 0
store i8 47, i8* %20
%21 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %12, i32 0, i32 4
%22 = getelementptr inbounds [20 x i8], [20 x i8]* %21, i32 0, i32 0
store i8 37, i8* %22
%23 = bitcast [6 x [20 x i8]]* %3 to i8*
%24 = bitcast [3 x [20 x i8]]* %4 to i8*
%25 = bitcast i8* %24 to [3 x [20 x i8]]*
%26 = getelementptr inbounds [3 x [20 x i8]], [3 x [20 x i8]]* %25, i32 0, i32 0
%27 = getelementptr inbounds [20 x i8], [20 x i8]* %26, i32 0, i32 0
store i8 38, i8* %27
%28 = getelementptr inbounds [20 x i8], [20 x i8]* %26, i32 0, i32 1
store i8 38, i8* %28
%29 = getelementptr inbounds [3 x [20 x i8]], [3 x [20 x i8]]* %25, i32 0, i32 1
%30 = getelementptr inbounds [20 x i8], [20 x i8]* %29, i32 0, i32 0
store i8 124, i8* %30
%31 = getelementptr inbounds [20 x i8], [20 x i8]* %29, i32 0, i32 1
store i8 124, i8* %31
%32 = getelementptr inbounds [3 x [20 x i8]], [3 x [20 x i8]]* %25, i32 0, i32 2
%33 = getelementptr inbounds [20 x i8], [20 x i8]* %32, i32 0, i32 0
store i8 33, i8* %33
%34 = bitcast [1 x [20 x i8]]* %5 to i8*
%35 = bitcast [2 x [20 x i8]]* %6 to i8*
%36 = bitcast i8* %35 to [2 x [20 x i8]]*
%37 = getelementptr inbounds [2 x [20 x i8]], [2 x [20 x i8]]* %36, i32 0, i32 0
%38 = getelementptr inbounds [20 x i8], [20 x i8]* %37, i32 0, i32 0
store i8 43, i8* %38
%39 = getelementptr inbounds [20 x i8], [20 x i8]* %37, i32 0, i32 1
store i8 43, i8* %39
%40 = getelementptr inbounds [2 x [20 x i8]], [2 x [20 x i8]]* %36, i32 0, i32 1
%41 = getelementptr inbounds [20 x i8], [20 x i8]* %40, i32 0, i32 0
store i8 45, i8* %41
%42 = getelementptr inbounds [20 x i8], [20 x i8]* %40, i32 0, i32 1
store i8 45, i8* %42
%43 = bitcast [5 x [20 x i8]]* %7 to i8*
%44 = bitcast i8* %43 to [5 x [20 x i8]]*
%45 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %44, i32 0, i32 0
%46 = getelementptr inbounds [20 x i8], [20 x i8]* %45, i32 0, i32 0
store i8 123, i8* %46
%47 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %44, i32 0, i32 1
%48 = getelementptr inbounds [20 x i8], [20 x i8]* %47, i32 0, i32 0
store i8 44, i8* %48
%49 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %44, i32 0, i32 2
%50 = getelementptr inbounds [20 x i8], [20 x i8]* %49, i32 0, i32 0
store i8 59, i8* %50
%51 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %44, i32 0, i32 3
%52 = getelementptr inbounds [20 x i8], [20 x i8]* %51, i32 0, i32 0
store i8 125, i8* %52
%53 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %44, i32 0, i32 4
%54 = getelementptr inbounds [20 x i8], [20 x i8]* %53, i32 0, i32 0
store i8 32, i8* %54
store i32 0, i32* %8
store i32 0, i32* %9
br label %55
55: ; preds = %68, %0
%56 = load i32, i32* %9
%57 = sext i32 %56 to i64
%58 = icmp ult i64 %57, 32
br i1 %58, label %59, label %71
59: ; preds = %55
%60 = load i32, i32* %9
%61 = sext i32 %60 to i64
%62 = getelementptr inbounds [32 x [20 x i8]], [32 x [20 x i8]]* %1, i64 0, i64 %61
%63 = getelementptr inbounds [20 x i8], [20 x i8]* %62, i64 0, i64 0
%64 = load i32, i32* %8
%65 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %63, i32 %64, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str, i64 0, i64 0))
%66 = load i32, i32* %8
%67 = add nsw i32 %66, 1
store i32 %67, i32* %8
br label %68
68: ; preds = %59
%69 = load i32, i32* %9
%70 = add nsw i32 %69, 1
store i32 %70, i32* %9
br label %55
71: ; preds = %55
store i32 0, i32* %9
br label %72
72: ; preds = %85, %71
%73 = load i32, i32* %9
%74 = sext i32 %73 to i64
%75 = icmp ult i64 %74, 5
br i1 %75, label %76, label %88
76: ; preds = %72
%77 = load i32, i32* %9
%78 = sext i32 %77 to i64
%79 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %2, i64 0, i64 %78
%80 = getelementptr inbounds [20 x i8], [20 x i8]* %79, i64 0, i64 0
%81 = load i32, i32* %8
%82 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %80, i32 %81, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.1, i64 0, i64 0))
%83 = load i32, i32* %8
%84 = add nsw i32 %83, 1
store i32 %84, i32* %8
br label %85
85: ; preds = %76
%86 = load i32, i32* %9
%87 = add nsw i32 %86, 1
store i32 %87, i32* %9
br label %72
88: ; preds = %72
store i32 0, i32* %9
br label %89
89: ; preds = %102, %88
%90 = load i32, i32* %9
%91 = sext i32 %90 to i64
%92 = icmp ult i64 %91, 6
br i1 %92, label %93, label %105
93: ; preds = %89
%94 = load i32, i32* %9
%95 = sext i32 %94 to i64
%96 = getelementptr inbounds [6 x [20 x i8]], [6 x [20 x i8]]* %3, i64 0, i64 %95
%97 = getelementptr inbounds [20 x i8], [20 x i8]* %96, i64 0, i64 0
%98 = load i32, i32* %8
%99 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %97, i32 %98, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.2, i64 0, i64 0))
%100 = load i32, i32* %8
%101 = add nsw i32 %100, 1
store i32 %101, i32* %8
br label %102
102: ; preds = %93
%103 = load i32, i32* %9
%104 = add nsw i32 %103, 1
store i32 %104, i32* %9
br label %89
105: ; preds = %89
store i32 0, i32* %9
br label %106
106: ; preds = %119, %105
%107 = load i32, i32* %9
%108 = sext i32 %107 to i64
%109 = icmp ult i64 %108, 3
br i1 %109, label %110, label %122
110: ; preds = %106
%111 = load i32, i32* %9
%112 = sext i32 %111 to i64
%113 = getelementptr inbounds [3 x [20 x i8]], [3 x [20 x i8]]* %4, i64 0, i64 %112
%114 = getelementptr inbounds [20 x i8], [20 x i8]* %113, i64 0, i64 0
%115 = load i32, i32* %8
%116 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %114, i32 %115, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.3, i64 0, i64 0))
%117 = load i32, i32* %8
%118 = add nsw i32 %117, 1
store i32 %118, i32* %8
br label %119
119: ; preds = %110
%120 = load i32, i32* %9
%121 = add nsw i32 %120, 1
store i32 %121, i32* %9
br label %106
122: ; preds = %106
store i32 0, i32* %9
br label %123
123: ; preds = %136, %122
%124 = load i32, i32* %9
%125 = sext i32 %124 to i64
%126 = icmp ult i64 %125, 1
br i1 %126, label %127, label %139
127: ; preds = %123
%128 = load i32, i32* %9
%129 = sext i32 %128 to i64
%130 = getelementptr inbounds [1 x [20 x i8]], [1 x [20 x i8]]* %5, i64 0, i64 %129
%131 = getelementptr inbounds [20 x i8], [20 x i8]* %130, i64 0, i64 0
%132 = load i32, i32* %8
%133 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %131, i32 %132, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.4, i64 0, i64 0))
%134 = load i32, i32* %8
%135 = add nsw i32 %134, 1
store i32 %135, i32* %8
br label %136
136: ; preds = %127
%137 = load i32, i32* %9
%138 = add nsw i32 %137, 1
store i32 %138, i32* %9
br label %123
139: ; preds = %123
store i32 0, i32* %9
br label %140
140: ; preds = %153, %139
%141 = load i32, i32* %9
%142 = sext i32 %141 to i64
%143 = icmp ult i64 %142, 2
br i1 %143, label %144, label %156
144: ; preds = %140
%145 = load i32, i32* %9
%146 = sext i32 %145 to i64
%147 = getelementptr inbounds [2 x [20 x i8]], [2 x [20 x i8]]* %6, i64 0, i64 %146
%148 = getelementptr inbounds [20 x i8], [20 x i8]* %147, i64 0, i64 0
%149 = load i32, i32* %8
%150 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %148, i32 %149, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i64 0, i64 0))
%151 = load i32, i32* %8
%152 = add nsw i32 %151, 1
store i32 %152, i32* %8
br label %153
153: ; preds = %144
%154 = load i32, i32* %9
%155 = add nsw i32 %154, 1
store i32 %155, i32* %9
br label %140
156: ; preds = %140
store i32 0, i32* %9
br label %157
157: ; preds = %170, %156
%158 = load i32, i32* %9
%159 = sext i32 %158 to i64
%160 = icmp ult i64 %159, 5
br i1 %160, label %161, label %173
161: ; preds = %157
%162 = load i32, i32* %9
%163 = sext i32 %162 to i64
%164 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %7, i64 0, i64 %163
%165 = getelementptr inbounds [20 x i8], [20 x i8]* %164, i64 0, i64 0
%166 = load i32, i32* %8
%167 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %165, i32 %166, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.6, i64 0, i64 0))
%168 = load i32, i32* %8
%169 = add nsw i32 %168, 1
store i32 %169, i32* %8
br label %170
170: ; preds = %161
%171 = load i32, i32* %9
%172 = add nsw i32 %171, 1
store i32 %172, i32* %9
br label %157
173: ; preds = %157
ret void
}

LLVM IR (-O2):
@__const.valid_tokens.keyword = [32 x [20 x i8]] [[20 x i8] c"auto\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"extern\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"sizeof\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"break\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"float\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"static\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"case\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"for\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"struct\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"char\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"goto\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"switch\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"const\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"if\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"typedef\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"continue\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"int\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"union\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"default\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"long\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"unsigned\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"do\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"register\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"void\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"return\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"double\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"volatile\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"else\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"short\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"while\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"enum\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"signed\00\00\00\00\00\00\00\00\00\00\00\00\00\00"]
@__const.valid_tokens.relational = [6 x [20 x i8]] [[20 x i8] c"<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c">\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c">=\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"<=\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"==\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00", [20 x i8] c"!=\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00"]
@__const.valid_tokens.assignment = [1 x [20 x i8]] [[20 x i8] c"=\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00"]
@.str = [8 x i8] c"KEYWORD\00"
@.str.1 = [20 x i8] c"ARITHMETIC OPERATOR\00"
@.str.2 = [20 x i8] c"RELATIONAL OPERATOR\00"
@.str.3 = [21 x i8] c"CONDITIONAL OPERATOR\00"
@.str.4 = [20 x i8] c"ASSIGNMENT OPERATOR\00"
@.str.5 = [17 x i8] c"INC-DEC OPERATOR\00"
@.str.6 = [19 x i8] c"PUNCTUATION SYMBOL\00"
define void @valid_tokens() {
%1 = alloca [32 x [20 x i8]]
%2 = alloca [5 x [20 x i8]]
%3 = alloca [6 x [20 x i8]]
%4 = alloca [3 x [20 x i8]]
%5 = alloca [1 x [20 x i8]]
%6 = alloca [2 x [20 x i8]]
%7 = alloca [5 x [20 x i8]]
%8 = getelementptr inbounds [32 x [20 x i8]], [32 x [20 x i8]]* %1, i64 0, i64 0, i64 0
%9 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %2, i64 0, i64 0, i64 0
store i8 43, i8* %9
%10 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %2, i64 0, i64 1, i64 0
store i8 45, i8* %10
%11 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %2, i64 0, i64 2, i64 0
store i8 42, i8* %11
%12 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %2, i64 0, i64 3, i64 0
store i8 47, i8* %12
%13 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %2, i64 0, i64 4, i64 0
store i8 37, i8* %13
%14 = getelementptr inbounds [6 x [20 x i8]], [6 x [20 x i8]]* %3, i64 0, i64 0, i64 0
%15 = getelementptr inbounds [3 x [20 x i8]], [3 x [20 x i8]]* %4, i64 0, i64 0, i64 0
store i8 38, i8* %15
%16 = getelementptr inbounds [3 x [20 x i8]], [3 x [20 x i8]]* %4, i64 0, i64 0, i64 1
store i8 38, i8* %16
%17 = getelementptr inbounds [3 x [20 x i8]], [3 x [20 x i8]]* %4, i64 0, i64 1, i64 0
store i8 124, i8* %17
%18 = getelementptr inbounds [3 x [20 x i8]], [3 x [20 x i8]]* %4, i64 0, i64 1, i64 1
store i8 124, i8* %18
%19 = getelementptr inbounds [3 x [20 x i8]], [3 x [20 x i8]]* %4, i64 0, i64 2, i64 0
store i8 33, i8* %19
%20 = getelementptr inbounds [1 x [20 x i8]], [1 x [20 x i8]]* %5, i64 0, i64 0, i64 0
%21 = getelementptr inbounds [2 x [20 x i8]], [2 x [20 x i8]]* %6, i64 0, i64 0, i64 0
store i8 43, i8* %21
%22 = getelementptr inbounds [2 x [20 x i8]], [2 x [20 x i8]]* %6, i64 0, i64 0, i64 1
store i8 43, i8* %22
%23 = getelementptr inbounds [2 x [20 x i8]], [2 x [20 x i8]]* %6, i64 0, i64 1, i64 0
store i8 45, i8* %23
%24 = getelementptr inbounds [2 x [20 x i8]], [2 x [20 x i8]]* %6, i64 0, i64 1, i64 1
store i8 45, i8* %24
%25 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %7, i64 0, i64 0, i64 0
store i8 123, i8* %25
%26 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %7, i64 0, i64 1, i64 0
store i8 44, i8* %26
%27 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %7, i64 0, i64 2, i64 0
store i8 59, i8* %27
%28 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %7, i64 0, i64 3, i64 0
store i8 125, i8* %28
%29 = getelementptr inbounds [5 x [20 x i8]], [5 x [20 x i8]]* %7, i64 0, i64 4, i64 0
store i8 32, i8* %29
br label %30
30: ; preds = %0, %30
%31 = phi i64 [ 0, %0 ], [ %35, %30 ]
%32 = trunc i64 %31 to i32
%33 = getelementptr inbounds [32 x [20 x i8]], [32 x [20 x i8]]* %1, i64 0, i64 %31, i64 0
%34 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %33, i32 %32, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str, i64 0, i64 0))
%35 = add nuw nsw i64 %31, 1
%36 = icmp eq i64 %35, 32
br i1 %36, label %37, label %30
37: ; preds = %30
%38 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %9, i32 32, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.1, i64 0, i64 0))
%39 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %10, i32 33, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.1, i64 0, i64 0))
%40 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %11, i32 34, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.1, i64 0, i64 0))
%41 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %12, i32 35, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.1, i64 0, i64 0))
%42 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %13, i32 36, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.1, i64 0, i64 0))
%43 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %14, i32 37, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.2, i64 0, i64 0))
%44 = getelementptr inbounds [6 x [20 x i8]], [6 x [20 x i8]]* %3, i64 0, i64 1, i64 0
%45 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %44, i32 38, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.2, i64 0, i64 0))
%46 = getelementptr inbounds [6 x [20 x i8]], [6 x [20 x i8]]* %3, i64 0, i64 2, i64 0
%47 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %46, i32 39, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.2, i64 0, i64 0))
%48 = getelementptr inbounds [6 x [20 x i8]], [6 x [20 x i8]]* %3, i64 0, i64 3, i64 0
%49 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %48, i32 40, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.2, i64 0, i64 0))
%50 = getelementptr inbounds [6 x [20 x i8]], [6 x [20 x i8]]* %3, i64 0, i64 4, i64 0
%51 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %50, i32 41, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.2, i64 0, i64 0))
%52 = getelementptr inbounds [6 x [20 x i8]], [6 x [20 x i8]]* %3, i64 0, i64 5, i64 0
%53 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %52, i32 42, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.2, i64 0, i64 0))
%54 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %15, i32 43, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.3, i64 0, i64 0))
%55 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %17, i32 44, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.3, i64 0, i64 0))
%56 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %19, i32 45, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.3, i64 0, i64 0))
%57 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %20, i32 46, i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.4, i64 0, i64 0))
%58 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %21, i32 47, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i64 0, i64 0))
%59 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %23, i32 48, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i64 0, i64 0))
%60 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %25, i32 49, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.6, i64 0, i64 0))
%61 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %26, i32 50, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.6, i64 0, i64 0))
%62 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %27, i32 51, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.6, i64 0, i64 0))
%63 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %28, i32 52, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.6, i64 0, i64 0))
%64 = call i32 (i8*, i32, i8*, ...) bitcast (i32 (...)* @verify to i32 (i8*, i32, i8*, ...)*)(i8* %29, i32 53, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.6, i64 0, i64 0))
ret void
}