const char *p2_table(unsigned pow) {
  static const char *pow2[] = {
      "1",
      "2",
      "4",
      "8",
      "16",
      "32",
      "64",
      "128",
      "256",
      "512",
      "1024",
      "2048",
      "4096",
      "8192",
      "16384",
      "32768",
      "65536",
      "131072",
      "262144",
      "524288",
      "1048576",
      "2097152",
      "4194304",
      "8388608",
      "16777216",
      "33554432",
      "67108864",
      "134217728",
      "268435456",
      "536870912",
      "1073741824",
      "2147483648",
      "4294967296",
      "8589934592",
      "17179869184",
      "34359738368",
      "68719476736",
      "137438953472",
      "274877906944",
      "549755813888",
      "1099511627776",
      "2199023255552",
      "4398046511104",
      "8796093022208",
      "17592186044416",
      "35184372088832",
      "70368744177664",
      "140737488355328",
      "281474976710656",
      "562949953421312",
      "1125899906842624",
      "2251799813685248",
      "4503599627370496",
      "9007199254740992",
      "18014398509481984",
      "36028797018963968",
      "72057594037927936",
      "144115188075855872",
      "288230376151711744",
      "576460752303423488",
      "1152921504606846976",
      "2305843009213693952",
      "4611686018427387904",
      "9223372036854775808",
      "18446744073709551616",
      "36893488147419103232",
      "73786976294838206464",
      "147573952589676412928",
      "295147905179352825856",
      "590295810358705651712",
      "1180591620717411303424",
      "2361183241434822606848",
      "4722366482869645213696",
      "9444732965739290427392",
      "18889465931478580854784",
      "37778931862957161709568",
      "75557863725914323419136",
      "151115727451828646838272",
      "302231454903657293676544",
      "604462909807314587353088",
      "1208925819614629174706176",
      "2417851639229258349412352",
      "4835703278458516698824704",
      "9671406556917033397649408",
      "19342813113834066795298816",
      "38685626227668133590597632",
      "77371252455336267181195264",
      "154742504910672534362390528",
      "309485009821345068724781056",
      "618970019642690137449562112",
      "1237940039285380274899124224",
      "2475880078570760549798248448",
      "4951760157141521099596496896",
      "9903520314283042199192993792",
      "19807040628566084398385987584",
      "39614081257132168796771975168",
      "79228162514264337593543950336",
      "158456325028528675187087900672",
      "316912650057057350374175801344",
      "633825300114114700748351602688",
      "1267650600228229401496703205376",
      "2535301200456458802993406410752",
      "5070602400912917605986812821504",
      "10141204801825835211973625643008",
      "20282409603651670423947251286016",
      "40564819207303340847894502572032",
      "81129638414606681695789005144064",
      "162259276829213363391578010288128",
      "324518553658426726783156020576256",
      "649037107316853453566312041152512",
      "1298074214633706907132624082305024",
      "2596148429267413814265248164610048",
      "5192296858534827628530496329220096",
      "10384593717069655257060992658440192",
      "20769187434139310514121985316880384",
      "41538374868278621028243970633760768",
      "83076749736557242056487941267521536",
      "166153499473114484112975882535043072",
      "332306998946228968225951765070086144",
      "664613997892457936451903530140172288",
      "1329227995784915872903807060280344576",
      "2658455991569831745807614120560689152",
      "5316911983139663491615228241121378304",
      "10633823966279326983230456482242756608",
      "21267647932558653966460912964485513216",
      "42535295865117307932921825928971026432",
      "85070591730234615865843651857942052864",
      "170141183460469231731687303715884105728",
  };
  if (pow <= 127)
    return pow2[pow];
  return "";
}


