char *_strerror_r(int errnum, int internal, int *errptr) {
  const char *error;
  switch (errnum) {
  case 0:
    error = "Success";
    break;
  case 1:
    error = "Not owner";
    break;
  case 2:
    error = "No such file or directory";
    break;
  case 3:
    error = "No such process";
    break;
  case 4:
    error = "Interrupted system call";
    break;
  case 5:
    error = "I/O error";
    break;
  case 6:
    error = "No such device or address";
    break;
  case 7:
    error = "Arg list too long";
    break;
  case 8:
    error = "Exec format error";
    break;
  case 114:
    error = "Socket already connected";
    break;
  case 9:
    error = "Bad file number";
    break;
  case 10:
    error = "No children";
    break;
  case 89:
    error = "Destination address required";
    break;
  case 11:
    error = "No more processes";
    break;
  case 12:
    error = "Not enough space";
    break;
  case 13:
    error = "Permission denied";
    break;
  case 14:
    error = "Bad address";
    break;
  case 15:
    error = "Block device required";
    break;
  case 16:
    error = "Device or resource busy";
    break;
  case 17:
    error = "File exists";
    break;
  case 18:
    error = "Cross-device link";
    break;
  case 19:
    error = "No such device";
    break;
  case 20:
    error = "Not a directory";
    break;
  case 112:
    error = "Host is down";
    break;
  case 115:
    error = "Connection already in progress";
    break;
  case 21:
    error = "Is a directory";
    break;
  case 22:
    error = "Invalid argument";
    break;
  case 100:
    error = "Network interface is not configured";
    break;
  case 23:
    error = "Too many open files in system";
    break;
  case 24:
    error = "Too many open files";
    break;
  case 25:
    error = "Not a character device";
    break;
  case 26:
    error = "Text file busy";
    break;
  case 27:
    error = "File too large";
    break;
  case 113:
    error = "Host is unreachable";
    break;
  case 28:
    error = "No space left on device";
    break;
  case 134:
    error = "Not supported";
    break;
  case 29:
    error = "Illegal seek";
    break;
  case 30:
    error = "Read-only file system";
    break;
  case 31:
    error = "Too many links";
    break;
  case 32:
    error = "Broken pipe";
    break;
  case 33:
    error = "Math argument";
    break;
  case 34:
    error = "Result too large";
    break;
  case 42:
    error = "No message of desired type";
    break;
  case 43:
    error = "Identifier removed";
    break;
  case 35:
    error = "Deadlock";
    break;
  case 101:
    error = "Network is unreachable";
    break;
  case 37:
    error = "No lock";
    break;
  case 60:
    error = "Not a stream";
    break;
  case 62:
    error = "Stream ioctl timeout";
    break;
  case 63:
    error = "No stream resources";
    break;
  case 64:
    error = "Machine is not on the network";
    break;
  case 65:
    error = "No package";
    break;
  case 66:
    error = "Resource is remote";
    break;
  case 67:
    error = "Virtual circuit is gone";
    break;
  case 68:
    error = "Advertise error";
    break;
  case 69:
    error = "Srmount error";
    break;
  case 70:
    error = "Communication error";
    break;
  case 71:
    error = "Protocol error";
    break;
  case 93:
    error = "Unknown protocol";
    break;
  case 72:
    error = "Multihop attempted";
    break;
  case 74:
    error = "Bad message";
    break;
  case 79:
    error = "Cannot access a needed shared library";
    break;
  case 80:
    error = "Accessing a corrupted shared library";
    break;
  case 81:
    error = ".lib section in a.out corrupted";
    break;
  case 82:
    error = "Attempting to link in more shared libraries than system limit";
    break;
  case 83:
    error = "Cannot exec a shared library directly";
    break;
  case 38:
    error = "Function not implemented";
    break;
  case 39:
    error = "Directory not empty";
    break;
  case 36:
    error = "File or path name too long";
    break;
  case 40:
    error = "Too many symbolic links";
    break;
  case 105:
    error = "No buffer space available";
    break;
  case 97:
    error = "Address family not supported by protocol family";
    break;
  case 91:
    error = "Protocol wrong type for socket";
    break;
  case 88:
    error = "Socket operation on non-socket";
    break;
  case 92:
    error = "Protocol not available";
    break;
  case 108:
    error = "Can't send after socket shutdown";
    break;
  case 111:
    error = "Connection refused";
    break;
  case 98:
    error = "Address already in use";
    break;
  case 103:
    error = "Software caused connection abort";
    break;
  case 107:
    error = "Socket is not connected";
    break;
  case 94:
    error = "Socket type not supported";
    break;
  case 106:
    error = "Socket is already connected";
    break;
  case 125:
    error = "Operation canceled";
    break;
  case 131:
    error = "State not recoverable";
    break;
  case 130:
    error = "Previous owner died";
    break;
  case 86:
    error = "Streams pipe error";
    break;
  case 95:
    error = "Operation not supported on socket";
    break;
  case 90:
    error = "Message too long";
    break;
  case 110:
    error = "Connection timed out";
    break;
  default:
    error = "";
    break;
  }
  return (char *)error;
}


