Guest User

Untitled

a guest
Feb 25th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 105.65 KB | None | 0 0
  1. ; ModuleID = 'bad-position-simple.bad_position_simple3.rcgu.no-opt.bc'
  2. source_filename = "bad_position_simple3-317d481089b8c8fe83113de504472633.rs"
  3. target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
  4. target triple = "x86_64-unknown-linux-gnu"
  5.  
  6. %"core::option::Option<usize>" = type { [0 x i64], i64, [1 x i64] }
  7. %"core::option::Option<usize>::Some" = type { [1 x i64], i64, [0 x i64] }
  8. %"core::result::Result<usize, usize>" = type { [0 x i64], i64, [1 x i64] }
  9. %"core::result::Result<usize, usize>::Err" = type { [1 x i64], i64, [0 x i64] }
  10. %"core::fmt::Arguments" = type { [0 x i64], { [0 x { [0 x i8]*, i64 }]*, i64 }, [0 x i64], %"core::option::Option<&[core::fmt::rt::v1::Argument]>", [0 x i64], { [0 x { i8*, i8* }]*, i64 }, [0 x i64] }
  11. %"core::option::Option<&[core::fmt::rt::v1::Argument]>" = type { [0 x i64], {}*, [1 x i64] }
  12. %"core::fmt::rt::v1::Argument" = type { [0 x i64], %"core::fmt::rt::v1::Position", [0 x i64], %"core::fmt::rt::v1::FormatSpec", [0 x i64] }
  13. %"core::fmt::rt::v1::Position" = type { [0 x i64], i64, [1 x i64] }
  14. %"core::fmt::rt::v1::FormatSpec" = type { [0 x i64], %"core::fmt::rt::v1::Count", [0 x i64], %"core::fmt::rt::v1::Count", [0 x i32], i32, [0 x i32], i32, [0 x i8], i8, [7 x i8] }
  15. %"core::fmt::rt::v1::Count" = type { [0 x i64], i64, [1 x i64] }
  16. %"core::option::Option<isize>" = type { [0 x i64], i64, [1 x i64] }
  17. %"core::option::Option<isize>::Some" = type { [1 x i64], i64, [0 x i64] }
  18. %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>" = type { [0 x i8], %"import_path_to_string::{{closure}}", [0 x i8] }
  19. %"import_path_to_string::{{closure}}" = type {}
  20. %"core::result::Result<usize, usize>::Ok" = type { [1 x i64], i64, [0 x i64] }
  21. %"unwind::libunwind::_Unwind_Exception" = type { [0 x i64], i64, [0 x i64], void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [0 x i64], [6 x i64], [0 x i64] }
  22. %"unwind::libunwind::_Unwind_Context" = type { [0 x i8] }
  23. %"core::fmt::Formatter" = type { [0 x i64], %"core::option::Option<usize>", [0 x i64], %"core::option::Option<usize>", [0 x i64], { {}*, {}* }, [0 x i64], { i64*, i64* }, [0 x i64], { [0 x { i8*, i8* }]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i8], i8, [7 x i8] }
  24.  
  25. @str.0 = internal constant [40 x i8] c"/home/alex/code/rust4/src/libcore/ptr.rs"
  26. @str.1 = internal constant [25 x i8] c"attempt to divide by zero"
  27. @panic_loc.2 = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([25 x i8]* @str.1 to [0 x i8]*), i64 25 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([40 x i8]* @str.0 to [0 x i8]*), i64 40 }, i32 699, i32 18 }, align 8
  28. @str.3 = internal constant [31 x i8] c"attempt to divide with overflow"
  29. @panic_loc.4 = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([31 x i8]* @str.3 to [0 x i8]*), i64 31 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([40 x i8]* @str.0 to [0 x i8]*), i64 40 }, i32 699, i32 18 }, align 8
  30. @str.5 = internal constant [46 x i8] c"/home/alex/code/rust4/src/libcore/slice/mod.rs"
  31. @panic_loc.6 = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([25 x i8]* @str.1 to [0 x i8]*), i64 25 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([46 x i8]* @str.5 to [0 x i8]*), i64 46 }, i32 1343, i32 23 }, align 8
  32. @str.7 = internal constant [28 x i8] c"attempt to add with overflow"
  33. @panic_loc.8 = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([28 x i8]* @str.7 to [0 x i8]*), i64 28 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([46 x i8]* @str.5 to [0 x i8]*), i64 46 }, i32 1252, i32 31 }, align 8
  34. @str.9 = internal constant [33 x i8] c"attempt to subtract with overflow"
  35. @panic_loc.a = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([33 x i8]* @str.9 to [0 x i8]*), i64 33 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([46 x i8]* @str.5 to [0 x i8]*), i64 46 }, i32 903, i32 68 }, align 8
  36. @ref.b = private unnamed_addr constant [1 x i32] [i32 1], align 4
  37. @ref.c = private unnamed_addr constant [0 x i32] zeroinitializer, align 4
  38. @str.d = internal constant [22 x i8] c"bad-position-simple.rs"
  39. @panic_bounds_check_loc.e = private unnamed_addr constant { { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([22 x i8]* @str.d to [0 x i8]*), i64 22 }, i32 8, i32 39 }, align 8
  40. @str.f = internal constant [0 x i8] zeroinitializer
  41. @ref.g = private unnamed_addr constant [1 x { [0 x i8]*, i64 }] [{ [0 x i8]*, i64 } { [0 x i8]* @str.f, i64 0 }], align 8
  42. @ref.h = private unnamed_addr constant { { [0 x i8], { i64, [0 x i8], i64, [0 x i8] }, [0 x i8], { [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], i32, [0 x i8], i32, [0 x i8], i8, [7 x i8] }, [0 x i8] } } { { [0 x i8], { i64, [0 x i8], i64, [0 x i8] }, [0 x i8], { [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], i32, [0 x i8], i32, [0 x i8], i8, [7 x i8] }, [0 x i8] } { [0 x i8] undef, { i64, [0 x i8], i64, [0 x i8] } { i64 1, [0 x i8] undef, i64 0, [0 x i8] undef }, [0 x i8] undef, { [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], i32, [0 x i8], i32, [0 x i8], i8, [7 x i8] } { [0 x i8] undef, <{ i64, [8 x i8] }> <{ i64 3, [8 x i8] undef }>, [0 x i8] undef, <{ i64, [8 x i8] }> <{ i64 3, [8 x i8] undef }>, [0 x i8] undef, i32 32, [0 x i8] undef, i32 0, [0 x i8] undef, i8 3, [7 x i8] undef }, [0 x i8] undef } }, align 8
  43. @const.i = private unnamed_addr constant { { [0 x i8], { i64, [0 x i8], i64, [0 x i8] }, [0 x i8], { [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], i32, [0 x i8], i32, [0 x i8], i8, [7 x i8] }, [0 x i8] } }* @ref.h, align 8
  44. @ref.j = private unnamed_addr constant { [0 x i8], { [0 x i8]*, i64 }, [0 x i8], i32, [0 x i8], i32, [0 x i8] } { [0 x i8] undef, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([22 x i8]* @str.d to [0 x i8]*), i64 22 }, [0 x i8] undef, i32 14, [0 x i8] undef, i32 13, [0 x i8] undef }, align 8
  45. @const.k = private unnamed_addr constant { [0 x i8], { [0 x i8]*, i64 }, [0 x i8], i32, [0 x i8], i32, [0 x i8] }* @ref.j, align 8
  46. @panic_loc.l = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([28 x i8]* @str.7 to [0 x i8]*), i64 28 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([22 x i8]* @str.d to [0 x i8]*), i64 22 }, i32 10, i32 43 }, align 8
  47. @panic_loc.m = private unnamed_addr constant { { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 } { { [0 x i8]*, i64 } { [0 x i8]* bitcast ([28 x i8]* @str.7 to [0 x i8]*), i64 28 }, { [0 x i8]*, i64 } { [0 x i8]* bitcast ([22 x i8]* @str.d to [0 x i8]*), i64 22 }, i32 10, i32 70 }, align 8
  48.  
  49. ; Function Attrs: inlinehint uwtable
  50. define internal { [0 x i32]*, i64 } @"_ZN101_$LT$core..ops..range..RangeTo$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h078f68a8309cb374E"(i64, [0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
  51. %4 = alloca { i64, i64 }, align 8
  52. %5 = bitcast { i64, i64 }* %4 to i64*
  53. store i64 0, i64* %5, align 8
  54. %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %4, i32 0, i32 1
  55. store i64 %0, i64* %6, align 8
  56. %7 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %4, i32 0, i32 0
  57. %8 = load i64, i64* %7, align 8
  58. %9 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %4, i32 0, i32 1
  59. %10 = load i64, i64* %9, align 8
  60. %11 = call { [0 x i32]*, i64 } @"_ZN99_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h5697259416355b17E"(i64 %8, i64 %10, [0 x i32]* noalias nonnull readonly %1, i64 %2)
  61. %12 = extractvalue { [0 x i32]*, i64 } %11, 0
  62. %13 = extractvalue { [0 x i32]*, i64 } %11, 1
  63. br label %14
  64.  
  65. ; <label>:14: ; preds = %3
  66. %15 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %12, 0
  67. %16 = insertvalue { [0 x i32]*, i64 } %15, i64 %13, 1
  68. ret { [0 x i32]*, i64 } %16
  69. }
  70.  
  71. ; Function Attrs: inlinehint uwtable
  72. define internal { [0 x i32]*, i64 } @"_ZN103_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h10a46beecb6fa85fE"(i64, [0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
  73. %4 = alloca { i64, i64 }, align 8
  74. %5 = bitcast { i64, i64 }* %4 to i64*
  75. store i64 %0, i64* %5, align 8
  76. %6 = call i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %1, i64 %2)
  77. br label %7
  78.  
  79. ; <label>:7: ; preds = %3
  80. %8 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %4, i32 0, i32 1
  81. store i64 %6, i64* %8, align 8
  82. %9 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %4, i32 0, i32 0
  83. %10 = load i64, i64* %9, align 8
  84. %11 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %4, i32 0, i32 1
  85. %12 = load i64, i64* %11, align 8
  86. %13 = call { [0 x i32]*, i64 } @"_ZN99_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h5697259416355b17E"(i64 %10, i64 %12, [0 x i32]* noalias nonnull readonly %1, i64 %2)
  87. %14 = extractvalue { [0 x i32]*, i64 } %13, 0
  88. %15 = extractvalue { [0 x i32]*, i64 } %13, 1
  89. br label %16
  90.  
  91. ; <label>:16: ; preds = %7
  92. %17 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %14, 0
  93. %18 = insertvalue { [0 x i32]*, i64 } %17, i64 %15, 1
  94. ret { [0 x i32]*, i64 } %18
  95. }
  96.  
  97. ; Function Attrs: inlinehint uwtable
  98. define internal void @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$3map17hac95c6f09e5eb2e1E"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(16), %"core::option::Option<usize>"* noalias nocapture dereferenceable(16), i64* noalias readonly dereferenceable(8)) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
  99. %4 = alloca { i8*, i32 }, align 8
  100. %5 = alloca i8, align 1
  101. %6 = alloca i8, align 1
  102. %7 = alloca i64, align 8
  103. store i8 0, i8* %6, align 1
  104. store i8 0, i8* %5, align 1
  105. store i8 1, i8* %6, align 1
  106. store i8 1, i8* %5, align 1
  107. %8 = bitcast %"core::option::Option<usize>"* %1 to i64*
  108. %9 = load i64, i64* %8, align 8, !range !1
  109. %10 = bitcast %"core::option::Option<usize>"* %1 to i64*
  110. %11 = load i64, i64* %10, align 8, !range !1
  111. switch i64 %11, label %22 [
  112. i64 0, label %20
  113. i64 1, label %23
  114. ]
  115.  
  116. ; <label>:12: ; preds = %43, %42, %39
  117. %13 = bitcast { i8*, i32 }* %4 to i8**
  118. %14 = load i8*, i8** %13, align 8
  119. %15 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  120. %16 = load i32, i32* %15, align 4
  121. %17 = bitcast { i8*, i32 }* %4 to i8*
  122. call void @llvm.lifetime.end.p0i8(i64 16, i8* %17)
  123. %18 = insertvalue { i8*, i32 } undef, i8* %14, 0
  124. %19 = insertvalue { i8*, i32 } %18, i32 %16, 1
  125. resume { i8*, i32 } %19
  126.  
  127. ; <label>:20: ; preds = %3
  128. %21 = bitcast %"core::option::Option<usize>"* %0 to i64*
  129. store i64 0, i64* %21, align 8
  130. br label %33
  131.  
  132. ; <label>:22: ; preds = %3
  133. unreachable
  134.  
  135. ; <label>:23: ; preds = %3
  136. store i8 0, i8* %6, align 1
  137. %24 = bitcast %"core::option::Option<usize>"* %1 to %"core::option::Option<usize>::Some"*
  138. %25 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %24, i32 0, i32 1
  139. %26 = load i64, i64* %25, align 8
  140. store i64 %26, i64* %7, align 8
  141. store i8 0, i8* %5, align 1
  142. %27 = bitcast %"core::option::Option<usize>"* %0 to %"core::option::Option<usize>::Some"*
  143. %28 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %27, i32 0, i32 1
  144. %29 = load i64, i64* %7, align 8
  145. %30 = invoke i64 @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hab0db5dfbde4de17E"(i64* noalias readonly dereferenceable(8) %2, i64 %29)
  146. to label %31 unwind label %54
  147.  
  148. ; <label>:31: ; preds = %23
  149. store i64 %30, i64* %28, align 8
  150. %32 = bitcast %"core::option::Option<usize>"* %0 to i64*
  151. store i64 1, i64* %32, align 8
  152. br label %33
  153.  
  154. ; <label>:33: ; preds = %31, %20
  155. %34 = load i8, i8* %5, align 1, !range !2
  156. %35 = trunc i8 %34 to i1
  157. br i1 %35, label %47, label %36
  158.  
  159. ; <label>:36: ; preds = %47, %33
  160. %37 = bitcast %"core::option::Option<usize>"* %1 to i64*
  161. %38 = load i64, i64* %37, align 8, !range !1
  162. switch i64 %38, label %53 [
  163. i64 1, label %49
  164. ]
  165.  
  166. ; <label>:39: ; preds = %44
  167. %40 = load i8, i8* %6, align 1, !range !2
  168. %41 = trunc i8 %40 to i1
  169. br i1 %41, label %42, label %12
  170.  
  171. ; <label>:42: ; preds = %39
  172. store i8 0, i8* %6, align 1
  173. br label %12
  174.  
  175. ; <label>:43: ; preds = %44
  176. br label %12
  177.  
  178. ; <label>:44: ; preds = %54
  179. %45 = bitcast %"core::option::Option<usize>"* %1 to i64*
  180. %46 = load i64, i64* %45, align 8, !range !1
  181. switch i64 %46, label %43 [
  182. i64 1, label %39
  183. ]
  184.  
  185. ; <label>:47: ; preds = %33
  186. store i8 0, i8* %5, align 1
  187. br label %36
  188.  
  189. ; <label>:48: ; preds = %53, %52, %49
  190. ret void
  191.  
  192. ; <label>:49: ; preds = %36
  193. %50 = load i8, i8* %6, align 1, !range !2
  194. %51 = trunc i8 %50 to i1
  195. br i1 %51, label %52, label %48
  196.  
  197. ; <label>:52: ; preds = %49
  198. store i8 0, i8* %6, align 1
  199. br label %48
  200.  
  201. ; <label>:53: ; preds = %36
  202. br label %48
  203.  
  204. ; <label>:54: ; preds = %23
  205. %55 = landingpad { i8*, i32 }
  206. cleanup
  207. %56 = bitcast { i8*, i32 }* %4 to i8*
  208. call void @llvm.lifetime.start.p0i8(i64 16, i8* %56)
  209. %57 = extractvalue { i8*, i32 } %55, 0
  210. %58 = extractvalue { i8*, i32 } %55, 1
  211. %59 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
  212. store i8* %57, i8** %59, align 8
  213. %60 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  214. store i32 %58, i32* %60, align 8
  215. br label %44
  216. }
  217.  
  218. ; Function Attrs: inlinehint uwtable
  219. define internal void @"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$3err17h7575ad3e8a4fc754E"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(16), %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16)) unnamed_addr #0 {
  220. %3 = alloca i8, align 1
  221. store i8 0, i8* %3, align 1
  222. store i8 1, i8* %3, align 1
  223. %4 = bitcast %"core::result::Result<usize, usize>"* %1 to i64*
  224. %5 = load i64, i64* %4, align 8, !range !1
  225. %6 = bitcast %"core::result::Result<usize, usize>"* %1 to i64*
  226. %7 = load i64, i64* %6, align 8, !range !1
  227. switch i64 %7, label %10 [
  228. i64 0, label %8
  229. i64 1, label %11
  230. ]
  231.  
  232. ; <label>:8: ; preds = %2
  233. %9 = bitcast %"core::option::Option<usize>"* %0 to i64*
  234. store i64 0, i64* %9, align 8
  235. br label %18
  236.  
  237. ; <label>:10: ; preds = %2
  238. unreachable
  239.  
  240. ; <label>:11: ; preds = %2
  241. store i8 0, i8* %3, align 1
  242. %12 = bitcast %"core::option::Option<usize>"* %0 to %"core::option::Option<usize>::Some"*
  243. %13 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %12, i32 0, i32 1
  244. %14 = bitcast %"core::result::Result<usize, usize>"* %1 to %"core::result::Result<usize, usize>::Err"*
  245. %15 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %14, i32 0, i32 1
  246. %16 = load i64, i64* %15, align 8
  247. store i64 %16, i64* %13, align 8
  248. %17 = bitcast %"core::option::Option<usize>"* %0 to i64*
  249. store i64 1, i64* %17, align 8
  250. br label %18
  251.  
  252. ; <label>:18: ; preds = %11, %8
  253. %19 = bitcast %"core::result::Result<usize, usize>"* %1 to i64*
  254. %20 = load i64, i64* %19, align 8, !range !1
  255. switch i64 %20, label %26 [
  256. i64 1, label %22
  257. ]
  258.  
  259. ; <label>:21: ; preds = %26, %25, %22
  260. ret void
  261.  
  262. ; <label>:22: ; preds = %18
  263. %23 = load i8, i8* %3, align 1, !range !2
  264. %24 = trunc i8 %23 to i1
  265. br i1 %24, label %25, label %21
  266.  
  267. ; <label>:25: ; preds = %22
  268. store i8 0, i8* %3, align 1
  269. br label %21
  270.  
  271. ; <label>:26: ; preds = %18
  272. br label %21
  273. }
  274.  
  275. ; Function Attrs: inlinehint uwtable
  276. define internal void @_ZN4core3fmt9Arguments16new_v1_formatted17hea2ae333548f7201E(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(48), [0 x { [0 x i8]*, i64 }]* noalias nonnull readonly, i64, [0 x { i8*, i8* }]* noalias nonnull readonly, i64, [0 x %"core::fmt::rt::v1::Argument"]* noalias nonnull readonly, i64) unnamed_addr #0 {
  277. %8 = alloca %"core::option::Option<&[core::fmt::rt::v1::Argument]>", align 8
  278. %9 = bitcast %"core::fmt::Arguments"* %0 to { [0 x { [0 x i8]*, i64 }]*, i64 }*
  279. %10 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %9, i32 0, i32 0
  280. store [0 x { [0 x i8]*, i64 }]* %1, [0 x { [0 x i8]*, i64 }]** %10, align 8
  281. %11 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %9, i32 0, i32 1
  282. store i64 %2, i64* %11, align 8
  283. %12 = bitcast %"core::option::Option<&[core::fmt::rt::v1::Argument]>"* %8 to { i64*, i64 }*
  284. %13 = bitcast { i64*, i64 }* %12 to { [0 x %"core::fmt::rt::v1::Argument"]*, i64 }*
  285. %14 = getelementptr inbounds { [0 x %"core::fmt::rt::v1::Argument"]*, i64 }, { [0 x %"core::fmt::rt::v1::Argument"]*, i64 }* %13, i32 0, i32 0
  286. store [0 x %"core::fmt::rt::v1::Argument"]* %5, [0 x %"core::fmt::rt::v1::Argument"]** %14, align 8
  287. %15 = getelementptr inbounds { [0 x %"core::fmt::rt::v1::Argument"]*, i64 }, { [0 x %"core::fmt::rt::v1::Argument"]*, i64 }* %13, i32 0, i32 1
  288. store i64 %6, i64* %15, align 8
  289. %16 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 3
  290. %17 = bitcast %"core::option::Option<&[core::fmt::rt::v1::Argument]>"* %8 to i8*
  291. %18 = bitcast %"core::option::Option<&[core::fmt::rt::v1::Argument]>"* %16 to i8*
  292. call void @llvm.memcpy.p0i8.p0i8.i64(i8* %18, i8* %17, i64 16, i32 8, i1 false)
  293. %19 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 5
  294. %20 = getelementptr inbounds { [0 x { i8*, i8* }]*, i64 }, { [0 x { i8*, i8* }]*, i64 }* %19, i32 0, i32 0
  295. store [0 x { i8*, i8* }]* %3, [0 x { i8*, i8* }]** %20, align 8
  296. %21 = getelementptr inbounds { [0 x { i8*, i8* }]*, i64 }, { [0 x { i8*, i8* }]*, i64 }* %19, i32 0, i32 1
  297. store i64 %4, i64* %21, align 8
  298. ret void
  299. }
  300.  
  301. ; Function Attrs: inlinehint uwtable
  302. define internal i64 @_ZN4core3mem7size_of17h1d6b4cc7f7420375E() unnamed_addr #0 {
  303. %1 = alloca i64, align 8
  304. %2 = bitcast i64* %1 to i8*
  305. call void @llvm.lifetime.start.p0i8(i64 8, i8* %2)
  306. store i64 4, i64* %1, align 8
  307. %3 = load i64, i64* %1, align 8
  308. %4 = bitcast i64* %1 to i8*
  309. call void @llvm.lifetime.end.p0i8(i64 8, i8* %4)
  310. br label %5
  311.  
  312. ; <label>:5: ; preds = %0
  313. ret i64 %3
  314. }
  315.  
  316. ; Function Attrs: inlinehint uwtable
  317. define internal i64 @"_ZN4core3num23_$LT$impl$u20$isize$GT$12wrapping_sub17h0d8b1ee1946e0e7eE"(i64, i64) unnamed_addr #0 {
  318. %3 = alloca i64, align 8
  319. %4 = bitcast i64* %3 to i8*
  320. call void @llvm.lifetime.start.p0i8(i64 8, i8* %4)
  321. %5 = sub i64 %0, %1
  322. store i64 %5, i64* %3, align 8
  323. %6 = load i64, i64* %3, align 8
  324. %7 = bitcast i64* %3 to i8*
  325. call void @llvm.lifetime.end.p0i8(i64 8, i8* %7)
  326. br label %8
  327.  
  328. ; <label>:8: ; preds = %2
  329. ret i64 %6
  330. }
  331.  
  332. ; Function Attrs: inlinehint uwtable
  333. define internal i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$12wrapping_sub17h25b775332ef31d00E"(i64, i64) unnamed_addr #0 {
  334. %3 = alloca i64, align 8
  335. %4 = bitcast i64* %3 to i8*
  336. call void @llvm.lifetime.start.p0i8(i64 8, i8* %4)
  337. %5 = sub i64 %0, %1
  338. store i64 %5, i64* %3, align 8
  339. %6 = load i64, i64* %3, align 8
  340. %7 = bitcast i64* %3 to i8*
  341. call void @llvm.lifetime.end.p0i8(i64 8, i8* %7)
  342. br label %8
  343.  
  344. ; <label>:8: ; preds = %2
  345. ret i64 %6
  346. }
  347.  
  348. ; Function Attrs: inlinehint uwtable
  349. define internal i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$15wrapping_offset17ha2ba679b8b637d52E"(i8*, i64) unnamed_addr #0 {
  350. %3 = alloca i8*, align 8
  351. %4 = bitcast i8** %3 to i8*
  352. call void @llvm.lifetime.start.p0i8(i64 8, i8* %4)
  353. %5 = getelementptr i8, i8* %0, i64 %1
  354. store i8* %5, i8** %3, align 8
  355. %6 = load i8*, i8** %3, align 8
  356. %7 = bitcast i8** %3 to i8*
  357. call void @llvm.lifetime.end.p0i8(i64 8, i8* %7)
  358. br label %8
  359.  
  360. ; <label>:8: ; preds = %2
  361. ret i8* %6
  362. }
  363.  
  364. ; Function Attrs: inlinehint uwtable
  365. define internal i32* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h2db78cc51ca12da6E"(i32*, i64) unnamed_addr #0 {
  366. %3 = alloca i32*, align 8
  367. %4 = bitcast i32** %3 to i8*
  368. call void @llvm.lifetime.start.p0i8(i64 8, i8* %4)
  369. %5 = getelementptr inbounds i32, i32* %0, i64 %1
  370. store i32* %5, i32** %3, align 8
  371. %6 = load i32*, i32** %3, align 8
  372. %7 = bitcast i32** %3 to i8*
  373. call void @llvm.lifetime.end.p0i8(i64 8, i8* %7)
  374. br label %8
  375.  
  376. ; <label>:8: ; preds = %2
  377. ret i32* %6
  378. }
  379.  
  380. ; Function Attrs: inlinehint uwtable
  381. define internal zeroext i1 @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$7is_null17h364a758ace70a8a3E"(i32*) unnamed_addr #0 {
  382. %2 = bitcast i32* %0 to i8*
  383. %3 = call i8* @_ZN4core3ptr4null17h78c18f9f5259760aE()
  384. br label %4
  385.  
  386. ; <label>:4: ; preds = %1
  387. %5 = icmp eq i8* %2, %3
  388. ret i1 %5
  389. }
  390.  
  391. ; Function Attrs: inlinehint uwtable
  392. define internal void @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$9offset_to17h84ef24894944509aE"(%"core::option::Option<isize>"* noalias nocapture sret dereferenceable(16), i32*, i32*) unnamed_addr #0 {
  393. %4 = call i64 @_ZN4core3mem7size_of17h1d6b4cc7f7420375E()
  394. br label %5
  395.  
  396. ; <label>:5: ; preds = %3
  397. %6 = icmp eq i64 %4, 0
  398. br i1 %6, label %7, label %9
  399.  
  400. ; <label>:7: ; preds = %5
  401. %8 = bitcast %"core::option::Option<isize>"* %0 to i64*
  402. store i64 0, i64* %8, align 8
  403. br label %27
  404.  
  405. ; <label>:9: ; preds = %5
  406. %10 = ptrtoint i32* %2 to i64
  407. %11 = ptrtoint i32* %1 to i64
  408. %12 = call i64 @"_ZN4core3num23_$LT$impl$u20$isize$GT$12wrapping_sub17h0d8b1ee1946e0e7eE"(i64 %10, i64 %11)
  409. br label %13
  410.  
  411. ; <label>:13: ; preds = %9
  412. %14 = icmp ule i64 %4, -1
  413. call void @llvm.assume(i1 %14)
  414. %15 = icmp eq i64 %4, 0
  415. %16 = call i1 @llvm.expect.i1(i1 %15, i1 false)
  416. br i1 %16, label %28, label %17
  417.  
  418. ; <label>:17: ; preds = %13
  419. %18 = icmp eq i64 %4, -1
  420. %19 = icmp eq i64 %12, -9223372036854775808
  421. %20 = and i1 %18, %19
  422. %21 = call i1 @llvm.expect.i1(i1 %20, i1 false)
  423. br i1 %21, label %29, label %22
  424.  
  425. ; <label>:22: ; preds = %17
  426. %23 = bitcast %"core::option::Option<isize>"* %0 to %"core::option::Option<isize>::Some"*
  427. %24 = getelementptr inbounds %"core::option::Option<isize>::Some", %"core::option::Option<isize>::Some"* %23, i32 0, i32 1
  428. %25 = sdiv i64 %12, %4
  429. store i64 %25, i64* %24, align 8
  430. %26 = bitcast %"core::option::Option<isize>"* %0 to i64*
  431. store i64 1, i64* %26, align 8
  432. br label %27
  433.  
  434. ; <label>:27: ; preds = %22, %7
  435. ret void
  436.  
  437. ; <label>:28: ; preds = %13
  438. call void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.2 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
  439. unreachable
  440.  
  441. ; <label>:29: ; preds = %17
  442. call void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.4 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
  443. unreachable
  444. }
  445.  
  446. ; Function Attrs: inlinehint uwtable
  447. define internal i8* @_ZN4core3ptr4null17h78c18f9f5259760aE() unnamed_addr #0 {
  448. call void @llvm.assume(i1 true)
  449. ret i8* null
  450. }
  451.  
  452. ; Function Attrs: alwaysinline uwtable
  453. define internal i32* @_ZN4core5slice10PointerExt8post_inc17hc9f8b6822179ed09E(i32** dereferenceable(8)) unnamed_addr #1 {
  454. %2 = load i32*, i32** %0, align 8
  455. %3 = load i32*, i32** %0, align 8
  456. %4 = call i32* @"_ZN59_$LT$$BP$const$u20$T$u20$as$u20$core..slice..PointerExt$GT$12slice_offset17h7aa1452c7557c220E"(i32* %3, i64 1)
  457. br label %5
  458.  
  459. ; <label>:5: ; preds = %1
  460. store i32* %4, i32** %0, align 8
  461. ret i32* %2
  462. }
  463.  
  464. ; Function Attrs: alwaysinline uwtable
  465. define internal i64 @_ZN4core5slice11ptrdistance17h036ab170e59738e1E(i32*, i32*) unnamed_addr #1 {
  466. %3 = alloca %"core::option::Option<isize>", align 8
  467. %4 = alloca i64, align 8
  468. call void @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$9offset_to17h84ef24894944509aE"(%"core::option::Option<isize>"* noalias nocapture sret dereferenceable(16) %3, i32* %0, i32* %1)
  469. br label %5
  470.  
  471. ; <label>:5: ; preds = %2
  472. %6 = bitcast %"core::option::Option<isize>"* %3 to i64*
  473. %7 = load i64, i64* %6, align 8, !range !1
  474. %8 = bitcast %"core::option::Option<isize>"* %3 to i64*
  475. %9 = load i64, i64* %8, align 8, !range !1
  476. switch i64 %9, label %14 [
  477. i64 0, label %10
  478. i64 1, label %15
  479. ]
  480.  
  481. ; <label>:10: ; preds = %5
  482. %11 = ptrtoint i32* %1 to i64
  483. %12 = ptrtoint i32* %0 to i64
  484. %13 = call i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$12wrapping_sub17h25b775332ef31d00E"(i64 %11, i64 %12)
  485. store i64 %13, i64* %4, align 8
  486. br label %20
  487.  
  488. ; <label>:14: ; preds = %5
  489. unreachable
  490.  
  491. ; <label>:15: ; preds = %5
  492. %16 = bitcast %"core::option::Option<isize>"* %3 to %"core::option::Option<isize>::Some"*
  493. %17 = getelementptr inbounds %"core::option::Option<isize>::Some", %"core::option::Option<isize>::Some"* %16, i32 0, i32 1
  494. %18 = load i64, i64* %17, align 8
  495. %19 = icmp ule i64 %18, -1
  496. call void @llvm.assume(i1 %19)
  497. store i64 %18, i64* %4, align 8
  498. br label %20
  499.  
  500. ; <label>:20: ; preds = %15, %10
  501. %21 = load i64, i64* %4, align 8
  502. ret i64 %21
  503. }
  504.  
  505. ; Function Attrs: inlinehint uwtable
  506. define internal i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32*) unnamed_addr #0 {
  507. %2 = call i64 @_ZN4core3mem7size_of17h1d6b4cc7f7420375E()
  508. br label %3
  509.  
  510. ; <label>:3: ; preds = %1
  511. ret i64 %2
  512. }
  513.  
  514. ; Function Attrs: inlinehint uwtable
  515. define internal { [0 x i32]*, i64 } @_ZN4core5slice14from_raw_parts17hacb157bb9f25ba37E(i32*, i64) unnamed_addr #0 {
  516. %3 = alloca { [0 x i32]*, i64 }, align 8
  517. %4 = alloca { i32*, i64 }, align 8
  518. %5 = bitcast { i32*, i64 }* %4 to i32**
  519. store i32* %0, i32** %5, align 8
  520. %6 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %4, i32 0, i32 1
  521. store i64 %1, i64* %6, align 8
  522. %7 = bitcast { [0 x i32]*, i64 }* %3 to i8*
  523. call void @llvm.lifetime.start.p0i8(i64 16, i8* %7)
  524. %8 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %4, i32 0, i32 0
  525. %9 = load i32*, i32** %8, align 8
  526. %10 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %4, i32 0, i32 1
  527. %11 = load i64, i64* %10, align 8
  528. %12 = bitcast { [0 x i32]*, i64 }* %3 to { i32*, i64 }*
  529. %13 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %12, i32 0, i32 0
  530. store i32* %9, i32** %13, align 8
  531. %14 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %12, i32 0, i32 1
  532. store i64 %11, i64* %14, align 8
  533. %15 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %3, i32 0, i32 0
  534. %16 = load [0 x i32]*, [0 x i32]** %15, align 8, !nonnull !3
  535. %17 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %3, i32 0, i32 1
  536. %18 = load i64, i64* %17, align 8
  537. %19 = bitcast { [0 x i32]*, i64 }* %3 to i8*
  538. call void @llvm.lifetime.end.p0i8(i64 16, i8* %19)
  539. br label %20
  540.  
  541. ; <label>:20: ; preds = %2
  542. %21 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %16, 0
  543. %22 = insertvalue { [0 x i32]*, i64 } %21, i64 %18, 1
  544. ret { [0 x i32]*, i64 } %22
  545. }
  546.  
  547. ; Function Attrs: inlinehint uwtable
  548. define internal { [0 x i32]*, i64 } @"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h0fe7e803fce1e20aE"([0 x i32]* noalias nonnull readonly, i64, i64, i64) unnamed_addr #0 {
  549. %5 = call { [0 x i32]*, i64 } @"_ZN99_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h5697259416355b17E"(i64 %2, i64 %3, [0 x i32]* noalias nonnull readonly %0, i64 %1)
  550. %6 = extractvalue { [0 x i32]*, i64 } %5, 0
  551. %7 = extractvalue { [0 x i32]*, i64 } %5, 1
  552. br label %8
  553.  
  554. ; <label>:8: ; preds = %4
  555. %9 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %6, 0
  556. %10 = insertvalue { [0 x i32]*, i64 } %9, i64 %7, 1
  557. ret { [0 x i32]*, i64 } %10
  558. }
  559.  
  560. ; Function Attrs: inlinehint uwtable
  561. define internal { [0 x i32]*, i64 } @"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h41f64f54e8d1b7d6E"([0 x i32]* noalias nonnull readonly, i64, i64) unnamed_addr #0 {
  562. %4 = call { [0 x i32]*, i64 } @"_ZN101_$LT$core..ops..range..RangeTo$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h078f68a8309cb374E"(i64 %2, [0 x i32]* noalias nonnull readonly %0, i64 %1)
  563. %5 = extractvalue { [0 x i32]*, i64 } %4, 0
  564. %6 = extractvalue { [0 x i32]*, i64 } %4, 1
  565. br label %7
  566.  
  567. ; <label>:7: ; preds = %3
  568. %8 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %5, 0
  569. %9 = insertvalue { [0 x i32]*, i64 } %8, i64 %6, 1
  570. ret { [0 x i32]*, i64 } %9
  571. }
  572.  
  573. ; Function Attrs: inlinehint uwtable
  574. define internal { [0 x i32]*, i64 } @"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hd2e2694457d96551E"([0 x i32]* noalias nonnull readonly, i64, i64) unnamed_addr #0 {
  575. %4 = call { [0 x i32]*, i64 } @"_ZN103_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h10a46beecb6fa85fE"(i64 %2, [0 x i32]* noalias nonnull readonly %0, i64 %1)
  576. %5 = extractvalue { [0 x i32]*, i64 } %4, 0
  577. %6 = extractvalue { [0 x i32]*, i64 } %4, 1
  578. br label %7
  579.  
  580. ; <label>:7: ; preds = %3
  581. %8 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %5, 0
  582. %9 = insertvalue { [0 x i32]*, i64 } %8, i64 %6, 1
  583. ret { [0 x i32]*, i64 } %9
  584. }
  585.  
  586. ; Function Attrs: inlinehint uwtable
  587. define internal i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
  588. %3 = alloca { i32*, i64 }, align 8
  589. %4 = bitcast { i32*, i64 }* %3 to i8*
  590. call void @llvm.lifetime.start.p0i8(i64 16, i8* %4)
  591. %5 = bitcast { i32*, i64 }* %3 to { [0 x i32]*, i64 }*
  592. %6 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %5, i32 0, i32 0
  593. store [0 x i32]* %0, [0 x i32]** %6, align 8
  594. %7 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %5, i32 0, i32 1
  595. store i64 %1, i64* %7, align 8
  596. %8 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %3, i32 0, i32 0
  597. %9 = load i32*, i32** %8, align 8
  598. %10 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %3, i32 0, i32 1
  599. %11 = load i64, i64* %10, align 8
  600. %12 = bitcast { i32*, i64 }* %3 to i8*
  601. call void @llvm.lifetime.end.p0i8(i64 16, i8* %12)
  602. br label %13
  603.  
  604. ; <label>:13: ; preds = %2
  605. ret i64 %11
  606. }
  607.  
  608. ; Function Attrs: inlinehint uwtable
  609. define internal { i32*, i32* } @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$4iter17h7c6ea9d74db5e50cE"([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
  610. %3 = alloca i32*, align 8
  611. %4 = alloca i32*, align 8
  612. %5 = alloca { i32*, i32* }, align 8
  613. %6 = call i64 @_ZN4core3mem7size_of17h1d6b4cc7f7420375E()
  614. br label %7
  615.  
  616. ; <label>:7: ; preds = %2
  617. %8 = icmp eq i64 %6, 0
  618. br i1 %8, label %9, label %10
  619.  
  620. ; <label>:9: ; preds = %7
  621. call void @llvm.assume(i1 true)
  622. store i32* inttoptr (i64 1 to i32*), i32** %4, align 8
  623. br label %17
  624.  
  625. ; <label>:10: ; preds = %7
  626. %11 = call i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6as_ptr17h32215ff12a098383E"([0 x i32]* noalias nonnull readonly %0, i64 %1)
  627. br label %12
  628.  
  629. ; <label>:12: ; preds = %10
  630. %13 = call zeroext i1 @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$7is_null17h364a758ace70a8a3E"(i32* %11)
  631. br label %14
  632.  
  633. ; <label>:14: ; preds = %12
  634. %15 = xor i1 %13, true
  635. call void @llvm.assume(i1 %15)
  636. br label %16
  637.  
  638. ; <label>:16: ; preds = %14
  639. store i32* %11, i32** %4, align 8
  640. br label %17
  641.  
  642. ; <label>:17: ; preds = %16, %9
  643. %18 = bitcast { i32*, i32* }* %5 to i32**
  644. %19 = load i32*, i32** %4, align 8
  645. store i32* %19, i32** %18, align 8
  646. %20 = load i32*, i32** %4, align 8
  647. %21 = call i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %20)
  648. br label %22
  649.  
  650. ; <label>:22: ; preds = %17
  651. %23 = icmp eq i64 %21, 0
  652. br i1 %23, label %24, label %27
  653.  
  654. ; <label>:24: ; preds = %22
  655. %25 = bitcast i32* %20 to i8*
  656. %26 = call i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %0, i64 %1)
  657. br label %29
  658.  
  659. ; <label>:27: ; preds = %22
  660. %28 = call i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %0, i64 %1)
  661. br label %34
  662.  
  663. ; <label>:29: ; preds = %24
  664. %30 = icmp ule i64 %26, -1
  665. call void @llvm.assume(i1 %30)
  666. %31 = call i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$15wrapping_offset17ha2ba679b8b637d52E"(i8* %25, i64 %26)
  667. br label %32
  668.  
  669. ; <label>:32: ; preds = %29
  670. %33 = bitcast i8* %31 to i32*
  671. store i32* %33, i32** %3, align 8
  672. br label %37
  673.  
  674. ; <label>:34: ; preds = %27
  675. %35 = icmp ule i64 %28, -1
  676. call void @llvm.assume(i1 %35)
  677. %36 = call i32* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h2db78cc51ca12da6E"(i32* %20, i64 %28)
  678. store i32* %36, i32** %3, align 8
  679. br label %37
  680.  
  681. ; <label>:37: ; preds = %34, %32
  682. %38 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %5, i32 0, i32 1
  683. %39 = load i32*, i32** %3, align 8
  684. store i32* %39, i32** %38, align 8
  685. %40 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %5, i32 0, i32 0
  686. %41 = load i32*, i32** %40, align 8
  687. %42 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %5, i32 0, i32 1
  688. %43 = load i32*, i32** %42, align 8
  689. %44 = insertvalue { i32*, i32* } undef, i32* %41, 0
  690. %45 = insertvalue { i32*, i32* } %44, i32* %43, 1
  691. ret { i32*, i32* } %45
  692. }
  693.  
  694. ; Function Attrs: inlinehint uwtable
  695. define internal i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6as_ptr17h32215ff12a098383E"([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
  696. %3 = bitcast [0 x i32]* %0 to i32*
  697. ret i32* %3
  698. }
  699.  
  700. ; Function Attrs: alwaysinline uwtable
  701. define internal i32* @"_ZN59_$LT$$BP$const$u20$T$u20$as$u20$core..slice..PointerExt$GT$12slice_offset17h7aa1452c7557c220E"(i32*, i64) unnamed_addr #1 {
  702. %3 = alloca i32*, align 8
  703. %4 = call i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %0)
  704. br label %5
  705.  
  706. ; <label>:5: ; preds = %2
  707. %6 = icmp eq i64 %4, 0
  708. br i1 %6, label %7, label %10
  709.  
  710. ; <label>:7: ; preds = %5
  711. %8 = bitcast i32* %0 to i8*
  712. %9 = call i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$15wrapping_offset17ha2ba679b8b637d52E"(i8* %8, i64 %1)
  713. br label %12
  714.  
  715. ; <label>:10: ; preds = %5
  716. %11 = call i32* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h2db78cc51ca12da6E"(i32* %0, i64 %1)
  717. store i32* %11, i32** %3, align 8
  718. br label %14
  719.  
  720. ; <label>:12: ; preds = %7
  721. %13 = bitcast i8* %9 to i32*
  722. store i32* %13, i32** %3, align 8
  723. br label %14
  724.  
  725. ; <label>:14: ; preds = %12, %10
  726. %15 = load i32*, i32** %3, align 8
  727. ret i32* %15
  728. }
  729.  
  730. ; Function Attrs: inlinehint uwtable
  731. define internal i64 @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$3len17hab82a3a5ee843773E"([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
  732. %3 = call i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %0, i64 %1)
  733. br label %4
  734.  
  735. ; <label>:4: ; preds = %2
  736. ret i64 %3
  737. }
  738.  
  739. ; Function Attrs: inlinehint uwtable
  740. define internal { i32*, i32* } @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4iter17h08ec6eec9d3c8166E"([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
  741. %3 = call { i32*, i32* } @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$4iter17h7c6ea9d74db5e50cE"([0 x i32]* noalias nonnull readonly %0, i64 %1)
  742. %4 = extractvalue { i32*, i32* } %3, 0
  743. %5 = extractvalue { i32*, i32* } %3, 1
  744. br label %6
  745.  
  746. ; <label>:6: ; preds = %2
  747. %7 = insertvalue { i32*, i32* } undef, i32* %4, 0
  748. %8 = insertvalue { i32*, i32* } %7, i32* %5, 1
  749. ret { i32*, i32* } %8
  750. }
  751.  
  752. ; Function Attrs: inlinehint uwtable
  753. define internal zeroext i1 @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$8is_empty17h7069f18437424c5eE"([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
  754. %3 = call zeroext i1 @_ZN4core5slice8SliceExt8is_empty17h5df57ca3a59651deE([0 x i32]* noalias nonnull readonly %0, i64 %1)
  755. br label %4
  756.  
  757. ; <label>:4: ; preds = %2
  758. ret i1 %3
  759. }
  760.  
  761. ; Function Attrs: inlinehint uwtable
  762. define internal void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position17hf1a29b42059163daE"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(16), { i32*, i32* }* dereferenceable(16)) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
  763. %3 = alloca { i8*, i32 }, align 8
  764. %4 = alloca i8, align 1
  765. %5 = alloca i64*, align 8
  766. %6 = alloca %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>", align 1
  767. %7 = alloca %"core::result::Result<usize, usize>", align 8
  768. %8 = alloca %"core::option::Option<usize>", align 8
  769. %9 = alloca { [0 x i32]*, i64 }, align 8
  770. %10 = alloca i64, align 8
  771. store i8 0, i8* %4, align 1
  772. store i8 1, i8* %4, align 1
  773. %11 = bitcast { i32*, i32* }* %1 to i32**
  774. %12 = load i32*, i32** %11, align 8
  775. %13 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %1, i32 0, i32 1
  776. %14 = load i32*, i32** %13, align 8
  777. %15 = ptrtoint i32* %14 to i64
  778. %16 = ptrtoint i32* %12 to i64
  779. %17 = invoke i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$12wrapping_sub17h25b775332ef31d00E"(i64 %15, i64 %16)
  780. to label %26 unwind label %62
  781.  
  782. ; <label>:18: ; preds = %58, %57
  783. %19 = bitcast { i8*, i32 }* %3 to i8**
  784. %20 = load i8*, i8** %19, align 8
  785. %21 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %3, i32 0, i32 1
  786. %22 = load i32, i32* %21, align 4
  787. %23 = bitcast { i8*, i32 }* %3 to i8*
  788. call void @llvm.lifetime.end.p0i8(i64 16, i8* %23)
  789. %24 = insertvalue { i8*, i32 } undef, i8* %20, 0
  790. %25 = insertvalue { i8*, i32 } %24, i32 %22, 1
  791. resume { i8*, i32 } %25
  792.  
  793. ; <label>:26: ; preds = %2
  794. %27 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %12)
  795. to label %28 unwind label %62
  796.  
  797. ; <label>:28: ; preds = %26
  798. %29 = icmp eq i64 %27, 0
  799. br i1 %29, label %30, label %32
  800.  
  801. ; <label>:30: ; preds = %28
  802. call void @llvm.assume(i1 true)
  803. %31 = invoke { [0 x i32]*, i64 } @_ZN4core5slice14from_raw_parts17hacb157bb9f25ba37E(i32* inttoptr (i64 1 to i32*), i64 %17)
  804. to label %61 unwind label %62
  805.  
  806. ; <label>:32: ; preds = %28
  807. %33 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %12)
  808. to label %34 unwind label %62
  809.  
  810. ; <label>:34: ; preds = %32
  811. %35 = icmp eq i64 %33, 0
  812. %36 = call i1 @llvm.expect.i1(i1 %35, i1 false)
  813. br i1 %36, label %69, label %37
  814.  
  815. ; <label>:37: ; preds = %34
  816. %38 = udiv i64 %17, %33
  817. %39 = invoke { [0 x i32]*, i64 } @_ZN4core5slice14from_raw_parts17hacb157bb9f25ba37E(i32* %12, i64 %38)
  818. to label %40 unwind label %62
  819.  
  820. ; <label>:40: ; preds = %37
  821. %41 = extractvalue { [0 x i32]*, i64 } %39, 0
  822. %42 = extractvalue { [0 x i32]*, i64 } %39, 1
  823. %43 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %9, i32 0, i32 0
  824. store [0 x i32]* %41, [0 x i32]** %43, align 8
  825. %44 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %9, i32 0, i32 1
  826. store i64 %42, i64* %44, align 8
  827. br label %45
  828.  
  829. ; <label>:45: ; preds = %61, %40
  830. %46 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %9, i32 0, i32 0
  831. %47 = load [0 x i32]*, [0 x i32]** %46, align 8, !nonnull !3
  832. %48 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %9, i32 0, i32 1
  833. %49 = load i64, i64* %48, align 8
  834. %50 = invoke i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %47, i64 %49)
  835. to label %51 unwind label %62
  836.  
  837. ; <label>:51: ; preds = %45
  838. store i64 %50, i64* %10, align 8
  839. store i8 0, i8* %4, align 1
  840. %52 = bitcast %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* %6 to %"import_path_to_string::{{closure}}"*
  841. invoke void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8try_fold17h67c1a77f983d137aE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %7, { i32*, i32* }* dereferenceable(16) %1, i64 0)
  842. to label %53 unwind label %62
  843.  
  844. ; <label>:53: ; preds = %51
  845. invoke void @"_ZN47_$LT$core..result..Result$LT$T$C$$u20$E$GT$$GT$3err17h7575ad3e8a4fc754E"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(16) %8, %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16) %7)
  846. to label %54 unwind label %62
  847.  
  848. ; <label>:54: ; preds = %53
  849. store i64* %10, i64** %5, align 8
  850. %55 = load i64*, i64** %5, align 8, !nonnull !3
  851. invoke void @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$3map17hac95c6f09e5eb2e1E"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(16) %0, %"core::option::Option<usize>"* noalias nocapture dereferenceable(16) %8, i64* noalias readonly dereferenceable(8) %55)
  852. to label %56 unwind label %62
  853.  
  854. ; <label>:56: ; preds = %54
  855. ret void
  856.  
  857. ; <label>:57: ; preds = %58
  858. store i8 0, i8* %4, align 1
  859. br label %18
  860.  
  861. ; <label>:58: ; preds = %62
  862. %59 = load i8, i8* %4, align 1, !range !2
  863. %60 = trunc i8 %59 to i1
  864. br i1 %60, label %57, label %18
  865.  
  866. ; <label>:61: ; preds = %30
  867. store { [0 x i32]*, i64 } %31, { [0 x i32]*, i64 }* %9, align 8
  868. br label %45
  869.  
  870. ; <label>:62: ; preds = %69, %54, %53, %51, %45, %37, %32, %30, %26, %2
  871. %63 = landingpad { i8*, i32 }
  872. cleanup
  873. %64 = bitcast { i8*, i32 }* %3 to i8*
  874. call void @llvm.lifetime.start.p0i8(i64 16, i8* %64)
  875. %65 = extractvalue { i8*, i32 } %63, 0
  876. %66 = extractvalue { i8*, i32 } %63, 1
  877. %67 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %3, i32 0, i32 0
  878. store i8* %65, i8** %67, align 8
  879. %68 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %3, i32 0, i32 1
  880. store i32 %66, i32* %68, align 8
  881. br label %58
  882.  
  883. ; <label>:69: ; preds = %34
  884. invoke void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.6 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
  885. to label %70 unwind label %62
  886.  
  887. ; <label>:70: ; preds = %69
  888. unreachable
  889. }
  890.  
  891. ; Function Attrs: uwtable
  892. define internal i64 @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hab0db5dfbde4de17E"(i64* noalias readonly dereferenceable(8), i64) unnamed_addr #2 {
  893. %3 = load i64, i64* %0, align 8
  894. %4 = icmp ult i64 %1, %3
  895. call void @llvm.assume(i1 %4)
  896. br label %5
  897.  
  898. ; <label>:5: ; preds = %2
  899. ret i64 %1
  900. }
  901.  
  902. ; Function Attrs: uwtable
  903. define internal void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hbb59cc67849b96ddE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16), %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* nonnull, i64, i32* noalias readonly dereferenceable(4)) unnamed_addr #2 {
  904. %5 = alloca i32*, align 8
  905. %6 = bitcast %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* %1 to %"import_path_to_string::{{closure}}"*
  906. store i32* %3, i32** %5, align 8
  907. %7 = load i32*, i32** %5, align 8, !nonnull !3
  908. %8 = call zeroext i1 @"_ZN19bad_position_simple21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17h6e8857c45441a25dE"(%"import_path_to_string::{{closure}}"* nonnull %6, i32* noalias readonly dereferenceable(4) %7)
  909. br label %9
  910.  
  911. ; <label>:9: ; preds = %4
  912. br i1 %8, label %10, label %14
  913.  
  914. ; <label>:10: ; preds = %9
  915. %11 = bitcast %"core::result::Result<usize, usize>"* %0 to %"core::result::Result<usize, usize>::Err"*
  916. %12 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %11, i32 0, i32 1
  917. store i64 %2, i64* %12, align 8
  918. %13 = bitcast %"core::result::Result<usize, usize>"* %0 to i64*
  919. store i64 1, i64* %13, align 8
  920. br label %23
  921.  
  922. ; <label>:14: ; preds = %9
  923. %15 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %2, i64 1)
  924. %16 = extractvalue { i64, i1 } %15, 0
  925. %17 = extractvalue { i64, i1 } %15, 1
  926. %18 = call i1 @llvm.expect.i1(i1 %17, i1 false)
  927. br i1 %18, label %24, label %19
  928.  
  929. ; <label>:19: ; preds = %14
  930. %20 = bitcast %"core::result::Result<usize, usize>"* %0 to %"core::result::Result<usize, usize>::Ok"*
  931. %21 = getelementptr inbounds %"core::result::Result<usize, usize>::Ok", %"core::result::Result<usize, usize>::Ok"* %20, i32 0, i32 1
  932. store i64 %16, i64* %21, align 8
  933. %22 = bitcast %"core::result::Result<usize, usize>"* %0 to i64*
  934. store i64 0, i64* %22, align 8
  935. br label %23
  936.  
  937. ; <label>:23: ; preds = %19, %10
  938. ret void
  939.  
  940. ; <label>:24: ; preds = %14
  941. call void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.8 to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
  942. unreachable
  943. }
  944.  
  945. ; Function Attrs: inlinehint uwtable
  946. define internal void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8try_fold17h67c1a77f983d137aE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16), { i32*, i32* }* dereferenceable(16), i64) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality {
  947. %4 = alloca { i8*, i32 }, align 8
  948. %5 = alloca i8, align 1
  949. %6 = alloca i8, align 1
  950. %7 = alloca i8, align 1
  951. %8 = alloca i8, align 1
  952. %9 = alloca i8, align 1
  953. %10 = alloca i8, align 1
  954. %11 = alloca i32*, align 8
  955. %12 = alloca { i64, i32* }, align 8
  956. %13 = alloca %"core::result::Result<usize, usize>", align 8
  957. %14 = alloca %"core::result::Result<usize, usize>", align 8
  958. %15 = alloca i32*, align 8
  959. %16 = alloca { i64, i32* }, align 8
  960. %17 = alloca %"core::result::Result<usize, usize>", align 8
  961. %18 = alloca %"core::result::Result<usize, usize>", align 8
  962. %19 = alloca i32*, align 8
  963. %20 = alloca { i64, i32* }, align 8
  964. %21 = alloca %"core::result::Result<usize, usize>", align 8
  965. %22 = alloca %"core::result::Result<usize, usize>", align 8
  966. %23 = alloca i32*, align 8
  967. %24 = alloca { i64, i32* }, align 8
  968. %25 = alloca %"core::result::Result<usize, usize>", align 8
  969. %26 = alloca %"core::result::Result<usize, usize>", align 8
  970. %27 = alloca i32*, align 8
  971. %28 = alloca { i64, i32* }, align 8
  972. %29 = alloca %"core::result::Result<usize, usize>", align 8
  973. %30 = alloca %"core::result::Result<usize, usize>", align 8
  974. %31 = alloca %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>", align 1
  975. %32 = alloca i64, align 8
  976. store i64 %2, i64* %32, align 8
  977. store i8 0, i8* %10, align 1
  978. store i8 0, i8* %9, align 1
  979. store i8 0, i8* %8, align 1
  980. store i8 0, i8* %7, align 1
  981. store i8 0, i8* %6, align 1
  982. store i8 0, i8* %5, align 1
  983. store i8 1, i8* %10, align 1
  984. br label %42
  985.  
  986. ; <label>:33: ; preds = %41
  987. %34 = bitcast { i8*, i32 }* %4 to i8**
  988. %35 = load i8*, i8** %34, align 8
  989. %36 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  990. %37 = load i32, i32* %36, align 4
  991. %38 = bitcast { i8*, i32 }* %4 to i8*
  992. call void @llvm.lifetime.end.p0i8(i64 16, i8* %38)
  993. %39 = insertvalue { i8*, i32 } undef, i8* %35, 0
  994. %40 = insertvalue { i8*, i32 } %39, i32 %37, 1
  995. resume { i8*, i32 } %40
  996.  
  997. ; <label>:41: ; preds = %261, %260
  998. br label %33
  999.  
  1000. ; <label>:42: ; preds = %303, %194, %3
  1001. %43 = bitcast { i32*, i32* }* %1 to i32**
  1002. %44 = load i32*, i32** %43, align 8
  1003. %45 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %1, i32 0, i32 1
  1004. %46 = load i32*, i32** %45, align 8
  1005. %47 = invoke i64 @_ZN4core5slice11ptrdistance17h036ab170e59738e1E(i32* %44, i32* %46)
  1006. to label %48 unwind label %311
  1007.  
  1008. ; <label>:48: ; preds = %42
  1009. %49 = icmp uge i64 %47, 4
  1010. br i1 %49, label %50, label %209
  1011.  
  1012. ; <label>:50: ; preds = %48
  1013. store i8 0, i8* %10, align 1
  1014. store i8 1, i8* %9, align 1
  1015. %51 = load i64, i64* %32, align 8
  1016. %52 = bitcast { i32*, i32* }* %1 to i32**
  1017. %53 = invoke i32* @_ZN4core5slice10PointerExt8post_inc17hc9f8b6822179ed09E(i32** dereferenceable(8) %52)
  1018. to label %54 unwind label %318
  1019.  
  1020. ; <label>:54: ; preds = %50
  1021. %55 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %53)
  1022. to label %56 unwind label %318
  1023.  
  1024. ; <label>:56: ; preds = %54
  1025. %57 = icmp eq i64 %55, 0
  1026. br i1 %57, label %58, label %59
  1027.  
  1028. ; <label>:58: ; preds = %56
  1029. call void @llvm.assume(i1 true)
  1030. store i32* inttoptr (i64 1 to i32*), i32** %27, align 8
  1031. br label %60
  1032.  
  1033. ; <label>:59: ; preds = %56
  1034. store i32* %53, i32** %27, align 8
  1035. br label %60
  1036.  
  1037. ; <label>:60: ; preds = %59, %58
  1038. store i8 0, i8* %9, align 1
  1039. %61 = bitcast { i64, i32* }* %28 to i64*
  1040. store i64 %51, i64* %61, align 8
  1041. %62 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %28, i32 0, i32 1
  1042. %63 = load i32*, i32** %27, align 8, !nonnull !3
  1043. store i32* %63, i32** %62, align 8
  1044. %64 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %28, i32 0, i32 0
  1045. %65 = load i64, i64* %64, align 8
  1046. %66 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %28, i32 0, i32 1
  1047. %67 = load i32*, i32** %66, align 8, !nonnull !3
  1048. invoke void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hbb59cc67849b96ddE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %29, %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* nonnull %31, i64 %65, i32* noalias readonly dereferenceable(4) %67)
  1049. to label %68 unwind label %318
  1050.  
  1051. ; <label>:68: ; preds = %60
  1052. store i8 0, i8* %9, align 1
  1053. invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %30, %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16) %29)
  1054. to label %69 unwind label %311
  1055.  
  1056. ; <label>:69: ; preds = %68
  1057. %70 = bitcast %"core::result::Result<usize, usize>"* %30 to i64*
  1058. %71 = load i64, i64* %70, align 8, !range !1
  1059. %72 = bitcast %"core::result::Result<usize, usize>"* %30 to i64*
  1060. %73 = load i64, i64* %72, align 8, !range !1
  1061. switch i64 %73, label %77 [
  1062. i64 0, label %78
  1063. i64 1, label %84
  1064. ]
  1065.  
  1066. ; <label>:74: ; preds = %325
  1067. %75 = bitcast %"core::result::Result<usize, usize>"* %30 to i64*
  1068. %76 = load i64, i64* %75, align 8, !range !1
  1069. switch i64 %76, label %261 [
  1070. i64 0, label %268
  1071. ]
  1072.  
  1073. ; <label>:77: ; preds = %236, %186, %148, %110, %69
  1074. unreachable
  1075.  
  1076. ; <label>:78: ; preds = %69
  1077. %79 = bitcast %"core::result::Result<usize, usize>"* %30 to %"core::result::Result<usize, usize>::Ok"*
  1078. %80 = getelementptr inbounds %"core::result::Result<usize, usize>::Ok", %"core::result::Result<usize, usize>::Ok"* %79, i32 0, i32 1
  1079. %81 = load i64, i64* %80, align 8
  1080. store i8 1, i8* %10, align 1
  1081. store i64 %81, i64* %32, align 8
  1082. %82 = bitcast %"core::result::Result<usize, usize>"* %30 to i64*
  1083. %83 = load i64, i64* %82, align 8, !range !1
  1084. switch i64 %83, label %274 [
  1085. i64 0, label %270
  1086. ]
  1087.  
  1088. ; <label>:84: ; preds = %69
  1089. %85 = bitcast %"core::result::Result<usize, usize>"* %30 to %"core::result::Result<usize, usize>::Err"*
  1090. %86 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %85, i32 0, i32 1
  1091. %87 = load i64, i64* %86, align 8
  1092. %88 = invoke i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %87)
  1093. to label %89 unwind label %325
  1094.  
  1095. ; <label>:89: ; preds = %84
  1096. invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %0, i64 %88)
  1097. to label %90 unwind label %325
  1098.  
  1099. ; <label>:90: ; preds = %89
  1100. %91 = bitcast %"core::result::Result<usize, usize>"* %30 to i64*
  1101. %92 = load i64, i64* %91, align 8, !range !1
  1102. switch i64 %92, label %94 [
  1103. i64 0, label %269
  1104. ]
  1105.  
  1106. ; <label>:93: ; preds = %259, %94
  1107. ret void
  1108.  
  1109. ; <label>:94: ; preds = %309, %302, %291, %280, %269, %256, %206, %168, %130, %90
  1110. store i8 0, i8* %10, align 1
  1111. br label %93
  1112.  
  1113. ; <label>:95: ; preds = %270
  1114. %96 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %273)
  1115. to label %97 unwind label %332
  1116.  
  1117. ; <label>:97: ; preds = %95
  1118. %98 = icmp eq i64 %96, 0
  1119. br i1 %98, label %99, label %100
  1120.  
  1121. ; <label>:99: ; preds = %97
  1122. call void @llvm.assume(i1 true)
  1123. store i32* inttoptr (i64 1 to i32*), i32** %23, align 8
  1124. br label %101
  1125.  
  1126. ; <label>:100: ; preds = %97
  1127. store i32* %273, i32** %23, align 8
  1128. br label %101
  1129.  
  1130. ; <label>:101: ; preds = %100, %99
  1131. store i8 0, i8* %8, align 1
  1132. %102 = bitcast { i64, i32* }* %24 to i64*
  1133. store i64 %271, i64* %102, align 8
  1134. %103 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %24, i32 0, i32 1
  1135. %104 = load i32*, i32** %23, align 8, !nonnull !3
  1136. store i32* %104, i32** %103, align 8
  1137. %105 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %24, i32 0, i32 0
  1138. %106 = load i64, i64* %105, align 8
  1139. %107 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %24, i32 0, i32 1
  1140. %108 = load i32*, i32** %107, align 8, !nonnull !3
  1141. invoke void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hbb59cc67849b96ddE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %25, %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* nonnull %31, i64 %106, i32* noalias readonly dereferenceable(4) %108)
  1142. to label %109 unwind label %332
  1143.  
  1144. ; <label>:109: ; preds = %101
  1145. store i8 0, i8* %8, align 1
  1146. invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %26, %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16) %25)
  1147. to label %110 unwind label %311
  1148.  
  1149. ; <label>:110: ; preds = %109
  1150. %111 = bitcast %"core::result::Result<usize, usize>"* %26 to i64*
  1151. %112 = load i64, i64* %111, align 8, !range !1
  1152. %113 = bitcast %"core::result::Result<usize, usize>"* %26 to i64*
  1153. %114 = load i64, i64* %113, align 8, !range !1
  1154. switch i64 %114, label %77 [
  1155. i64 0, label %118
  1156. i64 1, label %124
  1157. ]
  1158.  
  1159. ; <label>:115: ; preds = %339
  1160. %116 = bitcast %"core::result::Result<usize, usize>"* %26 to i64*
  1161. %117 = load i64, i64* %116, align 8, !range !1
  1162. switch i64 %117, label %261 [
  1163. i64 0, label %279
  1164. ]
  1165.  
  1166. ; <label>:118: ; preds = %110
  1167. %119 = bitcast %"core::result::Result<usize, usize>"* %26 to %"core::result::Result<usize, usize>::Ok"*
  1168. %120 = getelementptr inbounds %"core::result::Result<usize, usize>::Ok", %"core::result::Result<usize, usize>::Ok"* %119, i32 0, i32 1
  1169. %121 = load i64, i64* %120, align 8
  1170. store i8 1, i8* %10, align 1
  1171. store i64 %121, i64* %32, align 8
  1172. %122 = bitcast %"core::result::Result<usize, usize>"* %26 to i64*
  1173. %123 = load i64, i64* %122, align 8, !range !1
  1174. switch i64 %123, label %285 [
  1175. i64 0, label %281
  1176. ]
  1177.  
  1178. ; <label>:124: ; preds = %110
  1179. %125 = bitcast %"core::result::Result<usize, usize>"* %26 to %"core::result::Result<usize, usize>::Err"*
  1180. %126 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %125, i32 0, i32 1
  1181. %127 = load i64, i64* %126, align 8
  1182. %128 = invoke i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %127)
  1183. to label %129 unwind label %339
  1184.  
  1185. ; <label>:129: ; preds = %124
  1186. invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %0, i64 %128)
  1187. to label %130 unwind label %339
  1188.  
  1189. ; <label>:130: ; preds = %129
  1190. %131 = bitcast %"core::result::Result<usize, usize>"* %26 to i64*
  1191. %132 = load i64, i64* %131, align 8, !range !1
  1192. switch i64 %132, label %94 [
  1193. i64 0, label %280
  1194. ]
  1195.  
  1196. ; <label>:133: ; preds = %281
  1197. %134 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %284)
  1198. to label %135 unwind label %346
  1199.  
  1200. ; <label>:135: ; preds = %133
  1201. %136 = icmp eq i64 %134, 0
  1202. br i1 %136, label %137, label %138
  1203.  
  1204. ; <label>:137: ; preds = %135
  1205. call void @llvm.assume(i1 true)
  1206. store i32* inttoptr (i64 1 to i32*), i32** %19, align 8
  1207. br label %139
  1208.  
  1209. ; <label>:138: ; preds = %135
  1210. store i32* %284, i32** %19, align 8
  1211. br label %139
  1212.  
  1213. ; <label>:139: ; preds = %138, %137
  1214. store i8 0, i8* %7, align 1
  1215. %140 = bitcast { i64, i32* }* %20 to i64*
  1216. store i64 %282, i64* %140, align 8
  1217. %141 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %20, i32 0, i32 1
  1218. %142 = load i32*, i32** %19, align 8, !nonnull !3
  1219. store i32* %142, i32** %141, align 8
  1220. %143 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %20, i32 0, i32 0
  1221. %144 = load i64, i64* %143, align 8
  1222. %145 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %20, i32 0, i32 1
  1223. %146 = load i32*, i32** %145, align 8, !nonnull !3
  1224. invoke void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hbb59cc67849b96ddE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %21, %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* nonnull %31, i64 %144, i32* noalias readonly dereferenceable(4) %146)
  1225. to label %147 unwind label %346
  1226.  
  1227. ; <label>:147: ; preds = %139
  1228. store i8 0, i8* %7, align 1
  1229. invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %22, %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16) %21)
  1230. to label %148 unwind label %311
  1231.  
  1232. ; <label>:148: ; preds = %147
  1233. %149 = bitcast %"core::result::Result<usize, usize>"* %22 to i64*
  1234. %150 = load i64, i64* %149, align 8, !range !1
  1235. %151 = bitcast %"core::result::Result<usize, usize>"* %22 to i64*
  1236. %152 = load i64, i64* %151, align 8, !range !1
  1237. switch i64 %152, label %77 [
  1238. i64 0, label %156
  1239. i64 1, label %162
  1240. ]
  1241.  
  1242. ; <label>:153: ; preds = %353
  1243. %154 = bitcast %"core::result::Result<usize, usize>"* %22 to i64*
  1244. %155 = load i64, i64* %154, align 8, !range !1
  1245. switch i64 %155, label %261 [
  1246. i64 0, label %290
  1247. ]
  1248.  
  1249. ; <label>:156: ; preds = %148
  1250. %157 = bitcast %"core::result::Result<usize, usize>"* %22 to %"core::result::Result<usize, usize>::Ok"*
  1251. %158 = getelementptr inbounds %"core::result::Result<usize, usize>::Ok", %"core::result::Result<usize, usize>::Ok"* %157, i32 0, i32 1
  1252. %159 = load i64, i64* %158, align 8
  1253. store i8 1, i8* %10, align 1
  1254. store i64 %159, i64* %32, align 8
  1255. %160 = bitcast %"core::result::Result<usize, usize>"* %22 to i64*
  1256. %161 = load i64, i64* %160, align 8, !range !1
  1257. switch i64 %161, label %296 [
  1258. i64 0, label %292
  1259. ]
  1260.  
  1261. ; <label>:162: ; preds = %148
  1262. %163 = bitcast %"core::result::Result<usize, usize>"* %22 to %"core::result::Result<usize, usize>::Err"*
  1263. %164 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %163, i32 0, i32 1
  1264. %165 = load i64, i64* %164, align 8
  1265. %166 = invoke i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %165)
  1266. to label %167 unwind label %353
  1267.  
  1268. ; <label>:167: ; preds = %162
  1269. invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %0, i64 %166)
  1270. to label %168 unwind label %353
  1271.  
  1272. ; <label>:168: ; preds = %167
  1273. %169 = bitcast %"core::result::Result<usize, usize>"* %22 to i64*
  1274. %170 = load i64, i64* %169, align 8, !range !1
  1275. switch i64 %170, label %94 [
  1276. i64 0, label %291
  1277. ]
  1278.  
  1279. ; <label>:171: ; preds = %292
  1280. %172 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %295)
  1281. to label %173 unwind label %360
  1282.  
  1283. ; <label>:173: ; preds = %171
  1284. %174 = icmp eq i64 %172, 0
  1285. br i1 %174, label %175, label %176
  1286.  
  1287. ; <label>:175: ; preds = %173
  1288. call void @llvm.assume(i1 true)
  1289. store i32* inttoptr (i64 1 to i32*), i32** %15, align 8
  1290. br label %177
  1291.  
  1292. ; <label>:176: ; preds = %173
  1293. store i32* %295, i32** %15, align 8
  1294. br label %177
  1295.  
  1296. ; <label>:177: ; preds = %176, %175
  1297. store i8 0, i8* %6, align 1
  1298. %178 = bitcast { i64, i32* }* %16 to i64*
  1299. store i64 %293, i64* %178, align 8
  1300. %179 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %16, i32 0, i32 1
  1301. %180 = load i32*, i32** %15, align 8, !nonnull !3
  1302. store i32* %180, i32** %179, align 8
  1303. %181 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %16, i32 0, i32 0
  1304. %182 = load i64, i64* %181, align 8
  1305. %183 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %16, i32 0, i32 1
  1306. %184 = load i32*, i32** %183, align 8, !nonnull !3
  1307. invoke void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hbb59cc67849b96ddE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %17, %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* nonnull %31, i64 %182, i32* noalias readonly dereferenceable(4) %184)
  1308. to label %185 unwind label %360
  1309.  
  1310. ; <label>:185: ; preds = %177
  1311. store i8 0, i8* %6, align 1
  1312. invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %18, %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16) %17)
  1313. to label %186 unwind label %311
  1314.  
  1315. ; <label>:186: ; preds = %185
  1316. %187 = bitcast %"core::result::Result<usize, usize>"* %18 to i64*
  1317. %188 = load i64, i64* %187, align 8, !range !1
  1318. %189 = bitcast %"core::result::Result<usize, usize>"* %18 to i64*
  1319. %190 = load i64, i64* %189, align 8, !range !1
  1320. switch i64 %190, label %77 [
  1321. i64 0, label %194
  1322. i64 1, label %200
  1323. ]
  1324.  
  1325. ; <label>:191: ; preds = %367
  1326. %192 = bitcast %"core::result::Result<usize, usize>"* %18 to i64*
  1327. %193 = load i64, i64* %192, align 8, !range !1
  1328. switch i64 %193, label %261 [
  1329. i64 0, label %301
  1330. ]
  1331.  
  1332. ; <label>:194: ; preds = %186
  1333. %195 = bitcast %"core::result::Result<usize, usize>"* %18 to %"core::result::Result<usize, usize>::Ok"*
  1334. %196 = getelementptr inbounds %"core::result::Result<usize, usize>::Ok", %"core::result::Result<usize, usize>::Ok"* %195, i32 0, i32 1
  1335. %197 = load i64, i64* %196, align 8
  1336. store i8 1, i8* %10, align 1
  1337. store i64 %197, i64* %32, align 8
  1338. %198 = bitcast %"core::result::Result<usize, usize>"* %18 to i64*
  1339. %199 = load i64, i64* %198, align 8, !range !1
  1340. switch i64 %199, label %303 [
  1341. i64 0, label %42
  1342. ]
  1343.  
  1344. ; <label>:200: ; preds = %186
  1345. %201 = bitcast %"core::result::Result<usize, usize>"* %18 to %"core::result::Result<usize, usize>::Err"*
  1346. %202 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %201, i32 0, i32 1
  1347. %203 = load i64, i64* %202, align 8
  1348. %204 = invoke i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %203)
  1349. to label %205 unwind label %367
  1350.  
  1351. ; <label>:205: ; preds = %200
  1352. invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %0, i64 %204)
  1353. to label %206 unwind label %367
  1354.  
  1355. ; <label>:206: ; preds = %205
  1356. %207 = bitcast %"core::result::Result<usize, usize>"* %18 to i64*
  1357. %208 = load i64, i64* %207, align 8, !range !1
  1358. switch i64 %208, label %94 [
  1359. i64 0, label %302
  1360. ]
  1361.  
  1362. ; <label>:209: ; preds = %310, %244, %48
  1363. %210 = bitcast { i32*, i32* }* %1 to i32**
  1364. %211 = load i32*, i32** %210, align 8
  1365. %212 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %1, i32 0, i32 1
  1366. %213 = load i32*, i32** %212, align 8
  1367. %214 = icmp ne i32* %211, %213
  1368. br i1 %214, label %217, label %215
  1369.  
  1370. ; <label>:215: ; preds = %209
  1371. store i8 0, i8* %10, align 1
  1372. %216 = load i64, i64* %32, align 8
  1373. invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$7from_ok17hed12cd599a454669E"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %0, i64 %216)
  1374. to label %259 unwind label %311
  1375.  
  1376. ; <label>:217: ; preds = %209
  1377. store i8 0, i8* %10, align 1
  1378. store i8 1, i8* %5, align 1
  1379. %218 = load i64, i64* %32, align 8
  1380. %219 = bitcast { i32*, i32* }* %1 to i32**
  1381. %220 = invoke i32* @_ZN4core5slice10PointerExt8post_inc17hc9f8b6822179ed09E(i32** dereferenceable(8) %219)
  1382. to label %221 unwind label %374
  1383.  
  1384. ; <label>:221: ; preds = %217
  1385. %222 = invoke i64 @_ZN4core5slice13size_from_ptr17h73637563565851c6E(i32* %220)
  1386. to label %223 unwind label %374
  1387.  
  1388. ; <label>:223: ; preds = %221
  1389. %224 = icmp eq i64 %222, 0
  1390. br i1 %224, label %225, label %226
  1391.  
  1392. ; <label>:225: ; preds = %223
  1393. call void @llvm.assume(i1 true)
  1394. store i32* inttoptr (i64 1 to i32*), i32** %11, align 8
  1395. br label %227
  1396.  
  1397. ; <label>:226: ; preds = %223
  1398. store i32* %220, i32** %11, align 8
  1399. br label %227
  1400.  
  1401. ; <label>:227: ; preds = %226, %225
  1402. store i8 0, i8* %5, align 1
  1403. %228 = bitcast { i64, i32* }* %12 to i64*
  1404. store i64 %218, i64* %228, align 8
  1405. %229 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %12, i32 0, i32 1
  1406. %230 = load i32*, i32** %11, align 8, !nonnull !3
  1407. store i32* %230, i32** %229, align 8
  1408. %231 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %12, i32 0, i32 0
  1409. %232 = load i64, i64* %231, align 8
  1410. %233 = getelementptr inbounds { i64, i32* }, { i64, i32* }* %12, i32 0, i32 1
  1411. %234 = load i32*, i32** %233, align 8, !nonnull !3
  1412. invoke void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position28_$u7b$$u7b$closure$u7d$$u7d$17hbb59cc67849b96ddE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %13, %"core::slice::{{impl}}::position::{{closure}}<u32, import_path_to_string::{{closure}}>"* nonnull %31, i64 %232, i32* noalias readonly dereferenceable(4) %234)
  1413. to label %235 unwind label %374
  1414.  
  1415. ; <label>:235: ; preds = %227
  1416. store i8 0, i8* %5, align 1
  1417. invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %14, %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16) %13)
  1418. to label %236 unwind label %311
  1419.  
  1420. ; <label>:236: ; preds = %235
  1421. %237 = bitcast %"core::result::Result<usize, usize>"* %14 to i64*
  1422. %238 = load i64, i64* %237, align 8, !range !1
  1423. %239 = bitcast %"core::result::Result<usize, usize>"* %14 to i64*
  1424. %240 = load i64, i64* %239, align 8, !range !1
  1425. switch i64 %240, label %77 [
  1426. i64 0, label %244
  1427. i64 1, label %250
  1428. ]
  1429.  
  1430. ; <label>:241: ; preds = %381
  1431. %242 = bitcast %"core::result::Result<usize, usize>"* %14 to i64*
  1432. %243 = load i64, i64* %242, align 8, !range !1
  1433. switch i64 %243, label %261 [
  1434. i64 0, label %308
  1435. ]
  1436.  
  1437. ; <label>:244: ; preds = %236
  1438. %245 = bitcast %"core::result::Result<usize, usize>"* %14 to %"core::result::Result<usize, usize>::Ok"*
  1439. %246 = getelementptr inbounds %"core::result::Result<usize, usize>::Ok", %"core::result::Result<usize, usize>::Ok"* %245, i32 0, i32 1
  1440. %247 = load i64, i64* %246, align 8
  1441. store i8 1, i8* %10, align 1
  1442. store i64 %247, i64* %32, align 8
  1443. %248 = bitcast %"core::result::Result<usize, usize>"* %14 to i64*
  1444. %249 = load i64, i64* %248, align 8, !range !1
  1445. switch i64 %249, label %310 [
  1446. i64 0, label %209
  1447. ]
  1448.  
  1449. ; <label>:250: ; preds = %236
  1450. %251 = bitcast %"core::result::Result<usize, usize>"* %14 to %"core::result::Result<usize, usize>::Err"*
  1451. %252 = getelementptr inbounds %"core::result::Result<usize, usize>::Err", %"core::result::Result<usize, usize>::Err"* %251, i32 0, i32 1
  1452. %253 = load i64, i64* %252, align 8
  1453. %254 = invoke i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64 %253)
  1454. to label %255 unwind label %381
  1455.  
  1456. ; <label>:255: ; preds = %250
  1457. invoke void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16) %0, i64 %254)
  1458. to label %256 unwind label %381
  1459.  
  1460. ; <label>:256: ; preds = %255
  1461. %257 = bitcast %"core::result::Result<usize, usize>"* %14 to i64*
  1462. %258 = load i64, i64* %257, align 8, !range !1
  1463. switch i64 %258, label %94 [
  1464. i64 0, label %309
  1465. ]
  1466.  
  1467. ; <label>:259: ; preds = %215
  1468. store i8 0, i8* %10, align 1
  1469. br label %93
  1470.  
  1471. ; <label>:260: ; preds = %261
  1472. store i8 0, i8* %10, align 1
  1473. br label %41
  1474.  
  1475. ; <label>:261: ; preds = %311, %308, %305, %304, %301, %298, %297, %290, %287, %286, %279, %276, %275, %268, %265, %264, %241, %191, %153, %115, %74
  1476. %262 = load i8, i8* %10, align 1, !range !2
  1477. %263 = trunc i8 %262 to i1
  1478. br i1 %263, label %260, label %41
  1479.  
  1480. ; <label>:264: ; preds = %265
  1481. store i8 0, i8* %9, align 1
  1482. br label %261
  1483.  
  1484. ; <label>:265: ; preds = %318
  1485. %266 = load i8, i8* %9, align 1, !range !2
  1486. %267 = trunc i8 %266 to i1
  1487. br i1 %267, label %264, label %261
  1488.  
  1489. ; <label>:268: ; preds = %74
  1490. br label %261
  1491.  
  1492. ; <label>:269: ; preds = %90
  1493. br label %94
  1494.  
  1495. ; <label>:270: ; preds = %274, %78
  1496. store i8 0, i8* %10, align 1
  1497. store i8 1, i8* %8, align 1
  1498. %271 = load i64, i64* %32, align 8
  1499. %272 = bitcast { i32*, i32* }* %1 to i32**
  1500. %273 = invoke i32* @_ZN4core5slice10PointerExt8post_inc17hc9f8b6822179ed09E(i32** dereferenceable(8) %272)
  1501. to label %95 unwind label %332
  1502.  
  1503. ; <label>:274: ; preds = %78
  1504. br label %270
  1505.  
  1506. ; <label>:275: ; preds = %276
  1507. store i8 0, i8* %8, align 1
  1508. br label %261
  1509.  
  1510. ; <label>:276: ; preds = %332
  1511. %277 = load i8, i8* %8, align 1, !range !2
  1512. %278 = trunc i8 %277 to i1
  1513. br i1 %278, label %275, label %261
  1514.  
  1515. ; <label>:279: ; preds = %115
  1516. br label %261
  1517.  
  1518. ; <label>:280: ; preds = %130
  1519. br label %94
  1520.  
  1521. ; <label>:281: ; preds = %285, %118
  1522. store i8 0, i8* %10, align 1
  1523. store i8 1, i8* %7, align 1
  1524. %282 = load i64, i64* %32, align 8
  1525. %283 = bitcast { i32*, i32* }* %1 to i32**
  1526. %284 = invoke i32* @_ZN4core5slice10PointerExt8post_inc17hc9f8b6822179ed09E(i32** dereferenceable(8) %283)
  1527. to label %133 unwind label %346
  1528.  
  1529. ; <label>:285: ; preds = %118
  1530. br label %281
  1531.  
  1532. ; <label>:286: ; preds = %287
  1533. store i8 0, i8* %7, align 1
  1534. br label %261
  1535.  
  1536. ; <label>:287: ; preds = %346
  1537. %288 = load i8, i8* %7, align 1, !range !2
  1538. %289 = trunc i8 %288 to i1
  1539. br i1 %289, label %286, label %261
  1540.  
  1541. ; <label>:290: ; preds = %153
  1542. br label %261
  1543.  
  1544. ; <label>:291: ; preds = %168
  1545. br label %94
  1546.  
  1547. ; <label>:292: ; preds = %296, %156
  1548. store i8 0, i8* %10, align 1
  1549. store i8 1, i8* %6, align 1
  1550. %293 = load i64, i64* %32, align 8
  1551. %294 = bitcast { i32*, i32* }* %1 to i32**
  1552. %295 = invoke i32* @_ZN4core5slice10PointerExt8post_inc17hc9f8b6822179ed09E(i32** dereferenceable(8) %294)
  1553. to label %171 unwind label %360
  1554.  
  1555. ; <label>:296: ; preds = %156
  1556. br label %292
  1557.  
  1558. ; <label>:297: ; preds = %298
  1559. store i8 0, i8* %6, align 1
  1560. br label %261
  1561.  
  1562. ; <label>:298: ; preds = %360
  1563. %299 = load i8, i8* %6, align 1, !range !2
  1564. %300 = trunc i8 %299 to i1
  1565. br i1 %300, label %297, label %261
  1566.  
  1567. ; <label>:301: ; preds = %191
  1568. br label %261
  1569.  
  1570. ; <label>:302: ; preds = %206
  1571. br label %94
  1572.  
  1573. ; <label>:303: ; preds = %194
  1574. br label %42
  1575.  
  1576. ; <label>:304: ; preds = %305
  1577. store i8 0, i8* %5, align 1
  1578. br label %261
  1579.  
  1580. ; <label>:305: ; preds = %374
  1581. %306 = load i8, i8* %5, align 1, !range !2
  1582. %307 = trunc i8 %306 to i1
  1583. br i1 %307, label %304, label %261
  1584.  
  1585. ; <label>:308: ; preds = %241
  1586. br label %261
  1587.  
  1588. ; <label>:309: ; preds = %256
  1589. br label %94
  1590.  
  1591. ; <label>:310: ; preds = %244
  1592. br label %209
  1593.  
  1594. ; <label>:311: ; preds = %235, %215, %185, %147, %109, %68, %42
  1595. %312 = landingpad { i8*, i32 }
  1596. cleanup
  1597. %313 = bitcast { i8*, i32 }* %4 to i8*
  1598. call void @llvm.lifetime.start.p0i8(i64 16, i8* %313)
  1599. %314 = extractvalue { i8*, i32 } %312, 0
  1600. %315 = extractvalue { i8*, i32 } %312, 1
  1601. %316 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
  1602. store i8* %314, i8** %316, align 8
  1603. %317 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  1604. store i32 %315, i32* %317, align 8
  1605. br label %261
  1606.  
  1607. ; <label>:318: ; preds = %60, %54, %50
  1608. %319 = landingpad { i8*, i32 }
  1609. cleanup
  1610. %320 = bitcast { i8*, i32 }* %4 to i8*
  1611. call void @llvm.lifetime.start.p0i8(i64 16, i8* %320)
  1612. %321 = extractvalue { i8*, i32 } %319, 0
  1613. %322 = extractvalue { i8*, i32 } %319, 1
  1614. %323 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
  1615. store i8* %321, i8** %323, align 8
  1616. %324 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  1617. store i32 %322, i32* %324, align 8
  1618. br label %265
  1619.  
  1620. ; <label>:325: ; preds = %89, %84
  1621. %326 = landingpad { i8*, i32 }
  1622. cleanup
  1623. %327 = bitcast { i8*, i32 }* %4 to i8*
  1624. call void @llvm.lifetime.start.p0i8(i64 16, i8* %327)
  1625. %328 = extractvalue { i8*, i32 } %326, 0
  1626. %329 = extractvalue { i8*, i32 } %326, 1
  1627. %330 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
  1628. store i8* %328, i8** %330, align 8
  1629. %331 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  1630. store i32 %329, i32* %331, align 8
  1631. br label %74
  1632.  
  1633. ; <label>:332: ; preds = %270, %101, %95
  1634. %333 = landingpad { i8*, i32 }
  1635. cleanup
  1636. %334 = bitcast { i8*, i32 }* %4 to i8*
  1637. call void @llvm.lifetime.start.p0i8(i64 16, i8* %334)
  1638. %335 = extractvalue { i8*, i32 } %333, 0
  1639. %336 = extractvalue { i8*, i32 } %333, 1
  1640. %337 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
  1641. store i8* %335, i8** %337, align 8
  1642. %338 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  1643. store i32 %336, i32* %338, align 8
  1644. br label %276
  1645.  
  1646. ; <label>:339: ; preds = %129, %124
  1647. %340 = landingpad { i8*, i32 }
  1648. cleanup
  1649. %341 = bitcast { i8*, i32 }* %4 to i8*
  1650. call void @llvm.lifetime.start.p0i8(i64 16, i8* %341)
  1651. %342 = extractvalue { i8*, i32 } %340, 0
  1652. %343 = extractvalue { i8*, i32 } %340, 1
  1653. %344 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
  1654. store i8* %342, i8** %344, align 8
  1655. %345 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  1656. store i32 %343, i32* %345, align 8
  1657. br label %115
  1658.  
  1659. ; <label>:346: ; preds = %281, %139, %133
  1660. %347 = landingpad { i8*, i32 }
  1661. cleanup
  1662. %348 = bitcast { i8*, i32 }* %4 to i8*
  1663. call void @llvm.lifetime.start.p0i8(i64 16, i8* %348)
  1664. %349 = extractvalue { i8*, i32 } %347, 0
  1665. %350 = extractvalue { i8*, i32 } %347, 1
  1666. %351 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
  1667. store i8* %349, i8** %351, align 8
  1668. %352 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  1669. store i32 %350, i32* %352, align 8
  1670. br label %287
  1671.  
  1672. ; <label>:353: ; preds = %167, %162
  1673. %354 = landingpad { i8*, i32 }
  1674. cleanup
  1675. %355 = bitcast { i8*, i32 }* %4 to i8*
  1676. call void @llvm.lifetime.start.p0i8(i64 16, i8* %355)
  1677. %356 = extractvalue { i8*, i32 } %354, 0
  1678. %357 = extractvalue { i8*, i32 } %354, 1
  1679. %358 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
  1680. store i8* %356, i8** %358, align 8
  1681. %359 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  1682. store i32 %357, i32* %359, align 8
  1683. br label %153
  1684.  
  1685. ; <label>:360: ; preds = %292, %177, %171
  1686. %361 = landingpad { i8*, i32 }
  1687. cleanup
  1688. %362 = bitcast { i8*, i32 }* %4 to i8*
  1689. call void @llvm.lifetime.start.p0i8(i64 16, i8* %362)
  1690. %363 = extractvalue { i8*, i32 } %361, 0
  1691. %364 = extractvalue { i8*, i32 } %361, 1
  1692. %365 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
  1693. store i8* %363, i8** %365, align 8
  1694. %366 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  1695. store i32 %364, i32* %366, align 8
  1696. br label %298
  1697.  
  1698. ; <label>:367: ; preds = %205, %200
  1699. %368 = landingpad { i8*, i32 }
  1700. cleanup
  1701. %369 = bitcast { i8*, i32 }* %4 to i8*
  1702. call void @llvm.lifetime.start.p0i8(i64 16, i8* %369)
  1703. %370 = extractvalue { i8*, i32 } %368, 0
  1704. %371 = extractvalue { i8*, i32 } %368, 1
  1705. %372 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
  1706. store i8* %370, i8** %372, align 8
  1707. %373 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  1708. store i32 %371, i32* %373, align 8
  1709. br label %191
  1710.  
  1711. ; <label>:374: ; preds = %227, %221, %217
  1712. %375 = landingpad { i8*, i32 }
  1713. cleanup
  1714. %376 = bitcast { i8*, i32 }* %4 to i8*
  1715. call void @llvm.lifetime.start.p0i8(i64 16, i8* %376)
  1716. %377 = extractvalue { i8*, i32 } %375, 0
  1717. %378 = extractvalue { i8*, i32 } %375, 1
  1718. %379 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
  1719. store i8* %377, i8** %379, align 8
  1720. %380 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  1721. store i32 %378, i32* %380, align 8
  1722. br label %305
  1723.  
  1724. ; <label>:381: ; preds = %255, %250
  1725. %382 = landingpad { i8*, i32 }
  1726. cleanup
  1727. %383 = bitcast { i8*, i32 }* %4 to i8*
  1728. call void @llvm.lifetime.start.p0i8(i64 16, i8* %383)
  1729. %384 = extractvalue { i8*, i32 } %382, 0
  1730. %385 = extractvalue { i8*, i32 } %382, 1
  1731. %386 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 0
  1732. store i8* %384, i8** %386, align 8
  1733. %387 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %4, i32 0, i32 1
  1734. store i32 %385, i32* %387, align 8
  1735. br label %241
  1736. }
  1737.  
  1738. ; Function Attrs: inlinehint uwtable
  1739. define internal { [0 x i32]*, i64 } @"_ZN99_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$13get_unchecked17he9b2cfe1bb70066dE"(i64, i64, [0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
  1740. %5 = call i32* @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$6as_ptr17h32215ff12a098383E"([0 x i32]* noalias nonnull readonly %2, i64 %3)
  1741. br label %6
  1742.  
  1743. ; <label>:6: ; preds = %4
  1744. %7 = icmp ule i64 %0, -1
  1745. call void @llvm.assume(i1 %7)
  1746. %8 = call i32* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h2db78cc51ca12da6E"(i32* %5, i64 %0)
  1747. br label %9
  1748.  
  1749. ; <label>:9: ; preds = %6
  1750. %10 = call { i64, i1 } @llvm.usub.with.overflow.i64(i64 %1, i64 %0)
  1751. %11 = extractvalue { i64, i1 } %10, 0
  1752. %12 = extractvalue { i64, i1 } %10, 1
  1753. %13 = call i1 @llvm.expect.i1(i1 %12, i1 false)
  1754. br i1 %13, label %21, label %14
  1755.  
  1756. ; <label>:14: ; preds = %9
  1757. %15 = call { [0 x i32]*, i64 } @_ZN4core5slice14from_raw_parts17hacb157bb9f25ba37E(i32* %8, i64 %11)
  1758. %16 = extractvalue { [0 x i32]*, i64 } %15, 0
  1759. %17 = extractvalue { [0 x i32]*, i64 } %15, 1
  1760. br label %18
  1761.  
  1762. ; <label>:18: ; preds = %14
  1763. %19 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %16, 0
  1764. %20 = insertvalue { [0 x i32]*, i64 } %19, i64 %17, 1
  1765. ret { [0 x i32]*, i64 } %20
  1766.  
  1767. ; <label>:21: ; preds = %9
  1768. call void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.a to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
  1769. unreachable
  1770. }
  1771.  
  1772. ; Function Attrs: inlinehint uwtable
  1773. define internal { [0 x i32]*, i64 } @"_ZN99_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h5697259416355b17E"(i64, i64, [0 x i32]* noalias nonnull readonly, i64) unnamed_addr #0 {
  1774. %5 = icmp ugt i64 %0, %1
  1775. br i1 %5, label %6, label %7
  1776.  
  1777. ; <label>:6: ; preds = %4
  1778. call void @_ZN4core5slice22slice_index_order_fail17hd0a9eb5d87471258E(i64 %0, i64 %1)
  1779. unreachable
  1780.  
  1781. ; <label>:7: ; preds = %4
  1782. %8 = call i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %2, i64 %3)
  1783. br label %9
  1784.  
  1785. ; <label>:9: ; preds = %7
  1786. %10 = icmp ugt i64 %1, %8
  1787. br i1 %10, label %11, label %13
  1788.  
  1789. ; <label>:11: ; preds = %9
  1790. %12 = call i64 @"_ZN53_$LT$$u5b$T$u5d$$u20$as$u20$core..slice..SliceExt$GT$3len17he70cfd9d37ed05efE"([0 x i32]* noalias nonnull readonly %2, i64 %3)
  1791. br label %17
  1792.  
  1793. ; <label>:13: ; preds = %9
  1794. %14 = call { [0 x i32]*, i64 } @"_ZN99_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$13get_unchecked17he9b2cfe1bb70066dE"(i64 %0, i64 %1, [0 x i32]* noalias nonnull readonly %2, i64 %3)
  1795. %15 = extractvalue { [0 x i32]*, i64 } %14, 0
  1796. %16 = extractvalue { [0 x i32]*, i64 } %14, 1
  1797. br label %18
  1798.  
  1799. ; <label>:17: ; preds = %11
  1800. call void @_ZN4core5slice20slice_index_len_fail17h41ae248f36c196f1E(i64 %1, i64 %12)
  1801. unreachable
  1802.  
  1803. ; <label>:18: ; preds = %13
  1804. %19 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %15, 0
  1805. %20 = insertvalue { [0 x i32]*, i64 } %19, i64 %16, 1
  1806. ret { [0 x i32]*, i64 } %20
  1807. }
  1808.  
  1809. ; Function Attrs: uwtable
  1810. define internal void @_ZN19bad_position_simple4main17hd6968b5c65b64145E() unnamed_addr #2 {
  1811. call void @_ZN19bad_position_simple21import_path_to_string17h210232a05b4d0302E([0 x i32]* noalias nonnull readonly bitcast ([1 x i32]* @ref.b to [0 x i32]*), i64 1)
  1812. br label %1
  1813.  
  1814. ; <label>:1: ; preds = %0
  1815. call void @_ZN19bad_position_simple21import_path_to_string17h210232a05b4d0302E([0 x i32]* noalias nonnull readonly @ref.c, i64 0)
  1816. br label %2
  1817.  
  1818. ; <label>:2: ; preds = %1
  1819. ret void
  1820. }
  1821.  
  1822. ; Function Attrs: uwtable
  1823. define internal void @_ZN19bad_position_simple21import_path_to_string17h210232a05b4d0302E([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #2 {
  1824. %3 = alloca i64, align 8
  1825. %4 = alloca i64*, align 8
  1826. %5 = alloca [1 x { i8*, i8* }], align 8
  1827. %6 = alloca %"core::fmt::Arguments", align 8
  1828. %7 = alloca i64, align 8
  1829. %8 = alloca { [0 x i32]*, i64 }, align 8
  1830. %9 = alloca i64, align 8
  1831. %10 = alloca { i64, i64 }, align 8
  1832. %11 = alloca { [0 x i32]*, i64 }, align 8
  1833. %12 = alloca i8, align 1
  1834. %13 = alloca { i32*, i32* }, align 8
  1835. %14 = alloca %"core::option::Option<usize>", align 8
  1836. %15 = call { i32*, i32* } @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$4iter17h08ec6eec9d3c8166E"([0 x i32]* noalias nonnull readonly %0, i64 %1)
  1837. store { i32*, i32* } %15, { i32*, i32* }* %13, align 8
  1838. br label %16
  1839.  
  1840. ; <label>:16: ; preds = %2
  1841. call void @"_ZN91_$LT$core..slice..Iter$LT$$u27$a$C$$u20$T$GT$$u20$as$u20$core..iter..iterator..Iterator$GT$8position17hf1a29b42059163daE"(%"core::option::Option<usize>"* noalias nocapture sret dereferenceable(16) %14, { i32*, i32* }* dereferenceable(16) %13)
  1842. br label %17
  1843.  
  1844. ; <label>:17: ; preds = %16
  1845. %18 = call zeroext i1 @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$8is_empty17h7069f18437424c5eE"([0 x i32]* noalias nonnull readonly %0, i64 %1)
  1846. br label %29
  1847.  
  1848. ; <label>:19: ; preds = %31
  1849. store i8 1, i8* %12, align 1
  1850. br label %24
  1851.  
  1852. ; <label>:20: ; preds = %31, %29
  1853. store i8 0, i8* %12, align 1
  1854. br label %24
  1855.  
  1856. ; <label>:21: ; preds = %29
  1857. %22 = icmp ult i64 0, %1
  1858. %23 = call i1 @llvm.expect.i1(i1 %22, i1 true)
  1859. br i1 %23, label %31, label %115
  1860.  
  1861. ; <label>:24: ; preds = %20, %19
  1862. %25 = bitcast %"core::option::Option<usize>"* %14 to i64*
  1863. %26 = load i64, i64* %25, align 8, !range !1
  1864. %27 = bitcast %"core::option::Option<usize>"* %14 to i64*
  1865. %28 = load i64, i64* %27, align 8, !range !1
  1866. switch i64 %28, label %35 [
  1867. i64 1, label %38
  1868. ]
  1869.  
  1870. ; <label>:29: ; preds = %17
  1871. %30 = xor i1 %18, true
  1872. br i1 %30, label %21, label %20
  1873.  
  1874. ; <label>:31: ; preds = %21
  1875. %32 = getelementptr inbounds [0 x i32], [0 x i32]* %0, i64 0, i64 0
  1876. %33 = load i32, i32* %32, align 4
  1877. %34 = icmp eq i32 %33, 1
  1878. br i1 %34, label %19, label %20
  1879.  
  1880. ; <label>:35: ; preds = %24
  1881. %36 = load i8, i8* %12, align 1, !range !2
  1882. %37 = trunc i8 %36 to i1
  1883. br i1 %37, label %76, label %81
  1884.  
  1885. ; <label>:38: ; preds = %24
  1886. %39 = bitcast %"core::option::Option<usize>"* %14 to %"core::option::Option<usize>::Some"*
  1887. %40 = getelementptr inbounds %"core::option::Option<usize>::Some", %"core::option::Option<usize>::Some"* %39, i32 0, i32 1
  1888. %41 = load i64, i64* %40, align 8
  1889. %42 = load i8, i8* %12, align 1, !range !2
  1890. %43 = trunc i8 %42 to i1
  1891. br i1 %43, label %45, label %50
  1892.  
  1893. ; <label>:44: ; preds = %93, %73, %65
  1894. ret void
  1895.  
  1896. ; <label>:45: ; preds = %38
  1897. %46 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %41, i64 1)
  1898. %47 = extractvalue { i64, i1 } %46, 0
  1899. %48 = extractvalue { i64, i1 } %46, 1
  1900. %49 = call i1 @llvm.expect.i1(i1 %48, i1 false)
  1901. br i1 %49, label %116, label %55
  1902.  
  1903. ; <label>:50: ; preds = %38
  1904. %51 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %41, i64 1)
  1905. %52 = extractvalue { i64, i1 } %51, 0
  1906. %53 = extractvalue { i64, i1 } %51, 1
  1907. %54 = call i1 @llvm.expect.i1(i1 %53, i1 false)
  1908. br i1 %54, label %117, label %68
  1909.  
  1910. ; <label>:55: ; preds = %45
  1911. %56 = bitcast { i64, i64 }* %10 to i64*
  1912. store i64 1, i64* %56, align 8
  1913. %57 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %10, i32 0, i32 1
  1914. store i64 %47, i64* %57, align 8
  1915. %58 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %10, i32 0, i32 0
  1916. %59 = load i64, i64* %58, align 8
  1917. %60 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %10, i32 0, i32 1
  1918. %61 = load i64, i64* %60, align 8
  1919. %62 = call { [0 x i32]*, i64 } @"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h0fe7e803fce1e20aE"([0 x i32]* noalias nonnull readonly %0, i64 %1, i64 %59, i64 %61)
  1920. %63 = extractvalue { [0 x i32]*, i64 } %62, 0
  1921. %64 = extractvalue { [0 x i32]*, i64 } %62, 1
  1922. br label %65
  1923.  
  1924. ; <label>:65: ; preds = %55
  1925. %66 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %11, i32 0, i32 0
  1926. store [0 x i32]* %63, [0 x i32]** %66, align 8
  1927. %67 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %11, i32 0, i32 1
  1928. store i64 %64, i64* %67, align 8
  1929. br label %44
  1930.  
  1931. ; <label>:68: ; preds = %50
  1932. store i64 %52, i64* %9, align 8
  1933. %69 = load i64, i64* %9, align 8
  1934. %70 = call { [0 x i32]*, i64 } @"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17h41f64f54e8d1b7d6E"([0 x i32]* noalias nonnull readonly %0, i64 %1, i64 %69)
  1935. %71 = extractvalue { [0 x i32]*, i64 } %70, 0
  1936. %72 = extractvalue { [0 x i32]*, i64 } %70, 1
  1937. br label %73
  1938.  
  1939. ; <label>:73: ; preds = %68
  1940. %74 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %11, i32 0, i32 0
  1941. store [0 x i32]* %71, [0 x i32]** %74, align 8
  1942. %75 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %11, i32 0, i32 1
  1943. store i64 %72, i64* %75, align 8
  1944. br label %44
  1945.  
  1946. ; <label>:76: ; preds = %35
  1947. store i64 1, i64* %7, align 8
  1948. %77 = load i64, i64* %7, align 8
  1949. %78 = call { [0 x i32]*, i64 } @"_ZN4core5slice74_$LT$impl$u20$core..ops..index..Index$LT$I$GT$$u20$for$u20$$u5b$T$u5d$$GT$5index17hd2e2694457d96551E"([0 x i32]* noalias nonnull readonly %0, i64 %1, i64 %77)
  1950. %79 = extractvalue { [0 x i32]*, i64 } %78, 0
  1951. %80 = extractvalue { [0 x i32]*, i64 } %78, 1
  1952. br label %84
  1953.  
  1954. ; <label>:81: ; preds = %35
  1955. %82 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 0
  1956. store [0 x i32]* %0, [0 x i32]** %82, align 8
  1957. %83 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 1
  1958. store i64 %1, i64* %83, align 8
  1959. br label %87
  1960.  
  1961. ; <label>:84: ; preds = %76
  1962. %85 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 0
  1963. store [0 x i32]* %79, [0 x i32]** %85, align 8
  1964. %86 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 1
  1965. store i64 %80, i64* %86, align 8
  1966. br label %87
  1967.  
  1968. ; <label>:87: ; preds = %84, %81
  1969. %88 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 0
  1970. %89 = load [0 x i32]*, [0 x i32]** %88, align 8, !nonnull !3
  1971. %90 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 1
  1972. %91 = load i64, i64* %90, align 8
  1973. %92 = call zeroext i1 @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$8is_empty17h7069f18437424c5eE"([0 x i32]* noalias nonnull readonly %89, i64 %91)
  1974. br label %93
  1975.  
  1976. ; <label>:93: ; preds = %87
  1977. %94 = xor i1 %92, true
  1978. br i1 %94, label %95, label %44
  1979.  
  1980. ; <label>:95: ; preds = %93
  1981. %96 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 0
  1982. %97 = load [0 x i32]*, [0 x i32]** %96, align 8, !nonnull !3
  1983. %98 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %8, i32 0, i32 1
  1984. %99 = load i64, i64* %98, align 8
  1985. %100 = call i64 @"_ZN5alloc5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$3len17hab82a3a5ee843773E"([0 x i32]* noalias nonnull readonly %97, i64 %99)
  1986. store i64 %100, i64* %3, align 8
  1987. br label %101
  1988.  
  1989. ; <label>:101: ; preds = %95
  1990. store i64* %3, i64** %4, align 8
  1991. %102 = load i64*, i64** %4, align 8, !nonnull !3
  1992. %103 = call { i8*, i8* } @_ZN4core3fmt10ArgumentV13new17h62ac4e23745d2eacE(i64* noalias readonly dereferenceable(8) %102, i1 (i64*, %"core::fmt::Formatter"*)* nonnull @"_ZN4core3fmt3num54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h4b475879c6110157E")
  1993. %104 = extractvalue { i8*, i8* } %103, 0
  1994. %105 = extractvalue { i8*, i8* } %103, 1
  1995. br label %106
  1996.  
  1997. ; <label>:106: ; preds = %101
  1998. %107 = getelementptr inbounds [1 x { i8*, i8* }], [1 x { i8*, i8* }]* %5, i64 0, i64 0
  1999. %108 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %107, i32 0, i32 0
  2000. store i8* %104, i8** %108, align 8
  2001. %109 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %107, i32 0, i32 1
  2002. store i8* %105, i8** %109, align 8
  2003. %110 = bitcast [1 x { i8*, i8* }]* %5 to [0 x { i8*, i8* }]*
  2004. %111 = load [1 x %"core::fmt::rt::v1::Argument"]*, [1 x %"core::fmt::rt::v1::Argument"]** bitcast ({ { [0 x i8], { i64, [0 x i8], i64, [0 x i8] }, [0 x i8], { [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], <{ i64, [8 x i8] }>, [0 x i8], i32, [0 x i8], i32, [0 x i8], i8, [7 x i8] }, [0 x i8] } }** @const.i to [1 x %"core::fmt::rt::v1::Argument"]**), align 8, !nonnull !3
  2005. %112 = bitcast [1 x %"core::fmt::rt::v1::Argument"]* %111 to [0 x %"core::fmt::rt::v1::Argument"]*
  2006. call void @_ZN4core3fmt9Arguments16new_v1_formatted17hea2ae333548f7201E(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %6, [0 x { [0 x i8]*, i64 }]* noalias nonnull readonly bitcast ([1 x { [0 x i8]*, i64 }]* @ref.g to [0 x { [0 x i8]*, i64 }]*), i64 1, [0 x { i8*, i8* }]* noalias nonnull readonly %110, i64 1, [0 x %"core::fmt::rt::v1::Argument"]* noalias nonnull readonly %112, i64 1)
  2007. br label %113
  2008.  
  2009. ; <label>:113: ; preds = %106
  2010. %114 = load { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*, { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }** bitcast ({ [0 x i8], { [0 x i8]*, i64 }, [0 x i8], i32, [0 x i8], i32, [0 x i8] }** @const.k to { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }**), align 8, !nonnull !3
  2011. call void @_ZN3std9panicking15begin_panic_fmt17h12231957b6c3aabeE(%"core::fmt::Arguments"* noalias readonly dereferenceable(48) %6, { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(24) %114)
  2012. unreachable
  2013.  
  2014. ; <label>:115: ; preds = %21
  2015. call void @_ZN4core9panicking18panic_bounds_check17hb9ff1ec5af7b2839E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(24) bitcast ({ { [0 x i8]*, i64 }, i32, i32 }* @panic_bounds_check_loc.e to { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*), i64 0, i64 %1)
  2016. unreachable
  2017.  
  2018. ; <label>:116: ; preds = %45
  2019. call void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.l to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
  2020. unreachable
  2021.  
  2022. ; <label>:117: ; preds = %50
  2023. call void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40) bitcast ({ { [0 x i8]*, i64 }, { [0 x i8]*, i64 }, i32, i32 }* @panic_loc.m to { [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }*))
  2024. unreachable
  2025. }
  2026.  
  2027. ; Function Attrs: uwtable
  2028. define internal zeroext i1 @"_ZN19bad_position_simple21import_path_to_string28_$u7b$$u7b$closure$u7d$$u7d$17h6e8857c45441a25dE"(%"import_path_to_string::{{closure}}"* nonnull, i32* noalias readonly dereferenceable(4)) unnamed_addr #2 {
  2029. %3 = load i32, i32* %1, align 4
  2030. %4 = icmp ne i32 %3, 1
  2031. ret i1 %4
  2032. }
  2033.  
  2034. declare i32 @rust_eh_personality(i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #3
  2035.  
  2036. ; Function Attrs: argmemonly nounwind
  2037. declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #4
  2038.  
  2039. ; Function Attrs: nounwind
  2040. declare void @llvm.assume(i1) #5
  2041.  
  2042. ; Function Attrs: nounwind readnone
  2043. declare i1 @llvm.expect.i1(i1, i1) #6
  2044.  
  2045. ; Function Attrs: cold noinline noreturn
  2046. declare void @_ZN4core9panicking5panic17hfefa0158f97fa77bE({ [0 x i64], { [0 x i8]*, i64 }, [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(40)) unnamed_addr #7
  2047.  
  2048. declare hidden zeroext i1 @_ZN4core5slice8SliceExt8is_empty17h5df57ca3a59651deE([0 x i32]* noalias nonnull readonly, i64) unnamed_addr #3
  2049.  
  2050. ; Function Attrs: nounwind readnone speculatable
  2051. declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) #8
  2052.  
  2053. declare hidden void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$11into_result17h20c389a4d040cb5eE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16), %"core::result::Result<usize, usize>"* noalias nocapture dereferenceable(16)) unnamed_addr #3
  2054.  
  2055. declare hidden i64 @"_ZN50_$LT$T$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h514ffbaf3bb75a3eE"(i64) unnamed_addr #3
  2056.  
  2057. declare hidden void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$10from_error17h222e7515b9cde0afE"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #3
  2058.  
  2059. declare hidden void @"_ZN78_$LT$core..result..Result$LT$T$C$$u20$E$GT$$u20$as$u20$core..ops..try..Try$GT$7from_ok17hed12cd599a454669E"(%"core::result::Result<usize, usize>"* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #3
  2060.  
  2061. ; Function Attrs: nounwind readnone speculatable
  2062. declare { i64, i1 } @llvm.usub.with.overflow.i64(i64, i64) #8
  2063.  
  2064. ; Function Attrs: cold noinline noreturn
  2065. declare void @_ZN4core5slice22slice_index_order_fail17hd0a9eb5d87471258E(i64, i64) unnamed_addr #7
  2066.  
  2067. ; Function Attrs: cold noinline noreturn
  2068. declare void @_ZN4core5slice20slice_index_len_fail17h41ae248f36c196f1E(i64, i64) unnamed_addr #7
  2069.  
  2070. ; Function Attrs: cold noinline noreturn
  2071. declare void @_ZN4core9panicking18panic_bounds_check17hb9ff1ec5af7b2839E({ [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(24), i64, i64) unnamed_addr #7
  2072.  
  2073. declare zeroext i1 @"_ZN4core3fmt3num54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h4b475879c6110157E"(i64* noalias readonly dereferenceable(8), %"core::fmt::Formatter"* dereferenceable(96)) unnamed_addr #3
  2074.  
  2075. declare hidden { i8*, i8* } @_ZN4core3fmt10ArgumentV13new17h62ac4e23745d2eacE(i64* noalias readonly dereferenceable(8), i1 (i64*, %"core::fmt::Formatter"*)* nonnull) unnamed_addr #3
  2076.  
  2077. ; Function Attrs: cold noinline noreturn
  2078. declare void @_ZN3std9panicking15begin_panic_fmt17h12231957b6c3aabeE(%"core::fmt::Arguments"* noalias readonly dereferenceable(48), { [0 x i64], { [0 x i8]*, i64 }, [0 x i32], i32, [0 x i32], i32, [0 x i32] }* noalias readonly dereferenceable(24)) unnamed_addr #7
  2079.  
  2080. define i32 @main(i32, i8**) unnamed_addr {
  2081. %3 = sext i32 %0 to i64
  2082. %4 = call i64 @_ZN3std2rt10lang_start17hc22bd9d4d8304f2bE(void ()* @_ZN19bad_position_simple4main17hd6968b5c65b64145E, i64 %3, i8** %1)
  2083. %5 = trunc i64 %4 to i32
  2084. ret i32 %5
  2085. }
  2086.  
  2087. declare hidden i64 @_ZN3std2rt10lang_start17hc22bd9d4d8304f2bE(void ()* nonnull, i64, i8**) unnamed_addr #3
  2088.  
  2089. ; Function Attrs: argmemonly nounwind
  2090. declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #4
  2091.  
  2092. ; Function Attrs: argmemonly nounwind
  2093. declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #4
  2094.  
  2095. attributes #0 = { inlinehint uwtable "probe-stack"="__rust_probestack" }
  2096. attributes #1 = { alwaysinline uwtable "probe-stack"="__rust_probestack" }
  2097. attributes #2 = { uwtable "probe-stack"="__rust_probestack" }
  2098. attributes #3 = { "probe-stack"="__rust_probestack" }
  2099. attributes #4 = { argmemonly nounwind }
  2100. attributes #5 = { nounwind }
  2101. attributes #6 = { nounwind readnone }
  2102. attributes #7 = { cold noinline noreturn "probe-stack"="__rust_probestack" }
  2103. attributes #8 = { nounwind readnone speculatable }
  2104.  
  2105. !llvm.module.flags = !{!0}
  2106.  
  2107. !0 = !{i32 7, !"PIE Level", i32 2}
  2108. !1 = !{i64 0, i64 2}
  2109. !2 = !{i8 0, i8 2}
  2110. !3 = !{}
Add Comment
Please, Sign In to add comment