x86 assembly (clang, -O0):
<p2_table>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0xc(%rbp)
cmpl   $0x7f,-0xc(%rbp)
ja     212a <p2_table+0x2a>
mov    -0xc(%rbp),%eax
mov    %eax,%ecx
lea    0x2f13(%rip),%rax
mov    (%rax,%rcx,8),%rax
mov    %rax,-0x8(%rbp)
jmp    2135 <p2_table+0x35>
lea    0xed0(%rip),%rax
mov    %rax,-0x8(%rbp)
mov    -0x8(%rbp),%rax
pop    %rbp
ret

x86 assembly (clang, -O2):
<p2_table>:
cmp    $0x7f,%edi
ja     1116 <p2_table+0x16>
mov    %edi,%eax
lea    0xef2(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
ret
lea    0x10e4(%rip),%rax
ret

LLVM IR (-O0):
@p2_table.pow2 = internal global [128 x i8*] [i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i32 0, i32 0), i8* getelementptr inbounds ([2 x i8], [2 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 ([4 x i8], [4 x i8]* @.str.7, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i32 0, i32 0), i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.9, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.10, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.11, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i32 0, i32 0), i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.14, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i32 0, i32 0), i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.17, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.18, i32 0, i32 0), i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.19, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.20, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.21, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.22, i32 0, i32 0), i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.23, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.24, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.25, i32 0, i32 0), i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.26, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.27, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.28, i32 0, i32 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.29, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.30, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.31, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.32, i32 0, i32 0), i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.33, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.34, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.35, i32 0, i32 0), i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.36, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.37, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.38, i32 0, i32 0), i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.39, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.40, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.41, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.42, i32 0, i32 0), i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.43, i32 0, i32 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.44, i32 0, i32 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.45, i32 0, i32 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.46, i32 0, i32 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.47, i32 0, i32 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.48, i32 0, i32 0), i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.49, i32 0, i32 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.50, i32 0, i32 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.51, i32 0, i32 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.52, i32 0, i32 0), i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.53, i32 0, i32 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.54, i32 0, i32 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.55, i32 0, i32 0), i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.56, i32 0, i32 0), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.57, i32 0, i32 0), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.58, i32 0, i32 0), i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.59, i32 0, i32 0), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.60, i32 0, i32 0), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.61, i32 0, i32 0), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.62, i32 0, i32 0), i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.63, i32 0, i32 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.64, i32 0, i32 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.65, i32 0, i32 0), i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.66, i32 0, i32 0), i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.67, i32 0, i32 0), i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.68, i32 0, i32 0), i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.69, i32 0, i32 0), i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.70, i32 0, i32 0), i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.71, i32 0, i32 0), i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.72, i32 0, i32 0), i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.73, i32 0, i32 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.74, i32 0, i32 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.75, i32 0, i32 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.76, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.77, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.78, i32 0, i32 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.79, i32 0, i32 0), i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.80, i32 0, i32 0), i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.81, i32 0, i32 0), i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.82, i32 0, i32 0), i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.83, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.84, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.85, i32 0, i32 0), i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.86, i32 0, i32 0), i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.87, i32 0, i32 0), i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.88, i32 0, i32 0), i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.89, i32 0, i32 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.90, i32 0, i32 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.91, i32 0, i32 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.92, i32 0, i32 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.93, i32 0, i32 0), i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.94, i32 0, i32 0), i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.95, i32 0, i32 0), i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.96, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.97, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.98, i32 0, i32 0), i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.99, i32 0, i32 0), i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.100, i32 0, i32 0), i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.101, i32 0, i32 0), i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.102, i32 0, i32 0), i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.103, i32 0, i32 0), i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.104, i32 0, i32 0), i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.105, i32 0, i32 0), i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.106, i32 0, i32 0), i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.107, i32 0, i32 0), i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.108, i32 0, i32 0), i8* getelementptr inbounds ([34 x i8], [34 x i8]* @.str.109, i32 0, i32 0), i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.110, i32 0, i32 0), i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.111, i32 0, i32 0), i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.112, i32 0, i32 0), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.113, i32 0, i32 0), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.114, i32 0, i32 0), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.115, i32 0, i32 0), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.116, i32 0, i32 0), i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.117, i32 0, i32 0), i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.118, i32 0, i32 0), i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.119, i32 0, i32 0), i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.120, i32 0, i32 0), i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.121, i32 0, i32 0), i8* getelementptr inbounds ([38 x i8], [38 x i8]* @.str.122, i32 0, i32 0), i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.123, i32 0, i32 0), i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.124, i32 0, i32 0), i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.125, i32 0, i32 0), i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.126, i32 0, i32 0), i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.127, i32 0, i32 0)]
@.str = [2 x i8] c"1\00"
@.str.1 = [2 x i8] c"2\00"
@.str.2 = [2 x i8] c"4\00"
@.str.3 = [2 x i8] c"8\00"
@.str.4 = [3 x i8] c"16\00"
@.str.5 = [3 x i8] c"32\00"
@.str.6 = [3 x i8] c"64\00"
@.str.7 = [4 x i8] c"128\00"
@.str.8 = [4 x i8] c"256\00"
@.str.9 = [4 x i8] c"512\00"
@.str.10 = [5 x i8] c"1024\00"
@.str.11 = [5 x i8] c"2048\00"
@.str.12 = [5 x i8] c"4096\00"
@.str.13 = [5 x i8] c"8192\00"
@.str.14 = [6 x i8] c"16384\00"
@.str.15 = [6 x i8] c"32768\00"
@.str.16 = [6 x i8] c"65536\00"
@.str.17 = [7 x i8] c"131072\00"
@.str.18 = [7 x i8] c"262144\00"
@.str.19 = [7 x i8] c"524288\00"
@.str.20 = [8 x i8] c"1048576\00"
@.str.21 = [8 x i8] c"2097152\00"
@.str.22 = [8 x i8] c"4194304\00"
@.str.23 = [8 x i8] c"8388608\00"
@.str.24 = [9 x i8] c"16777216\00"
@.str.25 = [9 x i8] c"33554432\00"
@.str.26 = [9 x i8] c"67108864\00"
@.str.27 = [10 x i8] c"134217728\00"
@.str.28 = [10 x i8] c"268435456\00"
@.str.29 = [10 x i8] c"536870912\00"
@.str.30 = [11 x i8] c"1073741824\00"
@.str.31 = [11 x i8] c"2147483648\00"
@.str.32 = [11 x i8] c"4294967296\00"
@.str.33 = [11 x i8] c"8589934592\00"
@.str.34 = [12 x i8] c"17179869184\00"
@.str.35 = [12 x i8] c"34359738368\00"
@.str.36 = [12 x i8] c"68719476736\00"
@.str.37 = [13 x i8] c"137438953472\00"
@.str.38 = [13 x i8] c"274877906944\00"
@.str.39 = [13 x i8] c"549755813888\00"
@.str.40 = [14 x i8] c"1099511627776\00"
@.str.41 = [14 x i8] c"2199023255552\00"
@.str.42 = [14 x i8] c"4398046511104\00"
@.str.43 = [14 x i8] c"8796093022208\00"
@.str.44 = [15 x i8] c"17592186044416\00"
@.str.45 = [15 x i8] c"35184372088832\00"
@.str.46 = [15 x i8] c"70368744177664\00"
@.str.47 = [16 x i8] c"140737488355328\00"
@.str.48 = [16 x i8] c"281474976710656\00"
@.str.49 = [16 x i8] c"562949953421312\00"
@.str.50 = [17 x i8] c"1125899906842624\00"
@.str.51 = [17 x i8] c"2251799813685248\00"
@.str.52 = [17 x i8] c"4503599627370496\00"
@.str.53 = [17 x i8] c"9007199254740992\00"
@.str.54 = [18 x i8] c"18014398509481984\00"
@.str.55 = [18 x i8] c"36028797018963968\00"
@.str.56 = [18 x i8] c"72057594037927936\00"
@.str.57 = [19 x i8] c"144115188075855872\00"
@.str.58 = [19 x i8] c"288230376151711744\00"
@.str.59 = [19 x i8] c"576460752303423488\00"
@.str.60 = [20 x i8] c"1152921504606846976\00"
@.str.61 = [20 x i8] c"2305843009213693952\00"
@.str.62 = [20 x i8] c"4611686018427387904\00"
@.str.63 = [20 x i8] c"9223372036854775808\00"
@.str.64 = [21 x i8] c"18446744073709551616\00"
@.str.65 = [21 x i8] c"36893488147419103232\00"
@.str.66 = [21 x i8] c"73786976294838206464\00"
@.str.67 = [22 x i8] c"147573952589676412928\00"
@.str.68 = [22 x i8] c"295147905179352825856\00"
@.str.69 = [22 x i8] c"590295810358705651712\00"
@.str.70 = [23 x i8] c"1180591620717411303424\00"
@.str.71 = [23 x i8] c"2361183241434822606848\00"
@.str.72 = [23 x i8] c"4722366482869645213696\00"
@.str.73 = [23 x i8] c"9444732965739290427392\00"
@.str.74 = [24 x i8] c"18889465931478580854784\00"
@.str.75 = [24 x i8] c"37778931862957161709568\00"
@.str.76 = [24 x i8] c"75557863725914323419136\00"
@.str.77 = [25 x i8] c"151115727451828646838272\00"
@.str.78 = [25 x i8] c"302231454903657293676544\00"
@.str.79 = [25 x i8] c"604462909807314587353088\00"
@.str.80 = [26 x i8] c"1208925819614629174706176\00"
@.str.81 = [26 x i8] c"2417851639229258349412352\00"
@.str.82 = [26 x i8] c"4835703278458516698824704\00"
@.str.83 = [26 x i8] c"9671406556917033397649408\00"
@.str.84 = [27 x i8] c"19342813113834066795298816\00"
@.str.85 = [27 x i8] c"38685626227668133590597632\00"
@.str.86 = [27 x i8] c"77371252455336267181195264\00"
@.str.87 = [28 x i8] c"154742504910672534362390528\00"
@.str.88 = [28 x i8] c"309485009821345068724781056\00"
@.str.89 = [28 x i8] c"618970019642690137449562112\00"
@.str.90 = [29 x i8] c"1237940039285380274899124224\00"
@.str.91 = [29 x i8] c"2475880078570760549798248448\00"
@.str.92 = [29 x i8] c"4951760157141521099596496896\00"
@.str.93 = [29 x i8] c"9903520314283042199192993792\00"
@.str.94 = [30 x i8] c"19807040628566084398385987584\00"
@.str.95 = [30 x i8] c"39614081257132168796771975168\00"
@.str.96 = [30 x i8] c"79228162514264337593543950336\00"
@.str.97 = [31 x i8] c"158456325028528675187087900672\00"
@.str.98 = [31 x i8] c"316912650057057350374175801344\00"
@.str.99 = [31 x i8] c"633825300114114700748351602688\00"
@.str.100 = [32 x i8] c"1267650600228229401496703205376\00"
@.str.101 = [32 x i8] c"2535301200456458802993406410752\00"
@.str.102 = [32 x i8] c"5070602400912917605986812821504\00"
@.str.103 = [33 x i8] c"10141204801825835211973625643008\00"
@.str.104 = [33 x i8] c"20282409603651670423947251286016\00"
@.str.105 = [33 x i8] c"40564819207303340847894502572032\00"
@.str.106 = [33 x i8] c"81129638414606681695789005144064\00"
@.str.107 = [34 x i8] c"162259276829213363391578010288128\00"
@.str.108 = [34 x i8] c"324518553658426726783156020576256\00"
@.str.109 = [34 x i8] c"649037107316853453566312041152512\00"
@.str.110 = [35 x i8] c"1298074214633706907132624082305024\00"
@.str.111 = [35 x i8] c"2596148429267413814265248164610048\00"
@.str.112 = [35 x i8] c"5192296858534827628530496329220096\00"
@.str.113 = [36 x i8] c"10384593717069655257060992658440192\00"
@.str.114 = [36 x i8] c"20769187434139310514121985316880384\00"
@.str.115 = [36 x i8] c"41538374868278621028243970633760768\00"
@.str.116 = [36 x i8] c"83076749736557242056487941267521536\00"
@.str.117 = [37 x i8] c"166153499473114484112975882535043072\00"
@.str.118 = [37 x i8] c"332306998946228968225951765070086144\00"
@.str.119 = [37 x i8] c"664613997892457936451903530140172288\00"
@.str.120 = [38 x i8] c"1329227995784915872903807060280344576\00"
@.str.121 = [38 x i8] c"2658455991569831745807614120560689152\00"
@.str.122 = [38 x i8] c"5316911983139663491615228241121378304\00"
@.str.123 = [39 x i8] c"10633823966279326983230456482242756608\00"
@.str.124 = [39 x i8] c"21267647932558653966460912964485513216\00"
@.str.125 = [39 x i8] c"42535295865117307932921825928971026432\00"
@.str.126 = [39 x i8] c"85070591730234615865843651857942052864\00"
@.str.127 = [40 x i8] c"170141183460469231731687303715884105728\00"
@.str.128 = [1 x i8] zeroinitializer
define i8* @p2_table(i32 %0) {
%2 = alloca i8*
%3 = alloca i32
store i32 %0, i32* %3
%4 = load i32, i32* %3
%5 = icmp ule i32 %4, 127
br i1 %5, label %6, label %11
6: ; preds = %1
%7 = load i32, i32* %3
%8 = zext i32 %7 to i64
%9 = getelementptr inbounds [128 x i8*], [128 x i8*]* @p2_table.pow2, i64 0, i64 %8
%10 = load i8*, i8** %9
store i8* %10, i8** %2
br label %12
11: ; preds = %1
store i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.128, i64 0, i64 0), i8** %2
br label %12
12: ; preds = %11, %6
%13 = load i8*, i8** %2
ret i8* %13
}

