const char *positionString(int row, int col) {
  const char *str;
  if (row > 7 || row < 0 || col > 7 || col < 0) {
    str = (char *)"INVALID LOCATION";
  } else {
    const char *squares[] = {
        "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "B1", "B2", "B3",
        "B4", "B5", "B6", "B7", "B8", "C1", "C2", "C3", "C4", "C5", "C6",
        "C7", "C8", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "D8", "E1",
        "E2", "E3", "E4", "E5", "E6", "E7", "E8", "F1", "F2", "F3", "F4",
        "F5", "F6", "F7", "F8", "G1", "G2", "G3", "G4", "G5", "G6", "G7",
        "G8", "H1", "H2", "H3", "H4", "H5", "H6", "H7", "H8"};
    str = squares[col * 8 + row];
  }
  return str;
}


x86 assembly (clang, -O0):
<positionString>:
push   %rbp
mov    %rsp,%rbp
sub    $0x210,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
cmpl   $0x7,-0x4(%rbp)
jg     1149 <positionString+0x39>
cmpl   $0x0,-0x4(%rbp)
jl     1149 <positionString+0x39>
cmpl   $0x7,-0x8(%rbp)
jg     1149 <positionString+0x39>
cmpl   $0x0,-0x8(%rbp)
jge    1159 <positionString+0x49>
lea    0xeb0(%rip),%rax
mov    %rax,-0x10(%rbp)
jmp    1188 <positionString+0x78>
lea    -0x210(%rbp),%rdi
lea    0x2ab9(%rip),%rsi
mov    $0x200,%edx
call   1030 <memcpy@plt>
mov    -0x8(%rbp),%eax
shl    $0x3,%eax
add    -0x4(%rbp),%eax
cltq
mov    -0x210(%rbp,%rax,8),%rax
ff
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
add    $0x210,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<positionString>:
mov    %esi,%eax
or     %edi,%eax
cmp    $0x7,%eax
ja     111b <positionString+0x1b>
lea    (%rdi,%rsi,8),%eax
lea    0xfc1(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
ret
lea    0xede(%rip),%rax
ret

LLVM IR (-O0):
@.str = [17 x i8] c"INVALID LOCATION\00"
@.str.1 = [3 x i8] c"A1\00"
@.str.2 = [3 x i8] c"A2\00"
@.str.3 = [3 x i8] c"A3\00"
@.str.4 = [3 x i8] c"A4\00"
@.str.5 = [3 x i8] c"A5\00"
@.str.6 = [3 x i8] c"A6\00"
@.str.7 = [3 x i8] c"A7\00"
@.str.8 = [3 x i8] c"A8\00"
@.str.9 = [3 x i8] c"B1\00"
@.str.10 = [3 x i8] c"B2\00"
@.str.11 = [3 x i8] c"B3\00"
@.str.12 = [3 x i8] c"B4\00"
@.str.13 = [3 x i8] c"B5\00"
@.str.14 = [3 x i8] c"B6\00"
@.str.15 = [3 x i8] c"B7\00"
@.str.16 = [3 x i8] c"B8\00"
@.str.17 = [3 x i8] c"C1\00"
@.str.18 = [3 x i8] c"C2\00"
@.str.19 = [3 x i8] c"C3\00"
@.str.20 = [3 x i8] c"C4\00"
@.str.21 = [3 x i8] c"C5\00"
@.str.22 = [3 x i8] c"C6\00"
@.str.23 = [3 x i8] c"C7\00"
@.str.24 = [3 x i8] c"C8\00"
@.str.25 = [3 x i8] c"D1\00"
@.str.26 = [3 x i8] c"D2\00"
@.str.27 = [3 x i8] c"D3\00"
@.str.28 = [3 x i8] c"D4\00"
@.str.29 = [3 x i8] c"D5\00"
@.str.30 = [3 x i8] c"D6\00"
@.str.31 = [3 x i8] c"D7\00"
@.str.32 = [3 x i8] c"D8\00"
@.str.33 = [3 x i8] c"E1\00"
@.str.34 = [3 x i8] c"E2\00"
@.str.35 = [3 x i8] c"E3\00"
@.str.36 = [3 x i8] c"E4\00"
@.str.37 = [3 x i8] c"E5\00"
@.str.38 = [3 x i8] c"E6\00"
@.str.39 = [3 x i8] c"E7\00"
@.str.40 = [3 x i8] c"E8\00"
@.str.41 = [3 x i8] c"F1\00"
@.str.42 = [3 x i8] c"F2\00"
@.str.43 = [3 x i8] c"F3\00"
@.str.44 = [3 x i8] c"F4\00"
@.str.45 = [3 x i8] c"F5\00"
@.str.46 = [3 x i8] c"F6\00"
@.str.47 = [3 x i8] c"F7\00"
@.str.48 = [3 x i8] c"F8\00"
@.str.49 = [3 x i8] c"G1\00"
@.str.50 = [3 x i8] c"G2\00"
@.str.51 = [3 x i8] c"G3\00"
@.str.52 = [3 x i8] c"G4\00"
@.str.53 = [3 x i8] c"G5\00"
@.str.54 = [3 x i8] c"G6\00"
@.str.55 = [3 x i8] c"G7\00"
@.str.56 = [3 x i8] c"G8\00"
@.str.57 = [3 x i8] c"H1\00"
@.str.58 = [3 x i8] c"H2\00"
@.str.59 = [3 x i8] c"H3\00"
@.str.60 = [3 x i8] c"H4\00"
@.str.61 = [3 x i8] c"H5\00"
@.str.62 = [3 x i8] c"H6\00"
@.str.63 = [3 x i8] c"H7\00"
@.str.64 = [3 x i8] c"H8\00"
@__const.positionString.squares = [64 x i8*] [i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.3, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.7, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.8, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.12, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.14, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.15, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.16, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.17, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.18, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.19, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.20, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.22, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.23, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.25, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.28, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.29, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.30, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.31, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.32, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.33, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.34, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.35, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.36, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.37, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.38, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.39, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.40, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.41, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.42, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.43, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.44, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.45, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.46, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.47, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.48, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.49, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.50, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.51, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.52, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.53, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.54, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.55, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.56, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.57, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.58, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.59, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.60, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.61, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.62, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.63, i32 0, i32 0), i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.64, i32 0, i32 0)]
define i8* @positionString(i32 %0, i32 %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8*
%6 = alloca [64 x i8*]
store i32 %0, i32* %3
store i32 %1, i32* %4
%7 = load i32, i32* %3
%8 = icmp sgt i32 %7, 7
br i1 %8, label %18, label %9
9: ; preds = %2
%10 = load i32, i32* %3
%11 = icmp slt i32 %10, 0
br i1 %11, label %18, label %12
12: ; preds = %9
%13 = load i32, i32* %4
%14 = icmp sgt i32 %13, 7
br i1 %14, label %18, label %15
15: ; preds = %12
%16 = load i32, i32* %4
%17 = icmp slt i32 %16, 0
br i1 %17, label %18, label %19
18: ; preds = %15, %12, %9, %2
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str, i64 0, i64 0), i8** %5
br label %28
19: ; preds = %15
%20 = bitcast [64 x i8*]* %6 to i8*
%21 = load i32, i32* %4
%22 = mul nsw i32 %21, 8
%23 = load i32, i32* %3
%24 = add nsw i32 %22, %23
%25 = sext i32 %24 to i64
%26 = getelementptr inbounds [64 x i8*], [64 x i8*]* %6, i64 0, i64 %25
%27 = load i8*, i8** %26
store i8* %27, i8** %5
br label %28
28: ; preds = %19, %18
%29 = load i8*, i8** %5
ret i8* %29
}