x86 assembly (clang, -O0):
<_strerror_r>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %rdx,-0x10(%rbp)
mov    -0x4(%rbp),%eax
mov    %rax,-0x20(%rbp)
sub    $0x86,%rax
ja     16c5 <_strerror_r+0x5c5>
mov    -0x20(%rbp),%rax
lea    0xed4(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x10e0(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10d8(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10d2(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10dc(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10dc(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10e4(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10de(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10e8(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10ea(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10ec(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10f5(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10f5(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10f1(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10fe(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1100(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1101(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1103(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x10ff(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1105(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x110d(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1109(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x110b(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x110a(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x110a(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1107(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1116(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1115(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1116(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x112a(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1138(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x113c(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1143(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1142(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1141(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1145(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x114d(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x114b(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1148(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x114e(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x114d(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1149(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1147(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1148(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1153(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1156(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x114f(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1156(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x114e(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x114b(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1150(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1154(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1162(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x115d(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1160(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1168(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1168(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1166(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x116a(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1169(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x116a(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x116d(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1169(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x117f(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1194(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x11a4(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x11d2(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x11e8(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x11f1(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x11f5(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1200(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1208(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1212(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1232(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1241(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1250(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1257(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1268(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x126b(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1272(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1283(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x128b(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x1295(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x12a1(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x12a4(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x12aa(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x12ae(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x12b1(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x12c3(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x12c4(%rip),%rax
mov    %rax,-0x18(%rbp)
jmp    16d0 <_strerror_r+0x5d0>
lea    0x126d(%rip),%rax
mov    %rax,-0x18(%rbp)
mov    -0x18(%rbp),%rax
pop    %rbp
ret

x86 assembly (clang, -O2):
<_strerror_r>:
cmp    $0x86,%edi
ja     111a <_strerror_r+0x1a>
movslq %edi,%rax
lea    0x166a(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
ret
lea    0x15fc(%rip),%rax
ret

LLVM IR (-O0):
@.str = [8 x i8] c"Success\00"
@.str.1 = [10 x i8] c"Not owner\00"
@.str.2 = [26 x i8] c"No such file or directory\00"
@.str.3 = [16 x i8] c"No such process\00"
@.str.4 = [24 x i8] c"Interrupted system call\00"
@.str.5 = [10 x i8] c"I/O error\00"
@.str.6 = [26 x i8] c"No such device or address\00"
@.str.7 = [18 x i8] c"Arg list too long\00"
@.str.8 = [18 x i8] c"Exec format error\00"
@.str.9 = [25 x i8] c"Socket already connected\00"
@.str.10 = [16 x i8] c"Bad file number\00"
@.str.11 = [12 x i8] c"No children\00"
@.str.12 = [29 x i8] c"Destination address required\00"
@.str.13 = [18 x i8] c"No more processes\00"
@.str.14 = [17 x i8] c"Not enough space\00"
@.str.15 = [18 x i8] c"Permission denied\00"
@.str.16 = [12 x i8] c"Bad address\00"
@.str.17 = [22 x i8] c"Block device required\00"
@.str.18 = [24 x i8] c"Device or resource busy\00"
@.str.19 = [12 x i8] c"File exists\00"
@.str.20 = [18 x i8] c"Cross-device link\00"
@.str.21 = [15 x i8] c"No such device\00"
@.str.22 = [16 x i8] c"Not a directory\00"
@.str.23 = [13 x i8] c"Host is down\00"
@.str.24 = [31 x i8] c"Connection already in progress\00"
@.str.25 = [15 x i8] c"Is a directory\00"
@.str.26 = [17 x i8] c"Invalid argument\00"
@.str.27 = [36 x i8] c"Network interface is not configured\00"
@.str.28 = [30 x i8] c"Too many open files in system\00"
@.str.29 = [20 x i8] c"Too many open files\00"
@.str.30 = [23 x i8] c"Not a character device\00"
@.str.31 = [15 x i8] c"Text file busy\00"
@.str.32 = [15 x i8] c"File too large\00"
@.str.33 = [20 x i8] c"Host is unreachable\00"
@.str.34 = [24 x i8] c"No space left on device\00"
@.str.35 = [14 x i8] c"Not supported\00"
@.str.36 = [13 x i8] c"Illegal seek\00"
@.str.37 = [22 x i8] c"Read-only file system\00"
@.str.38 = [15 x i8] c"Too many links\00"
@.str.39 = [12 x i8] c"Broken pipe\00"
@.str.40 = [14 x i8] c"Math argument\00"
@.str.41 = [17 x i8] c"Result too large\00"
@.str.42 = [27 x i8] c"No message of desired type\00"
@.str.43 = [19 x i8] c"Identifier removed\00"
@.str.44 = [9 x i8] c"Deadlock\00"
@.str.45 = [23 x i8] c"Network is unreachable\00"
@.str.46 = [8 x i8] c"No lock\00"
@.str.47 = [13 x i8] c"Not a stream\00"
@.str.48 = [21 x i8] c"Stream ioctl timeout\00"
@.str.49 = [20 x i8] c"No stream resources\00"
@.str.50 = [30 x i8] c"Machine is not on the network\00"
@.str.51 = [11 x i8] c"No package\00"
@.str.52 = [19 x i8] c"Resource is remote\00"
@.str.53 = [24 x i8] c"Virtual circuit is gone\00"
@.str.54 = [16 x i8] c"Advertise error\00"
@.str.55 = [14 x i8] c"Srmount error\00"
@.str.56 = [20 x i8] c"Communication error\00"
@.str.57 = [15 x i8] c"Protocol error\00"
@.str.58 = [17 x i8] c"Unknown protocol\00"
@.str.59 = [19 x i8] c"Multihop attempted\00"
@.str.60 = [12 x i8] c"Bad message\00"
@.str.61 = [38 x i8] c"Cannot access a needed shared library\00"
@.str.62 = [37 x i8] c"Accessing a corrupted shared library\00"
@.str.63 = [32 x i8] c".lib section in a.out corrupted\00"
@.str.64 = [62 x i8] c"Attempting to link in more shared libraries than system limit\00"
@.str.65 = [38 x i8] c"Cannot exec a shared library directly\00"
@.str.66 = [25 x i8] c"Function not implemented\00"
@.str.67 = [20 x i8] c"Directory not empty\00"
@.str.68 = [27 x i8] c"File or path name too long\00"
@.str.69 = [24 x i8] c"Too many symbolic links\00"
@.str.70 = [26 x i8] c"No buffer space available\00"
@.str.71 = [48 x i8] c"Address family not supported by protocol family\00"
@.str.72 = [31 x i8] c"Protocol wrong type for socket\00"
@.str.73 = [31 x i8] c"Socket operation on non-socket\00"
@.str.74 = [23 x i8] c"Protocol not available\00"
@.str.75 = [33 x i8] c"Can't send after socket shutdown\00"
@.str.76 = [19 x i8] c"Connection refused\00"
@.str.77 = [23 x i8] c"Address already in use\00"
@.str.78 = [33 x i8] c"Software caused connection abort\00"
@.str.79 = [24 x i8] c"Socket is not connected\00"
@.str.80 = [26 x i8] c"Socket type not supported\00"
@.str.81 = [28 x i8] c"Socket is already connected\00"
@.str.82 = [19 x i8] c"Operation canceled\00"
@.str.83 = [22 x i8] c"State not recoverable\00"
@.str.84 = [20 x i8] c"Previous owner died\00"
@.str.85 = [19 x i8] c"Streams pipe error\00"
@.str.86 = [34 x i8] c"Operation not supported on socket\00"
@.str.87 = [17 x i8] c"Message too long\00"
@.str.88 = [21 x i8] c"Connection timed out\00"
@.str.89 = [1 x i8] zeroinitializer
define i8* @_strerror_r(i32 %0, i32 %1, i32* %2) {
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32*
%7 = alloca i8*
store i32 %0, i32* %4
store i32 %1, i32* %5
store i32* %2, i32** %6
%8 = load i32, i32* %4
switch i32 %8, label %98 [
i32 0, label %9
i32 1, label %10
i32 2, label %11
i32 3, label %12
i32 4, label %13
i32 5, label %14
i32 6, label %15
i32 7, label %16
i32 8, label %17
i32 114, label %18
i32 9, label %19
i32 10, label %20
i32 89, label %21
i32 11, label %22
i32 12, label %23
i32 13, label %24
i32 14, label %25
i32 15, label %26
i32 16, label %27
i32 17, label %28
i32 18, label %29
i32 19, label %30
i32 20, label %31
i32 112, label %32
i32 115, label %33
i32 21, label %34
i32 22, label %35
i32 100, label %36
i32 23, label %37
i32 24, label %38
i32 25, label %39
i32 26, label %40
i32 27, label %41
i32 113, label %42
i32 28, label %43
i32 134, label %44
i32 29, label %45
i32 30, label %46
i32 31, label %47
i32 32, label %48
i32 33, label %49
i32 34, label %50
i32 42, label %51
i32 43, label %52
i32 35, label %53
i32 101, label %54
i32 37, label %55
i32 60, label %56
i32 62, label %57
i32 63, label %58
i32 64, label %59
i32 65, label %60
i32 66, label %61
i32 67, label %62
i32 68, label %63
i32 69, label %64
i32 70, label %65
i32 71, label %66
i32 93, label %67
i32 72, label %68
i32 74, label %69
i32 79, label %70
i32 80, label %71
i32 81, label %72
i32 82, label %73
i32 83, label %74
i32 38, label %75
i32 39, label %76
i32 36, label %77
i32 40, label %78
i32 105, label %79
i32 97, label %80
i32 91, label %81
i32 88, label %82
i32 92, label %83
i32 108, label %84
i32 111, label %85
i32 98, label %86
i32 103, label %87
i32 107, label %88
i32 94, label %89
i32 106, label %90
i32 125, label %91
i32 131, label %92
i32 130, label %93
i32 86, label %94
i32 95, label %95
i32 90, label %96
i32 110, label %97
]
9: ; preds = %3
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str, i64 0, i64 0), i8** %7
br label %99
10: ; preds = %3
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0), i8** %7
br label %99
11: ; preds = %3
store i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.2, i64 0, i64 0), i8** %7
br label %99
12: ; preds = %3
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3, i64 0, i64 0), i8** %7
br label %99
13: ; preds = %3
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.4, i64 0, i64 0), i8** %7
br label %99
14: ; preds = %3
store i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.5, i64 0, i64 0), i8** %7
br label %99
15: ; preds = %3
store i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.6, i64 0, i64 0), i8** %7
br label %99
16: ; preds = %3
store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.7, i64 0, i64 0), i8** %7
br label %99
17: ; preds = %3
store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.8, i64 0, i64 0), i8** %7
br label %99
18: ; preds = %3
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.9, i64 0, i64 0), i8** %7
br label %99
19: ; preds = %3
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.10, i64 0, i64 0), i8** %7
br label %99
20: ; preds = %3
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0), i8** %7
br label %99
21: ; preds = %3
store i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.12, i64 0, i64 0), i8** %7
br label %99
22: ; preds = %3
store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.13, i64 0, i64 0), i8** %7
br label %99
23: ; preds = %3
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.14, i64 0, i64 0), i8** %7
br label %99
24: ; preds = %3
store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.15, i64 0, i64 0), i8** %7
br label %99
25: ; preds = %3
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.16, i64 0, i64 0), i8** %7
br label %99
26: ; preds = %3
store i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.17, i64 0, i64 0), i8** %7
br label %99
27: ; preds = %3
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.18, i64 0, i64 0), i8** %7
br label %99
28: ; preds = %3
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.19, i64 0, i64 0), i8** %7
br label %99
29: ; preds = %3
store i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.20, i64 0, i64 0), i8** %7
br label %99
30: ; preds = %3
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.21, i64 0, i64 0), i8** %7
br label %99
31: ; preds = %3
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.22, i64 0, i64 0), i8** %7
br label %99
32: ; preds = %3
store i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.23, i64 0, i64 0), i8** %7
br label %99
33: ; preds = %3
store i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.24, i64 0, i64 0), i8** %7
br label %99
34: ; preds = %3
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.25, i64 0, i64 0), i8** %7
br label %99
35: ; preds = %3
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.26, i64 0, i64 0), i8** %7
br label %99
36: ; preds = %3
store i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.27, i64 0, i64 0), i8** %7
br label %99
37: ; preds = %3
store i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.28, i64 0, i64 0), i8** %7
br label %99
38: ; preds = %3
store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.29, i64 0, i64 0), i8** %7
br label %99
39: ; preds = %3
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.30, i64 0, i64 0), i8** %7
br label %99
40: ; preds = %3
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.31, i64 0, i64 0), i8** %7
br label %99
41: ; preds = %3
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.32, i64 0, i64 0), i8** %7
br label %99
42: ; preds = %3
store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.33, i64 0, i64 0), i8** %7
br label %99
43: ; preds = %3
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.34, i64 0, i64 0), i8** %7
br label %99
44: ; preds = %3
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.35, i64 0, i64 0), i8** %7
br label %99
45: ; preds = %3
store i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.36, i64 0, i64 0), i8** %7
br label %99
46: ; preds = %3
store i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.37, i64 0, i64 0), i8** %7
br label %99
47: ; preds = %3
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.38, i64 0, i64 0), i8** %7
br label %99
48: ; preds = %3
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.39, i64 0, i64 0), i8** %7
br label %99
49: ; preds = %3
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.40, i64 0, i64 0), i8** %7
br label %99
50: ; preds = %3
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.41, i64 0, i64 0), i8** %7
br label %99
51: ; preds = %3
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.42, i64 0, i64 0), i8** %7
br label %99
52: ; preds = %3
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.43, i64 0, i64 0), i8** %7
br label %99
53: ; preds = %3
store i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.44, i64 0, i64 0), i8** %7
br label %99
54: ; preds = %3
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.45, i64 0, i64 0), i8** %7
br label %99
55: ; preds = %3
store i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.46, i64 0, i64 0), i8** %7
br label %99
56: ; preds = %3
store i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.47, i64 0, i64 0), i8** %7
br label %99
57: ; preds = %3
store i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.48, i64 0, i64 0), i8** %7
br label %99
58: ; preds = %3
store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.49, i64 0, i64 0), i8** %7
br label %99
59: ; preds = %3
store i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.50, i64 0, i64 0), i8** %7
br label %99
60: ; preds = %3
store i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.51, i64 0, i64 0), i8** %7
br label %99
61: ; preds = %3
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.52, i64 0, i64 0), i8** %7
br label %99
62: ; preds = %3
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.53, i64 0, i64 0), i8** %7
br label %99
63: ; preds = %3
store i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.54, i64 0, i64 0), i8** %7
br label %99
64: ; preds = %3
store i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.55, i64 0, i64 0), i8** %7
br label %99
65: ; preds = %3
store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.56, i64 0, i64 0), i8** %7
br label %99
66: ; preds = %3
store i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.57, i64 0, i64 0), i8** %7
br label %99
67: ; preds = %3
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.58, i64 0, i64 0), i8** %7
br label %99
68: ; preds = %3
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.59, i64 0, i64 0), i8** %7
br label %99
69: ; preds = %3
store i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.60, i64 0, i64 0), i8** %7
br label %99
70: ; preds = %3
store i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.61, i64 0, i64 0), i8** %7
br label %99
71: ; preds = %3
store i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.62, i64 0, i64 0), i8** %7
br label %99
72: ; preds = %3
store i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.63, i64 0, i64 0), i8** %7
br label %99
73: ; preds = %3
store i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.64, i64 0, i64 0), i8** %7
br label %99
74: ; preds = %3
store i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.65, i64 0, i64 0), i8** %7
br label %99
75: ; preds = %3
store i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.66, i64 0, i64 0), i8** %7
br label %99
76: ; preds = %3
store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.67, i64 0, i64 0), i8** %7
br label %99
77: ; preds = %3
store i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.68, i64 0, i64 0), i8** %7
br label %99
78: ; preds = %3
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.69, i64 0, i64 0), i8** %7
br label %99
79: ; preds = %3
store i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.70, i64 0, i64 0), i8** %7
br label %99
80: ; preds = %3
store i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.71, i64 0, i64 0), i8** %7
br label %99
81: ; preds = %3
store i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.72, i64 0, i64 0), i8** %7
br label %99
82: ; preds = %3
store i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.73, i64 0, i64 0), i8** %7
br label %99
83: ; preds = %3
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.74, i64 0, i64 0), i8** %7
br label %99
84: ; preds = %3
store i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.75, i64 0, i64 0), i8** %7
br label %99
85: ; preds = %3
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.76, i64 0, i64 0), i8** %7
br label %99
86: ; preds = %3
store i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.77, i64 0, i64 0), i8** %7
br label %99
87: ; preds = %3
store i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.78, i64 0, i64 0), i8** %7
br label %99
88: ; preds = %3
store i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.79, i64 0, i64 0), i8** %7
br label %99
89: ; preds = %3
store i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.80, i64 0, i64 0), i8** %7
br label %99
90: ; preds = %3
store i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.81, i64 0, i64 0), i8** %7
br label %99
91: ; preds = %3
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.82, i64 0, i64 0), i8** %7
br label %99
92: ; preds = %3
store i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.83, i64 0, i64 0), i8** %7
br label %99
93: ; preds = %3
store i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.84, i64 0, i64 0), i8** %7
br label %99
94: ; preds = %3
store i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.85, i64 0, i64 0), i8** %7
br label %99
95: ; preds = %3
store i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.86, i64 0, i64 0), i8** %7
br label %99
96: ; preds = %3
store i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.87, i64 0, i64 0), i8** %7
br label %99
97: ; preds = %3
store i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.88, i64 0, i64 0), i8** %7
br label %99
98: ; preds = %3
store i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.89, i64 0, i64 0), i8** %7
br label %99
99: ; preds = %98, %97, %96, %95, %94, %93, %92, %91, %90, %89, %88, %87, %86, %85, %84, %83, %82, %81, %80, %79, %78, %77, %76, %75, %74, %73, %72, %71, %70, %69, %68, %67, %66, %65, %64, %63, %62, %61, %60, %59, %58, %57, %56, %55, %54, %53, %52, %51, %50, %49, %48, %47, %46, %45, %44, %43, %42, %41, %40, %39, %38, %37, %36, %35, %34, %33, %32, %31, %30, %29, %28, %27, %26, %25, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14, %13, %12, %11, %10, %9
%100 = load i8*, i8** %7
ret i8* %100
}