LLVM IR (-O2):
@reltable.p2_table = internal unnamed_addr constant [128 x i32] [i32 trunc (i64 sub (i64 ptrtoint ([2 x i8]* @.str to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([2 x i8]* @.str.1 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([2 x i8]* @.str.2 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([2 x i8]* @.str.3 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.4 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.5 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([3 x i8]* @.str.6 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.7 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.8 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([4 x i8]* @.str.9 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.10 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.11 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.12 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([5 x i8]* @.str.13 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.14 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.15 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([6 x i8]* @.str.16 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.17 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.18 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([7 x i8]* @.str.19 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.20 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.21 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.22 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([8 x i8]* @.str.23 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.24 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.25 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([9 x i8]* @.str.26 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([10 x i8]* @.str.27 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([10 x i8]* @.str.28 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([10 x i8]* @.str.29 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([11 x i8]* @.str.30 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([11 x i8]* @.str.31 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([11 x i8]* @.str.32 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([11 x i8]* @.str.33 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.34 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.35 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([12 x i8]* @.str.36 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([13 x i8]* @.str.37 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([13 x i8]* @.str.38 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([13 x i8]* @.str.39 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([14 x i8]* @.str.40 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([14 x i8]* @.str.41 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([14 x i8]* @.str.42 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([14 x i8]* @.str.43 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([15 x i8]* @.str.44 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([15 x i8]* @.str.45 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([15 x i8]* @.str.46 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([16 x i8]* @.str.47 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([16 x i8]* @.str.48 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([16 x i8]* @.str.49 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @.str.50 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @.str.51 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @.str.52 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([17 x i8]* @.str.53 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([18 x i8]* @.str.54 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([18 x i8]* @.str.55 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([18 x i8]* @.str.56 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([19 x i8]* @.str.57 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([19 x i8]* @.str.58 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([19 x i8]* @.str.59 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([20 x i8]* @.str.60 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([20 x i8]* @.str.61 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([20 x i8]* @.str.62 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([20 x i8]* @.str.63 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([21 x i8]* @.str.64 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([21 x i8]* @.str.65 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([21 x i8]* @.str.66 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([22 x i8]* @.str.67 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([22 x i8]* @.str.68 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([22 x i8]* @.str.69 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.70 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.71 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.72 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([23 x i8]* @.str.73 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.74 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.75 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([24 x i8]* @.str.76 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([25 x i8]* @.str.77 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([25 x i8]* @.str.78 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([25 x i8]* @.str.79 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([26 x i8]* @.str.80 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([26 x i8]* @.str.81 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([26 x i8]* @.str.82 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([26 x i8]* @.str.83 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x i8]* @.str.84 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x i8]* @.str.85 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([27 x i8]* @.str.86 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.87 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.88 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([28 x i8]* @.str.89 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([29 x i8]* @.str.90 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([29 x i8]* @.str.91 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([29 x i8]* @.str.92 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([29 x i8]* @.str.93 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([30 x i8]* @.str.94 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([30 x i8]* @.str.95 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([30 x i8]* @.str.96 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([31 x i8]* @.str.97 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([31 x i8]* @.str.98 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([31 x i8]* @.str.99 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([32 x i8]* @.str.100 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([32 x i8]* @.str.101 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([32 x i8]* @.str.102 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([33 x i8]* @.str.103 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([33 x i8]* @.str.104 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([33 x i8]* @.str.105 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([33 x i8]* @.str.106 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([34 x i8]* @.str.107 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([34 x i8]* @.str.108 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([34 x i8]* @.str.109 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([35 x i8]* @.str.110 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([35 x i8]* @.str.111 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([35 x i8]* @.str.112 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([36 x i8]* @.str.113 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([36 x i8]* @.str.114 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([36 x i8]* @.str.115 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([36 x i8]* @.str.116 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([37 x i8]* @.str.117 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([37 x i8]* @.str.118 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([37 x i8]* @.str.119 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([38 x i8]* @.str.120 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([38 x i8]* @.str.121 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([38 x i8]* @.str.122 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([39 x i8]* @.str.123 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([39 x i8]* @.str.124 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([39 x i8]* @.str.125 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([39 x i8]* @.str.126 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32), i32 trunc (i64 sub (i64 ptrtoint ([40 x i8]* @.str.127 to i64), i64 ptrtoint ([128 x i32]* @reltable.p2_table to i64)) to i32)]
@.str = [2 x i8] c"1\00"
@.str.1 = [2 x i8] c"2\00"
@.str.2 = [2 x i8] c"4\00"
@.str.3 = [2 x i8] c"8\00"
@.str.4 = [3 x i8] c"16\00"
@.str.5 = [3 x i8] c"32\00"
@.str.6 = [3 x i8] c"64\00"
@.str.7 = [4 x i8] c"128\00"
@.str.8 = [4 x i8] c"256\00"
@.str.9 = [4 x i8] c"512\00"
@.str.10 = [5 x i8] c"1024\00"
@.str.11 = [5 x i8] c"2048\00"
@.str.12 = [5 x i8] c"4096\00"
@.str.13 = [5 x i8] c"8192\00"
@.str.14 = [6 x i8] c"16384\00"
@.str.15 = [6 x i8] c"32768\00"
@.str.16 = [6 x i8] c"65536\00"
@.str.17 = [7 x i8] c"131072\00"
@.str.18 = [7 x i8] c"262144\00"
@.str.19 = [7 x i8] c"524288\00"
@.str.20 = [8 x i8] c"1048576\00"
@.str.21 = [8 x i8] c"2097152\00"
@.str.22 = [8 x i8] c"4194304\00"
@.str.23 = [8 x i8] c"8388608\00"
@.str.24 = [9 x i8] c"16777216\00"
@.str.25 = [9 x i8] c"33554432\00"
@.str.26 = [9 x i8] c"67108864\00"
@.str.27 = [10 x i8] c"134217728\00"
@.str.28 = [10 x i8] c"268435456\00"
@.str.29 = [10 x i8] c"536870912\00"
@.str.30 = [11 x i8] c"1073741824\00"
@.str.31 = [11 x i8] c"2147483648\00"
@.str.32 = [11 x i8] c"4294967296\00"
@.str.33 = [11 x i8] c"8589934592\00"
@.str.34 = [12 x i8] c"17179869184\00"
@.str.35 = [12 x i8] c"34359738368\00"
@.str.36 = [12 x i8] c"68719476736\00"
@.str.37 = [13 x i8] c"137438953472\00"
@.str.38 = [13 x i8] c"274877906944\00"
@.str.39 = [13 x i8] c"549755813888\00"
@.str.40 = [14 x i8] c"1099511627776\00"
@.str.41 = [14 x i8] c"2199023255552\00"
@.str.42 = [14 x i8] c"4398046511104\00"
@.str.43 = [14 x i8] c"8796093022208\00"
@.str.44 = [15 x i8] c"17592186044416\00"
@.str.45 = [15 x i8] c"35184372088832\00"
@.str.46 = [15 x i8] c"70368744177664\00"
@.str.47 = [16 x i8] c"140737488355328\00"
@.str.48 = [16 x i8] c"281474976710656\00"
@.str.49 = [16 x i8] c"562949953421312\00"
@.str.50 = [17 x i8] c"1125899906842624\00"
@.str.51 = [17 x i8] c"2251799813685248\00"
@.str.52 = [17 x i8] c"4503599627370496\00"
@.str.53 = [17 x i8] c"9007199254740992\00"
@.str.54 = [18 x i8] c"18014398509481984\00"
@.str.55 = [18 x i8] c"36028797018963968\00"
@.str.56 = [18 x i8] c"72057594037927936\00"
@.str.57 = [19 x i8] c"144115188075855872\00"
@.str.58 = [19 x i8] c"288230376151711744\00"
@.str.59 = [19 x i8] c"576460752303423488\00"
@.str.60 = [20 x i8] c"1152921504606846976\00"
@.str.61 = [20 x i8] c"2305843009213693952\00"
@.str.62 = [20 x i8] c"4611686018427387904\00"
@.str.63 = [20 x i8] c"9223372036854775808\00"
@.str.64 = [21 x i8] c"18446744073709551616\00"
@.str.65 = [21 x i8] c"36893488147419103232\00"
@.str.66 = [21 x i8] c"73786976294838206464\00"
@.str.67 = [22 x i8] c"147573952589676412928\00"
@.str.68 = [22 x i8] c"295147905179352825856\00"
@.str.69 = [22 x i8] c"590295810358705651712\00"
@.str.70 = [23 x i8] c"1180591620717411303424\00"
@.str.71 = [23 x i8] c"2361183241434822606848\00"
@.str.72 = [23 x i8] c"4722366482869645213696\00"
@.str.73 = [23 x i8] c"9444732965739290427392\00"
@.str.74 = [24 x i8] c"18889465931478580854784\00"
@.str.75 = [24 x i8] c"37778931862957161709568\00"
@.str.76 = [24 x i8] c"75557863725914323419136\00"
@.str.77 = [25 x i8] c"151115727451828646838272\00"
@.str.78 = [25 x i8] c"302231454903657293676544\00"
@.str.79 = [25 x i8] c"604462909807314587353088\00"
@.str.80 = [26 x i8] c"1208925819614629174706176\00"
@.str.81 = [26 x i8] c"2417851639229258349412352\00"
@.str.82 = [26 x i8] c"4835703278458516698824704\00"
@.str.83 = [26 x i8] c"9671406556917033397649408\00"
@.str.84 = [27 x i8] c"19342813113834066795298816\00"
@.str.85 = [27 x i8] c"38685626227668133590597632\00"
@.str.86 = [27 x i8] c"77371252455336267181195264\00"
@.str.87 = [28 x i8] c"154742504910672534362390528\00"
@.str.88 = [28 x i8] c"309485009821345068724781056\00"
@.str.89 = [28 x i8] c"618970019642690137449562112\00"
@.str.90 = [29 x i8] c"1237940039285380274899124224\00"
@.str.91 = [29 x i8] c"2475880078570760549798248448\00"
@.str.92 = [29 x i8] c"4951760157141521099596496896\00"
@.str.93 = [29 x i8] c"9903520314283042199192993792\00"
@.str.94 = [30 x i8] c"19807040628566084398385987584\00"
@.str.95 = [30 x i8] c"39614081257132168796771975168\00"
@.str.96 = [30 x i8] c"79228162514264337593543950336\00"
@.str.97 = [31 x i8] c"158456325028528675187087900672\00"
@.str.98 = [31 x i8] c"316912650057057350374175801344\00"
@.str.99 = [31 x i8] c"633825300114114700748351602688\00"
@.str.100 = [32 x i8] c"1267650600228229401496703205376\00"
@.str.101 = [32 x i8] c"2535301200456458802993406410752\00"
@.str.102 = [32 x i8] c"5070602400912917605986812821504\00"
@.str.103 = [33 x i8] c"10141204801825835211973625643008\00"
@.str.104 = [33 x i8] c"20282409603651670423947251286016\00"
@.str.105 = [33 x i8] c"40564819207303340847894502572032\00"
@.str.106 = [33 x i8] c"81129638414606681695789005144064\00"
@.str.107 = [34 x i8] c"162259276829213363391578010288128\00"
@.str.108 = [34 x i8] c"324518553658426726783156020576256\00"
@.str.109 = [34 x i8] c"649037107316853453566312041152512\00"
@.str.110 = [35 x i8] c"1298074214633706907132624082305024\00"
@.str.111 = [35 x i8] c"2596148429267413814265248164610048\00"
@.str.112 = [35 x i8] c"5192296858534827628530496329220096\00"
@.str.113 = [36 x i8] c"10384593717069655257060992658440192\00"
@.str.114 = [36 x i8] c"20769187434139310514121985316880384\00"
@.str.115 = [36 x i8] c"41538374868278621028243970633760768\00"
@.str.116 = [36 x i8] c"83076749736557242056487941267521536\00"
@.str.117 = [37 x i8] c"166153499473114484112975882535043072\00"
@.str.118 = [37 x i8] c"332306998946228968225951765070086144\00"
@.str.119 = [37 x i8] c"664613997892457936451903530140172288\00"
@.str.120 = [38 x i8] c"1329227995784915872903807060280344576\00"
@.str.121 = [38 x i8] c"2658455991569831745807614120560689152\00"
@.str.122 = [38 x i8] c"5316911983139663491615228241121378304\00"
@.str.123 = [39 x i8] c"10633823966279326983230456482242756608\00"
@.str.124 = [39 x i8] c"21267647932558653966460912964485513216\00"
@.str.125 = [39 x i8] c"42535295865117307932921825928971026432\00"
@.str.126 = [39 x i8] c"85070591730234615865843651857942052864\00"
@.str.127 = [40 x i8] c"170141183460469231731687303715884105728\00"
@.str.128 = [1 x i8] zeroinitializer
define i8* @p2_table(i32 %0) {
%2 = icmp ult i32 %0, 128
br i1 %2, label %3, label %7
3: ; preds = %1
%4 = zext i32 %0 to i64
%5 = shl i64 %4, 2
%6 = call i8* @llvm.load.relative.i64(i8* bitcast ([128 x i32]* @reltable.p2_table to i8*), i64 %5)
br label %7
7: ; preds = %1, %3
%8 = phi i8* [ %6, %3 ], [ getelementptr inbounds ([1 x i8], [1 x i8]* @.str.128, i64 0, i64 0), %1 ]
ret i8* %8
}