#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int strlen(char *);
int checkForUnique(char *word) {
  int hash[256];
  int i = 0;
  if (strlen(word) > 256)
    return 0;
  for (; i < 256; i++)
    hash[i] = 999;
  for (i = 0; i < strlen(word); i++) {
    if (hash[(int)word[i]] != 999)
      return 0;
    else
      hash[(int)word[i]] = (int)word[i];
  }
  return 1;
}


x86 assembly (clang, -O0):
<checkForUnique>:
push   %rbp
mov    %rsp,%rbp
sub    $0x420,%rsp
mov    %rdi,-0x10(%rbp)
movl   $0x0,-0x414(%rbp)
mov    -0x10(%rbp),%rdi
call   1030 <strlen@plt>
cmp    $0x100,%eax
jle    1149 <checkForUnique+0x39>
movl   $0x0,-0x4(%rbp)
jmp    1228 <checkForUnique+0x118>
jmp    114e <checkForUnique+0x3e>
cmpl   $0x100,-0x414(%rbp)
jge    1184 <checkForUnique+0x74>
movslq -0x414(%rbp),%rax
movl   $0x3e7,-0x410(%rbp,%rax,4)
mov    -0x414(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x414(%rbp)
jmp    114e <checkForUnique+0x3e>
movl   $0x0,-0x414(%rbp)
mov    -0x414(%rbp),%eax
mov    %eax,-0x418(%rbp)
mov    -0x10(%rbp),%rdi
call   1030 <strlen@plt>
mov    %eax,%ecx
mov    -0x418(%rbp),%eax
cmp    %ecx,%eax
jge    1221 <checkForUnique+0x111>
mov    -0x10(%rbp),%rax
movslq -0x414(%rbp),%rcx
movsbl (%rax,%rcx,1),%eax
cltq
cmpl   $0x3e7,-0x410(%rbp,%rax,4)
je     11e1 <checkForUnique+0xd1>
movl   $0x0,-0x4(%rbp)
jmp    1228 <checkForUnique+0x118>
mov    -0x10(%rbp),%rax
movslq -0x414(%rbp),%rcx
movsbl (%rax,%rcx,1),%ecx
mov    -0x10(%rbp),%rax
movslq -0x414(%rbp),%rdx
movsbl (%rax,%rdx,1),%eax
cltq
mov    %ecx,-0x410(%rbp,%rax,4)
jmp    120d <checkForUnique+0xfd>
mov    -0x414(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x414(%rbp)
jmp    118e <checkForUnique+0x7e>
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x420,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<checkForUnique>:
push   %rbp
push   %r14
push   %rbx
sub    $0x400,%rsp
mov    %rdi,%rbx
call   1030 <strlen@plt>
xor    %r14d,%r14d
cmp    $0x100,%eax
jg     1369 <checkForUnique+0x259>
movaps 0xec8(%rip),%xmm0
movaps %xmm0,(%rsp)
movaps %xmm0,0x10(%rsp)
movaps %xmm0,0x20(%rsp)
movaps %xmm0,0x30(%rsp)
movaps %xmm0,0x40(%rsp)
movaps %xmm0,0x50(%rsp)
movaps %xmm0,0x60(%rsp)
movaps %xmm0,0x70(%rsp)
movaps %xmm0,0x80(%rsp)
movaps %xmm0,0x90(%rsp)
movaps %xmm0,0xa0(%rsp)
movaps %xmm0,0xb0(%rsp)
movaps %xmm0,0xc0(%rsp)
movaps %xmm0,0xd0(%rsp)
movaps %xmm0,0xe0(%rsp)
movaps %xmm0,0xf0(%rsp)
movaps %xmm0,0x100(%rsp)
movaps %xmm0,0x110(%rsp)
movaps %xmm0,0x120(%rsp)
movaps %xmm0,0x130(%rsp)
movaps %xmm0,0x140(%rsp)
movaps %xmm0,0x150(%rsp)
movaps %xmm0,0x160(%rsp)
movaps %xmm0,0x170(%rsp)
movaps %xmm0,0x180(%rsp)
movaps %xmm0,0x190(%rsp)
movaps %xmm0,0x1a0(%rsp)
movaps %xmm0,0x1b0(%rsp)
movaps %xmm0,0x1c0(%rsp)
movaps %xmm0,0x1d0(%rsp)
movaps %xmm0,0x1e0(%rsp)
movaps %xmm0,0x1f0(%rsp)
movaps %xmm0,0x200(%rsp)
movaps %xmm0,0x210(%rsp)
movaps %xmm0,0x220(%rsp)
movaps %xmm0,0x230(%rsp)
movaps %xmm0,0x240(%rsp)
movaps %xmm0,0x250(%rsp)
movaps %xmm0,0x260(%rsp)
movaps %xmm0,0x270(%rsp)
movaps %xmm0,0x280(%rsp)
movaps %xmm0,0x290(%rsp)
movaps %xmm0,0x2a0(%rsp)
movaps %xmm0,0x2b0(%rsp)
movaps %xmm0,0x2c0(%rsp)
movaps %xmm0,0x2d0(%rsp)
movaps %xmm0,0x2e0(%rsp)
movaps %xmm0,0x2f0(%rsp)
movaps %xmm0,0x300(%rsp)
movaps %xmm0,0x310(%rsp)
movaps %xmm0,0x320(%rsp)
movaps %xmm0,0x330(%rsp)
movaps %xmm0,0x340(%rsp)
movaps %xmm0,0x350(%rsp)
movaps %xmm0,0x360(%rsp)
movaps %xmm0,0x370(%rsp)
movaps %xmm0,0x380(%rsp)
movaps %xmm0,0x390(%rsp)
movaps %xmm0,0x3a0(%rsp)
movaps %xmm0,0x3b0(%rsp)
movaps %xmm0,0x3c0(%rsp)
movaps %xmm0,0x3d0(%rsp)
movaps %xmm0,0x3e0(%rsp)
movaps %xmm0,0x3f0(%rsp)
mov    %rbx,%rdi
call   1030 <strlen@plt>
mov    $0x1,%r14d
test   %eax,%eax
jle    1369 <checkForUnique+0x259>
xor    %ebp,%ebp
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movsbq (%rbx,%rbp,1),%rax
cmpl   $0x3e7,(%rsp,%rax,4)
jne    1366 <checkForUnique+0x256>
mov    %eax,(%rsp,%rax,4)
add    $0x1,%rbp
mov    %rbx,%rdi
call   1030 <strlen@plt>
cltq
cmp    %rax,%rbp
jl     1340 <checkForUnique+0x230>
jmp    1369 <checkForUnique+0x259>
xor    %r14d,%r14d
mov    %r14d,%eax
add    $0x400,%rsp
pop    %rbx
pop    %r14
pop    %rbp
ret

LLVM IR (-O0):
define i32 @checkForUnique(i8* %0) {
%2 = alloca i32
%3 = alloca i8*
%4 = alloca [256 x i32]
%5 = alloca i32
store i8* %0, i8** %3
store i32 0, i32* %5
%6 = load i8*, i8** %3
%7 = call i32 @strlen(i8* %6)
%8 = icmp sgt i32 %7, 256
br i1 %8, label %9, label %10
9: ; preds = %1
store i32 0, i32* %2
br label %59
10: ; preds = %1
br label %11
11: ; preds = %18, %10
%12 = load i32, i32* %5
%13 = icmp slt i32 %12, 256
br i1 %13, label %14, label %21
14: ; preds = %11
%15 = load i32, i32* %5
%16 = sext i32 %15 to i64
%17 = getelementptr inbounds [256 x i32], [256 x i32]* %4, i64 0, i64 %16
store i32 999, i32* %17
br label %18
18: ; preds = %14
%19 = load i32, i32* %5
%20 = add nsw i32 %19, 1
store i32 %20, i32* %5
br label %11
21: ; preds = %11
store i32 0, i32* %5
br label %22
22: ; preds = %55, %21
%23 = load i32, i32* %5
%24 = load i8*, i8** %3
%25 = call i32 @strlen(i8* %24)
%26 = icmp slt i32 %23, %25
br i1 %26, label %27, label %58
27: ; preds = %22
%28 = load i8*, i8** %3
%29 = load i32, i32* %5
%30 = sext i32 %29 to i64
%31 = getelementptr inbounds i8, i8* %28, i64 %30
%32 = load i8, i8* %31
%33 = sext i8 %32 to i32
%34 = sext i32 %33 to i64
%35 = getelementptr inbounds [256 x i32], [256 x i32]* %4, i64 0, i64 %34
%36 = load i32, i32* %35
%37 = icmp ne i32 %36, 999
br i1 %37, label %38, label %39
38: ; preds = %27
store i32 0, i32* %2
br label %59
39: ; preds = %27
%40 = load i8*, i8** %3
%41 = load i32, i32* %5
%42 = sext i32 %41 to i64
%43 = getelementptr inbounds i8, i8* %40, i64 %42
%44 = load i8, i8* %43
%45 = sext i8 %44 to i32
%46 = load i8*, i8** %3
%47 = load i32, i32* %5
%48 = sext i32 %47 to i64
%49 = getelementptr inbounds i8, i8* %46, i64 %48
%50 = load i8, i8* %49
%51 = sext i8 %50 to i32
%52 = sext i32 %51 to i64
%53 = getelementptr inbounds [256 x i32], [256 x i32]* %4, i64 0, i64 %52
store i32 %45, i32* %53
br label %54
54: ; preds = %39
br label %55
55: ; preds = %54
%56 = load i32, i32* %5
%57 = add nsw i32 %56, 1
store i32 %57, i32* %5
br label %22
58: ; preds = %22
store i32 1, i32* %2
br label %59
59: ; preds = %58, %38, %9
%60 = load i32, i32* %2
ret i32 %60
}

LLVM IR (-O2):
define i32 @checkForUnique(i8* %0) {
%2 = alloca [256 x i32]
%3 = bitcast [256 x i32]* %2 to i8*
%4 = tail call i32 @strlen(i8* %0)
%5 = icmp sgt i32 %4, 256
br i1 %5, label %150, label %6
6: ; preds = %1
%7 = bitcast [256 x i32]* %2 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %7
%8 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 4
%9 = bitcast i32* %8 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %9
%10 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 8
%11 = bitcast i32* %10 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %11
%12 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 12
%13 = bitcast i32* %12 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %13
%14 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 16
%15 = bitcast i32* %14 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %15
%16 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 20
%17 = bitcast i32* %16 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %17
%18 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 24
%19 = bitcast i32* %18 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %19
%20 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 28
%21 = bitcast i32* %20 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %21
%22 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 32
%23 = bitcast i32* %22 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %23
%24 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 36
%25 = bitcast i32* %24 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %25
%26 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 40
%27 = bitcast i32* %26 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %27
%28 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 44
%29 = bitcast i32* %28 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %29
%30 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 48
%31 = bitcast i32* %30 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %31
%32 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 52
%33 = bitcast i32* %32 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %33
%34 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 56
%35 = bitcast i32* %34 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %35
%36 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 60
%37 = bitcast i32* %36 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %37
%38 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 64
%39 = bitcast i32* %38 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %39
%40 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 68
%41 = bitcast i32* %40 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %41
%42 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 72
%43 = bitcast i32* %42 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %43
%44 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 76
%45 = bitcast i32* %44 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %45
%46 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 80
%47 = bitcast i32* %46 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %47
%48 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 84
%49 = bitcast i32* %48 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %49
%50 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 88
%51 = bitcast i32* %50 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %51
%52 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 92
%53 = bitcast i32* %52 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %53
%54 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 96
%55 = bitcast i32* %54 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %55
%56 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 100
%57 = bitcast i32* %56 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %57
%58 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 104
%59 = bitcast i32* %58 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %59
%60 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 108
%61 = bitcast i32* %60 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %61
%62 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 112
%63 = bitcast i32* %62 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %63
%64 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 116
%65 = bitcast i32* %64 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %65
%66 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 120
%67 = bitcast i32* %66 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %67
%68 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 124
%69 = bitcast i32* %68 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %69
%70 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 128
%71 = bitcast i32* %70 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %71
%72 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 132
%73 = bitcast i32* %72 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %73
%74 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 136
%75 = bitcast i32* %74 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %75
%76 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 140
%77 = bitcast i32* %76 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %77
%78 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 144
%79 = bitcast i32* %78 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %79
%80 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 148
%81 = bitcast i32* %80 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %81
%82 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 152
%83 = bitcast i32* %82 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %83
%84 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 156
%85 = bitcast i32* %84 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %85
%86 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 160
%87 = bitcast i32* %86 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %87
%88 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 164
%89 = bitcast i32* %88 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %89
%90 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 168
%91 = bitcast i32* %90 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %91
%92 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 172
%93 = bitcast i32* %92 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %93
%94 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 176
%95 = bitcast i32* %94 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %95
%96 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 180
%97 = bitcast i32* %96 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %97
%98 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 184
%99 = bitcast i32* %98 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %99
%100 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 188
%101 = bitcast i32* %100 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %101
%102 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 192
%103 = bitcast i32* %102 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %103
%104 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 196
%105 = bitcast i32* %104 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %105
%106 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 200
%107 = bitcast i32* %106 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %107
%108 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 204
%109 = bitcast i32* %108 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %109
%110 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 208
%111 = bitcast i32* %110 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %111
%112 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 212
%113 = bitcast i32* %112 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %113
%114 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 216
%115 = bitcast i32* %114 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %115
%116 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 220
%117 = bitcast i32* %116 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %117
%118 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 224
%119 = bitcast i32* %118 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %119
%120 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 228
%121 = bitcast i32* %120 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %121
%122 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 232
%123 = bitcast i32* %122 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %123
%124 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 236
%125 = bitcast i32* %124 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %125
%126 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 240
%127 = bitcast i32* %126 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %127
%128 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 244
%129 = bitcast i32* %128 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %129
%130 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 248
%131 = bitcast i32* %130 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %131
%132 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 252
%133 = bitcast i32* %132 to <4 x i32>*
store <4 x i32> <i32 999, i32 999, i32 999, i32 999>, <4 x i32>* %133
%134 = tail call i32 @strlen(i8* %0)
%135 = icmp sgt i32 %134, 0
br i1 %135, label %136, label %150
136: ; preds = %6, %144
%137 = phi i64 [ %146, %144 ], [ 0, %6 ]
%138 = getelementptr inbounds i8, i8* %0, i64 %137
%139 = load i8, i8* %138
%140 = sext i8 %139 to i64
%141 = getelementptr inbounds [256 x i32], [256 x i32]* %2, i64 0, i64 %140
%142 = load i32, i32* %141
%143 = icmp eq i32 %142, 999
br i1 %143, label %144, label %150
144: ; preds = %136
%145 = sext i8 %139 to i32
store i32 %145, i32* %141
%146 = add nuw nsw i64 %137, 1
%147 = tail call i32 @strlen(i8* %0)
%148 = sext i32 %147 to i64
%149 = icmp slt i64 %146, %148
br i1 %149, label %136, label %150
150: ; preds = %136, %144, %6, %1
%151 = phi i32 [ 0, %1 ], [ 1, %6 ], [ 0, %136 ], [ 1, %144 ]
ret i32 %151
}