LLVM IR (-O2):
@.str = [8 x i8] c"Success\00"
@.str.1 = [10 x i8] c"Not owner\00"
@.str.2 = [26 x i8] c"No such file or directory\00"
@.str.3 = [16 x i8] c"No such process\00"
@.str.4 = [24 x i8] c"Interrupted system call\00"
@.str.5 = [10 x i8] c"I/O error\00"
@.str.6 = [26 x i8] c"No such device or address\00"
@.str.7 = [18 x i8] c"Arg list too long\00"
@.str.8 = [18 x i8] c"Exec format error\00"
@.str.9 = [25 x i8] c"Socket already connected\00"
@.str.10 = [16 x i8] c"Bad file number\00"
@.str.11 = [12 x i8] c"No children\00"
@.str.12 = [29 x i8] c"Destination address required\00"
@.str.13 = [18 x i8] c"No more processes\00"
@.str.14 = [17 x i8] c"Not enough space\00"
@.str.15 = [18 x i8] c"Permission denied\00"
@.str.16 = [12 x i8] c"Bad address\00"
@.str.17 = [22 x i8] c"Block device required\00"
@.str.18 = [24 x i8] c"Device or resource busy\00"
@.str.19 = [12 x i8] c"File exists\00"
@.str.20 = [18 x i8] c"Cross-device link\00"
@.str.21 = [15 x i8] c"No such device\00"
@.str.22 = [16 x i8] c"Not a directory\00"
@.str.23 = [13 x i8] c"Host is down\00"
@.str.24 = [31 x i8] c"Connection already in progress\00"
@.str.25 = [15 x i8] c"Is a directory\00"
@.str.26 = [17 x i8] c"Invalid argument\00"
@.str.27 = [36 x i8] c"Network interface is not configured\00"
@.str.28 = [30 x i8] c"Too many open files in system\00"
@.str.29 = [20 x i8] c"Too many open files\00"
@.str.30 = [23 x i8] c"Not a character device\00"
@.str.31 = [15 x i8] c"Text file busy\00"
@.str.32 = [15 x i8] c"File too large\00"
@.str.33 = [20 x i8] c"Host is unreachable\00"
@.str.34 = [24 x i8] c"No space left on device\00"
@.str.35 = [14 x i8] c"Not supported\00"
@.str.36 = [13 x i8] c"Illegal seek\00"
@.str.37 = [22 x i8] c"Read-only file system\00"
@.str.38 = [15 x i8] c"Too many links\00"
@.str.39 = [12 x i8] c"Broken pipe\00"
@.str.40 = [14 x i8] c"Math argument\00"
@.str.41 = [17 x i8] c"Result too large\00"
@.str.42 = [27 x i8] c"No message of desired type\00"
@.str.43 = [19 x i8] c"Identifier removed\00"
@.str.44 = [9 x i8] c"Deadlock\00"
@.str.45 = [23 x i8] c"Network is unreachable\00"
@.str.46 = [8 x i8] c"No lock\00"
@.str.47 = [13 x i8] c"Not a stream\00"
@.str.48 = [21 x i8] c"Stream ioctl timeout\00"
@.str.49 = [20 x i8] c"No stream resources\00"
@.str.50 = [30 x i8] c"Machine is not on the network\00"
@.str.51 = [11 x i8] c"No package\00"
@.str.52 = [19 x i8] c"Resource is remote\00"
@.str.53 = [24 x i8] c"Virtual circuit is gone\00"
@.str.54 = [16 x i8] c"Advertise error\00"
@.str.55 = [14 x i8] c"Srmount error\00"
@.str.56 = [20 x i8] c"Communication error\00"
@.str.57 = [15 x i8] c"Protocol error\00"
@.str.58 = [17 x i8] c"Unknown protocol\00"
@.str.59 = [19 x i8] c"Multihop attempted\00"
@.str.60 = [12 x i8] c"Bad message\00"
@.str.61 = [38 x i8] c"Cannot access a needed shared library\00"
@.str.62 = [37 x i8] c"Accessing a corrupted shared library\00"
@.str.63 = [32 x i8] c".lib section in a.out corrupted\00"
@.str.64 = [62 x i8] c"Attempting to link in more shared libraries than system limit\00"
@.str.65 = [38 x i8] c"Cannot exec a shared library directly\00"
@.str.66 = [25 x i8] c"Function not implemented\00"
@.str.67 = [20 x i8] c"Directory not empty\00"
@.str.68 = [27 x i8] c"File or path name too long\00"
@.str.69 = [24 x i8] c"Too many symbolic links\00"
@.str.70 = [26 x i8] c"No buffer space available\00"
@.str.71 = [48 x i8] c"Address family not supported by protocol family\00"
@.str.72 = [31 x i8] c"Protocol wrong type for socket\00"
@.str.73 = [31 x i8] c"Socket operation on non-socket\00"
@.str.74 = [23 x i8] c"Protocol not available\00"
@.str.75 = [33 x i8] c"Can't send after socket shutdown\00"
@.str.76 = [19 x i8] c"Connection refused\00"
@.str.77 = [23 x i8] c"Address already in use\00"
@.str.78 = [33 x i8] c"Software caused connection abort\00"
@.str.79 = [24 x i8] c"Socket is not connected\00"
@.str.80 = [26 x i8] c"Socket type not supported\00"
@.str.81 = [28 x i8] c"Socket is already connected\00"
@.str.82 = [19 x i8] c"Operation canceled\00"
@.str.83 = [22 x i8] c"State not recoverable\00"
@.str.84 = [20 x i8] c"Previous owner died\00"
@.str.85 = [19 x i8] c"Streams pipe error\00"
@.str.86 = [34 x i8] c"Operation not supported on socket\00"
@.str.87 = [17 x i8] c"Message too long\00"
@.str.88 = [21 x i8] c"Connection timed out\00"
@.str.89 = [1 x i8] zeroinitializer
@reltable._strerror_r = [135 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([10 x i8]* @.str.1 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([26 x i8]* @.str.2 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([16 x i8]* @.str.3 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.4 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([10 x i8]* @.str.5 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([26 x i8]* @.str.6 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([18 x i8]* @.str.7 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([18 x i8]* @.str.8 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([16 x i8]* @.str.10 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.11 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([18 x i8]* @.str.13 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @.str.14 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([18 x i8]* @.str.15 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.16 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([22 x i8]* @.str.17 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.18 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.19 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([18 x i8]* @.str.20 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([15 x i8]* @.str.21 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([16 x i8]* @.str.22 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([15 x i8]* @.str.25 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @.str.26 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([30 x i8]* @.str.28 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([20 x i8]* @.str.29 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.30 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([15 x i8]* @.str.31 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([15 x i8]* @.str.32 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.34 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([13 x i8]* @.str.36 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([22 x i8]* @.str.37 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([15 x i8]* @.str.38 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.39 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([14 x i8]* @.str.40 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @.str.41 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.44 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x i8]* @.str.68 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.46 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([25 x i8]* @.str.66 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([20 x i8]* @.str.67 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.69 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x i8]* @.str.42 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([19 x i8]* @.str.43 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([13 x i8]* @.str.47 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([21 x i8]* @.str.48 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([20 x i8]* @.str.49 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([30 x i8]* @.str.50 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([11 x i8]* @.str.51 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([19 x i8]* @.str.52 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.53 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([16 x i8]* @.str.54 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([14 x i8]* @.str.55 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([20 x i8]* @.str.56 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([15 x i8]* @.str.57 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([19 x i8]* @.str.59 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.60 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([38 x i8]* @.str.61 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([37 x i8]* @.str.62 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([32 x i8]* @.str.63 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([62 x i8]* @.str.64 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([38 x i8]* @.str.65 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([19 x i8]* @.str.85 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([31 x i8]* @.str.73 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([29 x i8]* @.str.12 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @.str.87 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([31 x i8]* @.str.72 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.74 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @.str.58 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([26 x i8]* @.str.80 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([34 x i8]* @.str.86 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([48 x i8]* @.str.71 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.77 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([36 x i8]* @.str.27 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.45 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([33 x i8]* @.str.78 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([26 x i8]* @.str.70 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.81 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.79 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([33 x i8]* @.str.75 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([21 x i8]* @.str.88 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([19 x i8]* @.str.76 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([13 x i8]* @.str.23 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([20 x i8]* @.str.33 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([25 x i8]* @.str.9 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([31 x i8]* @.str.24 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([19 x i8]* @.str.82 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([20 x i8]* @.str.84 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([22 x i8]* @.str.83 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([1 x i8]* @.str.89 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([14 x i8]* @.str.35 to i64), i64 ptrtoint ([135 x i32]* @reltable._strerror_r to i64)) to i32)]
define i8* @_strerror_r(i32 %0, i32 %1, i32* nocapture readnone %2) {
%4 = icmp ult i32 %0, 135
br i1 %4, label %5, label %9
5: ; preds = %3
%6 = sext i32 %0 to i64
%7 = shl i64 %6, 2
%8 = call i8* @llvm.load.relative.i64(i8* bitcast ([135 x i32]* @reltable._strerror_r to i8*), i64 %7)
br label %9
9: ; preds = %3, %5
%10 = phi i8* [ %8, %5 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.89, i64 0, i64 0), %3 ]
ret i8* %10
}