LLVM IR (-O2):
@.str = [17 x i8] c"INVALID LOCATION\00"
@.str.1 = [3 x i8] c"A1\00"
@.str.2 = [3 x i8] c"A2\00"
@.str.3 = [3 x i8] c"A3\00"
@.str.4 = [3 x i8] c"A4\00"
@.str.5 = [3 x i8] c"A5\00"
@.str.6 = [3 x i8] c"A6\00"
@.str.7 = [3 x i8] c"A7\00"
@.str.8 = [3 x i8] c"A8\00"
@.str.9 = [3 x i8] c"B1\00"
@.str.10 = [3 x i8] c"B2\00"
@.str.11 = [3 x i8] c"B3\00"
@.str.12 = [3 x i8] c"B4\00"
@.str.13 = [3 x i8] c"B5\00"
@.str.14 = [3 x i8] c"B6\00"
@.str.15 = [3 x i8] c"B7\00"
@.str.16 = [3 x i8] c"B8\00"
@.str.17 = [3 x i8] c"C1\00"
@.str.18 = [3 x i8] c"C2\00"
@.str.19 = [3 x i8] c"C3\00"
@.str.20 = [3 x i8] c"C4\00"
@.str.21 = [3 x i8] c"C5\00"
@.str.22 = [3 x i8] c"C6\00"
@.str.23 = [3 x i8] c"C7\00"
@.str.24 = [3 x i8] c"C8\00"
@.str.25 = [3 x i8] c"D1\00"
@.str.26 = [3 x i8] c"D2\00"
@.str.27 = [3 x i8] c"D3\00"
@.str.28 = [3 x i8] c"D4\00"
@.str.29 = [3 x i8] c"D5\00"
@.str.30 = [3 x i8] c"D6\00"
@.str.31 = [3 x i8] c"D7\00"
@.str.32 = [3 x i8] c"D8\00"
@.str.33 = [3 x i8] c"E1\00"
@.str.34 = [3 x i8] c"E2\00"
@.str.35 = [3 x i8] c"E3\00"
@.str.36 = [3 x i8] c"E4\00"
@.str.37 = [3 x i8] c"E5\00"
@.str.38 = [3 x i8] c"E6\00"
@.str.39 = [3 x i8] c"E7\00"
@.str.40 = [3 x i8] c"E8\00"
@.str.41 = [3 x i8] c"F1\00"
@.str.42 = [3 x i8] c"F2\00"
@.str.43 = [3 x i8] c"F3\00"
@.str.44 = [3 x i8] c"F4\00"
@.str.45 = [3 x i8] c"F5\00"
@.str.46 = [3 x i8] c"F6\00"
@.str.47 = [3 x i8] c"F7\00"
@.str.48 = [3 x i8] c"F8\00"
@.str.49 = [3 x i8] c"G1\00"
@.str.50 = [3 x i8] c"G2\00"
@.str.51 = [3 x i8] c"G3\00"
@.str.52 = [3 x i8] c"G4\00"
@.str.53 = [3 x i8] c"G5\00"
@.str.54 = [3 x i8] c"G6\00"
@.str.55 = [3 x i8] c"G7\00"
@.str.56 = [3 x i8] c"G8\00"
@.str.57 = [3 x i8] c"H1\00"
@.str.58 = [3 x i8] c"H2\00"
@.str.59 = [3 x i8] c"H3\00"
@.str.60 = [3 x i8] c"H4\00"
@.str.61 = [3 x i8] c"H5\00"
@.str.62 = [3 x i8] c"H6\00"
@.str.63 = [3 x i8] c"H7\00"
@.str.64 = [3 x i8] c"H8\00"
@reltable.positionString = [64 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.1 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.2 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.3 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.4 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.5 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.6 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.7 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.8 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.9 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.10 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.11 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.12 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.13 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.14 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.15 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.16 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.17 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.18 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.19 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.20 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.21 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.22 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.23 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.24 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.25 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.26 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.27 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.28 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.29 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.30 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.31 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.32 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.33 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.34 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.35 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.36 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.37 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.38 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.39 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.40 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.41 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.42 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.43 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.44 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.45 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.46 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.47 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.48 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.49 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.50 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.51 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.52 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.53 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.54 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.55 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.56 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.57 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.58 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.59 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.60 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.61 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.62 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.63 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.64 to i64), i64 ptrtoint ([64 x i32]* @reltable.positionString to i64)) to i32)]
define i8* @positionString(i32 %0, i32 %1) {
%3 = or i32 %1, %0
%4 = icmp ult i32 %3, 8
br i1 %4, label %5, label %11
5: ; preds = %2
%6 = shl nuw nsw i32 %1, 3
%7 = add nuw nsw i32 %6, %0
%8 = zext i32 %7 to i64
%9 = shl i64 %8, 2
%10 = call i8* @llvm.load.relative.i64(i8* bitcast ([64 x i32]* @reltable.positionString to i8*), i64 %9)
br label %11
11: ; preds = %2, %5
%12 = phi i8* [ %10, %5 ], [ getelementptr inbounds ([17 x i8], [17 x i8]* @.str, i64 0, i64 0), %2 ]
ret i8* %12
}