Skip to content

Instantly share code, notes, and snippets.

@luqmana
Created July 27, 2013 21:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save luqmana/6096303 to your computer and use it in GitHub Desktop.
Save luqmana/6096303 to your computer and use it in GitHub Desktop.
; ModuleID = 'rust.rc'
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%tydesc = type { i64, i64, void ({}*, i8*)*, void ({}*, i8*)*, void ({}*, i8*)*, void ({}*, i8*)* }
%enum.ValidUsage = type { i64, i64, [0 x i8] }
%enum.Action = type { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }
%str_slice = type { i8*, i64 }
%enum.UsageSource = type { i64, %str_slice, [0 x i8] }
%"enum.std::libc::types::common::c95::c_void[#1]" = type {}
%"enum.std::option::Option<~str>[#1]" = type { { i64, i64, [0 x i8] }* }
%"struct.std::path::PosixPath[#1]" = type { i8, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* }
%"struct.std::unstable::extfmt::rt::Conv[#1]" = type { i32, %"enum.std::unstable::extfmt::rt::Count[#1]", %"enum.std::unstable::extfmt::rt::Count[#1]", %"enum.std::unstable::extfmt::rt::Ty[#1]" }
%"enum.std::unstable::extfmt::rt::Count[#1]" = type { i64, i64, [0 x i8] }
%"enum.std::unstable::extfmt::rt::Ty[#1]" = type { i64 }
%struct.Command = type { %str_slice, %enum.Action, %str_slice, %enum.UsageSource }
%"struct.std::unstable::raw::Vec<()>[#1]" = type { i64, i64, {} }
%"enum.std::option::Option<Command>[#1]" = type { i64, [88 x i8] }
@_rust_crate_map_rust_0.8-pre_8d2fe0c0fe8188b = global { i32, i8*, i64, [8 x i64] } { i32 1, i8* bitcast (void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN8unstable4lang10annihilate16_82984335c95fdd514_0$x2e8$x2dpreE" to i8*), i64 ptrtoint ([1 x { i64, i64 }]* @_rust_mod_map to i64), [8 x i64] [i64 ptrtoint (i64* @_rust_crate_map_std_0.8-pre_6c65cf4b443341b1 to i64), i64 ptrtoint (i64* @_rust_crate_map_rustpkg_0.8-pre_38a86178bd95e7e1 to i64), i64 ptrtoint (i64* @_rust_crate_map_extra_0.8-pre_a7c050cfd46b2c9a to i64), i64 ptrtoint (i64* @_rust_crate_map_rustc_0.8-pre_d3cb8c2ccd84a7a7 to i64), i64 ptrtoint (i64* @_rust_crate_map_syntax_0.8-pre_64629f7f0c6a9bc to i64), i64 ptrtoint (i64* @_rust_crate_map_rustdoc_0.8-pre_6b49af4948607d84 to i64), i64 ptrtoint (i64* @_rust_crate_map_rusti_0.8-pre_53e0ef2ae196aaff to i64), i64 0] }
@"_ZN10ValidUsage5Valid7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 0
@"_ZN10ValidUsage7Invalid7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 1
@"_ZN6Action4Call7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 0
@"_ZN6Action8CallMain7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 1
@"_ZN11UsageSource6UsgStr7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 0
@"_ZN11UsageSource7UsgCall7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 1
@str10647 = internal constant [6 x i8] c"build\00"
@str10648 = internal constant [6 x i8] c"rustc\00"
@str10649 = internal constant [26 x i8] c"compile rust source files\00"
@str10651 = internal constant [4 x i8] c"run\00"
@str10653 = internal constant [32 x i8] c"build an executable, and run it\00"
@str10654 = internal constant [167 x i8] c"The run command is an shortcut for the command line \0A\22rustc <filename> -o <filestem>~ && ./<filestem>~ [<arguments>...]\22.\0A\0AUsage:\09rust run <filename> [<arguments>...]\00"
@str10655 = internal constant [5 x i8] c"test\00"
@str10656 = internal constant [36 x i8] c"build a test executable, and run it\00"
@str10657 = internal constant [149 x i8] c"The test command is an shortcut for the command line \0A\22rustc --test <filename> -o <filestem>test~ && ./<filestem>test~\22\0A\0AUsage:\09rust test <filename>\00"
@str10658 = internal constant [4 x i8] c"doc\00"
@str10659 = internal constant [8 x i8] c"rustdoc\00"
@str10660 = internal constant [41 x i8] c"generate documentation from doc comments\00"
@str10661 = internal constant [4 x i8] c"pkg\00"
@str10662 = internal constant [8 x i8] c"rustpkg\00"
@str10663 = internal constant [39 x i8] c"download, build, install rust packages\00"
@str10664 = internal constant [7 x i8] c"sketch\00"
@str10665 = internal constant [6 x i8] c"rusti\00"
@str10666 = internal constant [23 x i8] c"run a rust interpreter\00"
@str10667 = internal constant [14 x i8] c"\0AUsage:\09rusti\00"
@str10668 = internal constant [5 x i8] c"help\00"
@str10669 = internal constant [33 x i8] c"show detailed usage of a command\00"
@str10670 = internal constant [160 x i8] c"The help command displays the usage text of another command.\0AThe text is either build in, or provided by the corresponding program.\0A\0AUsage:\09rust help <command>\00"
@const = private constant { { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } } { { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([6 x i8]* @str10647, i32 0, i32 0), i64 6 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([6 x i8]* @str10648, i32 0, i32 0), i64 6 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([26 x i8]* @str10649, i32 0, i32 0), i64 26 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } { i64 1, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN10rustc_help16_d7417fb5c428c7e14_0$x2e8$x2dpreE", [8 x i8] undef } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([4 x i8]* @str10651, i32 0, i32 0), i64 4 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } { i64 0, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* @"_ZN7cmd_run17_64cd22cf85a72bbc14_0$x2e8$x2dpreE", [16 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([32 x i8]* @str10653, i32 0, i32 0), i64 32 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([167 x i8]* @str10654, i32 0, i32 0), i64 167 }, [0 x i8] undef } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([5 x i8]* @str10655, i32 0, i32 0), i64 5 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } { i64 0, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* @"_ZN8cmd_test17_64cd22cf85a72bbc14_0$x2e8$x2dpreE", [16 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([36 x i8]* @str10656, i32 0, i32 0), i64 36 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([149 x i8]* @str10657, i32 0, i32 0), i64 149 }, [0 x i8] undef } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([4 x i8]* @str10658, i32 0, i32 0), i64 4 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([8 x i8]* @str10659, i32 0, i32 0), i64 8 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main16_923425a5c682dca14_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([41 x i8]* @str10660, i32 0, i32 0), i64 41 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } { i64 1, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN6config5usage16_923425a5c682dca14_0$x2e8$x2dpreE", [8 x i8] undef } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([4 x i8]* @str10661, i32 0, i32 0), i64 4 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([8 x i8]* @str10662, i32 0, i32 0), i64 8 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main16_f7604413a6f2de214_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([39 x i8]* @str10663, i32 0, i32 0), i64 39 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } { i64 1, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN5usage7general16_f7604413a6f2de214_0$x2e8$x2dpreE", [8 x i8] undef } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([7 x i8]* @str10664, i32 0, i32 0), i64 7 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([6 x i8]* @str10665, i32 0, i32 0), i64 6 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main17_3a346db0adc4cf5114_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([23 x i8]* @str10666, i32 0, i32 0), i64 23 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([14 x i8]* @str10667, i32 0, i32 0), i64 14 }, [0 x i8] undef } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([5 x i8]* @str10668, i32 0, i32 0), i64 5 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } { i64 0, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* @"_ZN8cmd_help17_64cd22cf85a72bbc14_0$x2e8$x2dpreE", [16 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([33 x i8]* @str10669, i32 0, i32 0), i64 33 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([160 x i8]* @str10670, i32 0, i32 0), i64 160 }, [0 x i8] undef } } }
@str10726 = internal constant [40 x i8] c"/scratch/laden/rust/src/librust/rust.rs\00"
@str10809 = internal constant [27 x i8] c"vector size is too large: \00"
@str10820 = internal constant [38 x i8] c"/scratch/laden/rust/src/libstd/vec.rs\00"
@str10873 = internal constant [19 x i8] c"assertion failed: \00"
@str10874 = internal constant [8 x i8] c"len > 0\00"
@str10875 = internal constant [38 x i8] c"/scratch/laden/rust/src/libstd/str.rs\00"
@str11019 = internal constant [5 x i8] c"The \00"
@str11020 = internal constant [30 x i8] c" command is an alias for the \00"
@str11021 = internal constant [10 x i8] c" program.\00"
@str11022 = internal constant [1 x i8] zeroinitializer
@str11023 = internal constant [2 x i8] c"\0A\00"
@str11026 = internal constant [20 x i8] c"option::unwrap None\00"
@str11027 = internal constant [41 x i8] c"/scratch/laden/rust/src/libstd/option.rs\00"
@str11042 = internal constant [6 x i8] c"test~\00"
@str11044 = internal constant [7 x i8] c"--test\00"
@str11051 = internal constant [3 x i8] c"-o\00"
@str11052 = internal constant [3 x i8] c"./\00"
@str11159 = internal constant [177 x i8] c"The rust tool is a convenience for managing rust source code.\0AIt acts as a shortcut for programs of the rust tool chain.\0A\0AUsage:\09rust <command> [arguments]\0A\0AThe commands are:\0A\0A\00"
@str11165 = internal constant [2 x i8] c" \00"
@str11166 = internal constant [5 x i8] c" \00"
@str11167 = internal constant [67 x i8] c"\0AUse \22rust help <command>\22 for more information about a command.\0A\0A\00"
@str11171 = internal constant [3 x i8] c"-v\00"
@str11172 = internal constant [10 x i8] c"--version\00"
@str11180 = internal constant [13 x i8] c"start <= end\00"
@_rust_crate_map_std_0.8-pre_6c65cf4b443341b1 = external global i64
@_rust_crate_map_rustpkg_0.8-pre_38a86178bd95e7e1 = external global i64
@_rust_crate_map_extra_0.8-pre_a7c050cfd46b2c9a = external global i64
@_rust_crate_map_rustc_0.8-pre_d3cb8c2ccd84a7a7 = external global i64
@_rust_crate_map_syntax_0.8-pre_64629f7f0c6a9bc = external global i64
@_rust_crate_map_rustdoc_0.8-pre_6b49af4948607d84 = external global i64
@_rust_crate_map_rusti_0.8-pre_53e0ef2ae196aaff = external global i64
@_rust_mod_map = internal global [1 x { i64, i64 }] zeroinitializer
@rust_abi_version = constant i64 1
@rust_metadata = internal global { [7415 x i8] } { [7415 x i8] c"rust\00\00\00\01\ED]\09x\1B\D5\9D\97\1D\E7\8Es\10\02\E1H+\E2\E0$\92\0F\DD\87IBB\92\16h\13\BA\04Bi0b43r\06\CB\92\A2\C3\B1e+\1C\91\9DK\E4 \E1\8A\08\09\81PJ[Ji\17J\E9\C1U\CAW\B6\1F\B0\D0\B2e{l\BB\ED\EE\B6\DD\B6\DB\83\DD\D2\D2\EE\FE\DEhf\9E\DE\8C,\C9\8Em\DCn\F3}?e\F4\E6\CD\FB\1F\EF\F7\FE\EF?o4\CF\0F\CF5\99\E6\F8\04GH\B4\F1\B6\90\E8\B3\FB|\C1\FB\E7\9Aj&\9F\C4\89/=\88\8F'\EF\C1G]X\8At\DE\8D\833\E4o\11\AEK<A\0E\E2\A9D\92\14/\90\8B\BB\C5x\82\14O\B5\B5\F8\9Acq\91\9Cq\C8gR)I g\96\B88\87K\E0\9C\CEf7\CF\FB\9A]6\A7\B7\D9\EFt;\9A\1D|P\F4\07\05\BF\E0\F0\F2\E4\B25\E4\B2I\A9x\98\5C\E5\DA\9AL\C6\12m\AD\AD\1DRrk*\D8\C2G\BBZ\BB\A2i)\1C\E6Z\89\06\AD\C9\B8(\B6vq\89\A4\18oM\C4y\B9\90\18\F0>\D2\D49\A4\A9\A9a\89\17#\09Y\EBi\1B.\BB\AAu\CD\A6\0F;H\95\F3I\95\B3I\95\19|\9CK\8A\81doL\AE5),\05O\C1\13W>\84/\CB\1F!%\89\A4\F0\A9\22\F3>\89\E3\B9\1E\DE\E3\E6C\AE\A0\CB\E5t\BA\ECA;\A9\DDLjO%J\C4:;\0CW8}\9C\CFc\F7\FA`\AD[\F4\8A\F2\15Vr\C5d\B1'\19\E7\0C\F59/os\DB\F8\90\E0\F2\04\1D\BC\9F\A3\F5\89\04\DEP_p\F2A\1F\EF\E0y\C1\E7\E2\BC\9CW\AB?%\D1\1BIr=\FA\0B\E6x\5C\1E\87?\E4\0D\D9x\0F\E7\0F\F2\AC\05B\D4(\C1\13t\F9\B9\90\CB\EF\F2yl^Ha5\92\0C\F5\DDN\D1&\86\1C\9Ch\F7{8.\14\FA\0D\0AM\EF\90\8F\D57\E1\F3\CD\D57\E3\F3\B5?\93\06lm^\BB\97\1C\D5\D9\DA\EC.\F5\C0\A1\1E8\95\03\A7z\CA\EDQ\0E\5C\EA\81\DB\AD\1Cx|\EA\81z\95Gm\D9\E7W\84\D9=n\F5\C8\EBS\8E\1C\0E\87r\E4\B4iG^\A7r\84~V\8F|\EA\B5n\87W=\D2\EAy\FC\FE[\E7\9Av|n\F7\5CSr\D6\1E\94\FDn\D7N[\9Bm/\8Ej\BA\B27\0F\CF\D8\C7\FE\82\AC~\86\8C\B0g\B3\E8\DC\9A\E7n&\86\AF\DE5\00Cm>\C5\F4}\82\18Lu\04\BA8>\1E%u/\90\EB\D6>\97\0B\04\C0\B6By\E2\B9\E2Z\A4\91Ur#v\AF\D2\08SY\F5\A5\CDG\DA;S\91\CDTA\13\93?\B3+K\DC,\B7\90\CC\E1\B3>\B9\85\14\F4GZ\22[\DA\DB\B3{7saI\B8:\C1u\88\FB\D5\AEP\0F\9C\AF\A2\81k\F2;\BB\A4\C8\C0nS\E1\DFt|\E5z\B4\AFs^\9Bk\9A\B40\9F\93\22\88\95\A2\10\90\92b\D7A\14M>D\F41\DD>\D7T\FB\87\FC\80$\88\91d\AEHT~\80K&\E3\89\C3d|\1E\91k\E6o\95\04\AD\D5\D9\F9l$*\A0\16i.\80\F6j\F7\CB\EDM&\ED\ED\CC\EF\EE\E6\E2\12\17I\92\EBk[\E4\EBk\EF@\D0\8A)\97eI\A4\CE\0D\C8\E2JH\CAvJ\11!\9FS\1A\09\90o\10azKS\D9\F4\0A\A9\FE\0D\B9z\0D\1A6}5\7Fk\B2\97\D1p\86\22jg\B2\97\E8g\DA#_<\93\5C\BC#\9FM\C4\B8H~\B0#\1C\0Dr\E1\BD\B7\98\F2\83\B2\03d%\E6\D2V'\E7vJ\91d\FE\D6x,?xE,)E#\A4\A5\99T\0DS~\80\C4eF\F9!j\16\F5OAz\B1\B23\99o\B3\F2{\04)\11\0F\88=\B1\F8\90\82wvK\89\FC^|HA),%{i\85\DAB\05Y\0A\B1\E2Q\C6\E9\BB.\8Bt\0F\CF\EDgQ\B13\87\E2C\FD\E8\A9\9C\DF\13\96BbR\EA\12\13rK\9BE\DE\D0\D2\1Etj\8C\8Bs]CW\A9N\D8\EB\E0\E7\D9o\E2\FByoh\D4\FE\16\BE\CE:J&\8B\06WHh\13\1A\DE\C2q'{\FE\BA\FC\EE\0E1\22\C6%>\91?@(PP' \88!\C6\A5\B9\B8\D8\01W\14\CE\0E\E9\18p\B7X\1E\D1g\A9&o\16\91\B7\90\9C\9F\FF\01i\CB\95\98\C9\9A\DA\B7H\EDE\BA\85\D9\BA\EDc\A1\DB\B4\06\BF\DD\83\80\D3\C0:\AB\BE\82\B3\EA\C7\DCY\DF\C6\F1\D5\9A\BC\E9D\DE\07\F2;\D14\B9p\85|\E1,r\A1=\BF+\16\97\BA\02\05&4\D0\16\17b\F0\83\ED\C5\0C)H\22Q\FB\8CB\D4~\BE(2\92\B0\FF\9A\1C\B3\1Dr\CC\EE\CE\16\E2\D8\01u\C2\FC=)\95n\C3\E7\FA\C0\C76\DAm\F4\D2\E2c\B7|h\F7\06\EC\A2/\E4\17\82\00\C9ry\9F\DD\15\B0-\E9q\88>|\08HU\D6\93\96\D6\E8Z*\5C\ED\15\C4\04\0F\A3\D0\8A\CF&\D8\ED6\AF7(8\05\9F\10\F2\18Z\C9\15w\221\AD^1\AD\A0=\B1*'[\E5T\ACR\03E\09\BB\D6\EA\B4\F1*U\87\AB\8F\DA\87D\9D9\8A:\AAX\A2P;Q\C8Y\98\1A\A5\E2\0B\B2\FB\03\085Id\CE`H\22\10\B8\9F\F4\D7\AF\8B:\E9%%3q\90\A6\CFR\9A\D6]D$\BC.KpdwK\89\80,\F6O\84\CF\8DA\CE\D6\AF\88z\97\B0B\1Bw\ED\C1\82\17^\C6gm\A3$k\16:\A0\A6AD\C5Y\1F(\AAL\A4\9B\0B\89\84^\FA\F3\9AH\E2\D1\0F\11\8F\BA\D8\1Av[\97\98\DC\8A\FF<N\BFO\ADl\F7\04\ECv\B7\8Ds\86\FC.\DE\E9s\D8C\06\CF\C2\AEY\CD\C4.\B7G\97T\B8=jR1\B8\86'\83K\C9#\5C\1E\E5\C0\EDFB1\F3{lB\B1\84M(\FCH(\A6\FD\DA\90PL\FB\BE6t\A6\BD\AE&\14\8A\98\0A\C9\84O\9FLL\EB\D4\92\89i70\C9\C4\B4\99Z2Q\F7\0Bf^\CB\AE\E5\C2\E1\AA'\B5\BA\8Fj\DA\D6m@\F5\BAK\B5Y\BFn\A5!\97hbs\89\BA\A9\F2\C5\D3q\F1\A4w\F3\83\B1T\1C\F3\8B\FA?\8D\225\CA<\C3\051\13e\83R2q+)\9E[\CD\04\97\15D>L\02S,UH\A2\9E\D2\F4\AB}4O\A8\D3\95J\06\E5\D4E\AF\EC2V\D9\9A\07\E4v\A7\A2\DD\9A\BB\CB\05U\A6\91\A5\BAF\DCr\E5:\D2\88\C5P\B9Q\97j\FD@\AE<\89\B4\FC\86\A1\F2\85\A3\93\97%\92\F1Q\CE\CB\96(\D2\07d\CF\E6\F7\E2?N\9F:\D4\14\E7)\A3_qg\8CK2\CEjP)\8E\13\B2\B7\EE\A3\17\1D\CE\E7\82 \B3\14\C1\ED\08\EA\0C\D1di_\CE\A3\BE\9C\92\CBr\F1\8E\C4\E88\B3Dj\BB<?\18M%Ac\A6\D4\AAc\C1A\CA\82\81\B2\9A\9FM5\9F\C5\DC\AF\8C.\19,\AA%|(\BF'.&q\CF\D6\1B\1E\CA\C7\C5\8653\DFZF5\93\9F4\9B\89x\BBI\C4\DB\C0I\91\AA\A3^m\8A\DE\F4\DDH\A2\8AHo\CD>b\18\A9\0E]\0C8\97\06\929\C5\C6\B4P\8F40\0D\B4\AA\FCW&\83D\92KJ\BCA\8E}\A2F\04\DBp\C7o\B1Un\E2\D4\C9\06c]:c_\D1\A6\12\D3\0B\E33\95P\F3K\8CK\A7N\BDR\83{\B8C\C2\C3|\F3\FE\05\DF)\BE\C0\DE\FC\F8\8An~\04\B7\C3p\F3\E3\1B\C3\9B\9F\82<\A2\CF%\9A\BC\16\22\CFI\CE\B7\D0$\94\1Em\EEn\DD\D1*\A7\B6\EA\CDc{\91\DA]l3\D7\8F\85\DA\D3\1B\EC^\17\D6\F4DYq\8F&\D1K$.%5\16Su\BB[\1B\93E\B9t\A4\B4\B2\DE1U6\E4\C7\02\A4|\8B\B9R\93\B8\84Hl\D1n1\97\D0[\CCs\98[\CC\994\0B2\91\16\D6k-XH\0B\1E\AD\85&\B9\E2\0CR\F1\82\FC\80\BC\DA\AF\8D\16Sa<\D2u7V\17\DB\08t!\F7$\B3\95;\22%?'wB_%w\0C.\8Fr\F3'g\D3\CA}\8D\DBC\EF\FC\DAp\9F\E2)\5C\A4\FC\E7\225q\C3\E7\17\FD\9C\D7\E5\15\EC>\BB\C7\C7\D9\C5\92\B7\B1\17\D1\CB\E5\EB\86{\C3H\09D\AC\98\A5X!+KlxE\BE\EBq+6h\F3c\09;V\19\EC\F0\A9\B5\A1K\D0\E1\F1:}x\98\E0\F0\FA\9C6w\B0\A4-\17\D3&\B4kGbO\81c\C4\9E\B9\8A=\9A\E2\B0i\DAlb\93\C7G\EF\E4\E6\90;9\8F\AF?\12L\14\EE\E5\F6\C9\09\D0\A6h*\CE\AB+\C4\1E\A7z\E0}u\AEij\8E\BD\A1\F3\B37t\EBqCW\F7c\C3\0D]\DDk\F4\16\E9Eu\0E/\96U\E1\AEn\9D\FE\AE\AE\EEZ\ED\AE\AEn#sW7\E9%-\0F\A9519\CE\E0\D5\89\8EM\98\D8\AB\CDpj$M\E9\9A\EBQ\BD\E6Z-G\A8\D9h\98\8CW\EA2\9C\854\C3\A9/\0E\0FMt\82\BB\80i\A0\8D\CDp\B2\091\1C2HY1Q\F3\9B\8BN'\BFY\C5|\BBxT\13\DD\9A/\B0K\D6 \C1\B0\EE\EEk\CC\94\05\0B\08\0B\A8'K\A4dk&vJ\B6z\0CR\B2K\98ok\C7<%[A\D5\B1\13{\9B(\B3\D9\01\E5/5\A0F5\87\BB\99\A4\1E\E7k3\E8:2\83\D6\17V\B8\F1\98\9Co\0B\C9\09\C6ml\85\1D\A7\9B`0\11\E4\80R\AB\C0Z^4(\AB\AD\B9+\1A\11\95\9B4\8D.&\1A-\22\15\162\D9R0\D1^l\C2~\F6\82\9B\DE\13\13\A678\EC\0Eo\9B\DD'\DB\D0\AA\A9\B4\96\A8d&5\CE\A364\D8}6o\1B\DF0\84\19k\DF[3\C4`\9B=\A8\CB\05/\1Aa\FE5_\99\E9\8B\A7\D3\17\AB\D2\88\A49\DF\91S\02u\9D^\99\22\95$\C7\E3\A3I\CE\A5dQ\D9^$\82\F9\E2)\5C\87T\C5\E5\B6\FBD/\EF\B1{\1D\BC\C3\E6,\FD\04b\AD\BE1\E5\FA\E1\A7<*#\98D\B4\D0\18\B1\EE{\B2u^\F5)\84\12\FBK\98wYY\F3\BC\CA\85\D0+\E4\F6\BB\1DA\A7M\F4\05\B9\90\D3\E9-i\DF:}kj\03#1\B0\C0\15\E6\B1\86\D2\1A\B1\D0*\DB\B61\BB\93\EF\12H\9D\99J\1D\F2\9D\B40Y\1E\CC\C4\0D^\17\A9\EFT\EA\0Frr\B6\C9\F8\ADPTx6R\B8?\92\AF\F3\92\EB\FC\CAu{S\C4\AA\00\C9\EE\98gZ\B4\98\95\EAs\90\ABW\B0W\87R\E1p\89\ABIq\AE8V\C9\0Dx\D0\C0\8C3\E5\C3\82\12\9B\E4\CC\95\DBB\0Ah\E6\BAkm\B4\AB\8B\8B\08\F7\AB\E3B\F3\96r\A2\BA1\F1\02>\E6\15\F9\B4\E09Rz&\EB\B9\82k\C8\89\85F\D7\14,/q\92\98X\B0\EA\D0\5C\D3\F4U\109\D9EB\8D\E94>\EA\8F\10\9Fa5|:\0A6\9Cnk\13\EEC3o\0D\0A\AE\FC\AB3\EFo\1F\FFO?4^\DF\84\82\CD\7F\9D6V\E7\81%\DFA\C1\E5\C3\BA\9C<[\C5\7F\8D'\80S\C0#\C0g\80\CF\03O\01_\01\9E\07^\02\BE\09\FC#\F0&\F0]\E0\97\C0o\81\DF\03\7F\C2Za-0\15\98\05\CC\03\CE\02\CE\03\CC\C0\85\80\05h\05\5C\80\1FX\05\AC\05.\056\00W\02\D7\00\D7\01\1C\10\02:\81\18\90\02\D2\00\FAx)&\99\A5{\80\FD\C0a\E0n\E0\18p\12\F88\F0)\E0\B3\C0\13\C0\D3\00\F4^\0A\BD\97B\EF\A5\D0{\E9\0F\81\7F\03~\0E\FC\17\F06\F0\07\E0\7F\F1\9C\16\CEX\86\F0\BFl60\1FX\08,\02\16\03K\81&\C0\0Ex\80\8B\80\D5\C0z\E0r\E0\0A\E0*\E0Z\E0z\80\07\B6\02]@\1C\D8\0E\F4\03\B7\00\83\C0>\E0 p\07p\148\0E<\08|\02x\14\F8\1C\F0\05\E0\CB\C0s\C0\D7\81\7F\00^\03\BE\0D\FC3\F0/\C0O\80\9F\01\BF\02~\07\BC\03\FC\19\0F\F9&\01`\C5\F2z\E0\0C\E0l\E0|\E0\02\A0\11\B0\026\C0\0D\B4\01\17\03\EB\80\CB\80\8D\C0&\E0\A3@;\10\04:\800\B0\0D\E8\06\FA\80\9B\81\01`/p\008\02\DC\03\DC\07<\00<\0C|\1Ax\1Cx\12\F8\12\F0,\F0\22\F02\F0*\F0-\E0-\E0\07\C0\8F\81\9F\02\E0\D6rpk9\B8\B5\1C\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\18\13\16\8C\09\0B\C6\84\05c\C2\821a\C1\98\B0`LX0&,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15c\C2\8A1a\C5\98\B0bLX1&\AC\CF\00_\03\BE\01\BC\82\C4\F0\E2z\F2\A3Y\BB\A7\B0N\CB\93\CC\F0\8C\CDjj\98\943C,\FD\93\9C\DC\86\9C\DC\B7\F6\8A\0D\1B\D6l\5C\B7\09\F9\B7\C3\8E\9B\14\A7\CB\CB\D9\9C\A2\D3\E1s\19\F2o\AC\F9*\B5\D9\F5T\A5\10k\A1\AB\0E\B2k\A1\D7\B1k\A1\0Fa-t\F9\D9\86\B5\D0\E5u\DAb\C3\B2w\D4\C5\09\AD\D9\0A\0B\A1\A7\F4\0B\A1\CB\0E\D0\D6\B2L\D5\80nA\F2.\BA \99\AB\EA\91\EB\C7\AA{\E4z\BDN\CE\14\ED\E7\1D\A6?\1A*\B7\EB\16\A0\1E\A3\EB\97\A7\CA\AE_\9EIWy\A6\E7\D4\94^\BF\869\A4)[J\9B2\FCe\CE\EB\C6\EC\F7\1A\E5j\14\9B\F2\A0\CA\00\B2\C2F|\D8\B8KS\B4\B1\9F\A9\FA\80\A1\AA_k\B5\B1\05f7\D6\CBfO\85W'K\CC\A5\92\FE\D2\C9k\E5K\DFG\EEX|\A7\DFS\E5W\9BqX\F7\B4|XG\9A\89\AB\FDFn\C8\F2Yyi\B1X\D9\1B\F4\CA\9A\5C\1A\D7M\CB\D5\E5_xV>w\06\15=57\10LIaA\B1\A7\E8\93<=\A8\D5\E8R\B8\E3+!Y\D0K\AEyV\BB\97\ACy\82\A9\CA\19\94\0C\CBU\17\10E\B8\B2\1E]@=:\A3\E8\97\1A\C3[\C0\97\05\A0\A0\A6N{>\82\11^\ACa\F04\DC(\BF\A6\A3s\A0\E9(\D3<oh>I\1D \95u\C0\22\AA\B2*K\F9\B9Q\D7\08\1D\91\DFC\DC\B8)\D5\C1\C5\87X\07\D7\AC\B8M{\A3\81\DE\DF\97\A0\82h0\EFR\EA\BD\95z\EF5R\81\E7\E5\EE\E1\A3]1),\9A\89e\E6\84\BCbd\0E\A1 Q\92\985't\1A\91E\85\12\1Am5\90s\0B%\E7G\98\AA!\83\F2\9D\B4on\18\C6pW\9F\AE\8C\8C\9B\A6\E3\B4\B1#\8C\82\1D\06\05#TA~\18\BF\F2\92\C9\13\D8*\86ccH\9B\F2?i#\D1v+c]\DC\10m/\A1\D1\D6;\1E\D1\F6\8B4\DA\C6*D\DB\1B\0D]\E1\A0D_\AA'\FA\5C*\1A\CF\1D\E3\A9HiJ\DFY9\D6v\19\E8|5\A5\F3\E5L\D5N\83\8A[)[\DA\87\F1k\C6\D3\E1\F2\BD\B4\A5C\8Cv\E1\D1\1Al\E8\9F\00\F1\E8\D8\C6\BF\C3\D5\C5\BF\88\C1\AA\8D\94\16k\F5\B4h\A2\02/\C8\1D\97'a3\171\8B=\22O\D2\A0\B0\D8\84\AF\02\02b\C4,%KO\CFS\AB\8B\82\DB\0C\B4y\8E\D2\E6I\A6j\D4`\C2\8D\B4c\02e;f>\ED\98i\DA\0F\0DF8AO\A5m\BD\CB\E8\173\E8\F7m\EA\E2\97\F5.\FE<\15\F7\89\DC\EA\87\AE\DA*\CA\EE\E4\0B!\C2,%\88\C3\13[\A3\F1$\5Cn\0EE\E3\E6$\AA\A8\A7I/\9Bg,\96\C3\A5y\05\99\8C\C8\E3\F3U\E6\E6h\E1[\02\F7\1F\ABv\98\1B\1B\CD-\AD\C5\05[Vp\F1\8ET\17\F1\CB\AA\96\96\96\F6\C5-3f\C8\0FB\DA\A6\CB\B3\1BQ\A1\A89}u\A6\ABG+\D8^\C7x\B1\CF\10l=4\D8Z\C7#\D8>J\83\ED\B6\0A\C16a\E8r'\ED\F2e\FA.\9FGE#x%\D1'\A5\A3\ED]\95\A3m\B7a\D8l\A6\C3\E6CL\D5\E4D\88\B6\C7hK\B73\DA\A5F+\EF&\D1Vv\E9\D8\86\DB\BB\AA\0B\B7\DB\0Df]I\89\F1A=1lT\E0\85\B9\07\94pk&\D6\0C'\E4\D6\BC]]\C8M\1B\B8\F3\18\E5\CE)\A6j\CF\84\08\B9\A6\B7i[?c\F4\EB5\E8\F7\02u\F3Sz7\9F\A4\E2\EE\CA\AD>BB\AE\EC\E3\91\C4\DC\E6f\F9\D2\A1B/9i\08\BFr\E1b6\E0\EAZ\19\93\00{\90\F1\D9\80!\C0\DEH\03l`<\02\EC\8F\AA\CFf\FBO#\9B\15\A2|\E9\D4dJ\E5\F8z\B3a\8C|\8D\8E\91/2U3\13e\E5`\1A\BD\0Dg\A7\D4\1D\06\0D=\D4\89V\BD\13\CF\A4\E2\D0\C9\CA\06\1C\FA0x/#\E0&\83\80n\EA\82\CE\B2.x?U\9AJ\1B\BF\D5\83{\AB\0B\E7\B7\18\0C\BC\86z\F0\C3z\0F\BA\A9@K\EEa\F97L\5CR4\C309\95\E2\88-\E6P<\DAE\8A\E4\F0B\BCQ:\A6?Q]L\CF\1A\F8\BA\8D\F25\C4T\BDu\82,&\FC=m\EC\11F\C1\9D\06\05\B3T\C1\DE\B2\0A6\CBmN2\B2\09S\10\1F\8D\84\A4\0Ee\91*5\82\17\C9F7(\1F`l>`\08\CA\12\0D\CA\D7\8FGP\FEa\F5Ay\F04\82r\AC\B3c\C4Ayo\F5Ay\D7\84\0F\CA\BBO3(\EB\1Ci\0C\CA{F3(C\DA\F8\05\E5\A3\D5\05\E5}\06\03\AF\A6\1E\BC\5C\EFA'\15\B8,\F7\90\10\DD\1E\09G9\A1\C9,g\DBMf)\82\87N\E1pa\8D7\C6\F1\9D\10<DH~\B2\BA\90\BC\DF\C0\D68ek\07S57AB\F2\13\B4\B1O2\0A\DEfPp\80*\98.\AB`\8B!$+\5CR\A3\B0r\A60M\86\DF\D3\98\ECb\8C\BE\C7\10\93g\D3\98<i<b\F2 \8D\C9\89\0A1\F9\A0\A1\87\DCt0X\F4\83a>\15\8D\991\D1)&\F9\AD#~\CAv\A4\FA\A7l\87&\FCS\B6\DBO\F3)\9BT\FE)\DB\E1\D1|\CA&\8D_H\DE[]H\BE\C3`\DEz\EA\BD6\BD\F7\8Aw\E6\C9\DDIV6\B8B\FC\95\22I1\1E\8B\8B\F8,\1D\82\BB\AA\0B\C1w\1B\98\B9\8C2s\11S\F5\CE\89\B1\D2\D1E\DB\0A2\FA\DDe\D0o\05\F5\AC]\EF\D9s\A9\B89\B9\DB\8A\17\1C\A41Ya\10\18]O\1A\02\E7*\1A8\9D\E3\118\9F\A8~\09\F7\E8i,\E1\CA\CF)G\BA\84{\AC\FA%\DC\FC\84^\C2\BDw4\97p\C7\F8\D1o\E1\D1uU\B1\EC>\83YWPb\AC\D3\13\A3\99\0A\5C\9C;\815\C4\EDfALrX\D7\13\CC\B2\18s4\84\F0\A6\AC%\96\9EkM\D5E\B5\FB\0D\C4y\9A\12\E71\A6\EA\F1\89\F1\C8\CCD\DBz\9B\D1\EF\84A\BFW\A8\8F_\D0\FB\F8\D3T\DC\C9\DC\EA\E3d\FD\96\D0E[\A0\15\A4D,\CC\F5&\E4U\DB\82\D3\93bOR\F6|$\8A\C2\B8Z\B5eFa\F1\17'\B1\E8+J\F2\B9\C2\BA\BB\14i2c\E17\16\8Fv\C3\19\829\D8\AB,\02\C7\E3b\22\16\95w\E1!g;\E2\5C\97\EE\E1\99\AC\CC\0AE\C4\E8/\E5V\F1+\B5}\B2\1F\BB\13\C9h\BC\E8\D5\99I\C5U\AA~}r\C1\DF\91\F7\F8\16i/\C0\9D\FA\16\BE\CEV^\91\0B\85\C8\A6x\BA\0D\1AN\8D\E1\06\0D\AADv{\85\EBF\BE\BD\C2\B5\ACu\0F\96\B0\8E\AD\F1@\89\1A\AC6R)m\E6U\AF\CD\F9lK\CA\AB\AA\90eo+l\A3\B1P\ABp\03\A90\9DT\A8#\9Bg\B0\9B\95\08\86\CDJ\D8\8B\83\EC\C5\C4\88v\ED$ONn\D4\8CXG{\C3\AF7\A2\8E1\A2n\CD\8BC\BD:\CD\1A\C7\17\BF\87[x\0D\94\A8\10\D2*p\A4\C25\9A\0A\1B\E4\96\E4\97\B4/\A9\E4G_\A5\0A^\B6S\B9\A2NU\F7g`\9D%\1A=\BDX;\B9\95\9C\9CON\CEV\B7j(\FC\AA\99\F5iG\F5>\D5\EB\FBxu>\ED\A8\E4\D3\D0\C8}\BA\AER\85\B5\EC\0B\BF\A1\F2/\FC\BAy\DE\0B>\B3C'>jC'^i\E8\DCXn\E8t\19\86\0E\DB\93\E1\11\F7d\CD\D3\E5zr\11+Ac\A4\8Bk\B3\EB\BB\B2s\0C\87G\0B\ABL'\AB\8C\B6\9F\0F\F5f\C4\E8M\DA\17\DB\8A\FAB\E9v\F6\EA\981\12Q;\A3cH\D9\8B\89\1EVV\D4\F9D\8F\B3\D9]\89\86\A0k\DF\A8\D1\B5\AF\12]\13\E5\E8\DA]\81\AE\A9\91\D35U\1D]S\15\E9\9A\1C?\BA&+\D2u{9\BA\A6+\D1\B5\B7\1C]{\C6\9A\AE\8BXQ\8A\9D\1E\9B/\D4f\F7\EA\08:0j\04\1D\A8D\D0\FEr\04\BD\B9B*\B2\A3\5C*rS\F5\EC\9D\C2\1A\F1\C1\86\EA\A6\CD\9B*M\9B\99\F1KE2\15S\91[\CA\917k$/\EB\CD\9D#\F6f\CD\A1\EA\BC\B9\B3\927o\1D\EB$d\11+J\F1\A6[\10xuC\0F:D\0E\8C\DA\109Pi\88\0C\96\1B\22{+\0C\91\DD\E5\86\C8\9E\EA;\B5\965\A2\F9\B2\EA:uO\A5N\DD5~CdW\C5!\B2\AF\DC\10\D9_i\88\DC6bo6.\AC\CE\9B\B7U\F2fn\FC\86H\AE\E2\10\B9g\D4\86\C8=\95\86\C8\C1rC\E4H\85!r{\B9!r\B8\FAN\9D\CA\1AQ\7F{u\9Dz\B8R\A7\1E\1A\BF!r\A8\E2\10\B9\A3\DC\10\B9\BBR\0AtW\B9\14\E8\CE\F1K\81\EE\AC\98\02\9D\1C5\F2\9E\ACD\DE\A3\E5\C8{\ACB\8E~\EF\C8s\F4\96\EAr\F4{+\E6\E8\F9\F1\CB\D1\F3\15s\F4\FB\CA\11\F4\FEJ\04=Q\8E\A0\C7\C7\8F\A0\C7K\10\94\EC\B5\D4+\BF\11\EF-\EC\F2\19\CA\15\07\8Dl\D1\EBo\CC\FEK\B4X\DE>\89\BC/\EF\90\FF.\07=a\F7\04\04\AF\0B#>\E8\E6]\0E\1F\EF\15K\FD\B1\08\D3}D\BA\C3\E1\A0\D2\9D\EC\C6rd\CB\E0\E4\16{\9B\C7\E6p\DB\E4?!\A1\ED\E4\C4\D9\FB\E5\B5\AD\F6\F6\EC\EE\90\14\11\02\CA\9EV\DA\BB\F7j\A1\A6\A4\FCR\BFZj\F7\06\04\97\C7\EB\16y^\E0\82\BE\A0`\F7\94T\F1\98\AC\A2\AFH\C5\05\C5*\EEPw4\CE\EE\8B\C5\C9_s\91\17\FA\89\1E\8B\94\BF\BE\A1=Gz\BE\B8\86\A6\D4J\A2\94Z\C5n/\AA\02\0D\DD\0E\AF\D3\17\E4=\1E7\E7t\DB]|I\0D\93DC\A7\ADHC:\AE\B2\9At\C65j!\EB\1AM\0Bo\C0\E3\E2\05\87\83\0F\F9\DC\9C\D7\11\0C\96\13\ECu\0E-\98\FC\9C\DC \98\14\1A\05\93\D2j\05o#\82]\AE\D2\82\D5\17\DD\98]\BD\942Ml+\C4z\95\C2j\A5\E6d\A9>7\95\BA\DC@Vu\A7k{\7F\A8Q\EA\0Ar\8E\FE\16\B2\81t$;(E\BA\A3\9D\22\B3\83Z\A1H\D3\A9\89l\EB[(\B3\BB\03\02\0F}<Ng\88\E3D\9F\BB\A4B\F7\12\85@\11\AA\90\85*T\F8K2\9E\10\87\E1moP\F5rh;pg\F7\0A\D1\80\F2p\88\19\DD\B4X\D3\CC)\8Fnz\82x,\E4\108Qt\DB\1D^\9B\8B\F7q\A5\14\9C\F4aYA\A7\83n\B7Q\93\22\ED\B9\D0\9E[\E6\B8\E7\B2\8D\EB\D6o\BC\8A\EC\E2\CC9m\A2\C7\17\0C\8A\02\CFqA\E3\1F\97\C9\0E\16\EA\12e\17(c\AB\F0\93\AD\E7\953\AF\E2\A1\E5w\98M6j\E71\9Bl\D4.xM\DE\E2U\BF\C9F\CD)m\96\AB\D1~\ED\A74Z~\8B\8D\DA3\D5G\86\EA\16\1B5\0E\DA\D6R\A6\EA\19JUu7\8B\BDrEy7\8B\9B\86\F1\D0<5\EA\7F\18\0E^\AA\FCD\AF\D8\92\F9\86\E7\A4^\FA\9C\B4I\FF\9Ct\01}\EA7cP\9D\8F\A61\0F\1A\AB~\0Ahz\87Lk\0B\DE\D0\DCO\A6\B5)Gef\BD\85O\91=\B3y,\9E\FE\D5\A4\C8,\BEY\934\8FH\FA\A06\8B\AF\94/\91\B7\E2t0[q.\A1\EE<'\BF+U\FAO\7F\B1\E6\CD/2\8F\8CxI\1EP\C5\11\97\CE\D6\03\DA\CC\A3\FD}-v\A6i\D2F]\95\B3s\88H\F3\F8\FD\A5\A4\C9\BF\F2b\B6B'\05\9A,+d\B9HI\15\A2\0E\CD5\CD8\06\E3\A7\1C\AE\B4\F5W\DD\BF\A3`v\F9\BD\BE\0C\17\E96:T\8B#?G\C1\E3U\B65!6>\9B%\A0\C0\5C\FA\DC\B6\A5\84\22\86\E2\EE{@\A2\95F\97\9C\C6\E6\88\E7*m4\FC\0F\0A\D6*_\E2\1F\87\9C9\A3eh\DD\83h\ED\9B\EF\A5\CBU#'\85\C80T\BE\D4\AF\C0\B1o\CC\BB\B9\95\ECowj\F4\DB\AD\0B\C0\AB/T_\FF\C2gPp\ED\E9\C9\8C\CD\02-\CF-}\EE\BC)(Xg(\DE>\15j>=\AA\96\CF\DC\86\82\FA\B1\EC\B3\19y\14\CC\AA\AAjTB\C1\F7\19Gk[:\AA%\89K\C9\046\96\0A\CF\AAE\C1bCq\FC,\F4\D7O\CA\5CwN\04\05-\C3 \C0\A3d]\A0\F4\B9m'\C8c\E8\EA\DB:\D7\81\02oqI\C39(\B9\B8\FA\16F\BEu\E4\F6~\E0\16`\10\D8\07\1C\04N\02\08|\DB?\05|\16x\02x\1Ax\06\F8\1A\F0&\F0]\E0\97\C0o\81\DF\03\7F\C2\E32\F8\BE\07,\EF\C1\E0\E8\99\07\C0\E9=\E7\01f\E0B\C0\02\B4\02.\C0\0F\AC\02\D6\02`E\CF\06\E0J\E0\1A\E0:\80\03\10\A4z:\81\18\90\02\D2\008\D5\83\89\B9g\0F\B0\1F\80\AF{N\01\8F\00_\02\9E\05^\07\FE\09\F8\19\F0+\E0w\C0;\C0\9F\B1,0\09\80\C7z\EB\813\80\B3\81\F3\81\8B\80\D5\C0z\E0r\E0\0A\E0*\E0Z\E0z\80\07\B6\02]@\1C\D8\0E@\87^\E8\D0{\18\B8\1B8\06\C0w\BD\F0]/|\D7\0B\DF\F5\C2w\BD\F0]/|\D7\0B\DF\F5~\03x\05x\03@\AF\F5~\1F\F8W\E0?\80_\00\BF\010\03\F5\BE\8B\E7\A45\00|\97\86\EF\D2\F0]\1A\BEK\C3wi\F8.\0D\DF\A5\E1\BB4|\97\86\EF\D2\F0]\1A\BEK\C3wi\F8.\0D\DF\A5\E1\BB4|\97\86\EF\D2\BB\80\9C\C9\94>\04\DCI^&\01\E0\BB4|\97\86\EF\D2\9F\01>\0F<\05|\05x\1Ex\09\F8&\F0\03\E0\C7\C0O\01\F4y\1A}\9EF\9F\A7\D1\E7}s\803\010\B6\EF}@\03\B0\0Ch\06\C0\EB>/\80\F9\A5\0F3s\DF&\E0\A3@;\10\05\92\00x\D7\07\DE\F5\81w}w\00G\81\E3\00\A6\CA\BEO\00\18g}\9F\03\BE\00|\19x\0E\F8:\00\DF\F5\C1w}\F0]\1F|\D7\07\DF\F5\C1w}\F0]\1F|\D7\0F\DF\F5#\10\F7\CF\04\C0\F7\FE\05\C0\B9\C0\FB\81%\C0r\00}\DE\8F>\EFG\9F\F7\A3\CF\FB\D1\E7\FD\E8\F3~\F8\AE\BF\07\D8\0B\1C\00\8E\00H8\FA\EF\03\1E\00\1E\06>\0D<\0E<\09\80w\FD\E0]\FF\8B\C0\CB\C0\AB\E4i-\F0\16\F0\9F\C0\AF\F1\D4\11\BC\CB\80w\19\F0.\03\DEe\A0C\06:dZ\00'\E0\03V\02\97\00\D0!\03\DEe\C0\BB\0C\FA/\83\FE\CB\80\FB\19p?\03\EEg\C0\BB\0Cx\97A\FFe\A0C\06:d\A0C\06:d\A0C\06:d\A0C\E6G\002\CB\0Ct\C8\10\1D\FE\1B\F8#\1E\06c\DC\EF\98\0C\CC\C0\81\E9\FF\00" }, section ".note.rustc"
@llvm.used = appending global [1 x i8*] [i8* getelementptr inbounds ({ [7415 x i8] }* @rust_metadata, i32 0, i32 0, i32 0)]
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #0
declare void @llvm.memmove.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #0
declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #0
declare i32 @upcall_rust_personality() #0
declare void @upcall_reset_stack_limit() #0
define void @"_ZN10ValidUsage10ValidUsage5Valid17_1e8f9dbf9d8188c814_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, i64) #1 {
"function top level":
%3 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 0, i64* %3, align 8
%4 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 1
store i64 %2, i64* %4, align 8
ret void
}
define void @"_ZN6Action6Action4Call17_9e9a747d18168a1e14_0$x2e8$x2dpreE"(%enum.Action* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*) #1 {
"function top level":
%3 = getelementptr inbounds %enum.Action* %0, i64 0, i32 0
store i64 0, i64* %3, align 8
%4 = getelementptr inbounds %enum.Action* %0, i64 0, i32 1
store void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* %2, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %4, align 8
ret void
}
define void @"_ZN6Action6Action8CallMain17_b2673849a278305b14_0$x2e8$x2dpreE"(%enum.Action* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*) #1 {
"function top level":
%4 = getelementptr inbounds %enum.Action* %0, i64 0, i32 0
store i64 1, i64* %4, align 8
%5 = getelementptr inbounds %enum.Action* %0, i64 0, i32 1
%6 = bitcast %str_slice* %2 to i8*
%7 = bitcast void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %5 to i8*
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 16, i32 8, i1 false)
%8 = getelementptr inbounds %enum.Action* %0, i64 0, i32 2, i64 8
%9 = bitcast i8* %8 to void ({ i64, %tydesc*, i8*, i8*, i8 }*)**
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %3, void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %9, align 8
ret void
}
define void @"_ZN11UsageSource11UsageSource6UsgStr17_4518e7c6172c203814_0$x2e8$x2dpreE"(%enum.UsageSource* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture) #1 {
"function top level":
%3 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 0
store i64 0, i64* %3, align 8
%4 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 1
%5 = bitcast %str_slice* %2 to i8*
%6 = bitcast %str_slice* %4 to i8*
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* %5, i64 16, i32 8, i1 false)
ret void
}
define void @"_ZN11UsageSource11UsageSource7UsgCall17_f5952b30e8baf33714_0$x2e8$x2dpreE"(%enum.UsageSource* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*) #1 {
"function top level":
%3 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 0
store i64 1, i64* %3, align 8
%4 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 1, i32 0
%.c = bitcast void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %2 to i8*
store i8* %.c, i8** %4, align 8
ret void
}
declare void @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
define void @"_ZN10rustc_help16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #2 {
"function top level":
%__adjust.i = alloca { i8*, i64 }, align 8
%__arg = alloca { i8*, i64 }, align 8
%1 = call { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* @"_ZN2os4args16_707125f9258e1ff14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
%2 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, i64 0, i32 0
%3 = load i64* %2, align 8
%4 = icmp eq i64 %3, 0
br i1 %4, label %cond, label %next
next: ; preds = %"function top level"
%5 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, i64 0, i32 2, i64 0
%6 = bitcast { i8*, i64 }* %__adjust.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = load { i64, i64, [0 x i8] }** %5, align 8
%8 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 2, i64 0
%9 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 0
%10 = load i64* %9, align 8
%11 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0
store i8* %8, i8** %11, align 8
%12 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1
store i64 %10, i64* %12, align 8
%13 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }*
%14 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %13)
to label %"normal return1" unwind label %unwind
cond: ; preds = %"function top level"
invoke void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([40 x i8]* @str10726, i64 0, i64 0), i64 121, i64 0, i64 0)
to label %"normal return" unwind label %unwind
"normal return": ; preds = %cond
unreachable
unwind: ; preds = %next, %cond
%15 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%16 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, null
br i1 %16, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit", label %cond.i
cond.i: ; preds = %unwind
%17 = load i64* %2, align 8
%18 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, i64 0, i32 2, i64 0
%19 = bitcast { i64, i64, [0 x i8] }** %18 to i8*
%20 = getelementptr inbounds i8* %19, i64 %17
%21 = bitcast i8* %20 to { i64, i64, [0 x i8] }**
%22 = icmp ult { i64, i64, [0 x i8] }** %18, %21
br i1 %22, label %iter_vec_loop_body.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i"
iter_vec_loop_body.i.i: ; preds = %cond.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i"
%23 = phi { i64, i64, [0 x i8] }** [ %27, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i" ], [ %18, %cond.i ]
%24 = load { i64, i64, [0 x i8] }** %23, align 8
%25 = icmp eq { i64, i64, [0 x i8] }* %24, null
br i1 %25, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i", label %cond.i.i.i.i
cond.i.i.i.i: ; preds = %iter_vec_loop_body.i.i
%26 = bitcast { i64, i64, [0 x i8] }* %24 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %26)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i": ; preds = %cond.i.i.i.i, %iter_vec_loop_body.i.i
%27 = getelementptr inbounds { i64, i64, [0 x i8] }** %23, i64 1
%28 = icmp ult { i64, i64, [0 x i8] }** %27, %21
br i1 %28, label %iter_vec_loop_body.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i", %cond.i
%29 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %29)
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit": ; preds = %unwind, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i"
resume { i8*, i32 } %15
"normal return1": ; preds = %next
call void @llvm.lifetime.end(i64 16, i8* %6)
%30 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, null
br i1 %30, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit10", label %cond.i5
cond.i5: ; preds = %"normal return1"
%31 = load i64* %2, align 8
%32 = bitcast { i64, i64, [0 x i8] }** %5 to i8*
%33 = getelementptr inbounds i8* %32, i64 %31
%34 = bitcast i8* %33 to { i64, i64, [0 x i8] }**
%35 = icmp ult { i64, i64, [0 x i8] }** %5, %34
br i1 %35, label %iter_vec_loop_body.i.i6, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i9"
iter_vec_loop_body.i.i6: ; preds = %cond.i5, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i8"
%36 = phi { i64, i64, [0 x i8] }** [ %40, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i8" ], [ %5, %cond.i5 ]
%37 = load { i64, i64, [0 x i8] }** %36, align 8
%38 = icmp eq { i64, i64, [0 x i8] }* %37, null
br i1 %38, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i8", label %cond.i.i.i.i7
cond.i.i.i.i7: ; preds = %iter_vec_loop_body.i.i6
%39 = bitcast { i64, i64, [0 x i8] }* %37 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %39)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i8"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i8": ; preds = %cond.i.i.i.i7, %iter_vec_loop_body.i.i6
%40 = getelementptr inbounds { i64, i64, [0 x i8] }** %36, i64 1
%41 = icmp ult { i64, i64, [0 x i8] }** %40, %34
br i1 %41, label %iter_vec_loop_body.i.i6, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i9"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i9": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i8", %cond.i5
%42 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %42)
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit10"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit10": ; preds = %"normal return1", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i9"
%43 = getelementptr inbounds { i64, i64, [0 x i8] }* %14, i64 0, i32 2, i64 0
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %14, i64 0, i32 0
%45 = load i64* %44, align 8
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0
store i8* %43, i8** %__adjust.sroa.0.0..idx, align 8
%__adjust.sroa.1.8..idx15 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1
store i64 %45, i64* %__adjust.sroa.1.8..idx15, align 8
%46 = bitcast { i8*, i64 }* %__arg to %str_slice*
invoke void @"_ZN5usage16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %46)
to label %"normal return2" unwind label %unwind3
"normal return2": ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit10"
%47 = icmp eq { i64, i64, [0 x i8] }* %14, null
br i1 %47, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit", label %cond.i11
cond.i11: ; preds = %"normal return2"
%48 = bitcast { i64, i64, [0 x i8] }* %14 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %48)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit": ; preds = %"normal return2", %cond.i11
ret void
unwind3: ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_10937E.exit10"
%49 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%50 = icmp eq { i64, i64, [0 x i8] }* %14, null
br i1 %50, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit13", label %cond.i12
cond.i12: ; preds = %unwind3
%51 = bitcast { i64, i64, [0 x i8] }* %14 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %51)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit13"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit13": ; preds = %unwind3, %cond.i12
resume { i8*, i32 } %49
}
define void @"_ZN7cmd_run17_64cd22cf85a72bbc14_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 {
"function top level":
%__trans_ret_slot.i = alloca {}, align 8
%ret.i62 = alloca { i64, i64, [0 x i8] }*, align 8
%ret.i = alloca { i64, i64, [0 x i8] }*, align 8
%__arg.i = alloca %str_slice, align 8
%__arg2.i = alloca %str_slice, align 8
%3 = alloca %"enum.std::option::Option<~str>[#1]", align 8
%4 = alloca %"struct.std::path::PosixPath[#1]", align 8
%__arg = alloca { i8*, i64 }, align 8
%__adjust2 = alloca { i8*, i64 }, align 8
%__arg6 = alloca %str_slice, align 8
%5 = alloca [3 x { i64, i64, [0 x i8] }*], align 8
%__adjust7 = alloca { i8*, i64 }, align 8
%__adjust15 = alloca { i8*, i64 }, align 8
%__arg20 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg22 = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8
%__adjust27 = alloca { i8*, i64 }, align 8
%__arg33 = alloca { i8*, i64 }, align 8
%__arg35 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%.sub = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 0
%6 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1
%7 = load i64* %6, align 8
%8 = icmp sgt i64 %7, 7
br i1 %8, label %match_case, label %compare_vec_len_next
match_case: ; preds = %"function top level"
%9 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0
%10 = load { i64, i64, [0 x i8] }*** %9, align 8
%11 = getelementptr inbounds { i64, i64, [0 x i8] }** %10, i64 1
%12 = add i64 %7, -8
%13 = load { i64, i64, [0 x i8] }** %10, align 8
%14 = getelementptr inbounds { i64, i64, [0 x i8] }* %13, i64 0, i32 2, i64 0
%15 = getelementptr inbounds { i64, i64, [0 x i8] }* %13, i64 0, i32 0
%16 = load i64* %15, align 8
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0
store i8* %14, i8** %__adjust.sroa.0.0..idx, align 8
%__adjust.sroa.1.8..idx145 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1
store i64 %16, i64* %__adjust.sroa.1.8..idx145, align 8
%17 = bitcast { i8*, i64 }* %__arg to %str_slice*
call void @"_ZN4path9PosixPath17_7c6da4115ba3bd6514_0$x2e8$x2dpreE"(%"struct.std::path::PosixPath[#1]"* %4, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %17)
%18 = bitcast %"struct.std::path::PosixPath[#1]"* %4 to { i64, %tydesc*, i8*, i8*, i8 }*
invoke void @"_ZN4path14__extensions__10meth_225818filestem17_b384379c13763c9b14_0$x2e8$x2dpreE"(%"enum.std::option::Option<~str>[#1]"* %3, { i64, %tydesc*, i8*, i8*, i8 }* %18)
to label %"normal return" unwind label %unwind
compare_vec_len_next: ; preds = %"function top level"
%19 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 1, i64* %19, align 8
br label %join
"normal return": ; preds = %match_case
%20 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1
%21 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %20, align 8
%22 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21, null
br i1 %22, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit, label %cond.i.i.i
cond.i.i.i: ; preds = %"normal return"
%23 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21, i64 0, i32 0
%24 = load i64* %23, align 8
%25 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21, i64 0, i32 2, i64 0
%26 = bitcast { i64, i64, [0 x i8] }** %25 to i8*
%27 = getelementptr inbounds i8* %26, i64 %24
%28 = bitcast i8* %27 to { i64, i64, [0 x i8] }**
%29 = icmp ult { i64, i64, [0 x i8] }** %25, %28
br i1 %29, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i"
iter_vec_loop_body.i.i.i.i: ; preds = %cond.i.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i"
%30 = phi { i64, i64, [0 x i8] }** [ %34, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i" ], [ %25, %cond.i.i.i ]
%31 = load { i64, i64, [0 x i8] }** %30, align 8
%32 = icmp eq { i64, i64, [0 x i8] }* %31, null
br i1 %32, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i", label %cond.i.i.i.i.i.i
cond.i.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i.i
%33 = bitcast { i64, i64, [0 x i8] }* %31 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %33)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i": ; preds = %cond.i.i.i.i.i.i, %iter_vec_loop_body.i.i.i.i
%34 = getelementptr inbounds { i64, i64, [0 x i8] }** %30, i64 1
%35 = icmp ult { i64, i64, [0 x i8] }** %34, %28
br i1 %35, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i", %cond.i.i.i
%36 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %36)
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit: ; preds = %"normal return", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i"
%37 = getelementptr inbounds %"enum.std::option::Option<~str>[#1]"* %3, i64 0, i32 0
%38 = load { i64, i64, [0 x i8] }** %37, align 8
%39 = bitcast {}* %__trans_ret_slot.i to i8*
call void @llvm.lifetime.start(i64 0, i8* %39)
%40 = bitcast %str_slice* %__arg.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %40)
%41 = bitcast %str_slice* %__arg2.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %41)
%42 = icmp eq { i64, i64, [0 x i8] }* %38, null
br i1 %42, label %match_else.i, label %"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit"
match_else.i: ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit
%.sroa.010.0..idx.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 0
store i8* getelementptr inbounds ([20 x i8]* @str11026, i64 0, i64 0), i8** %.sroa.010.0..idx.i, align 8
%.sroa.111.8..idx12.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 1
store i64 20, i64* %.sroa.111.8..idx12.i, align 8
%.sroa.07.0..idx.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 0
store i8* getelementptr inbounds ([41 x i8]* @str11027, i64 0, i64 0), i8** %.sroa.07.0..idx.i, align 8
%.sroa.18.8..idx9.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 1
store i64 41, i64* %.sroa.18.8..idx9.i, align 8
invoke void @"_ZN3sys14__extensions__10meth_127919fail_with16_db4c44d01ce411614_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg.i, %str_slice* %__arg2.i, i64 320)
to label %"normal return.i" unwind label %"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11032E.exit4.i"
"normal return.i": ; preds = %match_else.i
unreachable
"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11032E.exit4.i": ; preds = %match_else.i
%43 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
resume { i8*, i32 } %43
"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit": ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit
call void @llvm.lifetime.end(i64 0, i8* %39)
call void @llvm.lifetime.end(i64 16, i8* %40)
call void @llvm.lifetime.end(i64 16, i8* %41)
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 2, i64 0
%45 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 0
%46 = load i64* %45, align 8
%47 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 0
store i8* %44, i8** %47, align 8
%48 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 1
store i64 %46, i64* %48, align 8
%49 = bitcast { i8*, i64 }* %__adjust2 to { i64, %tydesc*, i8*, i8*, i8 }*
%50 = bitcast { i64, i64, [0 x i8] }** %ret.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %50)
%51 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %49)
to label %.noexc unwind label %unwind4
.noexc: ; preds = %"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit"
store { i64, i64, [0 x i8] }* %51, { i64, i64, [0 x i8] }** %ret.i, align 8
%52 = bitcast { i64, i64, [0 x i8] }** %ret.i to { i64, %tydesc*, i8*, i8*, i8 }*
%53 = getelementptr inbounds { i64, i64, [0 x i8] }* %51, i64 0, i32 0
%54 = load i64* %53, align 8
%55 = lshr i64 %54, 1
%56 = or i64 %55, %54
%57 = lshr i64 %56, 2
%58 = or i64 %57, %56
%59 = lshr i64 %58, 4
%60 = or i64 %59, %58
%61 = lshr i64 %60, 8
%62 = or i64 %61, %60
%63 = lshr i64 %62, 16
%64 = or i64 %63, %62
%65 = lshr i64 %64, 32
%66 = or i64 %65, %64
%67 = add i64 %66, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %52, i64 %67)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit" unwind label %unwind.i40
unwind.i40: ; preds = %.noexc
%68 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%69 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%70 = icmp eq { i64, i64, [0 x i8] }* %69, null
br i1 %70, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit49", label %cond.i.i2.i
cond.i.i2.i: ; preds = %unwind.i40
%71 = bitcast { i64, i64, [0 x i8] }* %69 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %71)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit49" unwind label %unwind4
unwind: ; preds = %match_case
%72 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%73 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1
%74 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %73, align 8
%75 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74, null
br i1 %75, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit47, label %cond.i.i.i42
cond.i.i.i42: ; preds = %unwind
%76 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74, i64 0, i32 0
%77 = load i64* %76, align 8
%78 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74, i64 0, i32 2, i64 0
%79 = bitcast { i64, i64, [0 x i8] }** %78 to i8*
%80 = getelementptr inbounds i8* %79, i64 %77
%81 = bitcast i8* %80 to { i64, i64, [0 x i8] }**
%82 = icmp ult { i64, i64, [0 x i8] }** %78, %81
br i1 %82, label %iter_vec_loop_body.i.i.i.i43, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i46"
iter_vec_loop_body.i.i.i.i43: ; preds = %cond.i.i.i42, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i45"
%83 = phi { i64, i64, [0 x i8] }** [ %87, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i45" ], [ %78, %cond.i.i.i42 ]
%84 = load { i64, i64, [0 x i8] }** %83, align 8
%85 = icmp eq { i64, i64, [0 x i8] }* %84, null
br i1 %85, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i45", label %cond.i.i.i.i.i.i44
cond.i.i.i.i.i.i44: ; preds = %iter_vec_loop_body.i.i.i.i43
%86 = bitcast { i64, i64, [0 x i8] }* %84 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %86)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i45"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i45": ; preds = %cond.i.i.i.i.i.i44, %iter_vec_loop_body.i.i.i.i43
%87 = getelementptr inbounds { i64, i64, [0 x i8] }** %83, i64 1
%88 = icmp ult { i64, i64, [0 x i8] }** %87, %81
br i1 %88, label %iter_vec_loop_body.i.i.i.i43, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i46"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i46": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i45", %cond.i.i.i42
%89 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %89)
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit47
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit47: ; preds = %unwind, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i46"
resume { i8*, i32 } %72
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit": ; preds = %.noexc
%90 = add i64 %54, -1
%91 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%92 = getelementptr inbounds { i64, i64, [0 x i8] }* %91, i64 0, i32 2, i64 0
%93 = ptrtoint i8* %92 to i64
%94 = add i64 %90, %93
%95 = inttoptr i64 %94 to i8*
store i8 126, i8* %95, align 1
%96 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%97 = add i64 %54, 1
%98 = getelementptr inbounds { i64, i64, [0 x i8] }* %96, i64 0, i32 0
store i64 %97, i64* %98, align 8
%99 = getelementptr inbounds { i64, i64, [0 x i8] }* %96, i64 1
%100 = ptrtoint { i64, i64, [0 x i8] }* %99 to i64
%101 = add i64 %100, %54
%102 = inttoptr i64 %101 to i8*
store i8 0, i8* %102, align 1
%103 = load { i64, i64, [0 x i8] }** %ret.i, align 8
call void @llvm.lifetime.end(i64 8, i8* %50)
%104 = bitcast { i64, i64, [0 x i8] }* %38 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %104)
%.sroa.093.0..idx = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 0
store i8* getelementptr inbounds ([6 x i8]* @str10648, i64 0, i64 0), i8** %.sroa.093.0..idx, align 8
%.sroa.194.8..idx95 = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 1
store i64 6, i64* %.sroa.194.8..idx95, align 8
%105 = load { i64, i64, [0 x i8] }** %10, align 8
%106 = getelementptr inbounds { i64, i64, [0 x i8] }* %105, i64 0, i32 2, i64 0
%107 = getelementptr inbounds { i64, i64, [0 x i8] }* %105, i64 0, i32 0
%108 = load i64* %107, align 8
%109 = getelementptr inbounds { i8*, i64 }* %__adjust7, i64 0, i32 0
store i8* %106, i8** %109, align 8
%110 = getelementptr inbounds { i8*, i64 }* %__adjust7, i64 0, i32 1
store i64 %108, i64* %110, align 8
%111 = bitcast { i8*, i64 }* %__adjust7 to { i64, %tydesc*, i8*, i8*, i8 }*
%112 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %111)
to label %"normal return8" unwind label %unwind9
unwind4: ; preds = %cond.i.i2.i, %"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit"
%113 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit49"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit49": ; preds = %unwind.i40, %cond.i.i2.i, %unwind4
%eh.lpad-body = phi { i8*, i32 } [ %113, %unwind4 ], [ %68, %cond.i.i2.i ], [ %68, %unwind.i40 ]
call void @upcall_reset_stack_limit()
%114 = bitcast { i64, i64, [0 x i8] }* %38 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %114)
resume { i8*, i32 } %eh.lpad-body
"normal return8": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit"
store { i64, i64, [0 x i8] }* %112, { i64, i64, [0 x i8] }** %.sub, align 8
%115 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 1
%116 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11051, i64 0, i64 0), i64 2)
to label %"normal return12" unwind label %unwind13
unwind9: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit"
%117 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract110 = extractvalue { i8*, i32 } %117, 0
%.fca.1.extract112 = extractvalue { i8*, i32 } %117, 1
br label %cleanup10
cleanup10: ; preds = %cond.i.i52, %cleanup14, %unwind24, %unwind9
%.sroa.0139.0 = phi i8* [ %.fca.0.extract128, %unwind24 ], [ %.fca.0.extract110, %unwind9 ], [ %.sroa.0139.2, %cleanup14 ], [ %.sroa.0139.2, %cond.i.i52 ]
%.sroa.1142.0 = phi i32 [ %.fca.1.extract130, %unwind24 ], [ %.fca.1.extract112, %unwind9 ], [ %.sroa.1142.2, %cleanup14 ], [ %.sroa.1142.2, %cond.i.i52 ]
%118 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0
br label %iter_vec_loop_body.i
iter_vec_loop_body.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", %cleanup10
%119 = phi { i64, i64, [0 x i8] }** [ %.sub, %cleanup10 ], [ %123, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" ]
%120 = load { i64, i64, [0 x i8] }** %119, align 8
%121 = icmp eq { i64, i64, [0 x i8] }* %120, null
br i1 %121, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", label %cond.i.i.i51
cond.i.i.i51: ; preds = %iter_vec_loop_body.i
%122 = bitcast { i64, i64, [0 x i8] }* %120 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %122)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i": ; preds = %cond.i.i.i51, %iter_vec_loop_body.i
%123 = getelementptr inbounds { i64, i64, [0 x i8] }** %119, i64 1
%124 = icmp ult { i64, i64, [0 x i8] }** %123, %118
br i1 %124, label %iter_vec_loop_body.i, label %cleanup11
cleanup11: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", %cond.i81, %unwind37, %cond.i.i77, %unwind30.body, %unwind26
%.sroa.0139.1 = phi i8* [ %.fca.0.extract132, %unwind26 ], [ %eh.lpad-body73.fca.0.extract, %unwind30.body ], [ %eh.lpad-body73.fca.0.extract, %cond.i.i77 ], [ %.fca.0.extract136, %unwind37 ], [ %.fca.0.extract136, %cond.i81 ], [ %.sroa.0139.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" ]
%.sroa.1142.1 = phi i32 [ %.fca.1.extract134, %unwind26 ], [ %eh.lpad-body73.fca.1.extract, %unwind30.body ], [ %eh.lpad-body73.fca.1.extract, %cond.i.i77 ], [ %.fca.1.extract138, %unwind37 ], [ %.fca.1.extract138, %cond.i81 ], [ %.sroa.1142.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" ]
%125 = icmp eq { i64, i64, [0 x i8] }* %103, null
br i1 %125, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", label %cond.i.i
cond.i.i: ; preds = %cleanup11
%126 = bitcast { i64, i64, [0 x i8] }* %103 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %126)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit": ; preds = %cleanup11, %cond.i.i
%.fca.0.insert115 = insertvalue { i8*, i32 } undef, i8* %.sroa.0139.1, 0
%.fca.1.insert118 = insertvalue { i8*, i32 } %.fca.0.insert115, i32 %.sroa.1142.1, 1
resume { i8*, i32 } %.fca.1.insert118
"normal return12": ; preds = %"normal return8"
store { i64, i64, [0 x i8] }* %116, { i64, i64, [0 x i8] }** %115, align 8
%127 = getelementptr inbounds { i64, i64, [0 x i8] }* %103, i64 0, i32 2, i64 0
%128 = getelementptr inbounds { i64, i64, [0 x i8] }* %103, i64 0, i32 0
%129 = load i64* %128, align 8
%130 = getelementptr inbounds { i8*, i64 }* %__adjust15, i64 0, i32 0
store i8* %127, i8** %130, align 8
%131 = getelementptr inbounds { i8*, i64 }* %__adjust15, i64 0, i32 1
store i64 %129, i64* %131, align 8
%132 = bitcast { i8*, i64 }* %__adjust15 to { i64, %tydesc*, i8*, i8*, i8 }*
%133 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %132)
to label %"normal return16" unwind label %unwind17
unwind13: ; preds = %"normal return8"
%134 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract120 = extractvalue { i8*, i32 } %134, 0
%.fca.1.extract122 = extractvalue { i8*, i32 } %134, 1
br label %cleanup14
cleanup14: ; preds = %cond.i.i54, %unwind17, %unwind13
%.sroa.0139.2 = phi i8* [ %.fca.0.extract120, %unwind13 ], [ %.fca.0.extract124, %unwind17 ], [ %.fca.0.extract124, %cond.i.i54 ]
%.sroa.1142.2 = phi i32 [ %.fca.1.extract122, %unwind13 ], [ %.fca.1.extract126, %unwind17 ], [ %.fca.1.extract126, %cond.i.i54 ]
%135 = load { i64, i64, [0 x i8] }** %.sub, align 8
%136 = icmp eq { i64, i64, [0 x i8] }* %135, null
br i1 %136, label %cleanup10, label %cond.i.i52
cond.i.i52: ; preds = %cleanup14
%137 = bitcast { i64, i64, [0 x i8] }* %135 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %137)
br label %cleanup10
"normal return16": ; preds = %"normal return12"
%138 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 2
store { i64, i64, [0 x i8] }* %133, { i64, i64, [0 x i8] }** %138, align 8
%__adjust19.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg20, i64 0, i32 0
store { i64, i64, [0 x i8] }** %.sub, { i64, i64, [0 x i8] }*** %__adjust19.sroa.0.0..idx, align 8
%__adjust19.sroa.1.8..idx92 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg20, i64 0, i32 1
store i64 24, i64* %__adjust19.sroa.1.8..idx92, align 8
%__adjust21.sroa.0.0..idx = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg22, i64 0, i32 0
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE", void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust21.sroa.0.0..idx, align 8
%__adjust21.sroa.1.8..idx91 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg22, i64 0, i32 1
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust21.sroa.1.8..idx91, align 8
invoke void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6, { { i64, i64, [0 x i8] }**, i64 }* %__arg20, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg22)
to label %"normal return23" unwind label %unwind24
unwind17: ; preds = %"normal return12"
%139 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract124 = extractvalue { i8*, i32 } %139, 0
%.fca.1.extract126 = extractvalue { i8*, i32 } %139, 1
%140 = load { i64, i64, [0 x i8] }** %115, align 8
%141 = icmp eq { i64, i64, [0 x i8] }* %140, null
br i1 %141, label %cleanup14, label %cond.i.i54
cond.i.i54: ; preds = %unwind17
%142 = bitcast { i64, i64, [0 x i8] }* %140 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %142)
br label %cleanup14
"normal return23": ; preds = %"normal return16"
%143 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0
br label %iter_vec_loop_body.i56
iter_vec_loop_body.i56: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i58", %"normal return23"
%144 = phi { i64, i64, [0 x i8] }** [ %.sub, %"normal return23" ], [ %148, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i58" ]
%145 = load { i64, i64, [0 x i8] }** %144, align 8
%146 = icmp eq { i64, i64, [0 x i8] }* %145, null
br i1 %146, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i58", label %cond.i.i.i57
cond.i.i.i57: ; preds = %iter_vec_loop_body.i56
%147 = bitcast { i64, i64, [0 x i8] }* %145 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %147)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i58"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i58": ; preds = %cond.i.i.i57, %iter_vec_loop_body.i56
%148 = getelementptr inbounds { i64, i64, [0 x i8] }** %144, i64 1
%149 = icmp ult { i64, i64, [0 x i8] }** %148, %143
br i1 %149, label %iter_vec_loop_body.i56, label %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11064E.exit59"
"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11064E.exit59": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i58"
%150 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11052, i64 0, i64 0), i64 2)
to label %"normal return25" unwind label %unwind26
unwind24: ; preds = %"normal return16"
%151 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract128 = extractvalue { i8*, i32 } %151, 0
%.fca.1.extract130 = extractvalue { i8*, i32 } %151, 1
br label %cleanup10
"normal return25": ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11064E.exit59"
%152 = getelementptr inbounds { i64, i64, [0 x i8] }* %150, i64 0, i32 2, i64 0
%153 = getelementptr inbounds { i64, i64, [0 x i8] }* %150, i64 0, i32 0
%154 = load i64* %153, align 8
%155 = getelementptr inbounds { i8*, i64 }* %__adjust27, i64 0, i32 0
store i8* %152, i8** %155, align 8
%156 = getelementptr inbounds { i8*, i64 }* %__adjust27, i64 0, i32 1
store i64 %154, i64* %156, align 8
%157 = bitcast { i8*, i64 }* %__adjust27 to { i64, %tydesc*, i8*, i8*, i8 }*
%158 = load i64* %128, align 8
%159 = bitcast { i64, i64, [0 x i8] }** %ret.i62 to i8*
call void @llvm.lifetime.start(i64 8, i8* %159)
%160 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %157)
to label %.noexc71 unwind label %unwind30
.noexc71: ; preds = %"normal return25"
store { i64, i64, [0 x i8] }* %160, { i64, i64, [0 x i8] }** %ret.i62, align 8
%161 = bitcast { i64, i64, [0 x i8] }** %ret.i62 to { i64, %tydesc*, i8*, i8*, i8 }*
%162 = getelementptr inbounds { i64, i64, [0 x i8] }* %160, i64 0, i32 0
%163 = load i64* %162, align 8
%164 = add i64 %163, -1
%165 = add i64 %158, -1
%166 = add i64 %164, %165
%167 = lshr i64 %166, 1
%168 = or i64 %167, %166
%169 = lshr i64 %168, 2
%170 = or i64 %169, %168
%171 = lshr i64 %170, 4
%172 = or i64 %171, %170
%173 = lshr i64 %172, 8
%174 = or i64 %173, %172
%175 = lshr i64 %174, 16
%176 = or i64 %175, %174
%177 = lshr i64 %176, 32
%178 = or i64 %177, %176
%179 = add i64 %178, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %161, i64 %179)
to label %"normal return29" unwind label %unwind.i68
unwind.i68: ; preds = %.noexc71
%180 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%181 = load { i64, i64, [0 x i8] }** %ret.i62, align 8
%182 = icmp eq { i64, i64, [0 x i8] }* %181, null
br i1 %182, label %unwind30.body, label %cond.i.i2.i69
cond.i.i2.i69: ; preds = %unwind.i68
%183 = bitcast { i64, i64, [0 x i8] }* %181 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %183)
to label %unwind30.body unwind label %unwind30
unwind26: ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11064E.exit59"
%184 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract132 = extractvalue { i8*, i32 } %184, 0
%.fca.1.extract134 = extractvalue { i8*, i32 } %184, 1
br label %cleanup11
"normal return29": ; preds = %.noexc71
%185 = load { i64, i64, [0 x i8] }** %ret.i62, align 8
%186 = getelementptr inbounds { i64, i64, [0 x i8] }* %185, i64 0, i32 2, i64 0
%187 = ptrtoint i8* %186 to i64
%188 = add i64 %187, %164
%189 = inttoptr i64 %188 to i8*
call void @llvm.memmove.p0i8.p0i8.i64(i8* %189, i8* %127, i64 %165, i32 1, i1 false)
%190 = load { i64, i64, [0 x i8] }** %ret.i62, align 8
%191 = add i64 %163, %165
%192 = getelementptr inbounds { i64, i64, [0 x i8] }* %190, i64 0, i32 0
store i64 %191, i64* %192, align 8
%193 = getelementptr inbounds { i64, i64, [0 x i8] }* %190, i64 1
%194 = ptrtoint { i64, i64, [0 x i8] }* %193 to i64
%195 = add i64 %194, %166
%196 = inttoptr i64 %195 to i8*
store i8 0, i8* %196, align 1
%197 = load { i64, i64, [0 x i8] }** %ret.i62, align 8
call void @llvm.lifetime.end(i64 8, i8* %159)
%198 = icmp eq { i64, i64, [0 x i8] }* %150, null
br i1 %198, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit76", label %cond.i.i75
cond.i.i75: ; preds = %"normal return29"
%199 = bitcast { i64, i64, [0 x i8] }* %150 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %199)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit76"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit76": ; preds = %"normal return29", %cond.i.i75
%200 = getelementptr inbounds { i64, i64, [0 x i8] }* %197, i64 0, i32 2, i64 0
%201 = getelementptr inbounds { i64, i64, [0 x i8] }* %197, i64 0, i32 0
%202 = load i64* %201, align 8
%__adjust32.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg33, i64 0, i32 0
store i8* %200, i8** %__adjust32.sroa.0.0..idx, align 8
%__adjust32.sroa.1.8..idx87 = getelementptr inbounds { i8*, i64 }* %__arg33, i64 0, i32 1
store i64 %202, i64* %__adjust32.sroa.1.8..idx87, align 8
%203 = bitcast { i8*, i64 }* %__arg33 to %str_slice*
%__adjust34.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg35, i64 0, i32 0
store { i64, i64, [0 x i8] }** %11, { i64, i64, [0 x i8] }*** %__adjust34.sroa.0.0..idx, align 8
%__adjust34.sroa.1.8..idx86 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg35, i64 0, i32 1
store i64 %12, i64* %__adjust34.sroa.1.8..idx86, align 8
%204 = invoke i64 @"_ZN3run14process_status17_414f913ecacd531b14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %203, { { i64, i64, [0 x i8] }**, i64 }* %__arg35)
to label %"normal return36" unwind label %unwind37
unwind30: ; preds = %cond.i.i2.i69, %"normal return25"
%205 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind30.body
unwind30.body: ; preds = %unwind.i68, %cond.i.i2.i69, %unwind30
%eh.lpad-body73 = phi { i8*, i32 } [ %205, %unwind30 ], [ %180, %cond.i.i2.i69 ], [ %180, %unwind.i68 ]
call void @upcall_reset_stack_limit()
%eh.lpad-body73.fca.0.extract = extractvalue { i8*, i32 } %eh.lpad-body73, 0
%eh.lpad-body73.fca.1.extract = extractvalue { i8*, i32 } %eh.lpad-body73, 1
%206 = icmp eq { i64, i64, [0 x i8] }* %150, null
br i1 %206, label %cleanup11, label %cond.i.i77
cond.i.i77: ; preds = %unwind30.body
%207 = bitcast { i64, i64, [0 x i8] }* %150 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %207)
br label %cleanup11
"normal return36": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit76"
%208 = icmp eq { i64, i64, [0 x i8] }* %197, null
br i1 %208, label %"normal return39", label %cond.i79
cond.i79: ; preds = %"normal return36"
%209 = bitcast { i64, i64, [0 x i8] }* %197 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %209)
br label %"normal return39"
unwind37: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit76"
%210 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract136 = extractvalue { i8*, i32 } %210, 0
%.fca.1.extract138 = extractvalue { i8*, i32 } %210, 1
%211 = icmp eq { i64, i64, [0 x i8] }* %197, null
br i1 %211, label %cleanup11, label %cond.i81
cond.i81: ; preds = %unwind37
%212 = bitcast { i64, i64, [0 x i8] }* %197 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %212)
br label %cleanup11
"normal return39": ; preds = %cond.i79, %"normal return36"
%213 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 0, i64* %213, align 8
%214 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 1
store i64 %204, i64* %214, align 8
%215 = icmp eq { i64, i64, [0 x i8] }* %103, null
br i1 %215, label %join, label %cond.i.i83
cond.i.i83: ; preds = %"normal return39"
%216 = bitcast { i64, i64, [0 x i8] }* %103 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %216)
br label %join
join: ; preds = %cond.i.i83, %"normal return39", %compare_vec_len_next
ret void
}
define void @"_ZN8cmd_test17_64cd22cf85a72bbc14_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 {
"function top level":
%__trans_ret_slot.i = alloca {}, align 8
%ret.i69 = alloca { i64, i64, [0 x i8] }*, align 8
%ret.i = alloca { i64, i64, [0 x i8] }*, align 8
%__arg.i = alloca %str_slice, align 8
%__arg2.i = alloca %str_slice, align 8
%3 = alloca %"enum.std::option::Option<~str>[#1]", align 8
%4 = alloca %"struct.std::path::PosixPath[#1]", align 8
%__arg = alloca { i8*, i64 }, align 8
%__adjust2 = alloca { i8*, i64 }, align 8
%__arg6 = alloca %str_slice, align 8
%5 = alloca [4 x { i64, i64, [0 x i8] }*], align 8
%__adjust11 = alloca { i8*, i64 }, align 8
%__adjust18 = alloca { i8*, i64 }, align 8
%__arg23 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg25 = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8
%__adjust30 = alloca { i8*, i64 }, align 8
%__arg36 = alloca { i8*, i64 }, align 8
%__arg38 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%.sub = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 0
%6 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1
%7 = load i64* %6, align 8
%.off = add i64 %7, -8
%8 = icmp ult i64 %.off, 8
br i1 %8, label %match_case, label %compare_vec_len_next
match_case: ; preds = %"function top level"
%9 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0
%10 = load { i64, i64, [0 x i8] }*** %9, align 8
%11 = load { i64, i64, [0 x i8] }** %10, align 8
%12 = getelementptr inbounds { i64, i64, [0 x i8] }* %11, i64 0, i32 2, i64 0
%13 = getelementptr inbounds { i64, i64, [0 x i8] }* %11, i64 0, i32 0
%14 = load i64* %13, align 8
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0
store i8* %12, i8** %__adjust.sroa.0.0..idx, align 8
%__adjust.sroa.1.8..idx156 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1
store i64 %14, i64* %__adjust.sroa.1.8..idx156, align 8
%15 = bitcast { i8*, i64 }* %__arg to %str_slice*
call void @"_ZN4path9PosixPath17_7c6da4115ba3bd6514_0$x2e8$x2dpreE"(%"struct.std::path::PosixPath[#1]"* %4, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %15)
%16 = bitcast %"struct.std::path::PosixPath[#1]"* %4 to { i64, %tydesc*, i8*, i8*, i8 }*
invoke void @"_ZN4path14__extensions__10meth_225818filestem17_b384379c13763c9b14_0$x2e8$x2dpreE"(%"enum.std::option::Option<~str>[#1]"* %3, { i64, %tydesc*, i8*, i8*, i8 }* %16)
to label %"normal return" unwind label %unwind
compare_vec_len_next: ; preds = %"function top level"
%17 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 1, i64* %17, align 8
br label %join
"normal return": ; preds = %match_case
%18 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1
%19 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %18, align 8
%20 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19, null
br i1 %20, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit, label %cond.i.i.i
cond.i.i.i: ; preds = %"normal return"
%21 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19, i64 0, i32 0
%22 = load i64* %21, align 8
%23 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19, i64 0, i32 2, i64 0
%24 = bitcast { i64, i64, [0 x i8] }** %23 to i8*
%25 = getelementptr inbounds i8* %24, i64 %22
%26 = bitcast i8* %25 to { i64, i64, [0 x i8] }**
%27 = icmp ult { i64, i64, [0 x i8] }** %23, %26
br i1 %27, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i"
iter_vec_loop_body.i.i.i.i: ; preds = %cond.i.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i"
%28 = phi { i64, i64, [0 x i8] }** [ %32, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i" ], [ %23, %cond.i.i.i ]
%29 = load { i64, i64, [0 x i8] }** %28, align 8
%30 = icmp eq { i64, i64, [0 x i8] }* %29, null
br i1 %30, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i", label %cond.i.i.i.i.i.i
cond.i.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i.i
%31 = bitcast { i64, i64, [0 x i8] }* %29 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %31)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i": ; preds = %cond.i.i.i.i.i.i, %iter_vec_loop_body.i.i.i.i
%32 = getelementptr inbounds { i64, i64, [0 x i8] }** %28, i64 1
%33 = icmp ult { i64, i64, [0 x i8] }** %32, %26
br i1 %33, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i", %cond.i.i.i
%34 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %34)
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit: ; preds = %"normal return", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i"
%35 = getelementptr inbounds %"enum.std::option::Option<~str>[#1]"* %3, i64 0, i32 0
%36 = load { i64, i64, [0 x i8] }** %35, align 8
%37 = bitcast {}* %__trans_ret_slot.i to i8*
call void @llvm.lifetime.start(i64 0, i8* %37)
%38 = bitcast %str_slice* %__arg.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %38)
%39 = bitcast %str_slice* %__arg2.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %39)
%40 = icmp eq { i64, i64, [0 x i8] }* %36, null
br i1 %40, label %match_else.i, label %"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit"
match_else.i: ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit
%.sroa.010.0..idx.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 0
store i8* getelementptr inbounds ([20 x i8]* @str11026, i64 0, i64 0), i8** %.sroa.010.0..idx.i, align 8
%.sroa.111.8..idx12.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 1
store i64 20, i64* %.sroa.111.8..idx12.i, align 8
%.sroa.07.0..idx.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 0
store i8* getelementptr inbounds ([41 x i8]* @str11027, i64 0, i64 0), i8** %.sroa.07.0..idx.i, align 8
%.sroa.18.8..idx9.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 1
store i64 41, i64* %.sroa.18.8..idx9.i, align 8
invoke void @"_ZN3sys14__extensions__10meth_127919fail_with16_db4c44d01ce411614_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg.i, %str_slice* %__arg2.i, i64 320)
to label %"normal return.i" unwind label %"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11032E.exit4.i"
"normal return.i": ; preds = %match_else.i
unreachable
"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11032E.exit4.i": ; preds = %match_else.i
%41 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
resume { i8*, i32 } %41
"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit": ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit
call void @llvm.lifetime.end(i64 0, i8* %37)
call void @llvm.lifetime.end(i64 16, i8* %38)
call void @llvm.lifetime.end(i64 16, i8* %39)
%42 = getelementptr inbounds { i64, i64, [0 x i8] }* %36, i64 0, i32 2, i64 0
%43 = getelementptr inbounds { i64, i64, [0 x i8] }* %36, i64 0, i32 0
%44 = load i64* %43, align 8
%45 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 0
store i8* %42, i8** %45, align 8
%46 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 1
store i64 %44, i64* %46, align 8
%47 = bitcast { i8*, i64 }* %__adjust2 to { i64, %tydesc*, i8*, i8*, i8 }*
%48 = bitcast { i64, i64, [0 x i8] }** %ret.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %48)
%49 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %47)
to label %.noexc unwind label %unwind4
.noexc: ; preds = %"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit"
store { i64, i64, [0 x i8] }* %49, { i64, i64, [0 x i8] }** %ret.i, align 8
%50 = bitcast { i64, i64, [0 x i8] }** %ret.i to { i64, %tydesc*, i8*, i8*, i8 }*
%51 = getelementptr inbounds { i64, i64, [0 x i8] }* %49, i64 0, i32 0
%52 = load i64* %51, align 8
%53 = add i64 %52, 4
%54 = lshr i64 %53, 1
%55 = or i64 %54, %53
%56 = lshr i64 %55, 2
%57 = or i64 %56, %55
%58 = lshr i64 %57, 4
%59 = or i64 %58, %57
%60 = lshr i64 %59, 8
%61 = or i64 %60, %59
%62 = lshr i64 %61, 16
%63 = or i64 %62, %61
%64 = lshr i64 %63, 32
%65 = or i64 %64, %63
%66 = add i64 %65, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %50, i64 %66)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit" unwind label %unwind.i43
unwind.i43: ; preds = %.noexc
%67 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%68 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%69 = icmp eq { i64, i64, [0 x i8] }* %68, null
br i1 %69, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit53", label %cond.i.i2.i
cond.i.i2.i: ; preds = %unwind.i43
%70 = bitcast { i64, i64, [0 x i8] }* %68 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %70)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit53" unwind label %unwind4
unwind: ; preds = %match_case
%71 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%72 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1
%73 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %72, align 8
%74 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73, null
br i1 %74, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit50, label %cond.i.i.i45
cond.i.i.i45: ; preds = %unwind
%75 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73, i64 0, i32 0
%76 = load i64* %75, align 8
%77 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73, i64 0, i32 2, i64 0
%78 = bitcast { i64, i64, [0 x i8] }** %77 to i8*
%79 = getelementptr inbounds i8* %78, i64 %76
%80 = bitcast i8* %79 to { i64, i64, [0 x i8] }**
%81 = icmp ult { i64, i64, [0 x i8] }** %77, %80
br i1 %81, label %iter_vec_loop_body.i.i.i.i46, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i49"
iter_vec_loop_body.i.i.i.i46: ; preds = %cond.i.i.i45, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i48"
%82 = phi { i64, i64, [0 x i8] }** [ %86, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i48" ], [ %77, %cond.i.i.i45 ]
%83 = load { i64, i64, [0 x i8] }** %82, align 8
%84 = icmp eq { i64, i64, [0 x i8] }* %83, null
br i1 %84, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i48", label %cond.i.i.i.i.i.i47
cond.i.i.i.i.i.i47: ; preds = %iter_vec_loop_body.i.i.i.i46
%85 = bitcast { i64, i64, [0 x i8] }* %83 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %85)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i48"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i48": ; preds = %cond.i.i.i.i.i.i47, %iter_vec_loop_body.i.i.i.i46
%86 = getelementptr inbounds { i64, i64, [0 x i8] }** %82, i64 1
%87 = icmp ult { i64, i64, [0 x i8] }** %86, %80
br i1 %87, label %iter_vec_loop_body.i.i.i.i46, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i49"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i49": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i.i48", %cond.i.i.i45
%88 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %88)
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit50
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11038E.exit50: ; preds = %unwind, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i.i49"
resume { i8*, i32 } %71
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit": ; preds = %.noexc
%89 = add i64 %52, -1
%90 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%91 = getelementptr inbounds { i64, i64, [0 x i8] }* %90, i64 0, i32 2, i64 0
%92 = ptrtoint i8* %91 to i64
%93 = add i64 %89, %92
%94 = inttoptr i64 %93 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %94, i8* getelementptr inbounds ([6 x i8]* @str11042, i64 0, i64 0), i64 5, i32 1, i1 false)
%95 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%96 = add i64 %52, 5
%97 = getelementptr inbounds { i64, i64, [0 x i8] }* %95, i64 0, i32 0
store i64 %96, i64* %97, align 8
%98 = getelementptr inbounds { i64, i64, [0 x i8] }* %95, i64 1
%99 = ptrtoint { i64, i64, [0 x i8] }* %98 to i64
%100 = add i64 %99, %53
%101 = inttoptr i64 %100 to i8*
store i8 0, i8* %101, align 1
%102 = load { i64, i64, [0 x i8] }** %ret.i, align 8
call void @llvm.lifetime.end(i64 8, i8* %48)
%103 = bitcast { i64, i64, [0 x i8] }* %36 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %103)
%.sroa.0100.0..idx = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 0
store i8* getelementptr inbounds ([6 x i8]* @str10648, i64 0, i64 0), i8** %.sroa.0100.0..idx, align 8
%.sroa.1101.8..idx102 = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 1
store i64 6, i64* %.sroa.1101.8..idx102, align 8
%104 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([7 x i8]* @str11044, i64 0, i64 0), i64 6)
to label %"normal return7" unwind label %unwind8
unwind4: ; preds = %cond.i.i2.i, %"_ZN6option14__extensions__12unwrap_1102417_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit"
%105 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit53"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit53": ; preds = %unwind.i43, %cond.i.i2.i, %unwind4
%eh.lpad-body = phi { i8*, i32 } [ %105, %unwind4 ], [ %67, %cond.i.i2.i ], [ %67, %unwind.i43 ]
call void @upcall_reset_stack_limit()
%106 = bitcast { i64, i64, [0 x i8] }* %36 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %106)
resume { i8*, i32 } %eh.lpad-body
"normal return7": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit"
store { i64, i64, [0 x i8] }* %104, { i64, i64, [0 x i8] }** %.sub, align 8
%107 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 1
%108 = load { i64, i64, [0 x i8] }** %10, align 8
%109 = getelementptr inbounds { i64, i64, [0 x i8] }* %108, i64 0, i32 2, i64 0
%110 = getelementptr inbounds { i64, i64, [0 x i8] }* %108, i64 0, i32 0
%111 = load i64* %110, align 8
%112 = getelementptr inbounds { i8*, i64 }* %__adjust11, i64 0, i32 0
store i8* %109, i8** %112, align 8
%113 = getelementptr inbounds { i8*, i64 }* %__adjust11, i64 0, i32 1
store i64 %111, i64* %113, align 8
%114 = bitcast { i8*, i64 }* %__adjust11 to { i64, %tydesc*, i8*, i8*, i8 }*
%115 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %114)
to label %"normal return12" unwind label %unwind13
unwind8: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit"
%116 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract117 = extractvalue { i8*, i32 } %116, 0
%.fca.1.extract119 = extractvalue { i8*, i32 } %116, 1
br label %cleanup9
cleanup9: ; preds = %cond.i.i57, %cleanup14, %unwind27, %unwind8
%.sroa.0150.0 = phi i8* [ %.fca.0.extract139, %unwind27 ], [ %.fca.0.extract117, %unwind8 ], [ %.sroa.0150.2, %cleanup14 ], [ %.sroa.0150.2, %cond.i.i57 ]
%.sroa.1153.0 = phi i32 [ %.fca.1.extract141, %unwind27 ], [ %.fca.1.extract119, %unwind8 ], [ %.sroa.1153.2, %cleanup14 ], [ %.sroa.1153.2, %cond.i.i57 ]
%117 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0
br label %iter_vec_loop_body.i
iter_vec_loop_body.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", %cleanup9
%118 = phi { i64, i64, [0 x i8] }** [ %.sub, %cleanup9 ], [ %122, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" ]
%119 = load { i64, i64, [0 x i8] }** %118, align 8
%120 = icmp eq { i64, i64, [0 x i8] }* %119, null
br i1 %120, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", label %cond.i.i.i54
cond.i.i.i54: ; preds = %iter_vec_loop_body.i
%121 = bitcast { i64, i64, [0 x i8] }* %119 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %121)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i": ; preds = %cond.i.i.i54, %iter_vec_loop_body.i
%122 = getelementptr inbounds { i64, i64, [0 x i8] }** %118, i64 1
%123 = icmp ult { i64, i64, [0 x i8] }** %122, %117
br i1 %123, label %iter_vec_loop_body.i, label %cleanup10
cleanup10: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", %cond.i88, %unwind40, %cond.i.i84, %unwind33.body, %unwind29
%.sroa.0150.1 = phi i8* [ %.fca.0.extract143, %unwind29 ], [ %eh.lpad-body80.fca.0.extract, %unwind33.body ], [ %eh.lpad-body80.fca.0.extract, %cond.i.i84 ], [ %.fca.0.extract147, %unwind40 ], [ %.fca.0.extract147, %cond.i88 ], [ %.sroa.0150.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" ]
%.sroa.1153.1 = phi i32 [ %.fca.1.extract145, %unwind29 ], [ %eh.lpad-body80.fca.1.extract, %unwind33.body ], [ %eh.lpad-body80.fca.1.extract, %cond.i.i84 ], [ %.fca.1.extract149, %unwind40 ], [ %.fca.1.extract149, %cond.i88 ], [ %.sroa.1153.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i" ]
%124 = icmp eq { i64, i64, [0 x i8] }* %102, null
br i1 %124, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", label %cond.i.i
cond.i.i: ; preds = %cleanup10
%125 = bitcast { i64, i64, [0 x i8] }* %102 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %125)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit": ; preds = %cleanup10, %cond.i.i
%.fca.0.insert122 = insertvalue { i8*, i32 } undef, i8* %.sroa.0150.1, 0
%.fca.1.insert125 = insertvalue { i8*, i32 } %.fca.0.insert122, i32 %.sroa.1153.1, 1
resume { i8*, i32 } %.fca.1.insert125
"normal return12": ; preds = %"normal return7"
store { i64, i64, [0 x i8] }* %115, { i64, i64, [0 x i8] }** %107, align 8
%126 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 2
%127 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11051, i64 0, i64 0), i64 2)
to label %"normal return15" unwind label %unwind16
unwind13: ; preds = %"normal return7"
%128 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract127 = extractvalue { i8*, i32 } %128, 0
%.fca.1.extract129 = extractvalue { i8*, i32 } %128, 1
br label %cleanup14
cleanup14: ; preds = %cond.i.i59, %cleanup17, %unwind13
%.sroa.0150.2 = phi i8* [ %.fca.0.extract127, %unwind13 ], [ %.sroa.0150.3, %cleanup17 ], [ %.sroa.0150.3, %cond.i.i59 ]
%.sroa.1153.2 = phi i32 [ %.fca.1.extract129, %unwind13 ], [ %.sroa.1153.3, %cleanup17 ], [ %.sroa.1153.3, %cond.i.i59 ]
%129 = load { i64, i64, [0 x i8] }** %.sub, align 8
%130 = icmp eq { i64, i64, [0 x i8] }* %129, null
br i1 %130, label %cleanup9, label %cond.i.i57
cond.i.i57: ; preds = %cleanup14
%131 = bitcast { i64, i64, [0 x i8] }* %129 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %131)
br label %cleanup9
"normal return15": ; preds = %"normal return12"
store { i64, i64, [0 x i8] }* %127, { i64, i64, [0 x i8] }** %126, align 8
%132 = getelementptr inbounds { i64, i64, [0 x i8] }* %102, i64 0, i32 2, i64 0
%133 = getelementptr inbounds { i64, i64, [0 x i8] }* %102, i64 0, i32 0
%134 = load i64* %133, align 8
%135 = getelementptr inbounds { i8*, i64 }* %__adjust18, i64 0, i32 0
store i8* %132, i8** %135, align 8
%136 = getelementptr inbounds { i8*, i64 }* %__adjust18, i64 0, i32 1
store i64 %134, i64* %136, align 8
%137 = bitcast { i8*, i64 }* %__adjust18 to { i64, %tydesc*, i8*, i8*, i8 }*
%138 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %137)
to label %"normal return19" unwind label %unwind20
unwind16: ; preds = %"normal return12"
%139 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract131 = extractvalue { i8*, i32 } %139, 0
%.fca.1.extract133 = extractvalue { i8*, i32 } %139, 1
br label %cleanup17
cleanup17: ; preds = %cond.i.i61, %unwind20, %unwind16
%.sroa.0150.3 = phi i8* [ %.fca.0.extract131, %unwind16 ], [ %.fca.0.extract135, %unwind20 ], [ %.fca.0.extract135, %cond.i.i61 ]
%.sroa.1153.3 = phi i32 [ %.fca.1.extract133, %unwind16 ], [ %.fca.1.extract137, %unwind20 ], [ %.fca.1.extract137, %cond.i.i61 ]
%140 = load { i64, i64, [0 x i8] }** %107, align 8
%141 = icmp eq { i64, i64, [0 x i8] }* %140, null
br i1 %141, label %cleanup14, label %cond.i.i59
cond.i.i59: ; preds = %cleanup17
%142 = bitcast { i64, i64, [0 x i8] }* %140 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %142)
br label %cleanup14
"normal return19": ; preds = %"normal return15"
%143 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 3
store { i64, i64, [0 x i8] }* %138, { i64, i64, [0 x i8] }** %143, align 8
%__adjust22.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg23, i64 0, i32 0
store { i64, i64, [0 x i8] }** %.sub, { i64, i64, [0 x i8] }*** %__adjust22.sroa.0.0..idx, align 8
%__adjust22.sroa.1.8..idx99 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg23, i64 0, i32 1
store i64 32, i64* %__adjust22.sroa.1.8..idx99, align 8
%__adjust24.sroa.0.0..idx = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg25, i64 0, i32 0
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE", void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust24.sroa.0.0..idx, align 8
%__adjust24.sroa.1.8..idx98 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg25, i64 0, i32 1
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust24.sroa.1.8..idx98, align 8
invoke void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6, { { i64, i64, [0 x i8] }**, i64 }* %__arg23, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg25)
to label %"normal return26" unwind label %unwind27
unwind20: ; preds = %"normal return15"
%144 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract135 = extractvalue { i8*, i32 } %144, 0
%.fca.1.extract137 = extractvalue { i8*, i32 } %144, 1
%145 = load { i64, i64, [0 x i8] }** %126, align 8
%146 = icmp eq { i64, i64, [0 x i8] }* %145, null
br i1 %146, label %cleanup17, label %cond.i.i61
cond.i.i61: ; preds = %unwind20
%147 = bitcast { i64, i64, [0 x i8] }* %145 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %147)
br label %cleanup17
"normal return26": ; preds = %"normal return19"
%148 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0
br label %iter_vec_loop_body.i63
iter_vec_loop_body.i63: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i65", %"normal return26"
%149 = phi { i64, i64, [0 x i8] }** [ %.sub, %"normal return26" ], [ %153, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i65" ]
%150 = load { i64, i64, [0 x i8] }** %149, align 8
%151 = icmp eq { i64, i64, [0 x i8] }* %150, null
br i1 %151, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i65", label %cond.i.i.i64
cond.i.i.i64: ; preds = %iter_vec_loop_body.i63
%152 = bitcast { i64, i64, [0 x i8] }* %150 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %152)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i65"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i65": ; preds = %cond.i.i.i64, %iter_vec_loop_body.i63
%153 = getelementptr inbounds { i64, i64, [0 x i8] }** %149, i64 1
%154 = icmp ult { i64, i64, [0 x i8] }** %153, %148
br i1 %154, label %iter_vec_loop_body.i63, label %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11049E.exit66"
"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11049E.exit66": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i65"
%155 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11052, i64 0, i64 0), i64 2)
to label %"normal return28" unwind label %unwind29
unwind27: ; preds = %"normal return19"
%156 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract139 = extractvalue { i8*, i32 } %156, 0
%.fca.1.extract141 = extractvalue { i8*, i32 } %156, 1
br label %cleanup9
"normal return28": ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11049E.exit66"
%157 = getelementptr inbounds { i64, i64, [0 x i8] }* %155, i64 0, i32 2, i64 0
%158 = getelementptr inbounds { i64, i64, [0 x i8] }* %155, i64 0, i32 0
%159 = load i64* %158, align 8
%160 = getelementptr inbounds { i8*, i64 }* %__adjust30, i64 0, i32 0
store i8* %157, i8** %160, align 8
%161 = getelementptr inbounds { i8*, i64 }* %__adjust30, i64 0, i32 1
store i64 %159, i64* %161, align 8
%162 = bitcast { i8*, i64 }* %__adjust30 to { i64, %tydesc*, i8*, i8*, i8 }*
%163 = load i64* %133, align 8
%164 = bitcast { i64, i64, [0 x i8] }** %ret.i69 to i8*
call void @llvm.lifetime.start(i64 8, i8* %164)
%165 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %162)
to label %.noexc78 unwind label %unwind33
.noexc78: ; preds = %"normal return28"
store { i64, i64, [0 x i8] }* %165, { i64, i64, [0 x i8] }** %ret.i69, align 8
%166 = bitcast { i64, i64, [0 x i8] }** %ret.i69 to { i64, %tydesc*, i8*, i8*, i8 }*
%167 = getelementptr inbounds { i64, i64, [0 x i8] }* %165, i64 0, i32 0
%168 = load i64* %167, align 8
%169 = add i64 %168, -1
%170 = add i64 %163, -1
%171 = add i64 %169, %170
%172 = lshr i64 %171, 1
%173 = or i64 %172, %171
%174 = lshr i64 %173, 2
%175 = or i64 %174, %173
%176 = lshr i64 %175, 4
%177 = or i64 %176, %175
%178 = lshr i64 %177, 8
%179 = or i64 %178, %177
%180 = lshr i64 %179, 16
%181 = or i64 %180, %179
%182 = lshr i64 %181, 32
%183 = or i64 %182, %181
%184 = add i64 %183, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %166, i64 %184)
to label %"normal return32" unwind label %unwind.i75
unwind.i75: ; preds = %.noexc78
%185 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%186 = load { i64, i64, [0 x i8] }** %ret.i69, align 8
%187 = icmp eq { i64, i64, [0 x i8] }* %186, null
br i1 %187, label %unwind33.body, label %cond.i.i2.i76
cond.i.i2.i76: ; preds = %unwind.i75
%188 = bitcast { i64, i64, [0 x i8] }* %186 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %188)
to label %unwind33.body unwind label %unwind33
unwind29: ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11049E.exit66"
%189 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract143 = extractvalue { i8*, i32 } %189, 0
%.fca.1.extract145 = extractvalue { i8*, i32 } %189, 1
br label %cleanup10
"normal return32": ; preds = %.noexc78
%190 = load { i64, i64, [0 x i8] }** %ret.i69, align 8
%191 = getelementptr inbounds { i64, i64, [0 x i8] }* %190, i64 0, i32 2, i64 0
%192 = ptrtoint i8* %191 to i64
%193 = add i64 %192, %169
%194 = inttoptr i64 %193 to i8*
call void @llvm.memmove.p0i8.p0i8.i64(i8* %194, i8* %132, i64 %170, i32 1, i1 false)
%195 = load { i64, i64, [0 x i8] }** %ret.i69, align 8
%196 = add i64 %168, %170
%197 = getelementptr inbounds { i64, i64, [0 x i8] }* %195, i64 0, i32 0
store i64 %196, i64* %197, align 8
%198 = getelementptr inbounds { i64, i64, [0 x i8] }* %195, i64 1
%199 = ptrtoint { i64, i64, [0 x i8] }* %198 to i64
%200 = add i64 %199, %171
%201 = inttoptr i64 %200 to i8*
store i8 0, i8* %201, align 1
%202 = load { i64, i64, [0 x i8] }** %ret.i69, align 8
call void @llvm.lifetime.end(i64 8, i8* %164)
%203 = icmp eq { i64, i64, [0 x i8] }* %155, null
br i1 %203, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit83", label %cond.i.i82
cond.i.i82: ; preds = %"normal return32"
%204 = bitcast { i64, i64, [0 x i8] }* %155 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %204)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit83"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit83": ; preds = %"normal return32", %cond.i.i82
%205 = getelementptr inbounds { i64, i64, [0 x i8] }* %202, i64 0, i32 2, i64 0
%206 = getelementptr inbounds { i64, i64, [0 x i8] }* %202, i64 0, i32 0
%207 = load i64* %206, align 8
%__adjust35.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg36, i64 0, i32 0
store i8* %205, i8** %__adjust35.sroa.0.0..idx, align 8
%__adjust35.sroa.1.8..idx94 = getelementptr inbounds { i8*, i64 }* %__arg36, i64 0, i32 1
store i64 %207, i64* %__adjust35.sroa.1.8..idx94, align 8
%208 = bitcast { i8*, i64 }* %__arg36 to %str_slice*
%209 = bitcast {}* %__trans_ret_slot.i to { i64, i64, [0 x i8] }**
%__adjust37.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg38, i64 0, i32 0
store { i64, i64, [0 x i8] }** %209, { i64, i64, [0 x i8] }*** %__adjust37.sroa.0.0..idx, align 8
%__adjust37.sroa.1.8..idx93 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg38, i64 0, i32 1
store i64 0, i64* %__adjust37.sroa.1.8..idx93, align 8
%210 = invoke i64 @"_ZN3run14process_status17_414f913ecacd531b14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %208, { { i64, i64, [0 x i8] }**, i64 }* %__arg38)
to label %"normal return39" unwind label %unwind40
unwind33: ; preds = %cond.i.i2.i76, %"normal return28"
%211 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind33.body
unwind33.body: ; preds = %unwind.i75, %cond.i.i2.i76, %unwind33
%eh.lpad-body80 = phi { i8*, i32 } [ %211, %unwind33 ], [ %185, %cond.i.i2.i76 ], [ %185, %unwind.i75 ]
call void @upcall_reset_stack_limit()
%eh.lpad-body80.fca.0.extract = extractvalue { i8*, i32 } %eh.lpad-body80, 0
%eh.lpad-body80.fca.1.extract = extractvalue { i8*, i32 } %eh.lpad-body80, 1
%212 = icmp eq { i64, i64, [0 x i8] }* %155, null
br i1 %212, label %cleanup10, label %cond.i.i84
cond.i.i84: ; preds = %unwind33.body
%213 = bitcast { i64, i64, [0 x i8] }* %155 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %213)
br label %cleanup10
"normal return39": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit83"
%214 = icmp eq { i64, i64, [0 x i8] }* %202, null
br i1 %214, label %"normal return42", label %cond.i86
cond.i86: ; preds = %"normal return39"
%215 = bitcast { i64, i64, [0 x i8] }* %202 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %215)
br label %"normal return42"
unwind40: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit83"
%216 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract147 = extractvalue { i8*, i32 } %216, 0
%.fca.1.extract149 = extractvalue { i8*, i32 } %216, 1
%217 = icmp eq { i64, i64, [0 x i8] }* %202, null
br i1 %217, label %cleanup10, label %cond.i88
cond.i88: ; preds = %unwind40
%218 = bitcast { i64, i64, [0 x i8] }* %202 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %218)
br label %cleanup10
"normal return42": ; preds = %cond.i86, %"normal return39"
%219 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 0, i64* %219, align 8
%220 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 1
store i64 %210, i64* %220, align 8
%221 = icmp eq { i64, i64, [0 x i8] }* %102, null
br i1 %221, label %join, label %cond.i.i90
cond.i.i90: ; preds = %"normal return42"
%222 = bitcast { i64, i64, [0 x i8] }* %102 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %222)
br label %join
join: ; preds = %cond.i.i90, %"normal return42", %compare_vec_len_next
ret void
}
declare void @"_ZN4main16_923425a5c682dca14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare void @"_ZN6config5usage16_923425a5c682dca14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare void @"_ZN4main16_f7604413a6f2de214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare void @"_ZN5usage7general16_f7604413a6f2de214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare void @"_ZN4main17_3a346db0adc4cf5114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
define void @"_ZN8cmd_help17_64cd22cf85a72bbc14_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 {
"function top level":
%.sroa.1.sroa.0.i = alloca [16 x i8], align 8
%command.sroa.0.i = alloca %str_slice, align 8
%command.sroa.2.i = alloca [40 x i8], align 8
%prog.i = alloca %str_slice, align 8
%__fmtbuf.i = alloca { i64, i64, [0 x i8] }*, align 8
%__arg9.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg10.i = alloca %str_slice, align 8
%__arg14.i = alloca %str_slice, align 8
%__arg16.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg17.i = alloca %str_slice, align 8
%__arg19.i = alloca %str_slice, align 8
%__arg22.i = alloca { i8*, i64 }, align 8
%__fmtbuf32.i = alloca { i64, i64, [0 x i8] }*, align 8
%__arg34.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg35.i = alloca %str_slice, align 8
%__arg39.i = alloca %str_slice, align 8
%__arg42.i = alloca { i8*, i64 }, align 8
%__adjust.i = alloca { i8*, i64 }, align 8
%3 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1
%4 = load i64* %3, align 8
%.off = add i64 %4, -8
%5 = icmp ult i64 %.off, 8
br i1 %5, label %match_case, label %compare_vec_len_next
match_case: ; preds = %"function top level"
%6 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0
%7 = load { i64, i64, [0 x i8] }*** %6, align 8
%8 = bitcast { i8*, i64 }* %__adjust.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %8)
%9 = load { i64, i64, [0 x i8] }** %7, align 8
%10 = getelementptr inbounds { i64, i64, [0 x i8] }* %9, i64 0, i32 2, i64 0
%11 = getelementptr inbounds { i64, i64, [0 x i8] }* %9, i64 0, i32 0
%12 = load i64* %11, align 8
%13 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0
store i8* %10, i8** %13, align 8
%14 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1
store i64 %12, i64* %14, align 8
%15 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }*
%16 = call fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %15)
call void @llvm.lifetime.end(i64 16, i8* %8)
%.sroa.1.sroa.0.i.0.idx = getelementptr inbounds [16 x i8]* %.sroa.1.sroa.0.i, i64 0, i64 0
call void @llvm.lifetime.start(i64 16, i8* %.sroa.1.sroa.0.i.0.idx)
%command.sroa.0.i.0.cast = bitcast %str_slice* %command.sroa.0.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %command.sroa.0.i.0.cast)
%command.sroa.2.i.0.idx30 = getelementptr inbounds [40 x i8]* %command.sroa.2.i, i64 0, i64 0
call void @llvm.lifetime.start(i64 40, i8* %command.sroa.2.i.0.idx30)
%prog.i.0.cast = bitcast %str_slice* %prog.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %prog.i.0.cast)
%17 = bitcast { i64, i64, [0 x i8] }** %__fmtbuf.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %17)
%18 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i to i8*
call void @llvm.lifetime.start(i64 48, i8* %18)
%19 = bitcast %str_slice* %__arg10.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %19)
%20 = bitcast %str_slice* %__arg14.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %20)
%21 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i to i8*
call void @llvm.lifetime.start(i64 48, i8* %21)
%22 = bitcast %str_slice* %__arg17.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %22)
%23 = bitcast %str_slice* %__arg19.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %23)
%24 = bitcast { i8*, i64 }* %__arg22.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %24)
%25 = bitcast { i64, i64, [0 x i8] }** %__fmtbuf32.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %25)
%26 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i to i8*
call void @llvm.lifetime.start(i64 48, i8* %26)
%27 = bitcast %str_slice* %__arg35.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %27)
%28 = bitcast %str_slice* %__arg39.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %28)
%29 = bitcast { i8*, i64 }* %__arg42.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %29)
%30 = getelementptr inbounds { i64, i64, [0 x i8] }* %16, i64 0, i32 0
%31 = load i64* %30, align 8
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %match_else.i, label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i"
"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i": ; preds = %match_case
%32 = getelementptr inbounds { i64, i64, [0 x i8] }* %16, i64 0, i32 2, i64 0
%33 = bitcast i8* %32 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%34 = add i64 %31, -1
br label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i"
"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i": ; preds = %"`loop`.i.i.backedge.i.i", %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i"
%.sroa.08.091.i.i = phi i64 [ %35, %"`loop`.i.i.backedge.i.i" ], [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i" ]
%35 = add i64 %.sroa.08.091.i.i, 88
%36 = inttoptr i64 %.sroa.08.091.i.i to %struct.Command*
%__arg1.i.sroa.1.8..idx43.i.i = getelementptr inbounds %struct.Command* %36, i64 0, i32 0, i32 1
%__arg1.i.sroa.1.8.copyload.i.i = load i64* %__arg1.i.sroa.1.8..idx43.i.i, align 8
%37 = icmp eq i64 %__arg1.i.sroa.1.8.copyload.i.i, %31
br i1 %37, label %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i.i, label %"`loop`.i.i.backedge.i.i"
"`loop`.i.i.backedge.i.i": ; preds = %.noexc.i, %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i"
%38 = inttoptr i64 %35 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%39 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %38, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)
%40 = icmp eq i64 %35, 0
%or.cond.i.i = or i1 %39, %40
br i1 %or.cond.i.i, label %match_else.i, label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i"
_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i.i: ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i"
%__arg1.i.sroa.0.0..idx.i.i = getelementptr inbounds %struct.Command* %36, i64 0, i32 0, i32 0
%__arg1.i.sroa.0.0.copyload.i.i = load i8** %__arg1.i.sroa.0.0..idx.i.i, align 8
%41 = bitcast i8* %__arg1.i.sroa.0.0.copyload.i.i to %"enum.std::libc::types::common::c95::c_void[#1]"*
%42 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %41, %"enum.std::libc::types::common::c95::c_void[#1]"* %33, i64 %34)
to label %.noexc.i unwind label %unwind.loopexit.i
.noexc.i: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i.i
%43 = icmp eq i32 %42, 0
br i1 %43, label %match_case.i, label %"`loop`.i.i.backedge.i.i"
unwind.loopexit.i: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i.i
%lpad.loopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind.i
unwind.nonloopexit.i: ; preds = %match_case31.i, %match_else30.i, %match_case7.i
%lpad.nonloopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind.i
unwind.i: ; preds = %unwind.nonloopexit.i, %unwind.loopexit.i
%lpad.phi.i = phi { i8*, i32 } [ %lpad.loopexit.i, %unwind.loopexit.i ], [ %lpad.nonloopexit.i, %unwind.nonloopexit.i ]
call void @upcall_reset_stack_limit()
%.fca.0.extract.i = extractvalue { i8*, i32 } %lpad.phi.i, 0
%.fca.1.extract.i = extractvalue { i8*, i32 } %lpad.phi.i, 1
br label %cleanup.i
cleanup.i: ; preds = %cond.i18.i, %unwind44.i, %cond.i.i12.i, %unwind37.i, %cond.i8.i, %unwind24.i, %cond.i.i4.i, %unwind12.i, %unwind.i
%.sroa.085.0.i = phi i8* [ %.fca.0.extract.i, %unwind.i ], [ %.fca.0.extract70.i, %unwind12.i ], [ %.fca.0.extract70.i, %cond.i.i4.i ], [ %.fca.0.extract74.i, %unwind24.i ], [ %.fca.0.extract74.i, %cond.i8.i ], [ %.fca.0.extract78.i, %unwind37.i ], [ %.fca.0.extract78.i, %cond.i.i12.i ], [ %.fca.0.extract82.i, %unwind44.i ], [ %.fca.0.extract82.i, %cond.i18.i ]
%.sroa.186.0.i = phi i32 [ %.fca.1.extract.i, %unwind.i ], [ %.fca.1.extract72.i, %unwind12.i ], [ %.fca.1.extract72.i, %cond.i.i4.i ], [ %.fca.1.extract76.i, %unwind24.i ], [ %.fca.1.extract76.i, %cond.i8.i ], [ %.fca.1.extract80.i, %unwind37.i ], [ %.fca.1.extract80.i, %cond.i.i12.i ], [ %.fca.1.extract84.i, %unwind44.i ], [ %.fca.1.extract84.i, %cond.i18.i ]
%44 = icmp eq { i64, i64, [0 x i8] }* %16, null
br i1 %44, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", label %cond.i.i.i
cond.i.i.i: ; preds = %cleanup.i
%45 = bitcast { i64, i64, [0 x i8] }* %16 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %45)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i": ; preds = %cond.i.i.i, %cleanup.i
%.fca.0.insert.i = insertvalue { i8*, i32 } undef, i8* %.sroa.085.0.i, 0
%.fca.1.insert.i = insertvalue { i8*, i32 } %.fca.0.insert.i, i32 %.sroa.186.0.i, 1
resume { i8*, i32 } %.fca.1.insert.i
match_else.i: ; preds = %"`loop`.i.i.backedge.i.i", %match_case
%46 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 1, i64* %46, align 8
br label %join49.i
match_case.i: ; preds = %.noexc.i
%47 = inttoptr i64 %.sroa.08.091.i.i to i8*
%__arg.i.i.i.sroa.1.16..idx = getelementptr inbounds i8* %47, i64 16
%__arg.i.i.i.sroa.1.16..cast = bitcast i8* %__arg.i.i.i.sroa.1.16..idx to i64*
%__arg.i.i.i.sroa.1.16.copyload = load i64* %__arg.i.i.i.sroa.1.16..cast, align 8
%__arg.i.i.i.sroa.2.24..raw_idx = getelementptr inbounds i8* %47, i64 24
%__arg.i.i.i.sroa.3.64..idx = getelementptr inbounds i8* %47, i64 64
%__arg.i.i.i.sroa.3.64..cast = bitcast i8* %__arg.i.i.i.sroa.3.64..idx to i64*
%__arg.i.i.i.sroa.3.64.copyload = load i64* %__arg.i.i.i.sroa.3.64..cast, align 8
%__arg.i.i.i.sroa.4.72..idx = getelementptr inbounds i8* %47, i64 72
%__arg.i.i.i.sroa.4.72..cast = bitcast i8* %__arg.i.i.i.sroa.4.72..idx to void ({ i64, %tydesc*, i8*, i8*, i8 }*)**
%__arg.i.i.i.sroa.4.72.copyload = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__arg.i.i.i.sroa.4.72..cast, align 8
%__arg.i.i.i.sroa.5.80..idx = getelementptr inbounds i8* %47, i64 80
%__arg.i.i.i.sroa.5.80..cast = bitcast i8* %__arg.i.i.i.sroa.5.80..idx to i64*
%__arg.i.i.i.sroa.5.80.copyload = load i64* %__arg.i.i.i.sroa.5.80..cast, align 8
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %.sroa.1.sroa.0.i.0.idx, i8* %47, i64 16, i32 8, i1 false)
call void @llvm.memmove.p0i8.p0i8.i64(i8* %command.sroa.2.i.0.idx30, i8* %__arg.i.i.i.sroa.2.24..raw_idx, i64 40, i32 8, i1 false)
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %command.sroa.0.i.0.cast, i8* %.sroa.1.sroa.0.i.0.idx, i64 16, i32 8, i1 false)
%cond1.i = icmp eq i64 %__arg.i.i.i.sroa.1.16.copyload, 1
br i1 %cond1.i, label %match_case7.i, label %join.i
match_case7.i: ; preds = %match_case.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %prog.i.0.cast, i8* %command.sroa.2.i.0.idx30, i64 16, i32 8, i1 false)
%48 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([5 x i8]* @str11019, i64 0, i64 0), i64 4)
to label %"normal return8.i" unwind label %unwind.nonloopexit.i
"normal return8.i": ; preds = %match_case7.i
store { i64, i64, [0 x i8] }* %48, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
%.sroa.054.0..idx.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 0
store i32 0, i32* %.sroa.054.0..idx.i, align 8
%.sroa.256.8..idx57.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 1, i32 0
store i64 1, i64* %.sroa.256.8..idx57.i, align 8
%.sroa.460.24..idx61.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 2, i32 0
store i64 1, i64* %.sroa.460.24..idx61.i, align 8
%.sroa.664.40..idx65.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 3, i32 0
store i64 0, i64* %.sroa.664.40..idx65.i, align 8
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %19, i8* %command.sroa.0.i.0.cast, i64 16, i32 8, i1 false)
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, %str_slice* %__arg10.i, { i64, i64, [0 x i8] }** %__fmtbuf.i)
to label %"normal return11.i" unwind label %unwind12.i
"normal return11.i": ; preds = %"normal return8.i"
%.sroa.051.0..idx.i = getelementptr inbounds %str_slice* %__arg14.i, i64 0, i32 0
store i8* getelementptr inbounds ([30 x i8]* @str11020, i64 0, i64 0), i8** %.sroa.051.0..idx.i, align 8
%.sroa.152.8..idx53.i = getelementptr inbounds %str_slice* %__arg14.i, i64 0, i32 1
store i64 30, i64* %.sroa.152.8..idx53.i, align 8
invoke void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }** %__fmtbuf.i, %str_slice* %__arg14.i)
to label %"normal return15.i" unwind label %unwind12.i
unwind12.i: ; preds = %"normal return18.i", %"normal return15.i", %"normal return11.i", %"normal return8.i"
%49 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract70.i = extractvalue { i8*, i32 } %49, 0
%.fca.1.extract72.i = extractvalue { i8*, i32 } %49, 1
%50 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
%51 = icmp eq { i64, i64, [0 x i8] }* %50, null
br i1 %51, label %cleanup.i, label %cond.i.i4.i
cond.i.i4.i: ; preds = %unwind12.i
%52 = bitcast { i64, i64, [0 x i8] }* %50 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %52)
br label %cleanup.i
"normal return15.i": ; preds = %"normal return11.i"
%.sroa.039.0..idx.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 0
store i32 0, i32* %.sroa.039.0..idx.i, align 8
%.sroa.241.8..idx42.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 1, i32 0
store i64 1, i64* %.sroa.241.8..idx42.i, align 8
%.sroa.445.24..idx46.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 2, i32 0
store i64 1, i64* %.sroa.445.24..idx46.i, align 8
%.sroa.649.40..idx50.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 3, i32 0
store i64 0, i64* %.sroa.649.40..idx50.i, align 8
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %22, i8* %prog.i.0.cast, i64 16, i32 8, i1 false)
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, %str_slice* %__arg17.i, { i64, i64, [0 x i8] }** %__fmtbuf.i)
to label %"normal return18.i" unwind label %unwind12.i
"normal return18.i": ; preds = %"normal return15.i"
%.sroa.036.0..idx.i = getelementptr inbounds %str_slice* %__arg19.i, i64 0, i32 0
store i8* getelementptr inbounds ([10 x i8]* @str11021, i64 0, i64 0), i8** %.sroa.036.0..idx.i, align 8
%.sroa.137.8..idx38.i = getelementptr inbounds %str_slice* %__arg19.i, i64 0, i32 1
store i64 10, i64* %.sroa.137.8..idx38.i, align 8
invoke void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }** %__fmtbuf.i, %str_slice* %__arg19.i)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit7.i" unwind label %unwind12.i
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit7.i": ; preds = %"normal return18.i"
%53 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
%54 = getelementptr inbounds { i64, i64, [0 x i8] }* %53, i64 0, i32 2, i64 0
%55 = getelementptr inbounds { i64, i64, [0 x i8] }* %53, i64 0, i32 0
%56 = load i64* %55, align 8
%__adjust21.sroa.0.0..idx.i = getelementptr inbounds { i8*, i64 }* %__arg22.i, i64 0, i32 0
store i8* %54, i8** %__adjust21.sroa.0.0..idx.i, align 8
%__adjust21.sroa.1.8..idx35.i = getelementptr inbounds { i8*, i64 }* %__arg22.i, i64 0, i32 1
store i64 %56, i64* %__adjust21.sroa.1.8..idx35.i, align 8
%57 = bitcast { i8*, i64 }* %__arg22.i to %str_slice*
invoke void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %57)
to label %"normal return23.i" unwind label %unwind24.i
"normal return23.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit7.i"
%58 = icmp eq { i64, i64, [0 x i8] }* %53, null
br i1 %58, label %join.i, label %cond.i.i
cond.i.i: ; preds = %"normal return23.i"
%59 = bitcast { i64, i64, [0 x i8] }* %53 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %59)
br label %join.i
unwind24.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit7.i"
%60 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract74.i = extractvalue { i8*, i32 } %60, 0
%.fca.1.extract76.i = extractvalue { i8*, i32 } %60, 1
%61 = icmp eq { i64, i64, [0 x i8] }* %53, null
br i1 %61, label %cleanup.i, label %cond.i8.i
cond.i8.i: ; preds = %unwind24.i
%62 = bitcast { i64, i64, [0 x i8] }* %53 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %62)
br label %cleanup.i
join.i: ; preds = %cond.i.i, %"normal return23.i", %match_case.i
%cond2.i = icmp eq i64 %__arg.i.i.i.sroa.3.64.copyload, 0
br i1 %cond2.i, label %match_case31.i, label %match_else30.i
match_else30.i: ; preds = %join.i
invoke void %__arg.i.i.i.sroa.4.72.copyload({ i64, %tydesc*, i8*, i8*, i8 }* undef)
to label %join47.i unwind label %unwind.nonloopexit.i
match_case31.i: ; preds = %join.i
%63 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([1 x i8]* @str11022, i64 0, i64 0), i64 0)
to label %"normal return33.i" unwind label %unwind.nonloopexit.i
"normal return33.i": ; preds = %match_case31.i
store { i64, i64, [0 x i8] }* %63, { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8
%.sroa.025.0..idx.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 0
store i32 0, i32* %.sroa.025.0..idx.i, align 8
%.sroa.2.8..idx27.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 1, i32 0
store i64 1, i64* %.sroa.2.8..idx27.i, align 8
%.sroa.4.24..idx29.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 2, i32 0
store i64 1, i64* %.sroa.4.24..idx29.i, align 8
%.sroa.6.40..idx31.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 3, i32 0
store i64 0, i64* %.sroa.6.40..idx31.i, align 8
%64 = getelementptr inbounds %str_slice* %__arg35.i, i64 0, i32 0
%.sroa.1.sroa.4.72.copyload.c.i = bitcast void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %__arg.i.i.i.sroa.4.72.copyload to i8*
store i8* %.sroa.1.sroa.4.72.copyload.c.i, i8** %64, align 8
%msg.sroa.1.8..idx96.i = getelementptr inbounds %str_slice* %__arg35.i, i64 0, i32 1
store i64 %__arg.i.i.i.sroa.5.80.copyload, i64* %msg.sroa.1.8..idx96.i, align 8
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, %str_slice* %__arg35.i, { i64, i64, [0 x i8] }** %__fmtbuf32.i)
to label %"normal return36.i" unwind label %unwind37.i
"normal return36.i": ; preds = %"normal return33.i"
%.sroa.0.0..idx.i = getelementptr inbounds %str_slice* %__arg39.i, i64 0, i32 0
store i8* getelementptr inbounds ([2 x i8]* @str11023, i64 0, i64 0), i8** %.sroa.0.0..idx.i, align 8
%.sroa.1.8..idx24.i = getelementptr inbounds %str_slice* %__arg39.i, i64 0, i32 1
store i64 2, i64* %.sroa.1.8..idx24.i, align 8
invoke void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }** %__fmtbuf32.i, %str_slice* %__arg39.i)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit15.i" unwind label %unwind37.i
unwind37.i: ; preds = %"normal return36.i", %"normal return33.i"
%65 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract78.i = extractvalue { i8*, i32 } %65, 0
%.fca.1.extract80.i = extractvalue { i8*, i32 } %65, 1
%66 = load { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8
%67 = icmp eq { i64, i64, [0 x i8] }* %66, null
br i1 %67, label %cleanup.i, label %cond.i.i12.i
cond.i.i12.i: ; preds = %unwind37.i
%68 = bitcast { i64, i64, [0 x i8] }* %66 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %68)
br label %cleanup.i
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit15.i": ; preds = %"normal return36.i"
%69 = load { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8
%70 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 2, i64 0
%71 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 0
%72 = load i64* %71, align 8
%__adjust41.sroa.0.0..idx.i = getelementptr inbounds { i8*, i64 }* %__arg42.i, i64 0, i32 0
store i8* %70, i8** %__adjust41.sroa.0.0..idx.i, align 8
%__adjust41.sroa.1.8..idx23.i = getelementptr inbounds { i8*, i64 }* %__arg42.i, i64 0, i32 1
store i64 %72, i64* %__adjust41.sroa.1.8..idx23.i, align 8
%73 = bitcast { i8*, i64 }* %__arg42.i to %str_slice*
invoke void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %73)
to label %"normal return43.i" unwind label %unwind44.i
"normal return43.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit15.i"
%74 = icmp eq { i64, i64, [0 x i8] }* %69, null
br i1 %74, label %join47.i, label %cond.i16.i
cond.i16.i: ; preds = %"normal return43.i"
%75 = bitcast { i64, i64, [0 x i8] }* %69 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %75)
br label %join47.i
unwind44.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit15.i"
%76 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract82.i = extractvalue { i8*, i32 } %76, 0
%.fca.1.extract84.i = extractvalue { i8*, i32 } %76, 1
%77 = icmp eq { i64, i64, [0 x i8] }* %69, null
br i1 %77, label %cleanup.i, label %cond.i18.i
cond.i18.i: ; preds = %unwind44.i
%78 = bitcast { i64, i64, [0 x i8] }* %69 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %78)
br label %cleanup.i
join47.i: ; preds = %cond.i16.i, %"normal return43.i", %match_else30.i
%79 = bitcast %enum.ValidUsage* %0 to i8*
call void @llvm.memset.p0i8.i64(i8* %79, i8 0, i64 16, i32 8, i1 false)
br label %join49.i
join49.i: ; preds = %join47.i, %match_else.i
%80 = icmp eq { i64, i64, [0 x i8] }* %16, null
br i1 %80, label %join, label %cond.i.i20.i
cond.i.i20.i: ; preds = %join49.i
%81 = bitcast { i64, i64, [0 x i8] }* %16 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %81)
br label %join
compare_vec_len_next: ; preds = %"function top level"
%82 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 1, i64* %82, align 8
br label %join
join: ; preds = %cond.i.i20.i, %join49.i, %compare_vec_len_next
ret void
}
declare void @"_ZN5usage16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*)
define internal fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #3 {
"function top level":
%__trans_ret_slot.i = alloca {}, align 8
%ret.i = alloca { i64, i64, [0 x i8] }*, align 8
%__adjust.i = alloca { i8*, i64 }, align 8
%__arg3.i = alloca %str_slice, align 8
%v.i = alloca { i64, i64, [0 x i8] }*, align 8
%__arg.sroa.0.0..cast.i = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %0 to i8**
%__arg.sroa.0.0.copyload.i = load i8** %__arg.sroa.0.0..cast.i, align 8
%__arg.sroa.1.8..idx.i = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %0, i64 0, i32 1
%__arg.sroa.1.8..cast.i = bitcast %tydesc** %__arg.sroa.1.8..idx.i to i64*
%__arg.sroa.1.8.copyload.i = load i64* %__arg.sroa.1.8..cast.i, align 8
%1 = bitcast {}* %__trans_ret_slot.i to i8*
call void @llvm.lifetime.start(i64 0, i8* %1)
%2 = bitcast { i8*, i64 }* %__adjust.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %2)
%3 = bitcast %str_slice* %__arg3.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %3)
%4 = bitcast { i64, i64, [0 x i8] }** %v.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = icmp eq i64 %__arg.sroa.1.8.copyload.i, 0
br i1 %5, label %then.i, label %next.i
then.i: ; preds = %"function top level"
%6 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([19 x i8]* @str10873, i64 0, i64 0), i64 18)
%7 = getelementptr inbounds { i64, i64, [0 x i8] }* %6, i64 0, i32 2, i64 0
%8 = getelementptr inbounds { i64, i64, [0 x i8] }* %6, i64 0, i32 0
%9 = load i64* %8, align 8
%10 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0
store i8* %7, i8** %10, align 8
%11 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1
store i64 %9, i64* %11, align 8
%12 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }*
%13 = bitcast { i64, i64, [0 x i8] }** %ret.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %13)
%14 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %12)
to label %.noexc110 unwind label %unwind.i
.noexc110: ; preds = %then.i
store { i64, i64, [0 x i8] }* %14, { i64, i64, [0 x i8] }** %ret.i, align 8
%15 = getelementptr inbounds { i64, i64, [0 x i8] }* %14, i64 0, i32 0
%16 = load i64* %15, align 8
%17 = add i64 %16, 6
%18 = lshr i64 %17, 1
%19 = or i64 %18, %17
%20 = lshr i64 %19, 2
%21 = or i64 %20, %19
%22 = lshr i64 %21, 4
%23 = or i64 %22, %21
%24 = lshr i64 %23, 8
%25 = or i64 %24, %23
%26 = lshr i64 %25, 16
%27 = or i64 %26, %25
%28 = lshr i64 %27, 32
%29 = or i64 %28, %27
%30 = add i64 %29, 1
%31 = bitcast { i64, i64, [0 x i8] }** %ret.i to { i64, %tydesc*, i8*, i8*, i8 }*
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %31, i64 %30)
to label %"normal return.i" unwind label %unwind.i7
unwind.i7: ; preds = %.noexc110
%32 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%33 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%34 = icmp eq { i64, i64, [0 x i8] }* %33, null
br i1 %34, label %unwind.i.body, label %cond.i12
cond.i12: ; preds = %unwind.i7
%35 = bitcast { i64, i64, [0 x i8] }* %33 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %35)
to label %unwind.i.body unwind label %unwind.i
"normal return.i": ; preds = %.noexc110
%36 = add i64 %16, -1
%37 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%38 = getelementptr inbounds { i64, i64, [0 x i8] }* %37, i64 0, i32 2, i64 0
%39 = ptrtoint i8* %38 to i64
%40 = add i64 %36, %39
%41 = inttoptr i64 %40 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %41, i8* getelementptr inbounds ([8 x i8]* @str10874, i64 0, i64 0), i64 7, i32 1, i1 false)
%42 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%43 = add i64 %16, 7
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %42, i64 0, i32 0
store i64 %43, i64* %44, align 8
%45 = getelementptr inbounds { i64, i64, [0 x i8] }* %42, i64 1
%46 = ptrtoint { i64, i64, [0 x i8] }* %45 to i64
%47 = add i64 %17, %46
%48 = inttoptr i64 %47 to i8*
store i8 0, i8* %48, align 1
%49 = load { i64, i64, [0 x i8] }** %ret.i, align 8
call void @llvm.lifetime.end(i64 8, i8* %13)
%50 = icmp eq { i64, i64, [0 x i8] }* %6, null
br i1 %50, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18", label %cond.i17
cond.i17: ; preds = %"normal return.i"
%51 = bitcast { i64, i64, [0 x i8] }* %6 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %51)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18": ; preds = %"normal return.i", %cond.i17
%.sroa.0186.0..idx = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 0
store i8* getelementptr inbounds ([38 x i8]* @str10875, i64 0, i64 0), i8** %.sroa.0186.0..idx, align 8
%.sroa.1188.8..idx189 = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 1
store i64 38, i64* %.sroa.1188.8..idx189, align 8
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %49, %str_slice* %__arg3.i, i64 1581)
unreachable
unwind.i: ; preds = %cond.i12, %then.i
%52 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind.i.body
unwind.i.body: ; preds = %unwind.i7, %cond.i12, %unwind.i
%eh.lpad-body = phi { i8*, i32 } [ %52, %unwind.i ], [ %32, %cond.i12 ], [ %32, %unwind.i7 ]
call void @upcall_reset_stack_limit()
%53 = icmp eq { i64, i64, [0 x i8] }* %6, null
br i1 %53, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit21", label %cond.i20
cond.i20: ; preds = %unwind.i.body
%54 = bitcast { i64, i64, [0 x i8] }* %6 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %54)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit21"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit21": ; preds = %unwind.i.body, %cond.i20
resume { i8*, i32 } %eh.lpad-body
next.i: ; preds = %"function top level"
%55 = add i64 %__arg.sroa.1.8.copyload.i, 16
%56 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 %55)
%57 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %56, null
br i1 %57, label %then.i24, label %.noexc40
then.i24: ; preds = %next.i
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
br label %.noexc40
unwind7.i.body: ; preds = %"while loop cond.i170.preheader"
%58 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%59 = load { i64, i64, [0 x i8] }** %v.i, align 8
%60 = icmp eq { i64, i64, [0 x i8] }* %59, null
br i1 %60, label %"_ZN8_$UP$u3216_3347fe3223215de15glue_free_10893E.exit37", label %cond.i36
cond.i36: ; preds = %unwind7.i.body
%61 = bitcast { i64, i64, [0 x i8] }* %59 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %61)
br label %"_ZN8_$UP$u3216_3347fe3223215de15glue_free_10893E.exit37"
"_ZN8_$UP$u3216_3347fe3223215de15glue_free_10893E.exit37": ; preds = %unwind7.i.body, %cond.i36
resume { i8*, i32 } %58
.noexc40: ; preds = %then.i24, %next.i
%62 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %56 to %"struct.std::unstable::raw::Vec<()>[#1]"*
%63 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %62, i64 0, i32 1
store i64 %__arg.sroa.1.8.copyload.i, i64* %63, align 8
%64 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %56 to i64*
store i64 0, i64* %64, align 8
%.c.i = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %56 to { i64, i64, [0 x i8] }*
store { i64, i64, [0 x i8] }* %.c.i, { i64, i64, [0 x i8] }** %v.i, align 8
%65 = getelementptr inbounds { i64, i64, [0 x i8] }* %.c.i, i64 0, i32 2, i64 0
%66 = add i64 %__arg.sroa.1.8.copyload.i, -1
call void @llvm.memmove.p0i8.p0i8.i64(i8* %65, i8* %__arg.sroa.0.0.copyload.i, i64 %66, i32 1, i1 false)
%67 = load { i64, i64, [0 x i8] }** %v.i, align 8
%68 = getelementptr inbounds { i64, i64, [0 x i8] }* %67, i64 0, i32 0
store i64 %66, i64* %68, align 8
%69 = load { i64, i64, [0 x i8] }** %v.i, align 8
%70 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 0
%71 = load i64* %70, align 8
%72 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 1
%73 = load i64* %72, align 8
%74 = icmp ugt i64 %73, %71
br i1 %74, label %_ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit, label %"while loop cond.i170.preheader"
"while loop cond.i170.preheader": ; preds = %.noexc40
%75 = bitcast { i64, i64, [0 x i8] }** %v.i to { i64, %tydesc*, i8*, i8*, i8 }*
%76 = lshr i64 %71, 1
%77 = or i64 %76, %71
%78 = lshr i64 %77, 2
%79 = or i64 %78, %77
%80 = lshr i64 %79, 4
%81 = or i64 %80, %79
%82 = lshr i64 %81, 8
%83 = or i64 %82, %81
%84 = lshr i64 %83, 16
%85 = or i64 %84, %83
%86 = lshr i64 %85, 32
%87 = or i64 %86, %85
%88 = add i64 %87, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %75, i64 %88)
to label %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit_crit_edge" unwind label %unwind7.i.body
"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit_crit_edge": ; preds = %"while loop cond.i170.preheader"
%.pre = load { i64, i64, [0 x i8] }** %v.i, align 8
%.phi.trans.insert = getelementptr inbounds { i64, i64, [0 x i8] }* %.pre, i64 0, i32 0
%.pre390 = load i64* %.phi.trans.insert, align 8
br label %_ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit
_ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit: ; preds = %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit_crit_edge", %.noexc40
%89 = phi i64 [ %.pre390, %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit_crit_edge" ], [ %71, %.noexc40 ]
%90 = phi { i64, i64, [0 x i8] }* [ %.pre, %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10727E.exit_crit_edge" ], [ %69, %.noexc40 ]
%91 = getelementptr inbounds { i64, i64, [0 x i8] }* %90, i64 0, i32 0
%92 = add i64 %89, 1
store i64 %92, i64* %91, align 8
%93 = load { i64, i64, [0 x i8] }** %v.i, align 8
%94 = getelementptr inbounds { i64, i64, [0 x i8] }* %93, i64 1
%95 = ptrtoint { i64, i64, [0 x i8] }* %94 to i64
%96 = add i64 %95, %89
%97 = inttoptr i64 %96 to i8*
store i8 0, i8* %97, align 1
%98 = load { i64, i64, [0 x i8] }** %v.i, align 8
call void @llvm.lifetime.end(i64 0, i8* %1)
call void @llvm.lifetime.end(i64 16, i8* %2)
call void @llvm.lifetime.end(i64 16, i8* %3)
call void @llvm.lifetime.end(i64 8, i8* %4)
ret { i64, i64, [0 x i8] }* %98
}
declare void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}*, { i64, %tydesc*, i8*, i8*, i8 }*, { i64, i64, [0 x i8] }*, %str_slice*, i64)
define internal fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64) #2 {
"function top level":
%__trans_ret_slot = alloca {}, align 8
%__fmtbuf = alloca { i64, i64, [0 x i8] }*, align 8
%__arg5 = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg7 = alloca %str_slice, align 8
%2 = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %0 to %"struct.std::unstable::raw::Vec<()>[#1]"**
%3 = load %"struct.std::unstable::raw::Vec<()>[#1]"** %2, align 8
%4 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %3, i64 0, i32 1
%5 = load i64* %4, align 8
%6 = icmp ult i64 %5, %1
br i1 %6, label %join, label %next10
join: ; preds = %"function top level"
%uadd = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %1, i64 16)
%7 = extractvalue { i64, i1 } %uadd, 1
br i1 %7, label %then3, label %next8
then3: ; preds = %join
%8 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([27 x i8]* @str10809, i64 0, i64 0), i64 26)
store { i64, i64, [0 x i8] }* %8, { i64, i64, [0 x i8] }** %__fmtbuf, align 8
%.sroa.018.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 0
store i32 0, i32* %.sroa.018.0..idx, align 8
%.sroa.2.8..idx20 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 1, i32 0
store i64 1, i64* %.sroa.2.8..idx20, align 8
%.sroa.4.24..idx22 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 2, i32 0
store i64 1, i64* %.sroa.4.24..idx22, align 8
%.sroa.6.40..idx24 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 3, i32 0
store i64 0, i64* %.sroa.6.40..idx24, align 8
invoke void @"_ZN8unstable6extfmt2rt9conv_uint17_7d8efb9aa1a1a0b614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 %1, { i64, i64, [0 x i8] }** %__fmtbuf)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit12" unwind label %unwind
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit12": ; preds = %then3
%9 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf, align 8
%.sroa.0.0..idx = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 0
store i8* getelementptr inbounds ([38 x i8]* @str10820, i64 0, i64 0), i8** %.sroa.0.0..idx, align 8
%.sroa.1.8..idx13 = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 1
store i64 38, i64* %.sroa.1.8..idx13, align 8
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %9, %str_slice* %__arg7, i64 1166)
unreachable
unwind: ; preds = %then3
%10 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%11 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8
%12 = icmp eq { i64, i64, [0 x i8] }* %11, null
br i1 %12, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", label %cond.i.i
cond.i.i: ; preds = %unwind
%13 = bitcast { i64, i64, [0 x i8] }* %11 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %13)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit": ; preds = %unwind, %cond.i.i
resume { i8*, i32 } %10
next8: ; preds = %join
%14 = extractvalue { i64, i1 } %uadd, 0
%15 = bitcast %"struct.std::unstable::raw::Vec<()>[#1]"* %3 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%16 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib7realloc16_e898c12982ea93e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %15, i64 %14)
%17 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %16, null
br i1 %17, label %then.i, label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit"
then.i: ; preds = %next8
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
br label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit"
"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit": ; preds = %next8, %then.i
%18 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %16 to %"struct.std::unstable::raw::Vec<()>[#1]"*
%19 = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %0, i64 0, i32 0
%.c = ptrtoint %"enum.std::libc::types::common::c95::c_void[#1]"* %16 to i64
store i64 %.c, i64* %19, align 8
%20 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %18, i64 0, i32 1
store i64 %1, i64* %20, align 8
br label %next10
next10: ; preds = %"function top level", %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit"
ret void
}
declare { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i8*, i64)
declare void @"_ZN8unstable6extfmt2rt9conv_uint17_7d8efb9aa1a1a0b614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"struct.std::unstable::extfmt::rt::Conv[#1]"*, i64, { i64, i64, [0 x i8] }**)
declare void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"enum.std::libc::types::common::c95::c_void[#1]"*)
declare %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib7realloc16_e898c12982ea93e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"enum.std::libc::types::common::c95::c_void[#1]"*, i64)
declare void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64)
declare { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* @"_ZN2os4args16_707125f9258e1ff14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i8*, i64, i64, i64)
define void @"_ZN8find_cmd17_d4675eccdab8bd1614_0$x2e8$x2dpreE"(%"enum.std::option::Option<Command>[#1]"* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture) #2 {
"function top level":
%__arg.i = alloca %struct.Command, align 8
%__arg2.i.sroa.0.0..idx = getelementptr inbounds %str_slice* %2, i64 0, i32 0
%__arg2.i.sroa.1.8..idx78 = getelementptr inbounds %str_slice* %2, i64 0, i32 1
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %match_case.i, label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52"
"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52": ; preds = %"`loop`.i.i.backedge", %"function top level"
%.sroa.08.091 = phi i64 [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %"function top level" ], [ %3, %"`loop`.i.i.backedge" ]
%3 = add i64 %.sroa.08.091, 88
%4 = inttoptr i64 %.sroa.08.091 to %struct.Command*
%__arg1.i.sroa.1.8..idx43 = getelementptr inbounds %struct.Command* %4, i64 0, i32 0, i32 1
%__arg1.i.sroa.1.8.copyload = load i64* %__arg1.i.sroa.1.8..idx43, align 8
%__arg2.i.sroa.1.8.copyload = load i64* %__arg2.i.sroa.1.8..idx78, align 8
%5 = icmp eq i64 %__arg1.i.sroa.1.8.copyload, %__arg2.i.sroa.1.8.copyload
br i1 %5, label %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit, label %"`loop`.i.i.backedge"
"`loop`.i.i.backedge": ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52", %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit
%6 = inttoptr i64 %3 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%7 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %6, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)
%8 = icmp eq i64 %3, 0
%or.cond = or i1 %7, %8
br i1 %or.cond, label %match_case.i, label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52"
_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit: ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52"
%__arg1.i.sroa.0.0..idx = getelementptr inbounds %struct.Command* %4, i64 0, i32 0, i32 0
%__arg2.i.sroa.0.0.copyload = load i8** %__arg2.i.sroa.0.0..idx, align 8
%__arg1.i.sroa.0.0.copyload = load i8** %__arg1.i.sroa.0.0..idx, align 8
%9 = bitcast i8* %__arg1.i.sroa.0.0.copyload to %"enum.std::libc::types::common::c95::c_void[#1]"*
%10 = bitcast i8* %__arg2.i.sroa.0.0.copyload to %"enum.std::libc::types::common::c95::c_void[#1]"*
%11 = add i64 %__arg1.i.sroa.1.8.copyload, -1
%12 = call i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %9, %"enum.std::libc::types::common::c95::c_void[#1]"* %10, i64 %11)
%13 = icmp eq i32 %12, 0
br i1 %13, label %match_else.i, label %"`loop`.i.i.backedge"
match_else.i: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit
%14 = bitcast %struct.Command* %__arg.i to i8*
call void @llvm.lifetime.start(i64 88, i8* %14)
%15 = inttoptr i64 %.sroa.08.091 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %15, i64 88, i32 8, i1 false)
%16 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %0, i64 0, i32 0
store i64 1, i64* %16, align 8
%17 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %0, i64 0, i32 1, i64 0
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %17, i8* %14, i64 88, i32 8, i1 false) #0
br label %"_ZN6option14__extensions__17map_consume_1094616_40771e9153818ec14_0$x2e8$x2dpreE.exit"
match_case.i: ; preds = %"`loop`.i.i.backedge", %"function top level"
%18 = bitcast %struct.Command* %__arg.i to i8*
call void @llvm.lifetime.start(i64 88, i8* %18)
%19 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %0, i64 0, i32 0
store i64 0, i64* %19, align 8
br label %"_ZN6option14__extensions__17map_consume_1094616_40771e9153818ec14_0$x2e8$x2dpreE.exit"
"_ZN6option14__extensions__17map_consume_1094616_40771e9153818ec14_0$x2e8$x2dpreE.exit": ; preds = %match_else.i, %match_case.i
%20 = phi i8* [ %14, %match_else.i ], [ %18, %match_case.i ]
call void @llvm.lifetime.end(i64 88, i8* %20)
ret void
}
declare i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"enum.std::libc::types::common::c95::c_void[#1]"*, %"enum.std::libc::types::common::c95::c_void[#1]"*, i64)
declare void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*)
declare void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"struct.std::unstable::extfmt::rt::Conv[#1]"*, %str_slice*, { i64, i64, [0 x i8] }**)
declare void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, { i64, i64, [0 x i8] }**, %str_slice*)
declare void @"_ZN3sys14__extensions__10meth_127919fail_with16_db4c44d01ce411614_0$x2e8$x2dpreE"({}*, { i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*, %str_slice*, i64)
declare void @"_ZN4path14__extensions__10meth_225818filestem17_b384379c13763c9b14_0$x2e8$x2dpreE"(%"enum.std::option::Option<~str>[#1]"*, { i64, %tydesc*, i8*, i8*, i8 }*)
declare void @"_ZN4path9PosixPath17_7c6da4115ba3bd6514_0$x2e8$x2dpreE"(%"struct.std::path::PosixPath[#1]"*, { i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*)
define void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* nocapture) #2 {
"function top level":
%__adjust.i.i = alloca { i8*, i64 }, align 8
%result.i = alloca { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*, align 8
%osargs = alloca { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*, align 8
%4 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 48)
%5 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %4, null
br i1 %5, label %then.i.i, label %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit"
then.i.i: ; preds = %"function top level"
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
br label %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit"
"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit": ; preds = %"function top level", %then.i.i
%6 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %4 to i8*
%7 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %4 to i64*
store i64 8, i64* %7, align 8
%8 = getelementptr inbounds i8* %6, i64 8
%9 = bitcast i8* %8 to i64*
store i64 32, i64* %9, align 8
%10 = bitcast %str_slice* %1 to { i64, %tydesc*, i8*, i8*, i8 }*
%11 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %10)
to label %"normal return" unwind label %unwind
"normal return": ; preds = %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit"
%12 = getelementptr inbounds i8* %6, i64 16
%13 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %4 to { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*
%14 = bitcast i8* %12 to { i64, i64, [0 x i8] }**
store { i64, i64, [0 x i8] }* %11, { i64, i64, [0 x i8] }** %14, align 8
store { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %13, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
%15 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %15)
%s.sroa.1.8..idx.i.i.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1
%s.sroa.1.8.copyload.i.i.i = load i64* %s.sroa.1.8..idx.i.i.i, align 1
%16 = and i64 %s.sroa.1.8.copyload.i.i.i, -8
%17 = add i64 %16, 16
%18 = invoke %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 %17)
to label %.noexc unwind label %unwind2.nonloopexit.nonloopexit
.noexc: ; preds = %"normal return"
%19 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %18, null
br i1 %19, label %then.i.i.i, label %"normal return.i"
then.i.i.i: ; preds = %.noexc
invoke void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
to label %"normal return.i" unwind label %unwind2.nonloopexit.nonloopexit
"normal return.i": ; preds = %then.i.i.i, %.noexc
%20 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %18 to %"struct.std::unstable::raw::Vec<()>[#1]"*
%21 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %20, i64 0, i32 1
store i64 %16, i64* %21, align 8
%22 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %18 to i64*
store i64 0, i64* %22, align 8
%.c.i.i.i.i = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %18 to { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*
store { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %.c.i.i.i.i, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8
%23 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0
%24 = load { i64, i64, [0 x i8] }*** %23, align 8
%25 = load i64* %s.sroa.1.8..idx.i.i.i, align 8
%26 = ptrtoint { i64, i64, [0 x i8] }** %24 to i64
%27 = and i64 %25, -8
%28 = add i64 %27, %26
%29 = inttoptr i64 %28 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%30 = bitcast { i64, i64, [0 x i8] }** %24 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%31 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %30, %29
br i1 %31, label %"normal return1", label %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i"
"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i": ; preds = %"normal return.i"
%32 = bitcast { i8*, i64 }* %__adjust.i.i to i8*
%33 = getelementptr inbounds { i8*, i64 }* %__adjust.i.i, i64 0, i32 0
%34 = getelementptr inbounds { i8*, i64 }* %__adjust.i.i, i64 0, i32 1
%35 = bitcast { i8*, i64 }* %__adjust.i.i to { i64, %tydesc*, i8*, i8*, i8 }*
%36 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i to { i64, %tydesc*, i8*, i8*, i8 }*
br label %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i"
"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i": ; preds = %.noexc.i, %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i"
%.sroa.015.082.i = phi i64 [ %26, %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i" ], [ %37, %.noexc.i ]
%37 = add i64 %.sroa.015.082.i, 8
%38 = icmp eq i64 %.sroa.015.082.i, 0
br i1 %38, label %"normal return2.loopexit.i", label %match_case.i.i
match_case.i.i: ; preds = %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i"
call void @llvm.lifetime.start(i64 16, i8* %32)
%39 = inttoptr i64 %.sroa.015.082.i to { i64, i64, [0 x i8] }**
%40 = load { i64, i64, [0 x i8] }** %39, align 8
%41 = getelementptr inbounds { i64, i64, [0 x i8] }* %40, i64 0, i32 2, i64 0
%42 = getelementptr inbounds { i64, i64, [0 x i8] }* %40, i64 0, i32 0
%43 = load i64* %42, align 8
store i8* %41, i8** %33, align 8
store i64 %43, i64* %34, align 8
%44 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %35)
to label %"normal return8.i.i" unwind label %unwind.loopexit.i
unwind.i.body.i: ; preds = %"normal return12.i.i"
%45 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%46 = icmp eq { i64, i64, [0 x i8] }* %44, null
br i1 %46, label %unwind.body.i, label %cond.i.i34.i
cond.i.i34.i: ; preds = %unwind.i.body.i
%47 = bitcast { i64, i64, [0 x i8] }* %44 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %47)
to label %unwind.body.i unwind label %unwind.nonloopexit.i
"normal return8.i.i": ; preds = %match_case.i.i
call void @llvm.lifetime.end(i64 16, i8* %32)
%48 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8
%49 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %48, i64 0, i32 0
%50 = load i64* %49, align 8
%51 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %48, i64 0, i32 1
%52 = load i64* %51, align 8
%53 = icmp ugt i64 %52, %50
br i1 %53, label %.noexc.i, label %"normal return12.i.i"
"normal return12.i.i": ; preds = %"normal return8.i.i"
%54 = lshr i64 %50, 3
%55 = lshr i64 %50, 4
%56 = or i64 %55, %54
%57 = lshr i64 %56, 2
%58 = or i64 %57, %56
%59 = lshr i64 %58, 4
%60 = or i64 %59, %58
%61 = lshr i64 %60, 8
%62 = or i64 %61, %60
%63 = lshr i64 %62, 16
%64 = or i64 %63, %62
%65 = lshr i64 %64, 32
%66 = or i64 %65, %64
%67 = add i64 %66, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1108916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %36, i64 %67)
to label %"normal return12.i..noexc_crit_edge.i" unwind label %unwind.i.body.i
"normal return12.i..noexc_crit_edge.i": ; preds = %"normal return12.i.i"
%.pre.i = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8
%.phi.trans.insert.i = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %.pre.i, i64 0, i32 0
%.pre84.i = load i64* %.phi.trans.insert.i, align 8
br label %.noexc.i
.noexc.i: ; preds = %"normal return12.i..noexc_crit_edge.i", %"normal return8.i.i"
%68 = phi i64 [ %.pre84.i, %"normal return12.i..noexc_crit_edge.i" ], [ %50, %"normal return8.i.i" ]
%69 = phi { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* [ %.pre.i, %"normal return12.i..noexc_crit_edge.i" ], [ %48, %"normal return8.i.i" ]
%70 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %69, i64 0, i32 0
%71 = add i64 %68, 8
store i64 %71, i64* %70, align 8
%72 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8
%73 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %72, i64 1
%74 = ptrtoint { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73 to i64
%75 = add i64 %74, %68
%76 = inttoptr i64 %75 to { i64, i64, [0 x i8] }**
store { i64, i64, [0 x i8] }* %44, { i64, i64, [0 x i8] }** %76, align 8
%77 = inttoptr i64 %37 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%78 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %77, %29
br i1 %78, label %"normal return2.loopexit.i", label %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i"
unwind.loopexit.i: ; preds = %match_case.i.i
%lpad.loopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind.body.i
unwind.nonloopexit.i: ; preds = %cond.i.i34.i
%lpad.nonloopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind.body.i
unwind.body.i: ; preds = %unwind.nonloopexit.i, %unwind.loopexit.i, %cond.i.i34.i, %unwind.i.body.i
%eh.lpad-body.i = phi { i8*, i32 } [ %45, %unwind.i.body.i ], [ %45, %cond.i.i34.i ], [ %lpad.loopexit.i, %unwind.loopexit.i ], [ %lpad.nonloopexit.i, %unwind.nonloopexit.i ]
call void @upcall_reset_stack_limit()
%79 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8
%80 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79, null
br i1 %80, label %unwind2.body, label %cond.i.i3.i
cond.i.i3.i: ; preds = %unwind.body.i
%81 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79, i64 0, i32 0
%82 = load i64* %81, align 8
%83 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79, i64 0, i32 2, i64 0
%84 = bitcast { i64, i64, [0 x i8] }** %83 to i8*
%85 = getelementptr inbounds i8* %84, i64 %82
%86 = bitcast i8* %85 to { i64, i64, [0 x i8] }**
%87 = icmp ult { i64, i64, [0 x i8] }** %83, %86
br i1 %87, label %iter_vec_loop_body.i.i.i4.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i7.i"
iter_vec_loop_body.i.i.i4.i: ; preds = %cond.i.i3.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i6.i"
%88 = phi { i64, i64, [0 x i8] }** [ %92, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i6.i" ], [ %83, %cond.i.i3.i ]
%89 = load { i64, i64, [0 x i8] }** %88, align 8
%90 = icmp eq { i64, i64, [0 x i8] }* %89, null
br i1 %90, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i6.i", label %cond.i.i.i.i.i5.i
cond.i.i.i.i.i5.i: ; preds = %iter_vec_loop_body.i.i.i4.i
%91 = bitcast { i64, i64, [0 x i8] }* %89 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %91)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i6.i" unwind label %unwind2.nonloopexit.loopexit
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i6.i": ; preds = %cond.i.i.i.i.i5.i, %iter_vec_loop_body.i.i.i4.i
%92 = getelementptr inbounds { i64, i64, [0 x i8] }** %88, i64 1
%93 = icmp ult { i64, i64, [0 x i8] }** %92, %86
br i1 %93, label %iter_vec_loop_body.i.i.i4.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i7.i"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i7.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i6.i", %cond.i.i3.i
%94 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %94)
to label %unwind2.body unwind label %unwind2.nonloopexit.nonloopexit
"normal return2.loopexit.i": ; preds = %.noexc.i, %"_ZN3vec14__extensions__10next_1113815_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i"
%.pre85.i = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8
br label %"normal return1"
unwind: ; preds = %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit"
%95 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %4)
resume { i8*, i32 } %95
"normal return1": ; preds = %"normal return2.loopexit.i", %"normal return.i"
%96 = phi { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* [ %.pre85.i, %"normal return2.loopexit.i" ], [ %.c.i.i.i.i, %"normal return.i" ]
call void @llvm.lifetime.end(i64 8, i8* %15)
%97 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs to { i64, %tydesc*, i8*, i8*, i8 }*
%98 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
%99 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %98, i64 0, i32 0
%100 = load i64* %99, align 8
%101 = lshr i64 %100, 3
%102 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96, i64 0, i32 0
%103 = load i64* %102, align 8
%104 = lshr i64 %103, 3
%105 = add i64 %104, %101
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1108916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %97, i64 %105)
to label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit.i" unwind label %cond.i.i12.i
cond.i.i12.i: ; preds = %"normal return1"
%106 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%107 = load i64* %102, align 8
%108 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96, i64 0, i32 2, i64 0
%109 = bitcast { i64, i64, [0 x i8] }** %108 to i8*
%110 = getelementptr inbounds i8* %109, i64 %107
%111 = bitcast i8* %110 to { i64, i64, [0 x i8] }**
%112 = icmp ult { i64, i64, [0 x i8] }** %108, %111
br i1 %112, label %iter_vec_loop_body.i.i.i13.i, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit17.i"
iter_vec_loop_body.i.i.i13.i: ; preds = %cond.i.i12.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i15.i"
%113 = phi { i64, i64, [0 x i8] }** [ %117, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i15.i" ], [ %108, %cond.i.i12.i ]
%114 = load { i64, i64, [0 x i8] }** %113, align 8
%115 = icmp eq { i64, i64, [0 x i8] }* %114, null
br i1 %115, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i15.i", label %cond.i.i.i.i.i14.i
cond.i.i.i.i.i14.i: ; preds = %iter_vec_loop_body.i.i.i13.i
%116 = bitcast { i64, i64, [0 x i8] }* %114 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %116)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i15.i" unwind label %unwind2.loopexit
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i15.i": ; preds = %cond.i.i.i.i.i14.i, %iter_vec_loop_body.i.i.i13.i
%117 = getelementptr inbounds { i64, i64, [0 x i8] }** %113, i64 1
%118 = icmp ult { i64, i64, [0 x i8] }** %117, %111
br i1 %118, label %iter_vec_loop_body.i.i.i13.i, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit17.i"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit17.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i15.i", %cond.i.i12.i
%119 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %119)
to label %unwind2.body unwind label %unwind2.nonloopexit.nonloopexit
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit.i": ; preds = %"normal return1"
%120 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
%121 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %120, i64 0, i32 2, i64 0
%122 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96, i64 0, i32 2, i64 0
%123 = ptrtoint { i64, i64, [0 x i8] }** %121 to i64
%124 = shl nuw i64 %101, 3
%125 = add i64 %123, %124
%126 = inttoptr i64 %125 to i8*
%127 = bitcast { i64, i64, [0 x i8] }** %122 to i8*
%128 = shl nuw i64 %104, 3
call void @llvm.memmove.p0i8.p0i8.i64(i8* %126, i8* %127, i64 %128, i32 8, i1 false) #0
%129 = shl i64 %105, 3
%130 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
%131 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %130, i64 0, i32 0
store i64 %129, i64* %131, align 8
store i64 0, i64* %102, align 8
%132 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %132)
to label %"normal return4" unwind label %unwind2.nonloopexit.nonloopexit
unwind2.loopexit: ; preds = %cond.i.i.i.i.i14.i
%lpad.loopexit = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind2.body
unwind2.nonloopexit.loopexit: ; preds = %cond.i.i.i.i.i5.i
%lpad.loopexit32 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind2.body
unwind2.nonloopexit.nonloopexit: ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit.i", %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit17.i", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i7.i", %then.i.i.i, %"normal return", %"normal return6", %"normal return4"
%lpad.nonloopexit33 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind2.body
unwind2.body: ; preds = %unwind2.loopexit, %unwind2.nonloopexit.nonloopexit, %unwind2.nonloopexit.loopexit, %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit17.i", %unwind.body.i, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i7.i"
%eh.lpad-body = phi { i8*, i32 } [ %eh.lpad-body.i, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i7.i" ], [ %eh.lpad-body.i, %unwind.body.i ], [ %106, %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit17.i" ], [ %lpad.loopexit, %unwind2.loopexit ], [ %lpad.loopexit32, %unwind2.nonloopexit.loopexit ], [ %lpad.nonloopexit33, %unwind2.nonloopexit.nonloopexit ]
call void @upcall_reset_stack_limit()
%133 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
%134 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133, null
br i1 %134, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit", label %cond.i.i
cond.i.i: ; preds = %unwind2.body
%135 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133, i64 0, i32 0
%136 = load i64* %135, align 8
%137 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133, i64 0, i32 2, i64 0
%138 = bitcast { i64, i64, [0 x i8] }** %137 to i8*
%139 = getelementptr inbounds i8* %138, i64 %136
%140 = bitcast i8* %139 to { i64, i64, [0 x i8] }**
%141 = icmp ult { i64, i64, [0 x i8] }** %137, %140
br i1 %141, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i"
iter_vec_loop_body.i.i.i: ; preds = %cond.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i"
%142 = phi { i64, i64, [0 x i8] }** [ %146, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i" ], [ %137, %cond.i.i ]
%143 = load { i64, i64, [0 x i8] }** %142, align 8
%144 = icmp eq { i64, i64, [0 x i8] }* %143, null
br i1 %144, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i", label %cond.i.i.i.i.i
cond.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i
%145 = bitcast { i64, i64, [0 x i8] }* %143 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %145)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i": ; preds = %cond.i.i.i.i.i, %iter_vec_loop_body.i.i.i
%146 = getelementptr inbounds { i64, i64, [0 x i8] }** %142, i64 1
%147 = icmp ult { i64, i64, [0 x i8] }** %146, %140
br i1 %147, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i", %cond.i.i
%148 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %148)
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit": ; preds = %unwind2.body, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i"
resume { i8*, i32 } %eh.lpad-body
"normal return4": ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit.i"
%149 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
store { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* null, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
invoke void @"_ZN2os8set_args17_1b27c995593ce49d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %149)
to label %"normal return6" unwind label %unwind2.nonloopexit.nonloopexit
"normal return6": ; preds = %"normal return4"
%150 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %3, i64 0, i32 0
%151 = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %150, align 8
%152 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %3, i64 0, i32 1
%153 = load { i64, %tydesc*, i8*, i8*, i8 }** %152, align 8
invoke void %151({ i64, %tydesc*, i8*, i8*, i8 }* %153)
to label %"normal return7" unwind label %unwind2.nonloopexit.nonloopexit
"normal return7": ; preds = %"normal return6"
%154 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
%155 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154, null
br i1 %155, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit21", label %cond.i.i16
cond.i.i16: ; preds = %"normal return7"
%156 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154, i64 0, i32 0
%157 = load i64* %156, align 8
%158 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154, i64 0, i32 2, i64 0
%159 = bitcast { i64, i64, [0 x i8] }** %158 to i8*
%160 = getelementptr inbounds i8* %159, i64 %157
%161 = bitcast i8* %160 to { i64, i64, [0 x i8] }**
%162 = icmp ult { i64, i64, [0 x i8] }** %158, %161
br i1 %162, label %iter_vec_loop_body.i.i.i17, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i20"
iter_vec_loop_body.i.i.i17: ; preds = %cond.i.i16, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i19"
%163 = phi { i64, i64, [0 x i8] }** [ %167, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i19" ], [ %158, %cond.i.i16 ]
%164 = load { i64, i64, [0 x i8] }** %163, align 8
%165 = icmp eq { i64, i64, [0 x i8] }* %164, null
br i1 %165, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i19", label %cond.i.i.i.i.i18
cond.i.i.i.i.i18: ; preds = %iter_vec_loop_body.i.i.i17
%166 = bitcast { i64, i64, [0 x i8] }* %164 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %166)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i19"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i19": ; preds = %cond.i.i.i.i.i18, %iter_vec_loop_body.i.i.i17
%167 = getelementptr inbounds { i64, i64, [0 x i8] }** %163, i64 1
%168 = icmp ult { i64, i64, [0 x i8] }** %167, %161
br i1 %168, label %iter_vec_loop_body.i.i.i17, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i20"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i20": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i19", %cond.i.i16
%169 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %169)
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit21"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit21": ; preds = %"normal return7", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i20"
ret void
}
declare i64 @"_ZN3run14process_status17_414f913ecacd531b14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*, { { i64, i64, [0 x i8] }**, i64 }*)
define internal fastcc void @"_ZN3vec14__extensions__13reserve_1108916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64) #2 {
"function top level":
%__trans_ret_slot = alloca {}, align 8
%__fmtbuf = alloca { i64, i64, [0 x i8] }*, align 8
%__arg5 = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg7 = alloca %str_slice, align 8
%2 = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %0 to %"struct.std::unstable::raw::Vec<()>[#1]"**
%3 = load %"struct.std::unstable::raw::Vec<()>[#1]"** %2, align 8
%4 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %3, i64 0, i32 1
%5 = load i64* %4, align 8
%6 = lshr i64 %5, 3
%7 = icmp ult i64 %6, %1
br i1 %7, label %next, label %next10
next: ; preds = %"function top level"
%8 = shl i64 %1, 3
%uadd = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %8, i64 16)
%9 = extractvalue { i64, i1 } %uadd, 0
%10 = and i64 %1, 2305843009213693951
%11 = icmp ne i64 %10, %1
%12 = zext i1 %11 to i8
br i1 %11, label %join, label %rhs
join: ; preds = %rhs, %next
%13 = phi i8 [ %12, %next ], [ %16, %rhs ]
%14 = icmp eq i8 %13, 0
br i1 %14, label %next8, label %then3
rhs: ; preds = %next
%15 = extractvalue { i64, i1 } %uadd, 1
%16 = zext i1 %15 to i8
br label %join
then3: ; preds = %join
%17 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([27 x i8]* @str10809, i64 0, i64 0), i64 26)
store { i64, i64, [0 x i8] }* %17, { i64, i64, [0 x i8] }** %__fmtbuf, align 8
%.sroa.018.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 0
store i32 0, i32* %.sroa.018.0..idx, align 8
%.sroa.2.8..idx20 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 1, i32 0
store i64 1, i64* %.sroa.2.8..idx20, align 8
%.sroa.4.24..idx22 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 2, i32 0
store i64 1, i64* %.sroa.4.24..idx22, align 8
%.sroa.6.40..idx24 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 3, i32 0
store i64 0, i64* %.sroa.6.40..idx24, align 8
invoke void @"_ZN8unstable6extfmt2rt9conv_uint17_7d8efb9aa1a1a0b614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 %1, { i64, i64, [0 x i8] }** %__fmtbuf)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit12" unwind label %unwind
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit12": ; preds = %then3
%18 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf, align 8
%.sroa.0.0..idx = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 0
store i8* getelementptr inbounds ([38 x i8]* @str10820, i64 0, i64 0), i8** %.sroa.0.0..idx, align 8
%.sroa.1.8..idx13 = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 1
store i64 38, i64* %.sroa.1.8..idx13, align 8
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %18, %str_slice* %__arg7, i64 1166)
unreachable
unwind: ; preds = %then3
%19 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%20 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8
%21 = icmp eq { i64, i64, [0 x i8] }* %20, null
br i1 %21, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", label %cond.i.i
cond.i.i: ; preds = %unwind
%22 = bitcast { i64, i64, [0 x i8] }* %20 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %22)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit": ; preds = %unwind, %cond.i.i
resume { i8*, i32 } %19
next8: ; preds = %join
%23 = bitcast %"struct.std::unstable::raw::Vec<()>[#1]"* %3 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%24 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib7realloc16_e898c12982ea93e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %23, i64 %9)
%25 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %24, null
br i1 %25, label %then.i, label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit"
then.i: ; preds = %next8
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
br label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit"
"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit": ; preds = %next8, %then.i
%26 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %24 to %"struct.std::unstable::raw::Vec<()>[#1]"*
%27 = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %0, i64 0, i32 0
%.c = ptrtoint %"enum.std::libc::types::common::c95::c_void[#1]"* %24 to i64
store i64 %.c, i64* %27, align 8
%28 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %26, i64 0, i32 1
store i64 %8, i64* %28, align 8
br label %next10
next10: ; preds = %"function top level", %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit"
ret void
}
declare void @"_ZN2os8set_args17_1b27c995593ce49d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*)
define void @"_ZN10do_command17_6f2daee512704c8a14_0$x2e8$x2dpreE"(%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %struct.Command*, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 {
"function top level":
%__arg5 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg6 = alloca %str_slice, align 8
%__arg8 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg10 = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8
%4 = getelementptr inbounds %struct.Command* %2, i64 0, i32 1, i32 0
%5 = load i64* %4, align 8, !range !0
%cond = icmp eq i64 %5, 0
%6 = getelementptr inbounds %struct.Command* %2, i64 0, i32 1, i32 1
br i1 %cond, label %match_case, label %match_else
match_else: ; preds = %"function top level"
%7 = getelementptr inbounds %struct.Command* %2, i64 0, i32 1, i32 2, i64 8
%8 = bitcast i8* %7 to void ({ i64, %tydesc*, i8*, i8*, i8 }*)**
%9 = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %8, align 8
%10 = bitcast void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %6 to i8*
%__arg614 = bitcast %str_slice* %__arg6 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %__arg614, i8* %10, i64 16, i32 8, i1 false)
%11 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 0
%12 = load { i64, i64, [0 x i8] }*** %11, align 8
%13 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 1
%14 = load i64* %13, align 8
%__adjust7.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8, i64 0, i32 0
store { i64, i64, [0 x i8] }** %12, { i64, i64, [0 x i8] }*** %__adjust7.sroa.0.0..idx, align 8
%__adjust7.sroa.1.8..idx12 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8, i64 0, i32 1
store i64 %14, i64* %__adjust7.sroa.1.8..idx12, align 8
%__adjust9.sroa.0.0..idx = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10, i64 0, i32 0
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %9, void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust9.sroa.0.0..idx, align 8
%__adjust9.sroa.1.8..idx11 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10, i64 0, i32 1
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust9.sroa.1.8..idx11, align 8
call void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6, { { i64, i64, [0 x i8] }**, i64 }* %__arg8, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10)
%15 = bitcast %enum.ValidUsage* %0 to i8*
call void @llvm.memset.p0i8.i64(i8* %15, i8 0, i64 16, i32 8, i1 false)
br label %join
match_case: ; preds = %"function top level"
%16 = load void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %6, align 8
%17 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 0
%18 = load { i64, i64, [0 x i8] }*** %17, align 8
%19 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 1
%20 = load i64* %19, align 8
%__adjust.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5, i64 0, i32 0
store { i64, i64, [0 x i8] }** %18, { i64, i64, [0 x i8] }*** %__adjust.sroa.0.0..idx, align 8
%__adjust.sroa.1.8..idx13 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5, i64 0, i32 1
store i64 %20, i64* %__adjust.sroa.1.8..idx13, align 8
call void %16(%enum.ValidUsage* %0, { i64, %tydesc*, i8*, i8*, i8 }* undef, { { i64, i64, [0 x i8] }**, i64 }* %__arg5)
br label %join
join: ; preds = %match_else, %match_case
ret void
}
define void @"_ZN5usage16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #2 {
"function top level":
%1 = alloca %str_slice, align 8
%__fmtbuf.i = alloca { i64, i64, [0 x i8] }*, align 8
%__arg1.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg2.i = alloca %str_slice, align 8
%__arg6.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg7.i = alloca { i8*, i64 }, align 8
%__arg9.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg10.i = alloca %str_slice, align 8
%__arg13.i = alloca { i8*, i64 }, align 8
%__arg = alloca %str_slice, align 8
%__arg2 = alloca %str_slice, align 8
%.sroa.010.0..idx = getelementptr inbounds %str_slice* %__arg, i64 0, i32 0
store i8* getelementptr inbounds ([177 x i8]* @str11159, i64 0, i64 0), i8** %.sroa.010.0..idx, align 8
%.sroa.111.8..idx12 = getelementptr inbounds %str_slice* %__arg, i64 0, i32 1
store i64 177, i64* %.sroa.111.8..idx12, align 8
call void @"_ZN2io5print17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg)
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %"_ZN8iterator14__extensions__13advance_1116015_c1aea65ce534e914_0$x2e8$x2dpreE.exit", label %match_case.i.lr.ph
match_case.i.lr.ph: ; preds = %"function top level"
%2 = bitcast %str_slice* %1 to i8*
%3 = bitcast { i64, i64, [0 x i8] }** %__fmtbuf.i to i8*
%4 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i to i8*
%5 = bitcast %str_slice* %__arg2.i to i8*
%6 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i to i8*
%7 = bitcast { i8*, i64 }* %__arg7.i to i8*
%8 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i to i8*
%9 = bitcast %str_slice* %__arg10.i to i8*
%10 = bitcast { i8*, i64 }* %__arg13.i to i8*
%11 = getelementptr inbounds %str_slice* %1, i64 0, i32 0
%12 = getelementptr inbounds %str_slice* %1, i64 0, i32 1
%13 = bitcast %str_slice* %1 to { i64, %tydesc*, i8*, i8*, i8 }*
%.sroa.063.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 0
%.sroa.267.8..idx68 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 1, i32 0
%.sroa.473.24..idx74 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 2, i32 0
%.sroa.679.40..idx80 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 3, i32 0
%.sroa.044.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 0
%.sroa.248.8..idx49 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 1, i32 0
%.sroa.454.24..idx55 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 2, i32 0
%.sroa.660.40..idx61 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 3, i32 0
%__adjust.i.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg7.i, i64 0, i32 0
%__adjust.i.sroa.1.8..idx42 = getelementptr inbounds { i8*, i64 }* %__arg7.i, i64 0, i32 1
%14 = bitcast { i8*, i64 }* %__arg7.i to %str_slice*
%.sroa.0.0..idx28 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 0
%.sroa.2.8..idx31 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 1, i32 0
%.sroa.4.24..idx35 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 2, i32 0
%.sroa.6.40..idx39 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 3, i32 0
%__adjust12.i.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg13.i, i64 0, i32 0
%__adjust12.i.sroa.1.8..idx26 = getelementptr inbounds { i8*, i64 }* %__arg13.i, i64 0, i32 1
%15 = bitcast { i8*, i64 }* %__arg13.i to %str_slice*
br label %match_case.i
match_case.i: ; preds = %match_case.i.lr.ph, %"`loop`.i.backedge"
%.sroa.08.0110 = phi i64 [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %match_case.i.lr.ph ], [ %16, %"`loop`.i.backedge" ]
%16 = add i64 %.sroa.08.0110, 88
%17 = inttoptr i64 %.sroa.08.0110 to %struct.Command*
call void @llvm.lifetime.start(i64 16, i8* %2)
call void @llvm.lifetime.start(i64 8, i8* %3)
call void @llvm.lifetime.start(i64 48, i8* %4)
call void @llvm.lifetime.start(i64 16, i8* %5)
call void @llvm.lifetime.start(i64 48, i8* %6)
call void @llvm.lifetime.start(i64 16, i8* %7)
call void @llvm.lifetime.start(i64 48, i8* %8)
call void @llvm.lifetime.start(i64 16, i8* %9)
call void @llvm.lifetime.start(i64 16, i8* %10)
store i8* getelementptr inbounds ([2 x i8]* @str11165, i64 0, i64 0), i8** %11, align 8
store i64 2, i64* %12, align 8
%18 = inttoptr i64 %.sroa.08.0110 to { i64, %tydesc*, i8*, i8*, i8 }*
%__arg.sroa.1.8..idx.i.i = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %18, i64 0, i32 1
%__arg.sroa.1.8..cast.i.i = bitcast %tydesc** %__arg.sroa.1.8..idx.i.i to i64*
%__arg.sroa.1.8.copyload.i.i = load i64* %__arg.sroa.1.8..cast.i.i, align 8
%19 = sub i64 9, %__arg.sroa.1.8.copyload.i.i
%20 = call { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_174406repeat16_c6cb6c269539f3014_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %13, i64 %19)
%21 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([5 x i8]* @str11166, i64 0, i64 0), i64 4)
to label %"normal return.i" unwind label %unwind.i
"normal return.i": ; preds = %match_case.i
store { i64, i64, [0 x i8] }* %21, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
store i32 0, i32* %.sroa.063.0..idx, align 8
store i64 1, i64* %.sroa.267.8..idx68, align 8
store i64 1, i64* %.sroa.473.24..idx74, align 8
store i64 0, i64* %.sroa.679.40..idx80, align 8
%22 = inttoptr i64 %.sroa.08.0110 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %22, i64 16, i32 8, i1 false)
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, %str_slice* %__arg2.i, { i64, i64, [0 x i8] }** %__fmtbuf.i)
to label %"normal return3.i" unwind label %unwind4.i
unwind.i: ; preds = %match_case.i
%23 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract = extractvalue { i8*, i32 } %23, 0
%.fca.1.extract = extractvalue { i8*, i32 } %23, 1
br label %cleanup.i
cleanup.i: ; preds = %cond.i, %unwind15.i, %cond.i.i13, %unwind4.i, %unwind.i
%.sroa.092.0 = phi i8* [ %.fca.0.extract, %unwind.i ], [ %.fca.0.extract85, %unwind4.i ], [ %.fca.0.extract85, %cond.i.i13 ], [ %.fca.0.extract89, %unwind15.i ], [ %.fca.0.extract89, %cond.i ]
%.sroa.194.0 = phi i32 [ %.fca.1.extract, %unwind.i ], [ %.fca.1.extract87, %unwind4.i ], [ %.fca.1.extract87, %cond.i.i13 ], [ %.fca.1.extract91, %unwind15.i ], [ %.fca.1.extract91, %cond.i ]
%24 = icmp eq { i64, i64, [0 x i8] }* %20, null
br i1 %24, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", label %cond.i.i
cond.i.i: ; preds = %cleanup.i
%25 = bitcast { i64, i64, [0 x i8] }* %20 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %25)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit": ; preds = %cleanup.i, %cond.i.i
%.fca.0.insert = insertvalue { i8*, i32 } undef, i8* %.sroa.092.0, 0
%.fca.1.insert = insertvalue { i8*, i32 } %.fca.0.insert, i32 %.sroa.194.0, 1
resume { i8*, i32 } %.fca.1.insert
"normal return3.i": ; preds = %"normal return.i"
store i32 0, i32* %.sroa.044.0..idx, align 8
store i64 1, i64* %.sroa.248.8..idx49, align 8
store i64 1, i64* %.sroa.454.24..idx55, align 8
store i64 0, i64* %.sroa.660.40..idx61, align 8
%26 = getelementptr inbounds { i64, i64, [0 x i8] }* %20, i64 0, i32 2, i64 0
%27 = getelementptr inbounds { i64, i64, [0 x i8] }* %20, i64 0, i32 0
%28 = load i64* %27, align 8
store i8* %26, i8** %__adjust.i.sroa.0.0..idx, align 8
store i64 %28, i64* %__adjust.i.sroa.1.8..idx42, align 8
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, %str_slice* %14, { i64, i64, [0 x i8] }** %__fmtbuf.i)
to label %"normal return8.i" unwind label %unwind4.i
unwind4.i: ; preds = %"normal return8.i", %"normal return3.i", %"normal return.i"
%29 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract85 = extractvalue { i8*, i32 } %29, 0
%.fca.1.extract87 = extractvalue { i8*, i32 } %29, 1
%30 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
%31 = icmp eq { i64, i64, [0 x i8] }* %30, null
br i1 %31, label %cleanup.i, label %cond.i.i13
cond.i.i13: ; preds = %unwind4.i
%32 = bitcast { i64, i64, [0 x i8] }* %30 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %32)
br label %cleanup.i
"normal return8.i": ; preds = %"normal return3.i"
store i32 0, i32* %.sroa.0.0..idx28, align 8
store i64 1, i64* %.sroa.2.8..idx31, align 8
store i64 1, i64* %.sroa.4.24..idx35, align 8
store i64 0, i64* %.sroa.6.40..idx39, align 8
%33 = getelementptr inbounds %struct.Command* %17, i64 0, i32 2
%34 = bitcast %str_slice* %33 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %34, i64 16, i32 8, i1 false)
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, %str_slice* %__arg10.i, { i64, i64, [0 x i8] }** %__fmtbuf.i)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit16" unwind label %unwind4.i
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit16": ; preds = %"normal return8.i"
%35 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
%36 = getelementptr inbounds { i64, i64, [0 x i8] }* %35, i64 0, i32 2, i64 0
%37 = getelementptr inbounds { i64, i64, [0 x i8] }* %35, i64 0, i32 0
%38 = load i64* %37, align 8
store i8* %36, i8** %__adjust12.i.sroa.0.0..idx, align 8
store i64 %38, i64* %__adjust12.i.sroa.1.8..idx26, align 8
invoke void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %15)
to label %_ZN5usage4anon13expr_fn_11163E.exit unwind label %unwind15.i
unwind15.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit16"
%39 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract89 = extractvalue { i8*, i32 } %39, 0
%.fca.1.extract91 = extractvalue { i8*, i32 } %39, 1
%40 = icmp eq { i64, i64, [0 x i8] }* %35, null
br i1 %40, label %cleanup.i, label %cond.i
cond.i: ; preds = %unwind15.i
%41 = bitcast { i64, i64, [0 x i8] }* %35 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %41)
br label %cleanup.i
_ZN5usage4anon13expr_fn_11163E.exit: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit16"
%42 = icmp eq { i64, i64, [0 x i8] }* %35, null
br i1 %42, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18", label %cond.i17
cond.i17: ; preds = %_ZN5usage4anon13expr_fn_11163E.exit
%43 = bitcast { i64, i64, [0 x i8] }* %35 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %43)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18": ; preds = %_ZN5usage4anon13expr_fn_11163E.exit, %cond.i17
%44 = icmp eq { i64, i64, [0 x i8] }* %20, null
br i1 %44, label %"`loop`.i.backedge", label %cond.i.i19
"`loop`.i.backedge": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18", %cond.i.i19
%45 = inttoptr i64 %16 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%46 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %45, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)
%47 = icmp eq i64 %16, 0
%or.cond = or i1 %46, %47
br i1 %or.cond, label %"_ZN8iterator14__extensions__13advance_1116015_c1aea65ce534e914_0$x2e8$x2dpreE.exit", label %match_case.i
cond.i.i19: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10817E.exit18"
%48 = bitcast { i64, i64, [0 x i8] }* %20 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %48)
br label %"`loop`.i.backedge"
"_ZN8iterator14__extensions__13advance_1116015_c1aea65ce534e914_0$x2e8$x2dpreE.exit": ; preds = %"`loop`.i.backedge", %"function top level"
%.sroa.0.0..idx = getelementptr inbounds %str_slice* %__arg2, i64 0, i32 0
store i8* getelementptr inbounds ([67 x i8]* @str11167, i64 0, i64 0), i8** %.sroa.0.0..idx, align 8
%.sroa.1.8..idx3 = getelementptr inbounds %str_slice* %__arg2, i64 0, i32 1
store i64 67, i64* %.sroa.1.8..idx3, align 8
call void @"_ZN2io5print17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg2)
ret void
}
declare void @"_ZN2io5print17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*)
declare { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_174406repeat16_c6cb6c269539f3014_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64)
define void @"_ZN4main16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #2 {
"normal return":
%__trans_ret_slot.i92 = alloca {}, align 8
%__arg5.i = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg6.i = alloca %str_slice, align 8
%__arg8.i = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg10.i = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8
%result.i = alloca %enum.ValidUsage, align 8
%1 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg.i.i = alloca %struct.Command, align 8
%__arg = alloca { i8*, i64 }, align 8
%args = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__adjust21 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%r = alloca %"enum.std::option::Option<Command>[#1]", align 8
%2 = call { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* @"_ZN2os4args16_707125f9258e1ff14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
%3 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 0
%4 = load i64* %3, align 8
%5 = icmp ugt i64 %4, 15
%6 = zext i1 %5 to i8
br i1 %5, label %next, label %join
unwind.loopexit.loopexit: ; preds = %match_case.i55, %match_else.i, %match_case.i99
%lpad.loopexit114 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind
unwind.loopexit.nonloopexit: ; preds = %.noexc96
%lpad.nonloopexit = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind
unwind.nonloopexit.loopexit: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i
%lpad.loopexit85 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind
unwind.nonloopexit.nonloopexit: ; preds = %next8, %next, %next32, %next20, %"normal return18", %next15, %cond16, %cond9
%lpad.nonloopexit86 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind
unwind: ; preds = %unwind.loopexit.loopexit, %unwind.loopexit.nonloopexit, %unwind.nonloopexit.loopexit, %unwind.nonloopexit.nonloopexit
%lpad.phi = phi { i8*, i32 } [ %lpad.loopexit85, %unwind.nonloopexit.loopexit ], [ %lpad.nonloopexit86, %unwind.nonloopexit.nonloopexit ], [ %lpad.loopexit114, %unwind.loopexit.loopexit ], [ %lpad.nonloopexit, %unwind.loopexit.nonloopexit ]
call void @upcall_reset_stack_limit()
%.fca.0.extract = extractvalue { i8*, i32 } %lpad.phi, 0
%.fca.1.extract = extractvalue { i8*, i32 } %lpad.phi, 1
br label %cleanup
cleanup: ; preds = %cond.i.i51, %unwind13, %cond.i.i41, %unwind4, %unwind
%.sroa.078.0 = phi i8* [ %.fca.0.extract, %unwind ], [ %.fca.0.extract71, %unwind4 ], [ %.fca.0.extract71, %cond.i.i41 ], [ %.fca.0.extract75, %unwind13 ], [ %.fca.0.extract75, %cond.i.i51 ]
%.sroa.179.0 = phi i32 [ %.fca.1.extract, %unwind ], [ %.fca.1.extract73, %unwind4 ], [ %.fca.1.extract73, %cond.i.i41 ], [ %.fca.1.extract77, %unwind13 ], [ %.fca.1.extract77, %cond.i.i51 ]
%7 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, null
br i1 %7, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit39", label %cond.i.i34
cond.i.i34: ; preds = %cleanup
%8 = load i64* %3, align 8
%9 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 0
%10 = bitcast { i64, i64, [0 x i8] }** %9 to i8*
%11 = getelementptr inbounds i8* %10, i64 %8
%12 = bitcast i8* %11 to { i64, i64, [0 x i8] }**
%13 = icmp ult { i64, i64, [0 x i8] }** %9, %12
br i1 %13, label %iter_vec_loop_body.i.i.i35, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i38"
iter_vec_loop_body.i.i.i35: ; preds = %cond.i.i34, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i37"
%14 = phi { i64, i64, [0 x i8] }** [ %18, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i37" ], [ %9, %cond.i.i34 ]
%15 = load { i64, i64, [0 x i8] }** %14, align 8
%16 = icmp eq { i64, i64, [0 x i8] }* %15, null
br i1 %16, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i37", label %cond.i.i.i.i.i36
cond.i.i.i.i.i36: ; preds = %iter_vec_loop_body.i.i.i35
%17 = bitcast { i64, i64, [0 x i8] }* %15 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %17)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i37"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i37": ; preds = %cond.i.i.i.i.i36, %iter_vec_loop_body.i.i.i35
%18 = getelementptr inbounds { i64, i64, [0 x i8] }** %14, i64 1
%19 = icmp ult { i64, i64, [0 x i8] }** %18, %12
br i1 %19, label %iter_vec_loop_body.i.i.i35, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i38"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i38": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i37", %cond.i.i34
%20 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %20)
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit39"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit39": ; preds = %cleanup, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i38"
%.fca.0.insert = insertvalue { i8*, i32 } undef, i8* %.sroa.078.0, 0
%.fca.1.insert = insertvalue { i8*, i32 } %.fca.0.insert, i32 %.sroa.179.0, 1
resume { i8*, i32 } %.fca.1.insert
join: ; preds = %cond.i.i49, %"normal return12", %"normal return"
%21 = phi i8 [ %6, %"normal return" ], [ %storemerge.i.i.i46, %"normal return12" ], [ %storemerge.i.i.i46, %cond.i.i49 ]
%22 = icmp eq i8 %21, 0
br i1 %22, label %next20, label %then
next: ; preds = %"normal return"
%23 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11171, i64 0, i64 0), i64 2)
to label %"normal return2" unwind label %unwind.nonloopexit.nonloopexit
"normal return2": ; preds = %next
%24 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 1
%25 = load { i64, i64, [0 x i8] }** %24, align 8
%26 = getelementptr inbounds { i64, i64, [0 x i8] }* %25, i64 0, i32 0
%27 = load i64* %26, align 8
%28 = getelementptr inbounds { i64, i64, [0 x i8] }* %23, i64 0, i32 0
%29 = load i64* %28, align 8
%30 = icmp eq i64 %27, %29
br i1 %30, label %else.i.i.i, label %"normal return3"
else.i.i.i: ; preds = %"normal return2"
%31 = getelementptr inbounds { i64, i64, [0 x i8] }* %23, i64 0, i32 2, i64 0
%32 = getelementptr inbounds { i64, i64, [0 x i8] }* %25, i64 0, i32 2, i64 0
%33 = bitcast i8* %32 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%34 = bitcast i8* %31 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%35 = add i64 %27, -1
%36 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %33, %"enum.std::libc::types::common::c95::c_void[#1]"* %34, i64 %35)
to label %.noexc unwind label %unwind4
.noexc: ; preds = %else.i.i.i
%37 = icmp eq i32 %36, 0
%38 = zext i1 %37 to i8
br label %"normal return3"
"normal return3": ; preds = %.noexc, %"normal return2"
%storemerge.i.i.i = phi i8 [ %38, %.noexc ], [ 0, %"normal return2" ]
%39 = icmp eq { i64, i64, [0 x i8] }* %23, null
br i1 %39, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", label %cond.i.i40
cond.i.i40: ; preds = %"normal return3"
%40 = bitcast { i64, i64, [0 x i8] }* %23 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %40)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit": ; preds = %"normal return3", %cond.i.i40
%41 = icmp eq i8 %storemerge.i.i.i, 0
br i1 %41, label %rhs7, label %then
unwind4: ; preds = %else.i.i.i
%42 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract71 = extractvalue { i8*, i32 } %42, 0
%.fca.1.extract73 = extractvalue { i8*, i32 } %42, 1
%43 = icmp eq { i64, i64, [0 x i8] }* %23, null
br i1 %43, label %cleanup, label %cond.i.i41
cond.i.i41: ; preds = %unwind4
%44 = bitcast { i64, i64, [0 x i8] }* %23 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %44)
br label %cleanup
rhs7: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit"
%45 = load i64* %3, align 8
%46 = icmp ult i64 %45, 9
br i1 %46, label %cond9, label %next8
next8: ; preds = %rhs7
%47 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([10 x i8]* @str11172, i64 0, i64 0), i64 9)
to label %"normal return11" unwind label %unwind.nonloopexit.nonloopexit
cond9: ; preds = %rhs7
%48 = lshr i64 %45, 3
invoke void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([40 x i8]* @str10726, i64 0, i64 0), i64 228, i64 1, i64 %48)
to label %"normal return10" unwind label %unwind.nonloopexit.nonloopexit
"normal return10": ; preds = %cond9
unreachable
"normal return11": ; preds = %next8
%49 = load { i64, i64, [0 x i8] }** %24, align 8
%50 = getelementptr inbounds { i64, i64, [0 x i8] }* %49, i64 0, i32 0
%51 = load i64* %50, align 8
%52 = getelementptr inbounds { i64, i64, [0 x i8] }* %47, i64 0, i32 0
%53 = load i64* %52, align 8
%54 = icmp eq i64 %51, %53
br i1 %54, label %else.i.i.i45, label %"normal return12"
else.i.i.i45: ; preds = %"normal return11"
%55 = getelementptr inbounds { i64, i64, [0 x i8] }* %47, i64 0, i32 2, i64 0
%56 = getelementptr inbounds { i64, i64, [0 x i8] }* %49, i64 0, i32 2, i64 0
%57 = bitcast i8* %56 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%58 = bitcast i8* %55 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%59 = add i64 %51, -1
%60 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %57, %"enum.std::libc::types::common::c95::c_void[#1]"* %58, i64 %59)
to label %.noexc47 unwind label %unwind13
.noexc47: ; preds = %else.i.i.i45
%61 = icmp eq i32 %60, 0
%62 = zext i1 %61 to i8
br label %"normal return12"
"normal return12": ; preds = %.noexc47, %"normal return11"
%storemerge.i.i.i46 = phi i8 [ %62, %.noexc47 ], [ 0, %"normal return11" ]
%63 = icmp eq { i64, i64, [0 x i8] }* %47, null
br i1 %63, label %join, label %cond.i.i49
cond.i.i49: ; preds = %"normal return12"
%64 = bitcast { i64, i64, [0 x i8] }* %47 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %64)
br label %join
unwind13: ; preds = %else.i.i.i45
%65 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract75 = extractvalue { i8*, i32 } %65, 0
%.fca.1.extract77 = extractvalue { i8*, i32 } %65, 1
%66 = icmp eq { i64, i64, [0 x i8] }* %47, null
br i1 %66, label %cleanup, label %cond.i.i51
cond.i.i51: ; preds = %unwind13
%67 = bitcast { i64, i64, [0 x i8] }* %47 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %67)
br label %cleanup
then: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit", %join
%68 = load i64* %3, align 8
%69 = icmp eq i64 %68, 0
br i1 %69, label %cond16, label %next15
next15: ; preds = %then
%70 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 0
%71 = load { i64, i64, [0 x i8] }** %70, align 8
%72 = getelementptr inbounds { i64, i64, [0 x i8] }* %71, i64 0, i32 2, i64 0
%73 = getelementptr inbounds { i64, i64, [0 x i8] }* %71, i64 0, i32 0
%74 = load i64* %73, align 8
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0
store i8* %72, i8** %__adjust.sroa.0.0..idx, align 8
%__adjust.sroa.1.8..idx60 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1
store i64 %74, i64* %__adjust.sroa.1.8..idx60, align 8
%75 = bitcast { i8*, i64 }* %__arg to %str_slice*
invoke void @"_ZN7version16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %75)
to label %"normal return18" unwind label %unwind.nonloopexit.nonloopexit
cond16: ; preds = %then
invoke void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([40 x i8]* @str10726, i64 0, i64 0), i64 229, i64 0, i64 0)
to label %"normal return17" unwind label %unwind.nonloopexit.nonloopexit
"normal return17": ; preds = %cond16
unreachable
"normal return18": ; preds = %next15
invoke void @"_ZN4libc5funcs3c956stdlib4exit15_65062626eb4b5914_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i92, { i64, %tydesc*, i8*, i8*, i8 }* undef, i32 0)
to label %"normal return19" unwind label %unwind.nonloopexit.nonloopexit
"normal return19": ; preds = %"normal return18"
unreachable
next20: ; preds = %join
%76 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 0
%77 = load i64* %3, align 8
%78 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__adjust21, i64 0, i32 0
store { i64, i64, [0 x i8] }** %76, { i64, i64, [0 x i8] }*** %78, align 8
%79 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__adjust21, i64 0, i32 1
store i64 %77, i64* %79, align 8
%80 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %__adjust21 to { i64, %tydesc*, i8*, i8*, i8 }*
invoke fastcc void @"_ZN3vec14__extensions__10tail_1117416_fab30464cb6f54114_0$x2e8$x2dpreE"({ { i64, i64, [0 x i8] }**, i64 }* %args, { i64, %tydesc*, i8*, i8*, i8 }* %80)
to label %"normal return23" unwind label %unwind.nonloopexit.nonloopexit
"normal return23": ; preds = %next20
%s.sroa.1.8..idx.i.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %args, i64 0, i32 1
%s.sroa.1.8.copyload.i.i = load i64* %s.sroa.1.8..idx.i.i, align 8
%81 = icmp ult i64 %s.sroa.1.8.copyload.i.i, 8
br i1 %81, label %next32, label %"normal return25"
"normal return25": ; preds = %"normal return23"
%82 = bitcast {}* %__trans_ret_slot.i92 to i8*
call void @llvm.lifetime.start(i64 0, i8* %82)
%83 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %args, i64 0, i32 0
%84 = load { i64, i64, [0 x i8] }*** %83, align 8
call void @llvm.lifetime.end(i64 0, i8* %82)
%85 = load { i64, i64, [0 x i8] }** %84, align 8
%86 = getelementptr inbounds { i64, i64, [0 x i8] }* %85, i64 0, i32 0
%87 = load i64* %86, align 8
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %"normal return28", label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader"
"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader": ; preds = %"normal return25"
%88 = getelementptr inbounds { i64, i64, [0 x i8] }* %85, i64 0, i32 2, i64 0
%89 = bitcast i8* %88 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%90 = add i64 %87, -1
br label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i"
"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i": ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader", %"`loop`.i.i.backedge.i"
%.sroa.08.091.i = phi i64 [ %91, %"`loop`.i.i.backedge.i" ], [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader" ]
%91 = add i64 %.sroa.08.091.i, 88
%92 = inttoptr i64 %.sroa.08.091.i to %struct.Command*
%__arg1.i.sroa.1.8..idx43.i = getelementptr inbounds %struct.Command* %92, i64 0, i32 0, i32 1
%__arg1.i.sroa.1.8.copyload.i = load i64* %__arg1.i.sroa.1.8..idx43.i, align 8
%93 = icmp eq i64 %__arg1.i.sroa.1.8.copyload.i, %87
br i1 %93, label %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i, label %"`loop`.i.i.backedge.i"
"`loop`.i.i.backedge.i": ; preds = %.noexc54, %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i"
%94 = inttoptr i64 %91 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%95 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %94, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)
%96 = icmp eq i64 %91, 0
%or.cond.i = or i1 %95, %96
br i1 %or.cond.i, label %"normal return28", label %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i"
_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i: ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1101017_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i"
%__arg1.i.sroa.0.0..idx.i = getelementptr inbounds %struct.Command* %92, i64 0, i32 0, i32 0
%__arg1.i.sroa.0.0.copyload.i = load i8** %__arg1.i.sroa.0.0..idx.i, align 8
%97 = bitcast i8* %__arg1.i.sroa.0.0.copyload.i to %"enum.std::libc::types::common::c95::c_void[#1]"*
%98 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %97, %"enum.std::libc::types::common::c95::c_void[#1]"* %89, i64 %90)
to label %.noexc54 unwind label %unwind.nonloopexit.loopexit
.noexc54: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11014E.exit.i
%99 = icmp eq i32 %98, 0
br i1 %99, label %match_case.i, label %"`loop`.i.i.backedge.i"
"normal return28": ; preds = %"`loop`.i.i.backedge.i", %"normal return25"
%__arg.i.i.0.cast = bitcast %struct.Command* %__arg.i.i to i8*
call void @llvm.lifetime.start(i64 88, i8* %__arg.i.i.0.cast)
%100 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 0
store i64 0, i64* %100, align 8
call void @llvm.lifetime.end(i64 88, i8* %__arg.i.i.0.cast)
br label %"`loop`.i.preheader"
match_case.i: ; preds = %.noexc54
%101 = bitcast %struct.Command* %__arg.i.i to i8*
call void @llvm.lifetime.start(i64 88, i8* %101)
%102 = inttoptr i64 %.sroa.08.091.i to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %101, i8* %102, i64 88, i32 8, i1 false)
%103 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 0
store i64 1, i64* %103, align 8
%104 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 1, i64 0
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %104, i8* %101, i64 88, i32 8, i1 false) #0
call void @llvm.lifetime.end(i64 88, i8* %101)
%105 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 1
%106 = ptrtoint [88 x i8]* %105 to i64
br label %"`loop`.i.preheader"
"`loop`.i.preheader": ; preds = %"normal return28", %match_case.i
%.sroa.058.1.ph = phi i64 [ %106, %match_case.i ], [ 0, %"normal return28" ]
%107 = bitcast %enum.ValidUsage* %result.i to i8*
%108 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %1 to i8*
%109 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %args to { i64, %tydesc*, i8*, i8*, i8 }*
%110 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %1, i64 0, i32 0
%111 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %1, i64 0, i32 1
%112 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i to i8*
%113 = bitcast %str_slice* %__arg6.i to i8*
%114 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i to i8*
%115 = bitcast { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i to i8*
%__adjust.sroa.0.0..idx.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i, i64 0, i32 0
%__adjust.sroa.1.8..idx13.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i, i64 0, i32 1
%116 = getelementptr inbounds %enum.ValidUsage* %result.i, i64 0, i32 0
%__adjust7.sroa.0.0..idx.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i, i64 0, i32 0
%__adjust7.sroa.1.8..idx12.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i, i64 0, i32 1
%__adjust9.sroa.0.0..idx.i = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i, i64 0, i32 0
%__adjust9.sroa.1.8..idx11.i = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i, i64 0, i32 1
br label %"`loop`.i"
"`loop`.i": ; preds = %"`loop`.i.preheader", %match_case.i99..noexc95_crit_edge
%.sroa.058.1 = phi i64 [ 0, %match_case.i99..noexc95_crit_edge ], [ %.sroa.058.1.ph, %"`loop`.i.preheader" ]
%117 = icmp eq i64 %.sroa.058.1, 0
br i1 %117, label %next32, label %match_case.i55
match_case.i55: ; preds = %"`loop`.i"
%118 = inttoptr i64 %.sroa.058.1 to %struct.Command*
call void @llvm.lifetime.start(i64 0, i8* %82)
call void @llvm.lifetime.start(i64 16, i8* %107)
call void @llvm.lifetime.start(i64 16, i8* %108)
invoke fastcc void @"_ZN3vec14__extensions__10tail_1117416_fab30464cb6f54114_0$x2e8$x2dpreE"({ { i64, i64, [0 x i8] }**, i64 }* %1, { i64, %tydesc*, i8*, i8*, i8 }* %109)
to label %.noexc94 unwind label %unwind.loopexit.loopexit
.noexc94: ; preds = %match_case.i55
%119 = load { i64, i64, [0 x i8] }*** %110, align 8
%120 = load i64* %111, align 8
call void @llvm.lifetime.start(i64 16, i8* %112)
call void @llvm.lifetime.start(i64 16, i8* %113)
call void @llvm.lifetime.start(i64 16, i8* %114)
call void @llvm.lifetime.start(i64 16, i8* %115)
%121 = getelementptr inbounds %struct.Command* %118, i64 0, i32 1, i32 0
%122 = load i64* %121, align 8, !range !0
%cond.i98 = icmp eq i64 %122, 0
%123 = getelementptr inbounds %struct.Command* %118, i64 0, i32 1, i32 1
br i1 %cond.i98, label %match_case.i99, label %match_else.i
match_else.i: ; preds = %.noexc94
%124 = getelementptr inbounds %struct.Command* %118, i64 0, i32 1, i32 2, i64 8
%125 = bitcast i8* %124 to void ({ i64, %tydesc*, i8*, i8*, i8 }*)**
%126 = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %125, align 8
%127 = bitcast void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %123 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %113, i8* %127, i64 16, i32 8, i1 false)
store { i64, i64, [0 x i8] }** %119, { i64, i64, [0 x i8] }*** %__adjust7.sroa.0.0..idx.i, align 8
store i64 %120, i64* %__adjust7.sroa.1.8..idx12.i, align 8
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %126, void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust9.sroa.0.0..idx.i, align 8
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust9.sroa.1.8..idx11.i, align 8
invoke void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6.i, { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i)
to label %.noexc100 unwind label %unwind.loopexit.loopexit
.noexc100: ; preds = %match_else.i
call void @llvm.memset.p0i8.i64(i8* %107, i8 0, i64 16, i32 8, i1 false)
call void @llvm.lifetime.end(i64 16, i8* %112)
call void @llvm.lifetime.end(i64 16, i8* %113)
call void @llvm.lifetime.end(i64 16, i8* %114)
call void @llvm.lifetime.end(i64 16, i8* %115)
br label %.noexc96
match_case.i99: ; preds = %.noexc94
%128 = load void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %123, align 8
store { i64, i64, [0 x i8] }** %119, { i64, i64, [0 x i8] }*** %__adjust.sroa.0.0..idx.i, align 8
store i64 %120, i64* %__adjust.sroa.1.8..idx13.i, align 8
invoke void %128(%enum.ValidUsage* %result.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i)
to label %match_case.i99..noexc95_crit_edge unwind label %unwind.loopexit.loopexit
match_case.i99..noexc95_crit_edge: ; preds = %match_case.i99
%.pre = load i64* %116, align 8
%phitmp = icmp eq i64 %.pre, 0
call void @llvm.lifetime.end(i64 16, i8* %112)
call void @llvm.lifetime.end(i64 16, i8* %113)
call void @llvm.lifetime.end(i64 16, i8* %114)
call void @llvm.lifetime.end(i64 16, i8* %115)
br i1 %phitmp, label %.noexc96, label %"`loop`.i"
.noexc96: ; preds = %.noexc100, %match_case.i99..noexc95_crit_edge
%129 = getelementptr inbounds %enum.ValidUsage* %result.i, i64 0, i32 1
%130 = load i64* %129, align 8
%131 = trunc i64 %130 to i32
invoke void @"_ZN4libc5funcs3c956stdlib4exit15_65062626eb4b5914_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i92, { i64, %tydesc*, i8*, i8*, i8 }* undef, i32 %131)
to label %.noexc97 unwind label %unwind.loopexit.nonloopexit
.noexc97: ; preds = %.noexc96
unreachable
next32: ; preds = %"`loop`.i", %"normal return23"
invoke void @"_ZN5usage16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
to label %"normal return33" unwind label %unwind.nonloopexit.nonloopexit
"normal return33": ; preds = %next32
%132 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, null
br i1 %132, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit", label %cond.i.i
cond.i.i: ; preds = %"normal return33"
%133 = load i64* %3, align 8
%134 = bitcast { i64, i64, [0 x i8] }** %76 to i8*
%135 = getelementptr inbounds i8* %134, i64 %133
%136 = bitcast i8* %135 to { i64, i64, [0 x i8] }**
%137 = icmp ult { i64, i64, [0 x i8] }** %76, %136
br i1 %137, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i"
iter_vec_loop_body.i.i.i: ; preds = %cond.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i"
%138 = phi { i64, i64, [0 x i8] }** [ %142, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i" ], [ %76, %cond.i.i ]
%139 = load { i64, i64, [0 x i8] }** %138, align 8
%140 = icmp eq { i64, i64, [0 x i8] }* %139, null
br i1 %140, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i", label %cond.i.i.i.i.i
cond.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i
%141 = bitcast { i64, i64, [0 x i8] }* %139 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %141)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i": ; preds = %cond.i.i.i.i.i, %iter_vec_loop_body.i.i.i
%142 = getelementptr inbounds { i64, i64, [0 x i8] }** %138, i64 1
%143 = icmp ult { i64, i64, [0 x i8] }** %142, %136
br i1 %143, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i.i.i", %cond.i.i
%144 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %144)
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11040E.exit": ; preds = %"normal return33", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_10943E.exit.i.i"
ret void
}
declare void @"_ZN7version16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*)
declare void @"_ZN4libc5funcs3c956stdlib4exit15_65062626eb4b5914_0$x2e8$x2dpreE"({}*, { i64, %tydesc*, i8*, i8*, i8 }*, i32)
define internal fastcc void @"_ZN3vec14__extensions__10tail_1117416_fab30464cb6f54114_0$x2e8$x2dpreE"({ { i64, i64, [0 x i8] }**, i64 }* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture) #3 {
"function top level":
%__trans_ret_slot.i = alloca {}, align 8
%ret.i.i = alloca { i64, i64, [0 x i8] }*, align 8
%__adjust.i = alloca { i8*, i64 }, align 8
%__arg3.i = alloca %str_slice, align 8
%s.sroa.1.8..idx.i.i = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %1, i64 0, i32 1
%s.sroa.1.8..cast.i.i = bitcast %tydesc** %s.sroa.1.8..idx.i.i to i64*
%s.sroa.1.8.copyload.i.i = load i64* %s.sroa.1.8..cast.i.i, align 1
%2 = lshr i64 %s.sroa.1.8.copyload.i.i, 3
%3 = bitcast {}* %__trans_ret_slot.i to i8*
call void @llvm.lifetime.start(i64 0, i8* %3)
%4 = bitcast { i8*, i64 }* %__adjust.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %4)
%5 = bitcast %str_slice* %__arg3.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
%6 = icmp eq i64 %2, 0
br i1 %6, label %then.i, label %"_ZN3vec14__extensions__11slice_1117717_7dfbf588b669df8914_0$x2e8$x2dpreE.exit"
then.i: ; preds = %"function top level"
%7 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([19 x i8]* @str10873, i64 0, i64 0), i64 18)
%8 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 2, i64 0
%9 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 0
%10 = load i64* %9, align 8
%11 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0
store i8* %8, i8** %11, align 8
%12 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1
store i64 %10, i64* %12, align 8
%13 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }*
%14 = bitcast { i64, i64, [0 x i8] }** %ret.i.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %14)
%15 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_106778to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %13)
to label %.noexc.i unwind label %unwind.i
.noexc.i: ; preds = %then.i
store { i64, i64, [0 x i8] }* %15, { i64, i64, [0 x i8] }** %ret.i.i, align 8
%16 = bitcast { i64, i64, [0 x i8] }** %ret.i.i to { i64, %tydesc*, i8*, i8*, i8 }*
%17 = getelementptr inbounds { i64, i64, [0 x i8] }* %15, i64 0, i32 0
%18 = load i64* %17, align 8
%19 = add i64 %18, 11
%20 = lshr i64 %19, 1
%21 = or i64 %20, %19
%22 = lshr i64 %21, 2
%23 = or i64 %22, %21
%24 = lshr i64 %23, 4
%25 = or i64 %24, %23
%26 = lshr i64 %25, 8
%27 = or i64 %26, %25
%28 = lshr i64 %27, 16
%29 = or i64 %28, %27
%30 = lshr i64 %29, 32
%31 = or i64 %30, %29
%32 = add i64 %31, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1076916_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %16, i64 %32)
to label %"normal return.i" unwind label %unwind.i.i
unwind.i.i: ; preds = %.noexc.i
%33 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%34 = load { i64, i64, [0 x i8] }** %ret.i.i, align 8
%35 = icmp eq { i64, i64, [0 x i8] }* %34, null
br i1 %35, label %unwind.body.i, label %cond.i.i2.i.i
cond.i.i2.i.i: ; preds = %unwind.i.i
%36 = bitcast { i64, i64, [0 x i8] }* %34 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %36)
to label %unwind.body.i unwind label %unwind.i
"normal return.i": ; preds = %.noexc.i
%37 = add i64 %18, -1
%38 = load { i64, i64, [0 x i8] }** %ret.i.i, align 8
%39 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 2, i64 0
%40 = ptrtoint i8* %39 to i64
%41 = add i64 %37, %40
%42 = inttoptr i64 %41 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %42, i8* getelementptr inbounds ([13 x i8]* @str11180, i64 0, i64 0), i64 12, i32 1, i1 false)
%43 = add i64 %18, 12
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 0
store i64 %43, i64* %44, align 8
%45 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 1
%46 = ptrtoint { i64, i64, [0 x i8] }* %45 to i64
%47 = add i64 %46, %19
%48 = inttoptr i64 %47 to i8*
store i8 0, i8* %48, align 1
%49 = load { i64, i64, [0 x i8] }** %ret.i.i, align 8
call void @llvm.lifetime.end(i64 8, i8* %14)
%50 = icmp eq { i64, i64, [0 x i8] }* %7, null
br i1 %50, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i", label %cond.i.i.i
cond.i.i.i: ; preds = %"normal return.i"
%51 = bitcast { i64, i64, [0 x i8] }* %7 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %51)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit.i": ; preds = %cond.i.i.i, %"normal return.i"
%.sroa.028.0..idx.i = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 0
store i8* getelementptr inbounds ([38 x i8]* @str10820, i64 0, i64 0), i8** %.sroa.028.0..idx.i, align 8
%.sroa.129.8..idx30.i = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 1
store i64 38, i64* %.sroa.129.8..idx30.i, align 8
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %49, %str_slice* %__arg3.i, i64 735)
unreachable
unwind.i: ; preds = %cond.i.i2.i.i, %then.i
%52 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind.body.i
unwind.body.i: ; preds = %unwind.i, %cond.i.i2.i.i, %unwind.i.i
%eh.lpad-body.i = phi { i8*, i32 } [ %52, %unwind.i ], [ %33, %cond.i.i2.i.i ], [ %33, %unwind.i.i ]
call void @upcall_reset_stack_limit()
%53 = icmp eq { i64, i64, [0 x i8] }* %7, null
br i1 %53, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit3.i", label %cond.i.i2.i
cond.i.i2.i: ; preds = %unwind.body.i
%54 = bitcast { i64, i64, [0 x i8] }* %7 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %54)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit3.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10815E.exit3.i": ; preds = %cond.i.i2.i, %unwind.body.i
resume { i8*, i32 } %eh.lpad-body.i
"_ZN3vec14__extensions__11slice_1117717_7dfbf588b669df8914_0$x2e8$x2dpreE.exit": ; preds = %"function top level"
%s.sroa.0.0..cast.i.i = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %1 to { i64, i64, [0 x i8] }***
%s.sroa.0.0.copyload.i.i = load { i64, i64, [0 x i8] }*** %s.sroa.0.0..cast.i.i, align 1
%55 = ptrtoint { i64, i64, [0 x i8] }** %s.sroa.0.0.copyload.i.i to i64
%56 = add i64 %55, 8
%57 = inttoptr i64 %56 to { i64, i64, [0 x i8] }**
%58 = shl nuw i64 %2, 3
%59 = add i64 %58, -8
%__arg2.i.sroa.0.0..idx.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %0, i64 0, i32 0
store { i64, i64, [0 x i8] }** %57, { i64, i64, [0 x i8] }*** %__arg2.i.sroa.0.0..idx.i, align 1
%60 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %0, i64 0, i32 1
store i64 %59, i64* %60, align 1
call void @llvm.lifetime.end(i64 0, i8* %3)
call void @llvm.lifetime.end(i64 16, i8* %4)
call void @llvm.lifetime.end(i64 16, i8* %5)
ret void
}
declare void @"_ZN8unstable4lang10annihilate16_82984335c95fdd514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare void @llvm.lifetime.start(i64, i8* nocapture) #0
declare void @llvm.lifetime.end(i64, i8* nocapture) #0
declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) #4
attributes #0 = { nounwind }
attributes #1 = { inlinehint nounwind }
attributes #2 = { uwtable }
attributes #3 = { inlinehint uwtable }
attributes #4 = { nounwind readnone }
!0 = metadata !{i64 0, i64 2}
; ModuleID = 'rust.rc'
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
target triple = "x86_64-apple-darwin"
%tydesc = type { i64, i64, void ({}*, i8*)*, void ({}*, i8*)*, void ({}*, i8*)*, void ({}*, i8*)* }
%enum.ValidUsage = type { i64, i64, [0 x i8] }
%enum.Action = type { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }
%str_slice = type { i8*, i64 }
%enum.UsageSource = type { i64, %str_slice, [0 x i8] }
%"enum.std::libc::types::common::c95::c_void[#1]" = type {}
%"enum.std::option::Option<~str>[#1]" = type { { i64, i64, [0 x i8] }* }
%"struct.std::path::PosixPath[#1]" = type { i8, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* }
%"struct.std::unstable::extfmt::rt::Conv[#1]" = type { i32, %"enum.std::unstable::extfmt::rt::Count[#1]", %"enum.std::unstable::extfmt::rt::Count[#1]", %"enum.std::unstable::extfmt::rt::Ty[#1]" }
%"enum.std::unstable::extfmt::rt::Count[#1]" = type { i64, i64, [0 x i8] }
%"enum.std::unstable::extfmt::rt::Ty[#1]" = type { i64 }
%struct.Command = type { %str_slice, %enum.Action, %str_slice, %enum.UsageSource }
%"struct.std::unstable::raw::Vec<()>[#1]" = type { i64, i64, {} }
%"enum.std::option::Option<Command>[#1]" = type { i64, [88 x i8] }
@_rust_crate_map_rust_0.8-pre_8d2fe0c0fe8188b = global { i32, i8*, i64, [8 x i64] } { i32 1, i8* bitcast (void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN8unstable4lang10annihilate16_82984335c95fdd514_0$x2e8$x2dpreE" to i8*), i64 ptrtoint ([1 x { i64, i64 }]* @_rust_mod_map to i64), [8 x i64] [i64 ptrtoint (i64* @_rust_crate_map_std_0.8-pre_6c65cf4b443341b1 to i64), i64 ptrtoint (i64* @_rust_crate_map_rustpkg_0.8-pre_38a86178bd95e7e1 to i64), i64 ptrtoint (i64* @_rust_crate_map_extra_0.8-pre_a7c050cfd46b2c9a to i64), i64 ptrtoint (i64* @_rust_crate_map_rustc_0.8-pre_d3cb8c2ccd84a7a7 to i64), i64 ptrtoint (i64* @_rust_crate_map_syntax_0.8-pre_64629f7f0c6a9bc to i64), i64 ptrtoint (i64* @_rust_crate_map_rustdoc_0.8-pre_6b49af4948607d84 to i64), i64 ptrtoint (i64* @_rust_crate_map_rusti_0.8-pre_53e0ef2ae196aaff to i64), i64 0] }
@"_ZN10ValidUsage5Valid7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 0
@"_ZN10ValidUsage7Invalid7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 1
@"_ZN6Action4Call7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 0
@"_ZN6Action8CallMain7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 1
@"_ZN11UsageSource6UsgStr7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 0
@"_ZN11UsageSource7UsgCall7descrim17_80d11077bd3d8df614_0$x2e8$x2dpreE" = constant i64 1
@str10719 = internal constant [6 x i8] c"build\00"
@str10720 = internal constant [6 x i8] c"rustc\00"
@str10721 = internal constant [26 x i8] c"compile rust source files\00"
@str10723 = internal constant [4 x i8] c"run\00"
@str10725 = internal constant [32 x i8] c"build an executable, and run it\00"
@str10726 = internal constant [167 x i8] c"The run command is an shortcut for the command line \0A\22rustc <filename> -o <filestem>~ && ./<filestem>~ [<arguments>...]\22.\0A\0AUsage:\09rust run <filename> [<arguments>...]\00"
@str10727 = internal constant [5 x i8] c"test\00"
@str10728 = internal constant [36 x i8] c"build a test executable, and run it\00"
@str10729 = internal constant [149 x i8] c"The test command is an shortcut for the command line \0A\22rustc --test <filename> -o <filestem>test~ && ./<filestem>test~\22\0A\0AUsage:\09rust test <filename>\00"
@str10730 = internal constant [4 x i8] c"doc\00"
@str10731 = internal constant [8 x i8] c"rustdoc\00"
@str10732 = internal constant [41 x i8] c"generate documentation from doc comments\00"
@str10733 = internal constant [4 x i8] c"pkg\00"
@str10734 = internal constant [8 x i8] c"rustpkg\00"
@str10735 = internal constant [39 x i8] c"download, build, install rust packages\00"
@str10736 = internal constant [7 x i8] c"sketch\00"
@str10737 = internal constant [6 x i8] c"rusti\00"
@str10738 = internal constant [23 x i8] c"run a rust interpreter\00"
@str10739 = internal constant [14 x i8] c"\0AUsage:\09rusti\00"
@str10740 = internal constant [5 x i8] c"help\00"
@str10741 = internal constant [33 x i8] c"show detailed usage of a command\00"
@str10742 = internal constant [160 x i8] c"The help command displays the usage text of another command.\0AThe text is either build in, or provided by the corresponding program.\0A\0AUsage:\09rust help <command>\00"
@const = private constant { { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } } { { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([6 x i8]* @str10719, i32 0, i32 0), i64 6 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([6 x i8]* @str10720, i32 0, i32 0), i64 6 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([26 x i8]* @str10721, i32 0, i32 0), i64 26 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } { i64 1, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN10rustc_help16_d7417fb5c428c7e14_0$x2e8$x2dpreE", [8 x i8] undef } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([4 x i8]* @str10723, i32 0, i32 0), i64 4 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } { i64 0, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* @"_ZN7cmd_run17_64cd22cf85a72bbc14_0$x2e8$x2dpreE", [16 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([32 x i8]* @str10725, i32 0, i32 0), i64 32 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([167 x i8]* @str10726, i32 0, i32 0), i64 167 }, [0 x i8] undef } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([5 x i8]* @str10727, i32 0, i32 0), i64 5 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } { i64 0, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* @"_ZN8cmd_test17_64cd22cf85a72bbc14_0$x2e8$x2dpreE", [16 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([36 x i8]* @str10728, i32 0, i32 0), i64 36 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([149 x i8]* @str10729, i32 0, i32 0), i64 149 }, [0 x i8] undef } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([4 x i8]* @str10730, i32 0, i32 0), i64 4 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([8 x i8]* @str10731, i32 0, i32 0), i64 8 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main16_923425a5c682dca14_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([41 x i8]* @str10732, i32 0, i32 0), i64 41 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } { i64 1, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN6config5usage16_923425a5c682dca14_0$x2e8$x2dpreE", [8 x i8] undef } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([4 x i8]* @str10733, i32 0, i32 0), i64 4 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([8 x i8]* @str10734, i32 0, i32 0), i64 8 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main16_f7604413a6f2de214_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([39 x i8]* @str10735, i32 0, i32 0), i64 39 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } { i64 1, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN5usage7general16_f7604413a6f2de214_0$x2e8$x2dpreE", [8 x i8] undef } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([7 x i8]* @str10736, i32 0, i32 0), i64 7 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] } { i64 1, { i8*, i64 } { i8* getelementptr inbounds ([6 x i8]* @str10737, i32 0, i32 0), i64 6 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main17_3a346db0adc4cf5114_0$x2e8$x2dpreE", [0 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([23 x i8]* @str10738, i32 0, i32 0), i64 23 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([14 x i8]* @str10739, i32 0, i32 0), i64 14 }, [0 x i8] undef } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } { { i8*, i64 } { i8* getelementptr inbounds ([5 x i8]* @str10740, i32 0, i32 0), i64 5 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] } { i64 0, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* @"_ZN8cmd_help17_64cd22cf85a72bbc14_0$x2e8$x2dpreE", [16 x i8] undef }, { i8*, i64 } { i8* getelementptr inbounds ([33 x i8]* @str10741, i32 0, i32 0), i64 33 }, { i64, { i8*, i64 }, [0 x i8] } { i64 0, { i8*, i64 } { i8* getelementptr inbounds ([160 x i8]* @str10742, i32 0, i32 0), i64 160 }, [0 x i8] undef } } }
@str10798 = internal constant [55 x i8] c"/Users/Luqman/Develop/mozilla/rust/src/librust/rust.rs\00"
@str10881 = internal constant [27 x i8] c"vector size is too large: \00"
@str10892 = internal constant [53 x i8] c"/Users/Luqman/Develop/mozilla/rust/src/libstd/vec.rs\00"
@str10945 = internal constant [19 x i8] c"assertion failed: \00"
@str10946 = internal constant [8 x i8] c"len > 0\00"
@str10947 = internal constant [53 x i8] c"/Users/Luqman/Develop/mozilla/rust/src/libstd/str.rs\00"
@str11091 = internal constant [5 x i8] c"The \00"
@str11092 = internal constant [30 x i8] c" command is an alias for the \00"
@str11093 = internal constant [10 x i8] c" program.\00"
@str11094 = internal constant [1 x i8] zeroinitializer
@str11095 = internal constant [2 x i8] c"\0A\00"
@str11098 = internal constant [20 x i8] c"option::unwrap None\00"
@str11099 = internal constant [56 x i8] c"/Users/Luqman/Develop/mozilla/rust/src/libstd/option.rs\00"
@str11114 = internal constant [6 x i8] c"test~\00"
@str11116 = internal constant [7 x i8] c"--test\00"
@str11123 = internal constant [3 x i8] c"-o\00"
@str11124 = internal constant [3 x i8] c"./\00"
@str11231 = internal constant [177 x i8] c"The rust tool is a convenience for managing rust source code.\0AIt acts as a shortcut for programs of the rust tool chain.\0A\0AUsage:\09rust <command> [arguments]\0A\0AThe commands are:\0A\0A\00"
@str11237 = internal constant [2 x i8] c" \00"
@str11238 = internal constant [5 x i8] c" \00"
@str11239 = internal constant [67 x i8] c"\0AUse \22rust help <command>\22 for more information about a command.\0A\0A\00"
@str11243 = internal constant [3 x i8] c"-v\00"
@str11244 = internal constant [10 x i8] c"--version\00"
@str11252 = internal constant [13 x i8] c"start <= end\00"
@_rust_crate_map_std_0.8-pre_6c65cf4b443341b1 = external global i64
@_rust_crate_map_rustpkg_0.8-pre_38a86178bd95e7e1 = external global i64
@_rust_crate_map_extra_0.8-pre_a7c050cfd46b2c9a = external global i64
@_rust_crate_map_rustc_0.8-pre_d3cb8c2ccd84a7a7 = external global i64
@_rust_crate_map_syntax_0.8-pre_64629f7f0c6a9bc = external global i64
@_rust_crate_map_rustdoc_0.8-pre_6b49af4948607d84 = external global i64
@_rust_crate_map_rusti_0.8-pre_53e0ef2ae196aaff = external global i64
@_rust_mod_map = internal global [1 x { i64, i64 }] zeroinitializer
@rust_abi_version = constant i64 1
@rust_metadata = internal global { [7414 x i8] } { [7414 x i8] c"rust\00\00\00\01\ED]\09x\1B\D5\9D\97\1D\E7\8Es\10\02\E1H+\E2\E0$\92\0F\DD\92M\12\12\92\B4@\9B\D0%\10J\83\11\A3\99\913XWt8\B6l\85#\B2s\89\1C$\5C\11!!\10JiK)\EDB)=\B8J\F9\CA\F6\03\16Z\B6l\8Fm\B7\DD\DD\B6\DBv{\B0[Z\DA\DD\DF\1B\CD\CC\D3\9B\91%\D9\B1\8D\DBm\BE\EF\A7\8C\DE\BCy\FF\E3\FD\DE\FF\FD\E7\8D\E6\F9\E1\B9&\D3\1C\9F\E0\08\8A6\DE\16\14}v\9F/p\FF\5CS\CD\E4\938\F1\A5\07\F1\F1\E4=\F8\A8\0BI\91\AE\BBqp\86\FC-\C2\85\C5\13\E4 \9EJ$I\F1\02\B9\B8[\8C'H\F1T[\8B\AF9\16\17\C9\19\87|&\95\92\04rf\89\8Bs\B8\04\CE\E9lv\F3\BC\AF\D9esz\9B\DB\9CnG\B3\83\0F\88m\01\A1Mpxyr\D9\1Ar\D9\A4T<D\AErmM&c\89\F6\D6\D6N)\B95\15h\E1\A3\E1\D6p4-\85B\5C+\D1\A05\19\17\C5\D60\97H\8A\F1\D6D\9C\97\0B\89\01\EF#M\9DC\9A\9A\1A\92x1\92\90\B5\9E\B6\E1\B2\ABZ\D7l\FA\B0\83T9\9FT9\9BT\99\C1\C7\B9\A4\E8O\F6\C6\E4Z\93BR\E0\14<q\E5C\F8\B2\FC\11R\92H\0A\9F*2\EF\938\9E\EB\E1=n>\E8\0A\B8\5CN\A7\CB\1E\B0\93\DA\CD\A4\F6T\A2D\AC\AB\D3p\85\D3\C7\F9<v\AF\0F\D6\BAE\AF(_a%WL\16{\92q\CEP\9F\F3\F26\B7\8D\0F\0A.O\C0\C1\B7q\B4>\91\C0\1B\EA\0BN>\E0\E3\1D</\F8\5C\9C\97\F3j\F5\A7$z#I\AEG\7F\C1\1C\8F\CB\E3h\0Bz\836\DE\C3\B5\05x\D6\02!j\94\E0\09\B8\DA\B8\A0\AB\CD\E5\F3\D8\BC\90\C2j$\19\EA\BB\9D\A2M\0C:8\D1\DE\E6\E1\B8`\F07(4\BDC>V\DF\84\CF7W\DF\8C\CF\D7\FEL\1A\B0\B5{\ED^rTgk\B7\BB\D4\03\87z\E0T\0E\9C\EA)\B7G9p\A9\07n\B7r\E0\F1\A9\07\EAU\1E\B5e_\9B\22\CC\EEq\ABG^\9Fr\E4p8\94#\A7M;\F2:\95#\F4\B3z\E4S\AFu;\BC\EA\91V\CF\D3\D6v\EB\5C\D3\8E\CF\ED\9EkJ\CE\DA\83\B2\DF\ED\DAik\B7\ED\C5QM8{\F3\F0\8C}\EC/\C8\EAg\C8\08{6\8B\CE\ADy\EEfb\F8\EA]\030\D4\E6SL\DF'\88\81T\A7?\CC\F1\F1(\A9{\81\5C\B7\F6\B9\9C\DF\0F\B6\15\CA\13\CF\15\D7\22\8D\AC\92\1B\B1{\95F\98\CA\AA/m>\D2\DE\99\8Al\A6\0A\9A\98\FC\99]Y\E2f\B9\85d\0E\9F\F5\C9-\A4\A0?\D2\12\D9\D2\D1\91\DD\BB\99\0BI\C2\D5\09\AES\DC\AFv\85z\E0|\15\0D\5C\93\DF\19\96\22\03\BBM\85\7F\D3\F1\95\EB\D1\BE\CEym\AEi\D2\C2|N\8A V\8A\82_J\8A\E1\83(\9A|\88\E8c\BA}\AE\A9\F6\0F\F9\01I\10#\C9\5C\91\A8\FC\00\97L\C6\13\87\C9\F8<\22\D7\CC\DF*\09Z\AB\B3\F3\D9HT@-\D2\9C\1F\ED\D5\EE\97\DB\9BL\DA\DB\99\DF\DD\CD\C5%.\92$\D7\D7\B6\C8\D7\D7\DE\81\A0\15S.\CB\92H\9D\1B\90\C5\95\90\94\ED\92\22B>\A74\E2'\DF \C2\F4\96\A6\B2\E9\15R\FD\1Br\F5\1A4l\FAj\FE\D6d/\A3\E1\0CE\D4\CEd/\D1\CF\B4G\BEx&\B9xG>\9B\88q\91\FC`g(\1A\E0B{o1\E5\07e\07\C8J\CC\A5\ADN\CE\ED\94\22\C9\FC\AD\F1X~\F0\8AXR\8AFHK3\A9\1A\A6\FC\00\89\CB\8C\F2C\D4,\EA\9F\82\F4beg2\DFf\E5\F7\08R\22\EE\17{b\F1!\05\EF\EC\96\12\F9\BD\F8\90\02RHJ\F6\D2\0A\B5\85\0A\B2\14b\C5\A3\8C\D3w]\16\E9\1E\9E\DB\CF\A2bg\0E\C5\87\FA\D1S9\BF'$\05\C5\A4\14\16\13rK\9BE\DE\D0\D2\1Etj\8C\8Bs\E1\A1\ABT'\ECu\F0\F3\EC7\F1\FD\BC74j\7F\0B_g\1D%\93E\83+(\B4\0B\0Do\E1\B8\8B=\7F]~w\A7\18\11\E3\12\9F\C8\1F \14(\A8\E3\17\C4 \E3\D2\5C\5C\EC\84+\0Ag\87t\0C\B8[,\8F\E8\B3T\937\8B\C8[H\CE\CF\FF\80\B4\E5J\CCdM\1D[\A4\8E\22\DDBl\DD\8E\B1\D0mZC\9B\DD\83\80\D3\C0:\AB\BE\82\B3\EA\C7\DCY\DF\C6\F1\D5\9A\BC\E9D\DE\07\F2;\D14\B9p\85|\E1,r\A1=\BF+\16\97\C2\FE\02\13\1Ah\8B\0B1\F8\C1\F6b\86\14$\91\A8}F!j?_\14\19I\D8\7FM\8E\D9\0E9fwg\0Bq\EC\80:a\FE\9E\94J\B7\E1s\BD\FFc\1B\ED6zi\F1\B1[>\B4{\FDv\D1\17l\13\02\00\C9ry\9F\DD\E5\B7-\E9q\88>|\08HU\D6\93\96\D6\E8Z*\5C\ED\15\C4\04\0F\A3\D0\8A\CF&\D8\ED6\AF7 8\05\9F\10\F4\18Z\C9\15w\221\AD^1\AD\A0=\B1*'[\E5T\ACR\03E\09\BB\D6\EA\B4\F1*U\87\AB\8F\DA\87D\9D9\8A:\AAX\A2P\07Q\C8Y\98\1A\A5\E2\0B\B2\FB\FD\085Id\CE`H\C2\EF\BF\9F\F4\D7\AF\8B:\E9%%3q\90\A6\CFR\9A\D6]D$\BC.KpdwK\09\BF,\F6O\84\CF\8D\01\CE\D6\AF\88z\97\B0B\1Bw\1D\81\82\17^\C6gm\A3$k\16<\A0\A6AD\C5Y\1F(\AAL\A4\9B\0B\89\84^\FA\F3\9AH\E2\D1\0F\11\8F\BA\D8\1Av[XLn\C5\7F^\BB\DD\A7V\B6{\FCv\BB\DB\C69\83m.\DE\E9s\D8\83\06\CF\C2\AEY\CD\C4.\B7G\97T\B8=jR1\B8\86'\83K\C9#\5C\1E\E5\C0\EDFB1\F3{lB\B1\84M(\DA\90PL\FB\B5!\A1\98\F6}m\E8L{]M(\141\15\92\09\9F>\99\98\D6\A5%\13\D3n`\92\89i3\B5d\A2\EE\17\CC\BC\96]\CB\85BUOju\1F\D5\B4\AD\DB\80\EAu\97j\B3~\DDJC.\D1\C4\E6\12uS\E5\8B\A7\E3\E2I\EF\E6\07c\A98\E6\17\F5\7F\1AEj\94y\86\0B`&\CA\06\A4d\E2VR<\B7\9A\09.+\88|\88\04\A6X\AA\90D=\A5\E9W\FBh\9EP'\9CJ\06\E4\D4E\AF\EC2V\D9\9A\07\E4v\A7\A2\DD\9A\BB\CB\05U\A6\91\A5\BAF\DCr\E5:\D2\88\C5P\B9Q\97j\FD@\AE<\89\B4\FC\86\A1\F2\85\A3\93\97%\92\F1Q\CE\CB\96(\D2\07d\CF\E6\F7\E2?N\9F:\D4\14\E7)\A3_qg\8CK2\CEjP)\8E\13\B2\B7\EE\A3\17\1D\CE\E7\02 \B3\14\C1\ED\08\EA\0C\D1di_\CE\A3\BE\9C\92\CBr\F1\CE\C4\E88\B3Dj\BB<?\18M%Ac\A6\D4\AAc\C1A\CA\82\81\B2\9A\9FM5\9F\C5\DC\AF\8C.\19,\AA%|0\BF'.&q\CF\D6\1B\1A\CA\C7\C5\8653\DFZF5\93\9F4\9B\89x\BBI\C4\DB\C0I\91\AA\A3^m\8A\DE\F4\DDH\A2\8AHo\CD>b\18\A9\0E]\0C8\97\06\929\C5\C6\B4P\8F40\0D\B4\AA\FCW&\83D\92KJ\BCA\8E}\A2F\04\DBp\C7o\B1Un\E2\D4\C9\06c]:c_\D1\A6\12\D3\0B\E33\95P\F3K\8CK\A7N\BDR\83{\B8C\C2\C3|\F3\FE\05\DF)\BE\C0\DE\FC\F8\8An~\04\B7\C3p\F3\E3\1B\C3\9B\9F\82<\A2\CF%\9A\BC\16\22\CFI\CE\B7\D0$\94\1Em\EEn\DD\D1*\A7\B6\EA\CDcG\91\DAa\B6\99\EB\C7B\ED\E9\0Dv\AF\0Bkz\A2\AC\B8G\93\E8%\12\97\92\1A\8B\A9\BA\DD\AD\8D\C9\A2\5C:RZY\EF\98*\1Bl\C3\02\A4|\8B\B9R\93\B8\84Hl\D1n1\97\D0[\CCs\98[\CC\994\0B2\91\16\D6k-XH\0B\1E\AD\85&\B9\E2\0CR\F1\82\FC\80\BC\DA\AF\8D\16Sa<\D2u7V\17\DB\08t!\F7$\B3\95;\22%?'wB_%w\0C.\8Fr\F3'g\D3\CA}\8D\DBC\EF\FC\DAq\9F\E2)\5C\A4\FC\E7\225q\C3\D7&\B6q^\97W\B0\FB\EC\1E\1Fg\17K\DE\C6^D/\97\AF\1B\EE\0D#%\10\B1b\96b\85\AC,\B1\E1\15\F9\AE\C7\AD\D8\A0\CD\8F%\ECXe\B0\C3\A7\D6\86.\01\87\C7\EB\F4\E1a\82\C3\EBs\DA\DC\81\92\B6\5CL\9B\D0\AE\1D\89=\05\8E\11{\E6*\F6h\8A\C3\A6i\B3\89M\1E\1F\BD\93\9BC\EE\E4<\BE\FEH Q\B8\97\DB''@\9B\A2\A98\AF\AE\10{\9C\EA\81\F7\D5\B9\A6\A99\F6\86\AE\8D\BD\A1[\8F\1B\BA\BA\1F\1Bn\E8\EA^\A3\B7H/\AAsx\B1\AC\0Awu\EB\F4wuu\D7jwuu\1B\99\BB\BAI/iyH\AD\89\C9q\06\AFNtn\C2\C4^m\86S#iJ\D7\5C\8F\EA5\D7j9B\CDF\C3d\BCR\97\E1,\A4\19N}qxh\A2\13\DC\05L\03\EDl\86\93M\88\A1\A0A\CA\8A\89\9A\DF\5Ct:\F9\CD*\E6\DB\C5\A3\9A\E8\D6|\81]\B2\06\09\86uw_c\A6,X@X@=Y\22%[3\B1S\B2\D5c\90\92]\C2|[;\E6)\D9\0A\AA\8E\9D\D8\DBD\99\CD\0E\A8\B6R\03jTs\B8\9BI\EAq\BE6\83\AE#3h}a\85\1B\8F\C9\F9\F6\A0\9C`\DC\C6V\D8q\BA\09\06\13A\0E(\B5\0A\AC\E5E\83\B2\DA\9A\BB\A2\11Q\B9I\D3\E8b\A2\D1\22Ra!\93-\05\12\1D\C5&\ECg/\B8\E9=1az\83\C3\EE\F0\B6\DB}\B2\0D\AD\9AJk\89JfR\E3<jC\83\DDg\F3\B6\F3\0DC\98\B1\F6\BD5C\0C\B4\DB\03\BA\5C\F0\A2\11\E6_\F3\95\99\BEx:}\B1*\8DH\9A\F3\1D9%P\D7\E9\95)RIr<>\9A\E4\5CJ\16\95\EDE\22\98/\9E\C2uHU\5Cn\BBO\F4\F2\1E\BB\D7\C1;l\CE\D2O \D6\EA\1BS\AE\1F~\CA\A32\82ID\0B\8D\11\EB\BE'[\E7U\9FB(\B1\BF\84y\97\955\CF\AB\5C\08\BD\82\EE6\B7#\E0\B4\89\BE\00\17t:\BD%\ED[\A7oMm`$\06\16\B8\C2<\D6PZ#\16Ze\DB6fw\F2a\81\D4\99\A9\D4!\DFI\0B\93\E5\C1L\DC\E0u\91\FAN\A5\FE 'g\9B\8C\DF\0AE\85g#\85\FB#\F9:/\B9\AEM\B9no\8AX\E5'\D9\1D\F3L\8B\16\B3R}\0Er\F5\0A\F6\EA`*\14*q5)\CE\15\C7*\B9\01\0F\1A\98q\A6|XPb\93\9C\B9r[H\01\CD\5Cw\AD\8D\86\C3\5CD\B8_\1D\17\9A\B7\94\13\D5\8D\89\17\F01\AF\C8\A7\05\CF\91\D23Y\CF\15\5CCN,4\BA\A6`y\89\93\C4\C4\82U\87\E6\9A\A6\AF\82\C8\C9.\12jL\A7\F1Q\7F\84\F8\0C\AB\E1\D3Q\B0\E1t[\9Bp\1F\9AykPp\E5_\9Dy\7F\FB\F8\7F\FA\A1\F1\FA&\14l\FE\EB\B4\B1:\0F,\F9\0E\0A.\1F\D6\E5\E4\D9*\FEk<\01\9C\02\1E\01>\03|\1Ex\0A\F8\0A\F0<\F0\12\F0M\E0\1F\817\81\EF\02\BF\04~\0B\FC\1E\F8\13\D6\0Ak\81\A9\C0,`\1Ep\16p\1E`\06.\04,@+\E0\02\DA\80U\C0Z\E0R`\03p%p\0Dp\1D\C0\01A\A0\0B\88\01) \0D\A0\8F\97b\92Y\BA\07\D8\0F\1C\06\EE\06\8E\01'\81\8F\03\9F\02>\0B<\01<\0D@\EF\A5\D0{)\F4^\0A\BD\97\FE\10\F87\E0\E7\C0\7F\01o\03\7F\00\FE\17\CFi\E1\8Ce\08\FF\CBf\03\F3\81\85\C0\22`1\B0\14h\02\EC\80\07\B8\08X\0D\AC\07.\07\AE\00\AE\02\AE\05\AE\07x`+\10\06\E2\C0v\A0\1F\B8\05\18\04\F6\01\07\81;\80\A3\C0q\E0A\E0\13\C0\A3\C0\E7\80/\00_\06\9E\03\BE\0E\FC\03\F0\1A\F0m\E0\9F\81\7F\01~\02\FC\0C\F8\15\F0;\E0\1D\E0\CFx\C87\09\00+\96\D7\03g\00g\03\E7\03\17\00\8D\80\15\B0\01n\A0\1D\B8\18X\07\5C\06l\046\01\1F\05:\80\00\D0\09\84\80m@7\D0\07\DC\0C\0C\00{\81\03\C0\11\E0\1E\E0>\E0\01\E0a\E0\D3\C0\E3\C0\93\C0\97\80g\81\17\81\97\81W\81o\01o\01?\00~\0C\FC\14\00\B7\96\83[\CB\C1\AD\E5\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\C1\98\B0`LX0&,\18\13\16\8C\09\0B\C6\84\05c\C2\821a\01\B7,\E0\96\05\DC\B2\80[\16p\CB\02nY\C0-\0B\B8e\01\B7,\E0\96\05\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\E0\96\15\DC\B2\82[Vp\CB\0AnY\C1-+\B8e\05\B7\AC\18\13V\8C\09+\C6\84\15c\C2\8A1a}\06\F8\1A\F0\0D\E0\15$\86\17\D7\93\1F\CD\DA=\85uZ\9Ed\86glVS\C3\A4\9C\19b\E9\9F\E4\E46\E4\E4\BE\B5Wl\D8\B0f\E3\BAM\C8\BF\1Dv\DC\A48]^\CE\E6\14\9D\0E\9F\CB\90\7Fc\CDW\A9\CD\AE\A7*\85X\0B]u\90]\0B\BD\8E]\0B}\08k\A1\CB\CF6\AC\85.\AF\D3\16\1B\96\BD\A3.Nh\CDVX\08=\A5_\08]v\80\B6\96e\AA\FAu\0B\92w\D1\05\C9\5CU\8F\5C?V\DD#\D7\EBur\A6h?\EF0\FD\D1P\B9C\B7\00\F5\18]\BF<Uv\FD\F2L\BA\CA3=\A7\A6\F4\FA5\CC!M\D9R\DA\94\E1/s^7f\BF\D7(W\A3\D8\94\07U\06\90\156\E2\C3\C6]\9A\A2\8D\FDL\D5\07\0CU\DB\B4V\1B[`vc\BDl\F6Txu\B2\C4\5C*\E9/\9D\BCV\BE\F4}\E4\8E\C5w\FA=U~\B5\19\87uO\CB\87u\A4\99\B8\DAo\E4\86,\9F\95\97\16\8B\95\BDA\AF\AC\C9\A5q\DD\B4\5C]\FE\85g\E5sgP\D1Ss\03\81\94\14\12\14{\8A>\C9\D3\83Z\8D.\85;\BE\12\92\05\BD\E4\9Ag\B5{\C9\9A'\98\AA\9CA\C9\90\5Cu\01Q\84+\EB\D1\05\D4\A33\8A~\A91\BC\05|Y\00\0Aj\EA\B4\E7#\18\E1\C5\1A\06N\C3\8D\F2k::\07\9A\8E2\CD\F3\86\E6\93\D4\01RY\07,\A2*\AB\B2\94\9F\1B\85G\E8\88\FC\1E\E2\C6M\A9N.>\C4:\B8f\C5m\DA\1B\0D\F4\FE\BE\04\15D\83y\97R\EF\AD\D4{\AF\91\0A</w\0F\1F\0D\C7\A4\90h&\96\99\13\F2\8A\919\88\82DIb\D6\9C\D0iD\16\15Jh\B4\D5@\CE-\94\9C\1Fa\AA\06\0D\CAw\D1\BE\B9a\18\C3]}\BA22n\9A\8E\D3\C6\8E0\0Av\1A\14\8CP\05\F9a\FC\CAK&\8F\7F\AB\18\8A\8D!m\CA\FF\A4\8DD\DB\AD\8CuqC\B4\BD\84F[\EFxD\DB/\D2h\1B\AB\10mo4t\85\83\12}\A9\9E\E8s\A9h<w\8C\A7\22\A5)}g\E5X\1B6\D0\F9jJ\E7\CB\99\AA]\06\15\B7R\B6t\0C\E3\D7\8C\A7\C3\E5{iK\87\18\EDB\A35\D8\D0?~\E2\D1\B1\8D\7F\87\AB\8B\7F\11\83U\1B)-\D6\EAi\D1D\05^\90;.O\C2f.b\16{D\9E\A4A!\B1\09_\05\04\C4\88YJ\96\9E\9E\A7V\17\05\B7\19h\F3\1C\A5\CD\93L\D5\A8\C1\84\1Bi\C7\F8\CBv\CC|\DA1\D3\B4\1F\1A\8Cp\82\9EJ\DBz\97\D1/f\D0\EF\DB\D4\C5/\EB]\FCy*\EE\13\B9\D5\0F]\B5U\94\DD\C9\17B\84YJ\10\87'\B6F\E3I\B8\DC\1C\8C\C6\CDITQO\93^6\CFX,\87K\F3\0A2\19\91\C7\E7\AB\CC\CD\D1\C2\B7\04\EE?V\ED076\9A[Z\8B\0B\B6\AC\E0\E2\9D\A90\F1\CB\AA\96\96\96\8E\C5-3f\C8\0FB\DA\A7\CB\B3\1BQ\A1\A89}u\A6\ABG+\D8^\C7x\B1\CF\10l=4\D8Z\C7#\D8>J\83\ED\B6\0A\C16a\E8r'\ED\F2e\FA.\9FGE#x%\D1'\A5\A3\ED]\95\A3m\B7a\D8l\A6\C3\E6CL\D5\E4D\88\B6\C7hK\B73\DA\A5F+\EF&\D1Vv\E9\D8\86\DB\BB\AA\0B\B7\DB\0Df]I\89\F1A=1lT\E0\85\B9\07\94pk&\D6\0C'\E4\D6\BC]]\C8M\1B\B8\F3\18\E5\CE)\A6j\CF\84\08\B9\A6\B7i[?c\F4\EB5\E8\F7\02u\F3Sz7\9F\A4\E2\EE\CA\AD>BB\AE\EC\E3\91\C4\DC\E6f\F9\D2\A1B/9i\08\BFr\E1b6\E0\EAZ\19\93\00{\90\F1\D9\80!\C0\DEH\03\AC\7F<\02\EC\8F\AA\CFf\FBO#\9B\15\A2|\E9\D4dJ\E5\F8z\B3a\8C|\8D\8E\91/2U3\13e\E5`\1A\BD\0Dg\A7\D4\1D\06\0D=\D4\89V\BD\13\CF\A4\E2\D0\C9\CA\06\1C\FA0x/#\E0&\83\80n\EA\82\AE\B2.x?U\9AJ\1B\BF\D5\83{\AB\0B\E7\B7\18\0C\BC\86z\F0\C3z\0F\BA\A9@K\EEa\F97L\5CR4\C309\95\E2\88-\E6`<\1A&Erx!\DE(\1D\D3\9F\A8.\A6g\0D|\DDF\F9\1Ad\AA\DE:A\16\13\FE\9E6\F6\08\A3\E0N\83\82Y\AA`oY\05\9B\E56'\19\D9\84)\88\8FF\82R\A7\B2H\95\1A\C1\8Bd\A3\1B\94\0F06\1F0\04e\89\06\E5\EB\C7#(\FF\B0\FA\A0<x\1AA9\D6\D59\E2\A0\BC\B7\FA\A0\BCk\C2\07\E5\DD\A7\19\94u\8E4\06\E5=\A3\19\94!m\FC\82\F2\D1\EA\82\F2>\83\81WS\0F^\AE\F7\A0\93\0A\5C\96{H\88n\8F\84\A2\9C\D0d\96\B3\ED&\B3\14\C1C\A7P\A8\B0\C6\1B\E3\F8.\08\1E\22$?Y]H\DEo`k\9C\B2\B5\93\A9\9A\9B !\F9\09\DA\D8'\19\05o3(8@\15L\97U\B0\C5\10\92\15.\A9QX9S\98&C\EFiLv1F\DFc\88\C9\B3iL\9E4\1E1y\90\C6\E4D\85\98|\D0\D0Cn:\18,\FA\C10\9F\8A\C6\CC\98\E8\12\93\FC\D6\11?e;R\FDS\B6C\13\FE)\DB\ED\A7\F9\94M*\FF\94\ED\F0h>e\93\C6/$\EF\AD.$\DFa0o=\F5^\BB\DE{\C5;\F3\E4\EE$+\1B\5C!\FEJ\91\A4\18\8F\C5E|\96\0E\C1\E1\EAB\F0\DD\06f.\A3\CC\5C\C4T\BDsb\ACt\84i[\01F\BF\BB\0C\FA\AD\A0\9E\B5\EB={.\157'w[\F1\82\834&+\0C\02\A3\EBIC\E0\5CE\03\A7s<\02\E7\13\D5/\E1\1E=\8D%\5C\F99\E5H\97p\8FU\BF\84\9B\9F\D0K\B8\F7\8E\E6\12\EE\18?\FA-<\BA\AE*\96\DDg0\EB\0AJ\8Cuzb4S\81\8Bs'\B0\86\B8\DD,\88I\0E\EBz\82Y\16c\8E\06\11\DE\94\B5\C4\D2s\AD\A9\BA\A8v\BF\818OS\E2<\C6T=>1\1E\99\99h[o3\FA\9D0\E8\F7\0A\F5\F1\0Bz\1F\7F\9A\8A;\99[}\9C\AC\DF\12\BAh\0B\B4\82\94\88\85\B8\DE\84\BCj[pzR\ECI\CA\9E\8FDQ\18W\AB\B6\CC(,\FE\E2$\16}EI>WXw\97\22Mf,\FC\C6\E2\D1n8C0\07z\95E\E0x\5CL\C4\A2\F2.<\E4lg\9C\0B\EB\1E\9E\C9\CA\ACPD\8C\FERn\15\BFR\DB'\FB\B1;\91\8C\C6\8B^\9D\99T\5C\A5\EA\D7'\17\FC\1Dy\8Fo\91\F6\02\DC\A9o\E1\EBl\E5\15\B9`\90l\8A\A7\DB\A0\E1\D4\18n\D0\A0Jd\B7W\B8n\E4\DB+\5C\CBZ\F7`\09\EB\D8\1A\0F\94\A8\C1j#\95\D2f^\F5\DA\9C\CF\B6\A4\BC\AA\0AY\F6\F6\C26\1A\0B\B5\0A7\90\0A\D3I\85:\B2y\06\BBY\89`\D8\AC\84\BD8\C0^L\8C\E8\D0N\F2\E4\E4F\CD\88u\B47\DA\F4F\D41F\D4\ADyq\A8W\A7Y\E3\F8\E2\F7p\0B\AF\81\12\15\82Z\05\8ET\B8FSa\83\DC\92\FC\92\F6%\95\FC\E8\ABT\C1\CBv*W\D4\A9\EA\FE\0C\AC\B3D\A3\A7\17k'\B7\92\93\F3\C9\C9\D9\EAV\0D\85_5\B3>\ED\AC\DE\A7z}\1F\AF\CE\A7\9D\95|\1A\1C\B9O\D7U\AA\B0\96}\E17X\FE\85_7\CF{\C1gv\E8\C4Gm\E8\C4+\0D\9D\1B\CB\0D\9D\B0a\E8\B0=\19\1AqO\D6<]\AE'\17\B1\124F\BA\B8v\BB\BE+\BB\C6px\B4\B0\CAt\B1\CAh\FB\F9PoF\8C\DE\A4}\B1\AD\A8/\94ng\AF\8E\19#\11\B53:\86\94\BD\98\E8aeE\9DO\F48\9B\DD\95h\08\BA\F6\8D\1A]\FB*\D15Q\8E\AE\DD\15\E8\9A\1A9]S\D5\D15U\91\AE\C9\F1\A3k\B2\22]\B7\97\A3k\BA\12]{\CB\D1\B5g\AC\E9\BA\88\15\A5\D8\E9\B1\F9\82\EDv\AF\8E\A0\03\A3F\D0\81J\04\ED/G\D0\9B+\A4\22;\CA\A5\227U\CF\DE)\AC\11\1Fl\A8n\DA\BC\A9\D2\B4\99\19\BFT$S1\15\B9\A5\1Cy\B3F\F2\B2\DE\DC9bo\D6\1C\AA\CE\9B;+y\F3\D6\B1NB\16\B1\A2\14o\BA\05\81W7\F4\A0C\E4\C0\A8\0D\91\03\95\86\C8`\B9!\B2\B7\C2\10\D9]n\88\EC\A9\BESkY#\9A/\AB\AES\F7T\EA\D4]\E37DvU\1C\22\FB\CA\0D\91\FD\95\86\C8m#\F6f\E3\C2\EA\BCy[%o\E6\C6o\88\E4*\0E\91{Fm\88\DCSi\88\1C,7D\8ET\18\22\B7\97\1B\22\87\AB\EF\D4\A9\AC\11\F5\B7W\D7\A9\87+u\EA\A1\F1\1B\22\87*\0E\91;\CA\0D\91\BB+\A5@w\95K\81\EE\1C\BF\14\E8\CE\8A)\D0\C9Q#\EF\C9J\E4=Z\8E\BC\C7*\E4\E8\F7\8E<Go\A9.G\BF\B7b\8E\9E\1F\BF\1C=_1G\BF\AF\1CA\EF\AFD\D0\13\E5\08z|\FC\08z\BC\04A\C9^K\BD\F2\1B\F1\DE\C2.\9F\C1\5Cq\D0\C8\16\BD\FE\C6\EC\BFD\8B\E5\ED\93\C8\FB\F2\0E\F9\EFr\D0\13v\8F_\F0\BA0\E2\03n\DE\E5\F0\F1^\B1\D4\1F\8B0\DDG\A4;\1C\0E*\DD\C9n,G\B6\0CNn\B1\B7{l\0E\B7M\FE\13\12\DANN\9C\BD_^\DB\EA\E8\C8\EE\0EJ\11\C1\AF\ECi\A5\BD{\AF\16jJ\CA/\F5\AB\A5v\AF_py\BCn\91\E7\05.\E0\0B\08vOI\15\8F\C9*\FA\8AT\5CP\AC\E2\0EuG\E3\EC\BEX\9C\FC5\17y\A1\9F\E8\B1H\F9\EB\1B\DAs\A4\E7\8BkhJ\AD$J\A9U\EC\F6\A2*\D0\D0\ED\F0:}\01\DE\E3qsN\B7\DD\C5\97\D40I4t\DA\8A4\A4\E3*\ABIg\5C\A3\16\B2\AE\D1\B4\F0\FA=.^p8\F8\A0\CF\CDy\1D\81@9\C1^\E7\D0\82\C9\CF\C9\0D\82I\A1Q0)\ADV\F06\22\D8\E5*-X}\D1\8D\D9\D5K)\D3\C4\B6B\ACW)\ACVjN\96\EAsS\A9\CB\0DdUw\BA\B6\F7\07\1B\A5p\80s\F4\B7\90\0D\A4#\D9A)\D2\1D\ED\12\99\1D\D4\0AE\9ANMd[\DFB\99\DD\ED\17x\E8\E3q:\83\1C'\FA\DC%\15\BA\97(\04\8AP\85,T\A1\C2_\92\F1\049\0Co{\83\AA\97C\DB\81;\BBW\88\FA\95\87C\CC\E8\A6\C5\9AfNyt\D3\13\C4cA\87\C0\89\A2\DB\EE\F0\DA\5C\BC\8F+\A5\E0\A4\0F\CB\0A:\1Dt\BB\8D\9A\14i\CF\85\F6\DC2\C7=\97m\5C\B7~\E3Ud\17g\CEi\13=\BE@@\14x\8E\0B\18\FF\B8Lv\B0P\97(\BB@\19[\85\9Fl=\AF\9Cy\15\0F-\BF\C3l\B2Q;\8F\D9d\A3v\C1k\F2\16\AF\FAM6jNi\B3\5C\8D\F6k?\A5\D1\F2[l\D4\9E\A9>2T\B7\D8\A8q\D0\B6\962U\CFP\AA\AA\BBY\EC\95+\CA\BBY\DC4\8C\87\E6\A9Q\FF\C3p\F0R\E5'z\C5\96\CC7<'\F5\D2\E7\A4M\FA\E7\A4\0B\E8S\BF\19\83\EA|4\8Dy\D0X\F5S@\D3;dZ[\F0\86\E6~2\ADM9*3\EB-|\8A\EC\99\CDc\F1\F4\AF&Ef\F1\CD\9A\A4yD\D2\07\B5Y|\A5|\89\BC\15\A7\83\D9\8As\09u\E79\F9]\A9\D2\7F\FA\8B5o~\91yd\C4K\F2\80*\8E\B8t\B6\1E\D0f\1E\ED\EFk\B13M\936\EA\AA\9C\9D\83D\9A\A7\AD\AD\944\F9W^\CCV\E8\A4@\93e\85,\17)\A9B\D4\A1\B9\A6\19\C7`\FC\94\C3\95\B6\FE\AA\FBw\14\CC.\BF\D7\97\E1\22\DDF\87jq\E4\E7(x\BC\CA\B6&\C4\C6g\B3\04\14\98K\9F\DB\B6\94P\C4P\DC}\0FH\B4\D2\E8\92\D3\D8\1C\F1\5C\A5\8D\86\FFA\C1Z\E5K\FC\E3\903g\B4\0C\AD{\10\AD}\F3\BDt\B9j\E4\A4 \19\86\CA\97\FA\158\F6\8Dy7\B7\92\FD\EDN\8D~\BBu~x\F5\85\EA\EB_\F8\0C\0A\AE==\99\B1Y\A0\E5\B9\A5\CF\9D7\05\05\EB\0C\C5\DB\A7B\CD\A7G\D5\F2\99\DBPP?\96}6#\8F\82YUU\8DJ(\F8>\E3hmKG\B5$q)\99\C0\C6R\E1Y\B5(Xl(\8E\9F\85\FE\FAI\99\EB\CE\89\A0\A0e\18\04x\94\AC\0B\94>\B7\ED\04y\0C]}[\E7:P\E0-.i8\07%\17W\DF\C2\C8\B7\8E\DC\DE\0F\DC\02\0C\02\FB\80\83\C0I\00\81o\FB\A7\80\CF\02O\00O\03\CF\00_\03\DE\04\BE\0B\FC\12\F8-\F0{\E0Ox\5C\06\DF\F7\80\E5=\18\1C=\F3\008\BD\E7<\C0\0C\5C\08X\80V\C0\05\B4\01\AB\80\B5\00X\D1\B3\01\B8\12\B8\06\B8\0E\E0\00\04\A9\9E. \06\A4\804\00N\F5`b\EE\D9\03\EC\07\E0\EB\9ES\C0#\C0\97\80g\81\D7\81\7F\02~\06\FC\0A\F8\1D\F0\0E\F0g,\0BL\02\E0\B1\DEz\E0\0C\E0l\E0|\E0\22`5\B0\1E\B8\1C\B8\02\B8\0A\B8\16\B8\1E\E0\81\AD@\18\88\03\DB\01\E8\D0\0B\1Dz\0F\03w\03\C7\00\F8\AE\17\BE\EB\85\EFz\E1\BB^\F8\AE\17\BE\EB\85\EFz\E1\BB\DEo\00\AF\00o\00\E8\B5\DE\EF\03\FF\0A\FC\07\F0\0B\E07\00f\A0\DEw\F1\9C\B4\06\80\EF\D2\F0]\1A\BEK\C3wi\F8.\0D\DF\A5\E1\BB4|\97\86\EF\D2\F0]\1A\BEK\C3wi\F8.\0D\DF\A5\E1\BB4|\97\86\EF\D2\F0]z\17\903\99\D2\87\80;\C9\CB$\00|\97\86\EF\D2\F0]\FA3\C0\E7\81\A7\80\AF\00\CF\03/\01\DF\04~\00\FC\18\F8)\80>O\A3\CF\D3\E8\F34\FA\BCo\0Ep&\00\C6\F6\BD\0Fh\00\96\01\CD\00x\DD\E7\050\BF\F4af\EE\DB\04|\14\E8\00\A2@\12\00\EF\FA\C0\BB>\F0\AE\EF\0E\E0(p\1C\C0T\D9\F7\09\00\E3\AC\EFs\C0\17\80/\03\CF\01_\07\E0\BB>\F8\AE\0F\BE\EB\83\EF\FA\E0\BB>\F8\AE\0F\BE\EB\83\EF\FA\E1\BB~\04\E2\FE\99\00\F8\DE\BF\008\17x?\B0\04X\0E\A0\CF\FB\D1\E7\FD\E8\F3~\F4y?\FA\BC\1F}\DE\0F\DF\F5\F7\00{\81\03\C0\11\00\09G\FF}\C0\03\C0\C3\C0\A7\81\C7\81'\01\F0\AE\1F\BC\EB\7F\11x\19x\95<\AD\05\DE\02\FE\13\F85\9E:\82w\19\F0.\03\DEe\C0\BB\0Ct\C8@\87L\0B\E0\04|\C0J\E0\12\00:d\C0\BB\0Cx\97A\FFe\D0\7F\19p?\03\EEg\C0\FD\0Cx\97\01\EF2\E8\BF\0Ct\C8@\87\0Ct\C8@\87\0Ct\C8@\87\0Ct\C8\FC\08@f\99\81\0E\19\A2\C3\7F\03\7F\C4\C3`\8C\FB\1D\93\81\1980\FD\1F" }, section "__DATA,__note.rustc"
@llvm.used = appending global [1 x i8*] [i8* getelementptr inbounds ({ [7414 x i8] }* @rust_metadata, i32 0, i32 0, i32 0)]
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #0
declare void @llvm.memmove.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i32, i1) #0
declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #0
declare i32 @upcall_rust_personality() #0
declare void @upcall_reset_stack_limit() #0
define void @"_ZN10ValidUsage10ValidUsage5Valid17_1e8f9dbf9d8188c814_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, i64) #1 {
"function top level":
%3 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 0, i64* %3, align 8
%4 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 1
store i64 %2, i64* %4, align 8
ret void
}
define void @"_ZN6Action6Action4Call17_9e9a747d18168a1e14_0$x2e8$x2dpreE"(%enum.Action* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*) #1 {
"function top level":
%3 = getelementptr inbounds %enum.Action* %0, i64 0, i32 0
store i64 0, i64* %3, align 8
%4 = getelementptr inbounds %enum.Action* %0, i64 0, i32 1
store void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)* %2, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %4, align 8
ret void
}
define void @"_ZN6Action6Action8CallMain17_b2673849a278305b14_0$x2e8$x2dpreE"(%enum.Action* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*) #1 {
"function top level":
%4 = getelementptr inbounds %enum.Action* %0, i64 0, i32 0
store i64 1, i64* %4, align 8
%5 = getelementptr inbounds %enum.Action* %0, i64 0, i32 1
%6 = bitcast %str_slice* %2 to i8*
%7 = bitcast void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %5 to i8*
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 16, i32 8, i1 false)
%8 = getelementptr inbounds %enum.Action* %0, i64 0, i32 2, i64 8
%9 = bitcast i8* %8 to void ({ i64, %tydesc*, i8*, i8*, i8 }*)**
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %3, void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %9, align 8
ret void
}
define void @"_ZN11UsageSource11UsageSource6UsgStr17_4518e7c6172c203814_0$x2e8$x2dpreE"(%enum.UsageSource* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture) #1 {
"function top level":
%3 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 0
store i64 0, i64* %3, align 8
%4 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 1
%5 = bitcast %str_slice* %2 to i8*
%6 = bitcast %str_slice* %4 to i8*
tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* %5, i64 16, i32 8, i1 false)
ret void
}
define void @"_ZN11UsageSource11UsageSource7UsgCall17_f5952b30e8baf33714_0$x2e8$x2dpreE"(%enum.UsageSource* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*) #1 {
"function top level":
%3 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 0
store i64 1, i64* %3, align 8
%4 = getelementptr inbounds %enum.UsageSource* %0, i64 0, i32 1, i32 0
%.c = bitcast void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %2 to i8*
store i8* %.c, i8** %4, align 8
ret void
}
declare void @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
define void @"_ZN10rustc_help16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #2 {
"function top level":
%__adjust.i = alloca { i8*, i64 }, align 8
%__arg = alloca { i8*, i64 }, align 8
%1 = call { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* @"_ZN2os4args16_707125f9258e1ff14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
%2 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, i64 0, i32 0
%3 = load i64* %2, align 8
%4 = icmp eq i64 %3, 0
br i1 %4, label %cond, label %next
next: ; preds = %"function top level"
%5 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, i64 0, i32 2, i64 0
%6 = bitcast { i8*, i64 }* %__adjust.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %6)
%7 = load { i64, i64, [0 x i8] }** %5, align 8
%8 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 2, i64 0
%9 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 0
%10 = load i64* %9, align 8
%11 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0
store i8* %8, i8** %11, align 8
%12 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1
store i64 %10, i64* %12, align 8
%13 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }*
%14 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %13)
to label %"normal return1" unwind label %unwind
cond: ; preds = %"function top level"
invoke void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([55 x i8]* @str10798, i64 0, i64 0), i64 121, i64 0, i64 0)
to label %"normal return" unwind label %unwind
"normal return": ; preds = %cond
unreachable
unwind: ; preds = %next, %cond
%15 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%16 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, null
br i1 %16, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit", label %cond.i
cond.i: ; preds = %unwind
%17 = load i64* %2, align 8
%18 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, i64 0, i32 2, i64 0
%19 = bitcast { i64, i64, [0 x i8] }** %18 to i8*
%20 = getelementptr inbounds i8* %19, i64 %17
%21 = bitcast i8* %20 to { i64, i64, [0 x i8] }**
%22 = icmp ult { i64, i64, [0 x i8] }** %18, %21
br i1 %22, label %iter_vec_loop_body.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i"
iter_vec_loop_body.i.i: ; preds = %cond.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i"
%23 = phi { i64, i64, [0 x i8] }** [ %27, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i" ], [ %18, %cond.i ]
%24 = load { i64, i64, [0 x i8] }** %23, align 8
%25 = icmp eq { i64, i64, [0 x i8] }* %24, null
br i1 %25, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i", label %cond.i.i.i.i
cond.i.i.i.i: ; preds = %iter_vec_loop_body.i.i
%26 = bitcast { i64, i64, [0 x i8] }* %24 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %26)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i": ; preds = %cond.i.i.i.i, %iter_vec_loop_body.i.i
%27 = getelementptr inbounds { i64, i64, [0 x i8] }** %23, i64 1
%28 = icmp ult { i64, i64, [0 x i8] }** %27, %21
br i1 %28, label %iter_vec_loop_body.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i", %cond.i
%29 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %29)
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit": ; preds = %unwind, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i"
resume { i8*, i32 } %15
"normal return1": ; preds = %next
call void @llvm.lifetime.end(i64 16, i8* %6)
%30 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1, null
br i1 %30, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit10", label %cond.i5
cond.i5: ; preds = %"normal return1"
%31 = load i64* %2, align 8
%32 = bitcast { i64, i64, [0 x i8] }** %5 to i8*
%33 = getelementptr inbounds i8* %32, i64 %31
%34 = bitcast i8* %33 to { i64, i64, [0 x i8] }**
%35 = icmp ult { i64, i64, [0 x i8] }** %5, %34
br i1 %35, label %iter_vec_loop_body.i.i6, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i9"
iter_vec_loop_body.i.i6: ; preds = %cond.i5, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i8"
%36 = phi { i64, i64, [0 x i8] }** [ %40, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i8" ], [ %5, %cond.i5 ]
%37 = load { i64, i64, [0 x i8] }** %36, align 8
%38 = icmp eq { i64, i64, [0 x i8] }* %37, null
br i1 %38, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i8", label %cond.i.i.i.i7
cond.i.i.i.i7: ; preds = %iter_vec_loop_body.i.i6
%39 = bitcast { i64, i64, [0 x i8] }* %37 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %39)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i8"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i8": ; preds = %cond.i.i.i.i7, %iter_vec_loop_body.i.i6
%40 = getelementptr inbounds { i64, i64, [0 x i8] }** %36, i64 1
%41 = icmp ult { i64, i64, [0 x i8] }** %40, %34
br i1 %41, label %iter_vec_loop_body.i.i6, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i9"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i9": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i8", %cond.i5
%42 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %1 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %42)
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit10"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit10": ; preds = %"normal return1", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i9"
%43 = getelementptr inbounds { i64, i64, [0 x i8] }* %14, i64 0, i32 2, i64 0
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %14, i64 0, i32 0
%45 = load i64* %44, align 8
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0
store i8* %43, i8** %__adjust.sroa.0.0..idx, align 8
%__adjust.sroa.1.8..idx15 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1
store i64 %45, i64* %__adjust.sroa.1.8..idx15, align 8
%46 = bitcast { i8*, i64 }* %__arg to %str_slice*
invoke void @"_ZN5usage16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %46)
to label %"normal return2" unwind label %unwind3
"normal return2": ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit10"
%47 = icmp eq { i64, i64, [0 x i8] }* %14, null
br i1 %47, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit", label %cond.i11
cond.i11: ; preds = %"normal return2"
%48 = bitcast { i64, i64, [0 x i8] }* %14 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %48)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit": ; preds = %"normal return2", %cond.i11
ret void
unwind3: ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_free_11009E.exit10"
%49 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%50 = icmp eq { i64, i64, [0 x i8] }* %14, null
br i1 %50, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit13", label %cond.i12
cond.i12: ; preds = %unwind3
%51 = bitcast { i64, i64, [0 x i8] }* %14 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %51)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit13"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit13": ; preds = %unwind3, %cond.i12
resume { i8*, i32 } %49
}
define void @"_ZN7cmd_run17_64cd22cf85a72bbc14_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 {
"function top level":
%__trans_ret_slot.i = alloca {}, align 8
%ret.i62 = alloca { i64, i64, [0 x i8] }*, align 8
%ret.i = alloca { i64, i64, [0 x i8] }*, align 8
%__arg.i = alloca %str_slice, align 8
%__arg2.i = alloca %str_slice, align 8
%3 = alloca %"enum.std::option::Option<~str>[#1]", align 8
%4 = alloca %"struct.std::path::PosixPath[#1]", align 8
%__arg = alloca { i8*, i64 }, align 8
%__adjust2 = alloca { i8*, i64 }, align 8
%__arg6 = alloca %str_slice, align 8
%5 = alloca [3 x { i64, i64, [0 x i8] }*], align 8
%__adjust7 = alloca { i8*, i64 }, align 8
%__adjust15 = alloca { i8*, i64 }, align 8
%__arg20 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg22 = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8
%__adjust27 = alloca { i8*, i64 }, align 8
%__arg33 = alloca { i8*, i64 }, align 8
%__arg35 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%.sub = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 0
%6 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1
%7 = load i64* %6, align 8
%8 = icmp sgt i64 %7, 7
br i1 %8, label %match_case, label %compare_vec_len_next
match_case: ; preds = %"function top level"
%9 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0
%10 = load { i64, i64, [0 x i8] }*** %9, align 8
%11 = getelementptr inbounds { i64, i64, [0 x i8] }** %10, i64 1
%12 = add i64 %7, -8
%13 = load { i64, i64, [0 x i8] }** %10, align 8
%14 = getelementptr inbounds { i64, i64, [0 x i8] }* %13, i64 0, i32 2, i64 0
%15 = getelementptr inbounds { i64, i64, [0 x i8] }* %13, i64 0, i32 0
%16 = load i64* %15, align 8
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0
store i8* %14, i8** %__adjust.sroa.0.0..idx, align 8
%__adjust.sroa.1.8..idx145 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1
store i64 %16, i64* %__adjust.sroa.1.8..idx145, align 8
%17 = bitcast { i8*, i64 }* %__arg to %str_slice*
call void @"_ZN4path9PosixPath17_7c6da4115ba3bd6514_0$x2e8$x2dpreE"(%"struct.std::path::PosixPath[#1]"* %4, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %17)
%18 = bitcast %"struct.std::path::PosixPath[#1]"* %4 to { i64, %tydesc*, i8*, i8*, i8 }*
invoke void @"_ZN4path14__extensions__10meth_225708filestem17_b384379c13763c9b14_0$x2e8$x2dpreE"(%"enum.std::option::Option<~str>[#1]"* %3, { i64, %tydesc*, i8*, i8*, i8 }* %18)
to label %"normal return" unwind label %unwind
compare_vec_len_next: ; preds = %"function top level"
%19 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 1, i64* %19, align 8
br label %join
"normal return": ; preds = %match_case
%20 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1
%21 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %20, align 8
%22 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21, null
br i1 %22, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit, label %cond.i.i.i
cond.i.i.i: ; preds = %"normal return"
%23 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21, i64 0, i32 0
%24 = load i64* %23, align 8
%25 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21, i64 0, i32 2, i64 0
%26 = bitcast { i64, i64, [0 x i8] }** %25 to i8*
%27 = getelementptr inbounds i8* %26, i64 %24
%28 = bitcast i8* %27 to { i64, i64, [0 x i8] }**
%29 = icmp ult { i64, i64, [0 x i8] }** %25, %28
br i1 %29, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i"
iter_vec_loop_body.i.i.i.i: ; preds = %cond.i.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i"
%30 = phi { i64, i64, [0 x i8] }** [ %34, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i" ], [ %25, %cond.i.i.i ]
%31 = load { i64, i64, [0 x i8] }** %30, align 8
%32 = icmp eq { i64, i64, [0 x i8] }* %31, null
br i1 %32, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i", label %cond.i.i.i.i.i.i
cond.i.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i.i
%33 = bitcast { i64, i64, [0 x i8] }* %31 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %33)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i": ; preds = %cond.i.i.i.i.i.i, %iter_vec_loop_body.i.i.i.i
%34 = getelementptr inbounds { i64, i64, [0 x i8] }** %30, i64 1
%35 = icmp ult { i64, i64, [0 x i8] }** %34, %28
br i1 %35, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i", %cond.i.i.i
%36 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %21 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %36)
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit: ; preds = %"normal return", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i"
%37 = getelementptr inbounds %"enum.std::option::Option<~str>[#1]"* %3, i64 0, i32 0
%38 = load { i64, i64, [0 x i8] }** %37, align 8
%39 = bitcast {}* %__trans_ret_slot.i to i8*
call void @llvm.lifetime.start(i64 0, i8* %39)
%40 = bitcast %str_slice* %__arg.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %40)
%41 = bitcast %str_slice* %__arg2.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %41)
%42 = icmp eq { i64, i64, [0 x i8] }* %38, null
br i1 %42, label %match_else.i, label %"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit"
match_else.i: ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit
%.sroa.010.0..idx.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 0
store i8* getelementptr inbounds ([20 x i8]* @str11098, i64 0, i64 0), i8** %.sroa.010.0..idx.i, align 8
%.sroa.111.8..idx12.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 1
store i64 20, i64* %.sroa.111.8..idx12.i, align 8
%.sroa.07.0..idx.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 0
store i8* getelementptr inbounds ([56 x i8]* @str11099, i64 0, i64 0), i8** %.sroa.07.0..idx.i, align 8
%.sroa.18.8..idx9.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 1
store i64 56, i64* %.sroa.18.8..idx9.i, align 8
invoke void @"_ZN3sys14__extensions__10meth_127919fail_with16_db4c44d01ce411614_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg.i, %str_slice* %__arg2.i, i64 320)
to label %"normal return.i" unwind label %"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11104E.exit4.i"
"normal return.i": ; preds = %match_else.i
unreachable
"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11104E.exit4.i": ; preds = %match_else.i
%43 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
resume { i8*, i32 } %43
"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit": ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit
call void @llvm.lifetime.end(i64 0, i8* %39)
call void @llvm.lifetime.end(i64 16, i8* %40)
call void @llvm.lifetime.end(i64 16, i8* %41)
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 2, i64 0
%45 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 0
%46 = load i64* %45, align 8
%47 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 0
store i8* %44, i8** %47, align 8
%48 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 1
store i64 %46, i64* %48, align 8
%49 = bitcast { i8*, i64 }* %__adjust2 to { i64, %tydesc*, i8*, i8*, i8 }*
%50 = bitcast { i64, i64, [0 x i8] }** %ret.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %50)
%51 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %49)
to label %.noexc unwind label %unwind4
.noexc: ; preds = %"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit"
store { i64, i64, [0 x i8] }* %51, { i64, i64, [0 x i8] }** %ret.i, align 8
%52 = bitcast { i64, i64, [0 x i8] }** %ret.i to { i64, %tydesc*, i8*, i8*, i8 }*
%53 = getelementptr inbounds { i64, i64, [0 x i8] }* %51, i64 0, i32 0
%54 = load i64* %53, align 8
%55 = lshr i64 %54, 1
%56 = or i64 %55, %54
%57 = lshr i64 %56, 2
%58 = or i64 %57, %56
%59 = lshr i64 %58, 4
%60 = or i64 %59, %58
%61 = lshr i64 %60, 8
%62 = or i64 %61, %60
%63 = lshr i64 %62, 16
%64 = or i64 %63, %62
%65 = lshr i64 %64, 32
%66 = or i64 %65, %64
%67 = add i64 %66, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %52, i64 %67)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit" unwind label %unwind.i40
unwind.i40: ; preds = %.noexc
%68 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%69 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%70 = icmp eq { i64, i64, [0 x i8] }* %69, null
br i1 %70, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit49", label %cond.i.i2.i
cond.i.i2.i: ; preds = %unwind.i40
%71 = bitcast { i64, i64, [0 x i8] }* %69 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %71)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit49" unwind label %unwind4
unwind: ; preds = %match_case
%72 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%73 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1
%74 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %73, align 8
%75 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74, null
br i1 %75, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit47, label %cond.i.i.i42
cond.i.i.i42: ; preds = %unwind
%76 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74, i64 0, i32 0
%77 = load i64* %76, align 8
%78 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74, i64 0, i32 2, i64 0
%79 = bitcast { i64, i64, [0 x i8] }** %78 to i8*
%80 = getelementptr inbounds i8* %79, i64 %77
%81 = bitcast i8* %80 to { i64, i64, [0 x i8] }**
%82 = icmp ult { i64, i64, [0 x i8] }** %78, %81
br i1 %82, label %iter_vec_loop_body.i.i.i.i43, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i46"
iter_vec_loop_body.i.i.i.i43: ; preds = %cond.i.i.i42, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i45"
%83 = phi { i64, i64, [0 x i8] }** [ %87, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i45" ], [ %78, %cond.i.i.i42 ]
%84 = load { i64, i64, [0 x i8] }** %83, align 8
%85 = icmp eq { i64, i64, [0 x i8] }* %84, null
br i1 %85, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i45", label %cond.i.i.i.i.i.i44
cond.i.i.i.i.i.i44: ; preds = %iter_vec_loop_body.i.i.i.i43
%86 = bitcast { i64, i64, [0 x i8] }* %84 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %86)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i45"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i45": ; preds = %cond.i.i.i.i.i.i44, %iter_vec_loop_body.i.i.i.i43
%87 = getelementptr inbounds { i64, i64, [0 x i8] }** %83, i64 1
%88 = icmp ult { i64, i64, [0 x i8] }** %87, %81
br i1 %88, label %iter_vec_loop_body.i.i.i.i43, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i46"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i46": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i45", %cond.i.i.i42
%89 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %74 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %89)
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit47
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit47: ; preds = %unwind, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i46"
resume { i8*, i32 } %72
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit": ; preds = %.noexc
%90 = add i64 %54, -1
%91 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%92 = getelementptr inbounds { i64, i64, [0 x i8] }* %91, i64 0, i32 2, i64 0
%93 = ptrtoint i8* %92 to i64
%94 = add i64 %90, %93
%95 = inttoptr i64 %94 to i8*
store i8 126, i8* %95, align 1
%96 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%97 = add i64 %54, 1
%98 = getelementptr inbounds { i64, i64, [0 x i8] }* %96, i64 0, i32 0
store i64 %97, i64* %98, align 8
%99 = getelementptr inbounds { i64, i64, [0 x i8] }* %96, i64 1
%100 = ptrtoint { i64, i64, [0 x i8] }* %99 to i64
%101 = add i64 %100, %54
%102 = inttoptr i64 %101 to i8*
store i8 0, i8* %102, align 1
%103 = load { i64, i64, [0 x i8] }** %ret.i, align 8
call void @llvm.lifetime.end(i64 8, i8* %50)
%104 = bitcast { i64, i64, [0 x i8] }* %38 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %104)
%.sroa.093.0..idx = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 0
store i8* getelementptr inbounds ([6 x i8]* @str10720, i64 0, i64 0), i8** %.sroa.093.0..idx, align 8
%.sroa.194.8..idx95 = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 1
store i64 6, i64* %.sroa.194.8..idx95, align 8
%105 = load { i64, i64, [0 x i8] }** %10, align 8
%106 = getelementptr inbounds { i64, i64, [0 x i8] }* %105, i64 0, i32 2, i64 0
%107 = getelementptr inbounds { i64, i64, [0 x i8] }* %105, i64 0, i32 0
%108 = load i64* %107, align 8
%109 = getelementptr inbounds { i8*, i64 }* %__adjust7, i64 0, i32 0
store i8* %106, i8** %109, align 8
%110 = getelementptr inbounds { i8*, i64 }* %__adjust7, i64 0, i32 1
store i64 %108, i64* %110, align 8
%111 = bitcast { i8*, i64 }* %__adjust7 to { i64, %tydesc*, i8*, i8*, i8 }*
%112 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %111)
to label %"normal return8" unwind label %unwind9
unwind4: ; preds = %cond.i.i2.i, %"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit"
%113 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit49"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit49": ; preds = %unwind.i40, %cond.i.i2.i, %unwind4
%eh.lpad-body = phi { i8*, i32 } [ %113, %unwind4 ], [ %68, %cond.i.i2.i ], [ %68, %unwind.i40 ]
call void @upcall_reset_stack_limit()
%114 = bitcast { i64, i64, [0 x i8] }* %38 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %114)
resume { i8*, i32 } %eh.lpad-body
"normal return8": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit"
store { i64, i64, [0 x i8] }* %112, { i64, i64, [0 x i8] }** %.sub, align 8
%115 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 1
%116 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11123, i64 0, i64 0), i64 2)
to label %"normal return12" unwind label %unwind13
unwind9: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit"
%117 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract110 = extractvalue { i8*, i32 } %117, 0
%.fca.1.extract112 = extractvalue { i8*, i32 } %117, 1
br label %cleanup10
cleanup10: ; preds = %cond.i.i52, %cleanup14, %unwind24, %unwind9
%.sroa.0139.0 = phi i8* [ %.fca.0.extract128, %unwind24 ], [ %.fca.0.extract110, %unwind9 ], [ %.sroa.0139.2, %cleanup14 ], [ %.sroa.0139.2, %cond.i.i52 ]
%.sroa.1142.0 = phi i32 [ %.fca.1.extract130, %unwind24 ], [ %.fca.1.extract112, %unwind9 ], [ %.sroa.1142.2, %cleanup14 ], [ %.sroa.1142.2, %cond.i.i52 ]
%118 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0
br label %iter_vec_loop_body.i
iter_vec_loop_body.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", %cleanup10
%119 = phi { i64, i64, [0 x i8] }** [ %.sub, %cleanup10 ], [ %123, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" ]
%120 = load { i64, i64, [0 x i8] }** %119, align 8
%121 = icmp eq { i64, i64, [0 x i8] }* %120, null
br i1 %121, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", label %cond.i.i.i51
cond.i.i.i51: ; preds = %iter_vec_loop_body.i
%122 = bitcast { i64, i64, [0 x i8] }* %120 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %122)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i": ; preds = %cond.i.i.i51, %iter_vec_loop_body.i
%123 = getelementptr inbounds { i64, i64, [0 x i8] }** %119, i64 1
%124 = icmp ult { i64, i64, [0 x i8] }** %123, %118
br i1 %124, label %iter_vec_loop_body.i, label %cleanup11
cleanup11: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", %cond.i81, %unwind37, %cond.i.i77, %unwind30.body, %unwind26
%.sroa.0139.1 = phi i8* [ %.fca.0.extract132, %unwind26 ], [ %eh.lpad-body73.fca.0.extract, %unwind30.body ], [ %eh.lpad-body73.fca.0.extract, %cond.i.i77 ], [ %.fca.0.extract136, %unwind37 ], [ %.fca.0.extract136, %cond.i81 ], [ %.sroa.0139.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" ]
%.sroa.1142.1 = phi i32 [ %.fca.1.extract134, %unwind26 ], [ %eh.lpad-body73.fca.1.extract, %unwind30.body ], [ %eh.lpad-body73.fca.1.extract, %cond.i.i77 ], [ %.fca.1.extract138, %unwind37 ], [ %.fca.1.extract138, %cond.i81 ], [ %.sroa.1142.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" ]
%125 = icmp eq { i64, i64, [0 x i8] }* %103, null
br i1 %125, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", label %cond.i.i
cond.i.i: ; preds = %cleanup11
%126 = bitcast { i64, i64, [0 x i8] }* %103 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %126)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit": ; preds = %cleanup11, %cond.i.i
%.fca.0.insert115 = insertvalue { i8*, i32 } undef, i8* %.sroa.0139.1, 0
%.fca.1.insert118 = insertvalue { i8*, i32 } %.fca.0.insert115, i32 %.sroa.1142.1, 1
resume { i8*, i32 } %.fca.1.insert118
"normal return12": ; preds = %"normal return8"
store { i64, i64, [0 x i8] }* %116, { i64, i64, [0 x i8] }** %115, align 8
%127 = getelementptr inbounds { i64, i64, [0 x i8] }* %103, i64 0, i32 2, i64 0
%128 = getelementptr inbounds { i64, i64, [0 x i8] }* %103, i64 0, i32 0
%129 = load i64* %128, align 8
%130 = getelementptr inbounds { i8*, i64 }* %__adjust15, i64 0, i32 0
store i8* %127, i8** %130, align 8
%131 = getelementptr inbounds { i8*, i64 }* %__adjust15, i64 0, i32 1
store i64 %129, i64* %131, align 8
%132 = bitcast { i8*, i64 }* %__adjust15 to { i64, %tydesc*, i8*, i8*, i8 }*
%133 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %132)
to label %"normal return16" unwind label %unwind17
unwind13: ; preds = %"normal return8"
%134 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract120 = extractvalue { i8*, i32 } %134, 0
%.fca.1.extract122 = extractvalue { i8*, i32 } %134, 1
br label %cleanup14
cleanup14: ; preds = %cond.i.i54, %unwind17, %unwind13
%.sroa.0139.2 = phi i8* [ %.fca.0.extract120, %unwind13 ], [ %.fca.0.extract124, %unwind17 ], [ %.fca.0.extract124, %cond.i.i54 ]
%.sroa.1142.2 = phi i32 [ %.fca.1.extract122, %unwind13 ], [ %.fca.1.extract126, %unwind17 ], [ %.fca.1.extract126, %cond.i.i54 ]
%135 = load { i64, i64, [0 x i8] }** %.sub, align 8
%136 = icmp eq { i64, i64, [0 x i8] }* %135, null
br i1 %136, label %cleanup10, label %cond.i.i52
cond.i.i52: ; preds = %cleanup14
%137 = bitcast { i64, i64, [0 x i8] }* %135 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %137)
br label %cleanup10
"normal return16": ; preds = %"normal return12"
%138 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 2
store { i64, i64, [0 x i8] }* %133, { i64, i64, [0 x i8] }** %138, align 8
%__adjust19.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg20, i64 0, i32 0
store { i64, i64, [0 x i8] }** %.sub, { i64, i64, [0 x i8] }*** %__adjust19.sroa.0.0..idx, align 8
%__adjust19.sroa.1.8..idx92 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg20, i64 0, i32 1
store i64 24, i64* %__adjust19.sroa.1.8..idx92, align 8
%__adjust21.sroa.0.0..idx = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg22, i64 0, i32 0
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE", void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust21.sroa.0.0..idx, align 8
%__adjust21.sroa.1.8..idx91 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg22, i64 0, i32 1
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust21.sroa.1.8..idx91, align 8
invoke void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6, { { i64, i64, [0 x i8] }**, i64 }* %__arg20, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg22)
to label %"normal return23" unwind label %unwind24
unwind17: ; preds = %"normal return12"
%139 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract124 = extractvalue { i8*, i32 } %139, 0
%.fca.1.extract126 = extractvalue { i8*, i32 } %139, 1
%140 = load { i64, i64, [0 x i8] }** %115, align 8
%141 = icmp eq { i64, i64, [0 x i8] }* %140, null
br i1 %141, label %cleanup14, label %cond.i.i54
cond.i.i54: ; preds = %unwind17
%142 = bitcast { i64, i64, [0 x i8] }* %140 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %142)
br label %cleanup14
"normal return23": ; preds = %"normal return16"
%143 = getelementptr inbounds [3 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0
br label %iter_vec_loop_body.i56
iter_vec_loop_body.i56: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i58", %"normal return23"
%144 = phi { i64, i64, [0 x i8] }** [ %.sub, %"normal return23" ], [ %148, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i58" ]
%145 = load { i64, i64, [0 x i8] }** %144, align 8
%146 = icmp eq { i64, i64, [0 x i8] }* %145, null
br i1 %146, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i58", label %cond.i.i.i57
cond.i.i.i57: ; preds = %iter_vec_loop_body.i56
%147 = bitcast { i64, i64, [0 x i8] }* %145 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %147)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i58"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i58": ; preds = %cond.i.i.i57, %iter_vec_loop_body.i56
%148 = getelementptr inbounds { i64, i64, [0 x i8] }** %144, i64 1
%149 = icmp ult { i64, i64, [0 x i8] }** %148, %143
br i1 %149, label %iter_vec_loop_body.i56, label %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11136E.exit59"
"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11136E.exit59": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i58"
%150 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11124, i64 0, i64 0), i64 2)
to label %"normal return25" unwind label %unwind26
unwind24: ; preds = %"normal return16"
%151 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract128 = extractvalue { i8*, i32 } %151, 0
%.fca.1.extract130 = extractvalue { i8*, i32 } %151, 1
br label %cleanup10
"normal return25": ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11136E.exit59"
%152 = getelementptr inbounds { i64, i64, [0 x i8] }* %150, i64 0, i32 2, i64 0
%153 = getelementptr inbounds { i64, i64, [0 x i8] }* %150, i64 0, i32 0
%154 = load i64* %153, align 8
%155 = getelementptr inbounds { i8*, i64 }* %__adjust27, i64 0, i32 0
store i8* %152, i8** %155, align 8
%156 = getelementptr inbounds { i8*, i64 }* %__adjust27, i64 0, i32 1
store i64 %154, i64* %156, align 8
%157 = bitcast { i8*, i64 }* %__adjust27 to { i64, %tydesc*, i8*, i8*, i8 }*
%158 = load i64* %128, align 8
%159 = bitcast { i64, i64, [0 x i8] }** %ret.i62 to i8*
call void @llvm.lifetime.start(i64 8, i8* %159)
%160 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %157)
to label %.noexc71 unwind label %unwind30
.noexc71: ; preds = %"normal return25"
store { i64, i64, [0 x i8] }* %160, { i64, i64, [0 x i8] }** %ret.i62, align 8
%161 = bitcast { i64, i64, [0 x i8] }** %ret.i62 to { i64, %tydesc*, i8*, i8*, i8 }*
%162 = getelementptr inbounds { i64, i64, [0 x i8] }* %160, i64 0, i32 0
%163 = load i64* %162, align 8
%164 = add i64 %163, -1
%165 = add i64 %158, -1
%166 = add i64 %164, %165
%167 = lshr i64 %166, 1
%168 = or i64 %167, %166
%169 = lshr i64 %168, 2
%170 = or i64 %169, %168
%171 = lshr i64 %170, 4
%172 = or i64 %171, %170
%173 = lshr i64 %172, 8
%174 = or i64 %173, %172
%175 = lshr i64 %174, 16
%176 = or i64 %175, %174
%177 = lshr i64 %176, 32
%178 = or i64 %177, %176
%179 = add i64 %178, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %161, i64 %179)
to label %"normal return29" unwind label %unwind.i68
unwind.i68: ; preds = %.noexc71
%180 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%181 = load { i64, i64, [0 x i8] }** %ret.i62, align 8
%182 = icmp eq { i64, i64, [0 x i8] }* %181, null
br i1 %182, label %unwind30.body, label %cond.i.i2.i69
cond.i.i2.i69: ; preds = %unwind.i68
%183 = bitcast { i64, i64, [0 x i8] }* %181 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %183)
to label %unwind30.body unwind label %unwind30
unwind26: ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x203$x5d17_532afdfc68fa17fa15glue_drop_11136E.exit59"
%184 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract132 = extractvalue { i8*, i32 } %184, 0
%.fca.1.extract134 = extractvalue { i8*, i32 } %184, 1
br label %cleanup11
"normal return29": ; preds = %.noexc71
%185 = load { i64, i64, [0 x i8] }** %ret.i62, align 8
%186 = getelementptr inbounds { i64, i64, [0 x i8] }* %185, i64 0, i32 2, i64 0
%187 = ptrtoint i8* %186 to i64
%188 = add i64 %187, %164
%189 = inttoptr i64 %188 to i8*
call void @llvm.memmove.p0i8.p0i8.i64(i8* %189, i8* %127, i64 %165, i32 1, i1 false)
%190 = load { i64, i64, [0 x i8] }** %ret.i62, align 8
%191 = add i64 %163, %165
%192 = getelementptr inbounds { i64, i64, [0 x i8] }* %190, i64 0, i32 0
store i64 %191, i64* %192, align 8
%193 = getelementptr inbounds { i64, i64, [0 x i8] }* %190, i64 1
%194 = ptrtoint { i64, i64, [0 x i8] }* %193 to i64
%195 = add i64 %194, %166
%196 = inttoptr i64 %195 to i8*
store i8 0, i8* %196, align 1
%197 = load { i64, i64, [0 x i8] }** %ret.i62, align 8
call void @llvm.lifetime.end(i64 8, i8* %159)
%198 = icmp eq { i64, i64, [0 x i8] }* %150, null
br i1 %198, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit76", label %cond.i.i75
cond.i.i75: ; preds = %"normal return29"
%199 = bitcast { i64, i64, [0 x i8] }* %150 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %199)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit76"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit76": ; preds = %"normal return29", %cond.i.i75
%200 = getelementptr inbounds { i64, i64, [0 x i8] }* %197, i64 0, i32 2, i64 0
%201 = getelementptr inbounds { i64, i64, [0 x i8] }* %197, i64 0, i32 0
%202 = load i64* %201, align 8
%__adjust32.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg33, i64 0, i32 0
store i8* %200, i8** %__adjust32.sroa.0.0..idx, align 8
%__adjust32.sroa.1.8..idx87 = getelementptr inbounds { i8*, i64 }* %__arg33, i64 0, i32 1
store i64 %202, i64* %__adjust32.sroa.1.8..idx87, align 8
%203 = bitcast { i8*, i64 }* %__arg33 to %str_slice*
%__adjust34.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg35, i64 0, i32 0
store { i64, i64, [0 x i8] }** %11, { i64, i64, [0 x i8] }*** %__adjust34.sroa.0.0..idx, align 8
%__adjust34.sroa.1.8..idx86 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg35, i64 0, i32 1
store i64 %12, i64* %__adjust34.sroa.1.8..idx86, align 8
%204 = invoke i64 @"_ZN3run14process_status17_414f913ecacd531b14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %203, { { i64, i64, [0 x i8] }**, i64 }* %__arg35)
to label %"normal return36" unwind label %unwind37
unwind30: ; preds = %cond.i.i2.i69, %"normal return25"
%205 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind30.body
unwind30.body: ; preds = %unwind.i68, %cond.i.i2.i69, %unwind30
%eh.lpad-body73 = phi { i8*, i32 } [ %205, %unwind30 ], [ %180, %cond.i.i2.i69 ], [ %180, %unwind.i68 ]
call void @upcall_reset_stack_limit()
%eh.lpad-body73.fca.0.extract = extractvalue { i8*, i32 } %eh.lpad-body73, 0
%eh.lpad-body73.fca.1.extract = extractvalue { i8*, i32 } %eh.lpad-body73, 1
%206 = icmp eq { i64, i64, [0 x i8] }* %150, null
br i1 %206, label %cleanup11, label %cond.i.i77
cond.i.i77: ; preds = %unwind30.body
%207 = bitcast { i64, i64, [0 x i8] }* %150 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %207)
br label %cleanup11
"normal return36": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit76"
%208 = icmp eq { i64, i64, [0 x i8] }* %197, null
br i1 %208, label %"normal return39", label %cond.i79
cond.i79: ; preds = %"normal return36"
%209 = bitcast { i64, i64, [0 x i8] }* %197 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %209)
br label %"normal return39"
unwind37: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit76"
%210 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract136 = extractvalue { i8*, i32 } %210, 0
%.fca.1.extract138 = extractvalue { i8*, i32 } %210, 1
%211 = icmp eq { i64, i64, [0 x i8] }* %197, null
br i1 %211, label %cleanup11, label %cond.i81
cond.i81: ; preds = %unwind37
%212 = bitcast { i64, i64, [0 x i8] }* %197 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %212)
br label %cleanup11
"normal return39": ; preds = %cond.i79, %"normal return36"
%213 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 0, i64* %213, align 8
%214 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 1
store i64 %204, i64* %214, align 8
%215 = icmp eq { i64, i64, [0 x i8] }* %103, null
br i1 %215, label %join, label %cond.i.i83
cond.i.i83: ; preds = %"normal return39"
%216 = bitcast { i64, i64, [0 x i8] }* %103 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %216)
br label %join
join: ; preds = %cond.i.i83, %"normal return39", %compare_vec_len_next
ret void
}
define void @"_ZN8cmd_test17_64cd22cf85a72bbc14_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 {
"function top level":
%__trans_ret_slot.i = alloca {}, align 8
%ret.i69 = alloca { i64, i64, [0 x i8] }*, align 8
%ret.i = alloca { i64, i64, [0 x i8] }*, align 8
%__arg.i = alloca %str_slice, align 8
%__arg2.i = alloca %str_slice, align 8
%3 = alloca %"enum.std::option::Option<~str>[#1]", align 8
%4 = alloca %"struct.std::path::PosixPath[#1]", align 8
%__arg = alloca { i8*, i64 }, align 8
%__adjust2 = alloca { i8*, i64 }, align 8
%__arg6 = alloca %str_slice, align 8
%5 = alloca [4 x { i64, i64, [0 x i8] }*], align 8
%__adjust11 = alloca { i8*, i64 }, align 8
%__adjust18 = alloca { i8*, i64 }, align 8
%__arg23 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg25 = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8
%__adjust30 = alloca { i8*, i64 }, align 8
%__arg36 = alloca { i8*, i64 }, align 8
%__arg38 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%.sub = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 0
%6 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1
%7 = load i64* %6, align 8
%.off = add i64 %7, -8
%8 = icmp ult i64 %.off, 8
br i1 %8, label %match_case, label %compare_vec_len_next
match_case: ; preds = %"function top level"
%9 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0
%10 = load { i64, i64, [0 x i8] }*** %9, align 8
%11 = load { i64, i64, [0 x i8] }** %10, align 8
%12 = getelementptr inbounds { i64, i64, [0 x i8] }* %11, i64 0, i32 2, i64 0
%13 = getelementptr inbounds { i64, i64, [0 x i8] }* %11, i64 0, i32 0
%14 = load i64* %13, align 8
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0
store i8* %12, i8** %__adjust.sroa.0.0..idx, align 8
%__adjust.sroa.1.8..idx156 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1
store i64 %14, i64* %__adjust.sroa.1.8..idx156, align 8
%15 = bitcast { i8*, i64 }* %__arg to %str_slice*
call void @"_ZN4path9PosixPath17_7c6da4115ba3bd6514_0$x2e8$x2dpreE"(%"struct.std::path::PosixPath[#1]"* %4, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %15)
%16 = bitcast %"struct.std::path::PosixPath[#1]"* %4 to { i64, %tydesc*, i8*, i8*, i8 }*
invoke void @"_ZN4path14__extensions__10meth_225708filestem17_b384379c13763c9b14_0$x2e8$x2dpreE"(%"enum.std::option::Option<~str>[#1]"* %3, { i64, %tydesc*, i8*, i8*, i8 }* %16)
to label %"normal return" unwind label %unwind
compare_vec_len_next: ; preds = %"function top level"
%17 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 1, i64* %17, align 8
br label %join
"normal return": ; preds = %match_case
%18 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1
%19 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %18, align 8
%20 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19, null
br i1 %20, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit, label %cond.i.i.i
cond.i.i.i: ; preds = %"normal return"
%21 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19, i64 0, i32 0
%22 = load i64* %21, align 8
%23 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19, i64 0, i32 2, i64 0
%24 = bitcast { i64, i64, [0 x i8] }** %23 to i8*
%25 = getelementptr inbounds i8* %24, i64 %22
%26 = bitcast i8* %25 to { i64, i64, [0 x i8] }**
%27 = icmp ult { i64, i64, [0 x i8] }** %23, %26
br i1 %27, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i"
iter_vec_loop_body.i.i.i.i: ; preds = %cond.i.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i"
%28 = phi { i64, i64, [0 x i8] }** [ %32, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i" ], [ %23, %cond.i.i.i ]
%29 = load { i64, i64, [0 x i8] }** %28, align 8
%30 = icmp eq { i64, i64, [0 x i8] }* %29, null
br i1 %30, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i", label %cond.i.i.i.i.i.i
cond.i.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i.i
%31 = bitcast { i64, i64, [0 x i8] }* %29 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %31)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i": ; preds = %cond.i.i.i.i.i.i, %iter_vec_loop_body.i.i.i.i
%32 = getelementptr inbounds { i64, i64, [0 x i8] }** %28, i64 1
%33 = icmp ult { i64, i64, [0 x i8] }** %32, %26
br i1 %33, label %iter_vec_loop_body.i.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i", %cond.i.i.i
%34 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %19 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %34)
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit: ; preds = %"normal return", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i"
%35 = getelementptr inbounds %"enum.std::option::Option<~str>[#1]"* %3, i64 0, i32 0
%36 = load { i64, i64, [0 x i8] }** %35, align 8
%37 = bitcast {}* %__trans_ret_slot.i to i8*
call void @llvm.lifetime.start(i64 0, i8* %37)
%38 = bitcast %str_slice* %__arg.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %38)
%39 = bitcast %str_slice* %__arg2.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %39)
%40 = icmp eq { i64, i64, [0 x i8] }* %36, null
br i1 %40, label %match_else.i, label %"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit"
match_else.i: ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit
%.sroa.010.0..idx.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 0
store i8* getelementptr inbounds ([20 x i8]* @str11098, i64 0, i64 0), i8** %.sroa.010.0..idx.i, align 8
%.sroa.111.8..idx12.i = getelementptr inbounds %str_slice* %__arg.i, i64 0, i32 1
store i64 20, i64* %.sroa.111.8..idx12.i, align 8
%.sroa.07.0..idx.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 0
store i8* getelementptr inbounds ([56 x i8]* @str11099, i64 0, i64 0), i8** %.sroa.07.0..idx.i, align 8
%.sroa.18.8..idx9.i = getelementptr inbounds %str_slice* %__arg2.i, i64 0, i32 1
store i64 56, i64* %.sroa.18.8..idx9.i, align 8
invoke void @"_ZN3sys14__extensions__10meth_127919fail_with16_db4c44d01ce411614_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg.i, %str_slice* %__arg2.i, i64 320)
to label %"normal return.i" unwind label %"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11104E.exit4.i"
"normal return.i": ; preds = %match_else.i
unreachable
"_ZN34std..option..Option$LT$$UP$str$GT$15_5f00cd69e4f07515glue_drop_11104E.exit4.i": ; preds = %match_else.i
%41 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
resume { i8*, i32 } %41
"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit": ; preds = %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit
call void @llvm.lifetime.end(i64 0, i8* %37)
call void @llvm.lifetime.end(i64 16, i8* %38)
call void @llvm.lifetime.end(i64 16, i8* %39)
%42 = getelementptr inbounds { i64, i64, [0 x i8] }* %36, i64 0, i32 2, i64 0
%43 = getelementptr inbounds { i64, i64, [0 x i8] }* %36, i64 0, i32 0
%44 = load i64* %43, align 8
%45 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 0
store i8* %42, i8** %45, align 8
%46 = getelementptr inbounds { i8*, i64 }* %__adjust2, i64 0, i32 1
store i64 %44, i64* %46, align 8
%47 = bitcast { i8*, i64 }* %__adjust2 to { i64, %tydesc*, i8*, i8*, i8 }*
%48 = bitcast { i64, i64, [0 x i8] }** %ret.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %48)
%49 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %47)
to label %.noexc unwind label %unwind4
.noexc: ; preds = %"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit"
store { i64, i64, [0 x i8] }* %49, { i64, i64, [0 x i8] }** %ret.i, align 8
%50 = bitcast { i64, i64, [0 x i8] }** %ret.i to { i64, %tydesc*, i8*, i8*, i8 }*
%51 = getelementptr inbounds { i64, i64, [0 x i8] }* %49, i64 0, i32 0
%52 = load i64* %51, align 8
%53 = add i64 %52, 4
%54 = lshr i64 %53, 1
%55 = or i64 %54, %53
%56 = lshr i64 %55, 2
%57 = or i64 %56, %55
%58 = lshr i64 %57, 4
%59 = or i64 %58, %57
%60 = lshr i64 %59, 8
%61 = or i64 %60, %59
%62 = lshr i64 %61, 16
%63 = or i64 %62, %61
%64 = lshr i64 %63, 32
%65 = or i64 %64, %63
%66 = add i64 %65, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %50, i64 %66)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit" unwind label %unwind.i43
unwind.i43: ; preds = %.noexc
%67 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%68 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%69 = icmp eq { i64, i64, [0 x i8] }* %68, null
br i1 %69, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit53", label %cond.i.i2.i
cond.i.i2.i: ; preds = %unwind.i43
%70 = bitcast { i64, i64, [0 x i8] }* %68 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %70)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit53" unwind label %unwind4
unwind: ; preds = %match_case
%71 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%72 = getelementptr inbounds %"struct.std::path::PosixPath[#1]"* %4, i64 0, i32 1
%73 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %72, align 8
%74 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73, null
br i1 %74, label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit50, label %cond.i.i.i45
cond.i.i.i45: ; preds = %unwind
%75 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73, i64 0, i32 0
%76 = load i64* %75, align 8
%77 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73, i64 0, i32 2, i64 0
%78 = bitcast { i64, i64, [0 x i8] }** %77 to i8*
%79 = getelementptr inbounds i8* %78, i64 %76
%80 = bitcast i8* %79 to { i64, i64, [0 x i8] }**
%81 = icmp ult { i64, i64, [0 x i8] }** %77, %80
br i1 %81, label %iter_vec_loop_body.i.i.i.i46, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i49"
iter_vec_loop_body.i.i.i.i46: ; preds = %cond.i.i.i45, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i48"
%82 = phi { i64, i64, [0 x i8] }** [ %86, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i48" ], [ %77, %cond.i.i.i45 ]
%83 = load { i64, i64, [0 x i8] }** %82, align 8
%84 = icmp eq { i64, i64, [0 x i8] }* %83, null
br i1 %84, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i48", label %cond.i.i.i.i.i.i47
cond.i.i.i.i.i.i47: ; preds = %iter_vec_loop_body.i.i.i.i46
%85 = bitcast { i64, i64, [0 x i8] }* %83 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %85)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i48"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i48": ; preds = %cond.i.i.i.i.i.i47, %iter_vec_loop_body.i.i.i.i46
%86 = getelementptr inbounds { i64, i64, [0 x i8] }** %82, i64 1
%87 = icmp ult { i64, i64, [0 x i8] }** %86, %80
br i1 %87, label %iter_vec_loop_body.i.i.i.i46, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i49"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i49": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i.i48", %cond.i.i.i45
%88 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %88)
br label %_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit50
_ZN20std..path..PosixPath17_d4a661aca95b7c9d15glue_drop_11110E.exit50: ; preds = %unwind, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i.i49"
resume { i8*, i32 } %71
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit": ; preds = %.noexc
%89 = add i64 %52, -1
%90 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%91 = getelementptr inbounds { i64, i64, [0 x i8] }* %90, i64 0, i32 2, i64 0
%92 = ptrtoint i8* %91 to i64
%93 = add i64 %89, %92
%94 = inttoptr i64 %93 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %94, i8* getelementptr inbounds ([6 x i8]* @str11114, i64 0, i64 0), i64 5, i32 1, i1 false)
%95 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%96 = add i64 %52, 5
%97 = getelementptr inbounds { i64, i64, [0 x i8] }* %95, i64 0, i32 0
store i64 %96, i64* %97, align 8
%98 = getelementptr inbounds { i64, i64, [0 x i8] }* %95, i64 1
%99 = ptrtoint { i64, i64, [0 x i8] }* %98 to i64
%100 = add i64 %99, %53
%101 = inttoptr i64 %100 to i8*
store i8 0, i8* %101, align 1
%102 = load { i64, i64, [0 x i8] }** %ret.i, align 8
call void @llvm.lifetime.end(i64 8, i8* %48)
%103 = bitcast { i64, i64, [0 x i8] }* %36 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %103)
%.sroa.0100.0..idx = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 0
store i8* getelementptr inbounds ([6 x i8]* @str10720, i64 0, i64 0), i8** %.sroa.0100.0..idx, align 8
%.sroa.1101.8..idx102 = getelementptr inbounds %str_slice* %__arg6, i64 0, i32 1
store i64 6, i64* %.sroa.1101.8..idx102, align 8
%104 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([7 x i8]* @str11116, i64 0, i64 0), i64 6)
to label %"normal return7" unwind label %unwind8
unwind4: ; preds = %cond.i.i2.i, %"_ZN6option14__extensions__12unwrap_1109617_236dfb6defa5cb4714_0$x2e8$x2dpreE.exit"
%105 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit53"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit53": ; preds = %unwind.i43, %cond.i.i2.i, %unwind4
%eh.lpad-body = phi { i8*, i32 } [ %105, %unwind4 ], [ %67, %cond.i.i2.i ], [ %67, %unwind.i43 ]
call void @upcall_reset_stack_limit()
%106 = bitcast { i64, i64, [0 x i8] }* %36 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %106)
resume { i8*, i32 } %eh.lpad-body
"normal return7": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit"
store { i64, i64, [0 x i8] }* %104, { i64, i64, [0 x i8] }** %.sub, align 8
%107 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 1
%108 = load { i64, i64, [0 x i8] }** %10, align 8
%109 = getelementptr inbounds { i64, i64, [0 x i8] }* %108, i64 0, i32 2, i64 0
%110 = getelementptr inbounds { i64, i64, [0 x i8] }* %108, i64 0, i32 0
%111 = load i64* %110, align 8
%112 = getelementptr inbounds { i8*, i64 }* %__adjust11, i64 0, i32 0
store i8* %109, i8** %112, align 8
%113 = getelementptr inbounds { i8*, i64 }* %__adjust11, i64 0, i32 1
store i64 %111, i64* %113, align 8
%114 = bitcast { i8*, i64 }* %__adjust11 to { i64, %tydesc*, i8*, i8*, i8 }*
%115 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %114)
to label %"normal return12" unwind label %unwind13
unwind8: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit"
%116 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract117 = extractvalue { i8*, i32 } %116, 0
%.fca.1.extract119 = extractvalue { i8*, i32 } %116, 1
br label %cleanup9
cleanup9: ; preds = %cond.i.i57, %cleanup14, %unwind27, %unwind8
%.sroa.0150.0 = phi i8* [ %.fca.0.extract139, %unwind27 ], [ %.fca.0.extract117, %unwind8 ], [ %.sroa.0150.2, %cleanup14 ], [ %.sroa.0150.2, %cond.i.i57 ]
%.sroa.1153.0 = phi i32 [ %.fca.1.extract141, %unwind27 ], [ %.fca.1.extract119, %unwind8 ], [ %.sroa.1153.2, %cleanup14 ], [ %.sroa.1153.2, %cond.i.i57 ]
%117 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0
br label %iter_vec_loop_body.i
iter_vec_loop_body.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", %cleanup9
%118 = phi { i64, i64, [0 x i8] }** [ %.sub, %cleanup9 ], [ %122, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" ]
%119 = load { i64, i64, [0 x i8] }** %118, align 8
%120 = icmp eq { i64, i64, [0 x i8] }* %119, null
br i1 %120, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", label %cond.i.i.i54
cond.i.i.i54: ; preds = %iter_vec_loop_body.i
%121 = bitcast { i64, i64, [0 x i8] }* %119 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %121)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i": ; preds = %cond.i.i.i54, %iter_vec_loop_body.i
%122 = getelementptr inbounds { i64, i64, [0 x i8] }** %118, i64 1
%123 = icmp ult { i64, i64, [0 x i8] }** %122, %117
br i1 %123, label %iter_vec_loop_body.i, label %cleanup10
cleanup10: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", %cond.i88, %unwind40, %cond.i.i84, %unwind33.body, %unwind29
%.sroa.0150.1 = phi i8* [ %.fca.0.extract143, %unwind29 ], [ %eh.lpad-body80.fca.0.extract, %unwind33.body ], [ %eh.lpad-body80.fca.0.extract, %cond.i.i84 ], [ %.fca.0.extract147, %unwind40 ], [ %.fca.0.extract147, %cond.i88 ], [ %.sroa.0150.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" ]
%.sroa.1153.1 = phi i32 [ %.fca.1.extract145, %unwind29 ], [ %eh.lpad-body80.fca.1.extract, %unwind33.body ], [ %eh.lpad-body80.fca.1.extract, %cond.i.i84 ], [ %.fca.1.extract149, %unwind40 ], [ %.fca.1.extract149, %cond.i88 ], [ %.sroa.1153.0, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i" ]
%124 = icmp eq { i64, i64, [0 x i8] }* %102, null
br i1 %124, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", label %cond.i.i
cond.i.i: ; preds = %cleanup10
%125 = bitcast { i64, i64, [0 x i8] }* %102 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %125)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit": ; preds = %cleanup10, %cond.i.i
%.fca.0.insert122 = insertvalue { i8*, i32 } undef, i8* %.sroa.0150.1, 0
%.fca.1.insert125 = insertvalue { i8*, i32 } %.fca.0.insert122, i32 %.sroa.1153.1, 1
resume { i8*, i32 } %.fca.1.insert125
"normal return12": ; preds = %"normal return7"
store { i64, i64, [0 x i8] }* %115, { i64, i64, [0 x i8] }** %107, align 8
%126 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 2
%127 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11123, i64 0, i64 0), i64 2)
to label %"normal return15" unwind label %unwind16
unwind13: ; preds = %"normal return7"
%128 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract127 = extractvalue { i8*, i32 } %128, 0
%.fca.1.extract129 = extractvalue { i8*, i32 } %128, 1
br label %cleanup14
cleanup14: ; preds = %cond.i.i59, %cleanup17, %unwind13
%.sroa.0150.2 = phi i8* [ %.fca.0.extract127, %unwind13 ], [ %.sroa.0150.3, %cleanup17 ], [ %.sroa.0150.3, %cond.i.i59 ]
%.sroa.1153.2 = phi i32 [ %.fca.1.extract129, %unwind13 ], [ %.sroa.1153.3, %cleanup17 ], [ %.sroa.1153.3, %cond.i.i59 ]
%129 = load { i64, i64, [0 x i8] }** %.sub, align 8
%130 = icmp eq { i64, i64, [0 x i8] }* %129, null
br i1 %130, label %cleanup9, label %cond.i.i57
cond.i.i57: ; preds = %cleanup14
%131 = bitcast { i64, i64, [0 x i8] }* %129 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %131)
br label %cleanup9
"normal return15": ; preds = %"normal return12"
store { i64, i64, [0 x i8] }* %127, { i64, i64, [0 x i8] }** %126, align 8
%132 = getelementptr inbounds { i64, i64, [0 x i8] }* %102, i64 0, i32 2, i64 0
%133 = getelementptr inbounds { i64, i64, [0 x i8] }* %102, i64 0, i32 0
%134 = load i64* %133, align 8
%135 = getelementptr inbounds { i8*, i64 }* %__adjust18, i64 0, i32 0
store i8* %132, i8** %135, align 8
%136 = getelementptr inbounds { i8*, i64 }* %__adjust18, i64 0, i32 1
store i64 %134, i64* %136, align 8
%137 = bitcast { i8*, i64 }* %__adjust18 to { i64, %tydesc*, i8*, i8*, i8 }*
%138 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %137)
to label %"normal return19" unwind label %unwind20
unwind16: ; preds = %"normal return12"
%139 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract131 = extractvalue { i8*, i32 } %139, 0
%.fca.1.extract133 = extractvalue { i8*, i32 } %139, 1
br label %cleanup17
cleanup17: ; preds = %cond.i.i61, %unwind20, %unwind16
%.sroa.0150.3 = phi i8* [ %.fca.0.extract131, %unwind16 ], [ %.fca.0.extract135, %unwind20 ], [ %.fca.0.extract135, %cond.i.i61 ]
%.sroa.1153.3 = phi i32 [ %.fca.1.extract133, %unwind16 ], [ %.fca.1.extract137, %unwind20 ], [ %.fca.1.extract137, %cond.i.i61 ]
%140 = load { i64, i64, [0 x i8] }** %107, align 8
%141 = icmp eq { i64, i64, [0 x i8] }* %140, null
br i1 %141, label %cleanup14, label %cond.i.i59
cond.i.i59: ; preds = %cleanup17
%142 = bitcast { i64, i64, [0 x i8] }* %140 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %142)
br label %cleanup14
"normal return19": ; preds = %"normal return15"
%143 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 0, i64 3
store { i64, i64, [0 x i8] }* %138, { i64, i64, [0 x i8] }** %143, align 8
%__adjust22.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg23, i64 0, i32 0
store { i64, i64, [0 x i8] }** %.sub, { i64, i64, [0 x i8] }*** %__adjust22.sroa.0.0..idx, align 8
%__adjust22.sroa.1.8..idx99 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg23, i64 0, i32 1
store i64 32, i64* %__adjust22.sroa.1.8..idx99, align 8
%__adjust24.sroa.0.0..idx = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg25, i64 0, i32 0
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* @"_ZN4main15_f3d16eaf7d573814_0$x2e8$x2dpreE", void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust24.sroa.0.0..idx, align 8
%__adjust24.sroa.1.8..idx98 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg25, i64 0, i32 1
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust24.sroa.1.8..idx98, align 8
invoke void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6, { { i64, i64, [0 x i8] }**, i64 }* %__arg23, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg25)
to label %"normal return26" unwind label %unwind27
unwind20: ; preds = %"normal return15"
%144 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract135 = extractvalue { i8*, i32 } %144, 0
%.fca.1.extract137 = extractvalue { i8*, i32 } %144, 1
%145 = load { i64, i64, [0 x i8] }** %126, align 8
%146 = icmp eq { i64, i64, [0 x i8] }* %145, null
br i1 %146, label %cleanup17, label %cond.i.i61
cond.i.i61: ; preds = %unwind20
%147 = bitcast { i64, i64, [0 x i8] }* %145 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %147)
br label %cleanup17
"normal return26": ; preds = %"normal return19"
%148 = getelementptr inbounds [4 x { i64, i64, [0 x i8] }*]* %5, i64 1, i64 0
br label %iter_vec_loop_body.i63
iter_vec_loop_body.i63: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i65", %"normal return26"
%149 = phi { i64, i64, [0 x i8] }** [ %.sub, %"normal return26" ], [ %153, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i65" ]
%150 = load { i64, i64, [0 x i8] }** %149, align 8
%151 = icmp eq { i64, i64, [0 x i8] }* %150, null
br i1 %151, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i65", label %cond.i.i.i64
cond.i.i.i64: ; preds = %iter_vec_loop_body.i63
%152 = bitcast { i64, i64, [0 x i8] }* %150 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %152)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i65"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i65": ; preds = %cond.i.i.i64, %iter_vec_loop_body.i63
%153 = getelementptr inbounds { i64, i64, [0 x i8] }** %149, i64 1
%154 = icmp ult { i64, i64, [0 x i8] }** %153, %148
br i1 %154, label %iter_vec_loop_body.i63, label %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11121E.exit66"
"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11121E.exit66": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i65"
%155 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11124, i64 0, i64 0), i64 2)
to label %"normal return28" unwind label %unwind29
unwind27: ; preds = %"normal return19"
%156 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract139 = extractvalue { i8*, i32 } %156, 0
%.fca.1.extract141 = extractvalue { i8*, i32 } %156, 1
br label %cleanup9
"normal return28": ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11121E.exit66"
%157 = getelementptr inbounds { i64, i64, [0 x i8] }* %155, i64 0, i32 2, i64 0
%158 = getelementptr inbounds { i64, i64, [0 x i8] }* %155, i64 0, i32 0
%159 = load i64* %158, align 8
%160 = getelementptr inbounds { i8*, i64 }* %__adjust30, i64 0, i32 0
store i8* %157, i8** %160, align 8
%161 = getelementptr inbounds { i8*, i64 }* %__adjust30, i64 0, i32 1
store i64 %159, i64* %161, align 8
%162 = bitcast { i8*, i64 }* %__adjust30 to { i64, %tydesc*, i8*, i8*, i8 }*
%163 = load i64* %133, align 8
%164 = bitcast { i64, i64, [0 x i8] }** %ret.i69 to i8*
call void @llvm.lifetime.start(i64 8, i8* %164)
%165 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %162)
to label %.noexc78 unwind label %unwind33
.noexc78: ; preds = %"normal return28"
store { i64, i64, [0 x i8] }* %165, { i64, i64, [0 x i8] }** %ret.i69, align 8
%166 = bitcast { i64, i64, [0 x i8] }** %ret.i69 to { i64, %tydesc*, i8*, i8*, i8 }*
%167 = getelementptr inbounds { i64, i64, [0 x i8] }* %165, i64 0, i32 0
%168 = load i64* %167, align 8
%169 = add i64 %168, -1
%170 = add i64 %163, -1
%171 = add i64 %169, %170
%172 = lshr i64 %171, 1
%173 = or i64 %172, %171
%174 = lshr i64 %173, 2
%175 = or i64 %174, %173
%176 = lshr i64 %175, 4
%177 = or i64 %176, %175
%178 = lshr i64 %177, 8
%179 = or i64 %178, %177
%180 = lshr i64 %179, 16
%181 = or i64 %180, %179
%182 = lshr i64 %181, 32
%183 = or i64 %182, %181
%184 = add i64 %183, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %166, i64 %184)
to label %"normal return32" unwind label %unwind.i75
unwind.i75: ; preds = %.noexc78
%185 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%186 = load { i64, i64, [0 x i8] }** %ret.i69, align 8
%187 = icmp eq { i64, i64, [0 x i8] }* %186, null
br i1 %187, label %unwind33.body, label %cond.i.i2.i76
cond.i.i2.i76: ; preds = %unwind.i75
%188 = bitcast { i64, i64, [0 x i8] }* %186 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %188)
to label %unwind33.body unwind label %unwind33
unwind29: ; preds = %"_ZN43_$x5bmut$x20$UP$str$C$$x20$x2e$x2e$x204$x5d17_543417d9d832208515glue_drop_11121E.exit66"
%189 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract143 = extractvalue { i8*, i32 } %189, 0
%.fca.1.extract145 = extractvalue { i8*, i32 } %189, 1
br label %cleanup10
"normal return32": ; preds = %.noexc78
%190 = load { i64, i64, [0 x i8] }** %ret.i69, align 8
%191 = getelementptr inbounds { i64, i64, [0 x i8] }* %190, i64 0, i32 2, i64 0
%192 = ptrtoint i8* %191 to i64
%193 = add i64 %192, %169
%194 = inttoptr i64 %193 to i8*
call void @llvm.memmove.p0i8.p0i8.i64(i8* %194, i8* %132, i64 %170, i32 1, i1 false)
%195 = load { i64, i64, [0 x i8] }** %ret.i69, align 8
%196 = add i64 %168, %170
%197 = getelementptr inbounds { i64, i64, [0 x i8] }* %195, i64 0, i32 0
store i64 %196, i64* %197, align 8
%198 = getelementptr inbounds { i64, i64, [0 x i8] }* %195, i64 1
%199 = ptrtoint { i64, i64, [0 x i8] }* %198 to i64
%200 = add i64 %199, %171
%201 = inttoptr i64 %200 to i8*
store i8 0, i8* %201, align 1
%202 = load { i64, i64, [0 x i8] }** %ret.i69, align 8
call void @llvm.lifetime.end(i64 8, i8* %164)
%203 = icmp eq { i64, i64, [0 x i8] }* %155, null
br i1 %203, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit83", label %cond.i.i82
cond.i.i82: ; preds = %"normal return32"
%204 = bitcast { i64, i64, [0 x i8] }* %155 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %204)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit83"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit83": ; preds = %"normal return32", %cond.i.i82
%205 = getelementptr inbounds { i64, i64, [0 x i8] }* %202, i64 0, i32 2, i64 0
%206 = getelementptr inbounds { i64, i64, [0 x i8] }* %202, i64 0, i32 0
%207 = load i64* %206, align 8
%__adjust35.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg36, i64 0, i32 0
store i8* %205, i8** %__adjust35.sroa.0.0..idx, align 8
%__adjust35.sroa.1.8..idx94 = getelementptr inbounds { i8*, i64 }* %__arg36, i64 0, i32 1
store i64 %207, i64* %__adjust35.sroa.1.8..idx94, align 8
%208 = bitcast { i8*, i64 }* %__arg36 to %str_slice*
%209 = bitcast {}* %__trans_ret_slot.i to { i64, i64, [0 x i8] }**
%__adjust37.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg38, i64 0, i32 0
store { i64, i64, [0 x i8] }** %209, { i64, i64, [0 x i8] }*** %__adjust37.sroa.0.0..idx, align 8
%__adjust37.sroa.1.8..idx93 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg38, i64 0, i32 1
store i64 0, i64* %__adjust37.sroa.1.8..idx93, align 8
%210 = invoke i64 @"_ZN3run14process_status17_414f913ecacd531b14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %208, { { i64, i64, [0 x i8] }**, i64 }* %__arg38)
to label %"normal return39" unwind label %unwind40
unwind33: ; preds = %cond.i.i2.i76, %"normal return28"
%211 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind33.body
unwind33.body: ; preds = %unwind.i75, %cond.i.i2.i76, %unwind33
%eh.lpad-body80 = phi { i8*, i32 } [ %211, %unwind33 ], [ %185, %cond.i.i2.i76 ], [ %185, %unwind.i75 ]
call void @upcall_reset_stack_limit()
%eh.lpad-body80.fca.0.extract = extractvalue { i8*, i32 } %eh.lpad-body80, 0
%eh.lpad-body80.fca.1.extract = extractvalue { i8*, i32 } %eh.lpad-body80, 1
%212 = icmp eq { i64, i64, [0 x i8] }* %155, null
br i1 %212, label %cleanup10, label %cond.i.i84
cond.i.i84: ; preds = %unwind33.body
%213 = bitcast { i64, i64, [0 x i8] }* %155 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %213)
br label %cleanup10
"normal return39": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit83"
%214 = icmp eq { i64, i64, [0 x i8] }* %202, null
br i1 %214, label %"normal return42", label %cond.i86
cond.i86: ; preds = %"normal return39"
%215 = bitcast { i64, i64, [0 x i8] }* %202 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %215)
br label %"normal return42"
unwind40: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit83"
%216 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract147 = extractvalue { i8*, i32 } %216, 0
%.fca.1.extract149 = extractvalue { i8*, i32 } %216, 1
%217 = icmp eq { i64, i64, [0 x i8] }* %202, null
br i1 %217, label %cleanup10, label %cond.i88
cond.i88: ; preds = %unwind40
%218 = bitcast { i64, i64, [0 x i8] }* %202 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %218)
br label %cleanup10
"normal return42": ; preds = %cond.i86, %"normal return39"
%219 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 0, i64* %219, align 8
%220 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 1
store i64 %210, i64* %220, align 8
%221 = icmp eq { i64, i64, [0 x i8] }* %102, null
br i1 %221, label %join, label %cond.i.i90
cond.i.i90: ; preds = %"normal return42"
%222 = bitcast { i64, i64, [0 x i8] }* %102 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %222)
br label %join
join: ; preds = %cond.i.i90, %"normal return42", %compare_vec_len_next
ret void
}
declare void @"_ZN4main16_923425a5c682dca14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare void @"_ZN6config5usage16_923425a5c682dca14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare void @"_ZN4main16_f7604413a6f2de214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare void @"_ZN5usage7general16_f7604413a6f2de214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare void @"_ZN4main17_3a346db0adc4cf5114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
define void @"_ZN8cmd_help17_64cd22cf85a72bbc14_0$x2e8$x2dpreE"(%enum.ValidUsage* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 {
"function top level":
%.sroa.1.sroa.0.i = alloca [16 x i8], align 8
%command.sroa.0.i = alloca %str_slice, align 8
%command.sroa.2.i = alloca [40 x i8], align 8
%prog.i = alloca %str_slice, align 8
%__fmtbuf.i = alloca { i64, i64, [0 x i8] }*, align 8
%__arg9.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg10.i = alloca %str_slice, align 8
%__arg14.i = alloca %str_slice, align 8
%__arg16.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg17.i = alloca %str_slice, align 8
%__arg19.i = alloca %str_slice, align 8
%__arg22.i = alloca { i8*, i64 }, align 8
%__fmtbuf32.i = alloca { i64, i64, [0 x i8] }*, align 8
%__arg34.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg35.i = alloca %str_slice, align 8
%__arg39.i = alloca %str_slice, align 8
%__arg42.i = alloca { i8*, i64 }, align 8
%__adjust.i = alloca { i8*, i64 }, align 8
%3 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1
%4 = load i64* %3, align 8
%.off = add i64 %4, -8
%5 = icmp ult i64 %.off, 8
br i1 %5, label %match_case, label %compare_vec_len_next
match_case: ; preds = %"function top level"
%6 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0
%7 = load { i64, i64, [0 x i8] }*** %6, align 8
%8 = bitcast { i8*, i64 }* %__adjust.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %8)
%9 = load { i64, i64, [0 x i8] }** %7, align 8
%10 = getelementptr inbounds { i64, i64, [0 x i8] }* %9, i64 0, i32 2, i64 0
%11 = getelementptr inbounds { i64, i64, [0 x i8] }* %9, i64 0, i32 0
%12 = load i64* %11, align 8
%13 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0
store i8* %10, i8** %13, align 8
%14 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1
store i64 %12, i64* %14, align 8
%15 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }*
%16 = call fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %15)
call void @llvm.lifetime.end(i64 16, i8* %8)
%.sroa.1.sroa.0.i.0.idx = getelementptr inbounds [16 x i8]* %.sroa.1.sroa.0.i, i64 0, i64 0
call void @llvm.lifetime.start(i64 16, i8* %.sroa.1.sroa.0.i.0.idx)
%command.sroa.0.i.0.cast = bitcast %str_slice* %command.sroa.0.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %command.sroa.0.i.0.cast)
%command.sroa.2.i.0.idx30 = getelementptr inbounds [40 x i8]* %command.sroa.2.i, i64 0, i64 0
call void @llvm.lifetime.start(i64 40, i8* %command.sroa.2.i.0.idx30)
%prog.i.0.cast = bitcast %str_slice* %prog.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %prog.i.0.cast)
%17 = bitcast { i64, i64, [0 x i8] }** %__fmtbuf.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %17)
%18 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i to i8*
call void @llvm.lifetime.start(i64 48, i8* %18)
%19 = bitcast %str_slice* %__arg10.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %19)
%20 = bitcast %str_slice* %__arg14.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %20)
%21 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i to i8*
call void @llvm.lifetime.start(i64 48, i8* %21)
%22 = bitcast %str_slice* %__arg17.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %22)
%23 = bitcast %str_slice* %__arg19.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %23)
%24 = bitcast { i8*, i64 }* %__arg22.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %24)
%25 = bitcast { i64, i64, [0 x i8] }** %__fmtbuf32.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %25)
%26 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i to i8*
call void @llvm.lifetime.start(i64 48, i8* %26)
%27 = bitcast %str_slice* %__arg35.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %27)
%28 = bitcast %str_slice* %__arg39.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %28)
%29 = bitcast { i8*, i64 }* %__arg42.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %29)
%30 = getelementptr inbounds { i64, i64, [0 x i8] }* %16, i64 0, i32 0
%31 = load i64* %30, align 8
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %match_else.i, label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i"
"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i": ; preds = %match_case
%32 = getelementptr inbounds { i64, i64, [0 x i8] }* %16, i64 0, i32 2, i64 0
%33 = bitcast i8* %32 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%34 = add i64 %31, -1
br label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i"
"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i": ; preds = %"`loop`.i.i.backedge.i.i", %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i"
%.sroa.08.091.i.i = phi i64 [ %35, %"`loop`.i.i.backedge.i.i" ], [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader.i" ]
%35 = add i64 %.sroa.08.091.i.i, 88
%36 = inttoptr i64 %.sroa.08.091.i.i to %struct.Command*
%__arg1.i.sroa.1.8..idx43.i.i = getelementptr inbounds %struct.Command* %36, i64 0, i32 0, i32 1
%__arg1.i.sroa.1.8.copyload.i.i = load i64* %__arg1.i.sroa.1.8..idx43.i.i, align 8
%37 = icmp eq i64 %__arg1.i.sroa.1.8.copyload.i.i, %31
br i1 %37, label %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i.i, label %"`loop`.i.i.backedge.i.i"
"`loop`.i.i.backedge.i.i": ; preds = %.noexc.i, %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i"
%38 = inttoptr i64 %35 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%39 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %38, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)
%40 = icmp eq i64 %35, 0
%or.cond.i.i = or i1 %39, %40
br i1 %or.cond.i.i, label %match_else.i, label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i"
_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i.i: ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.i"
%__arg1.i.sroa.0.0..idx.i.i = getelementptr inbounds %struct.Command* %36, i64 0, i32 0, i32 0
%__arg1.i.sroa.0.0.copyload.i.i = load i8** %__arg1.i.sroa.0.0..idx.i.i, align 8
%41 = bitcast i8* %__arg1.i.sroa.0.0.copyload.i.i to %"enum.std::libc::types::common::c95::c_void[#1]"*
%42 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %41, %"enum.std::libc::types::common::c95::c_void[#1]"* %33, i64 %34)
to label %.noexc.i unwind label %unwind.loopexit.i
.noexc.i: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i.i
%43 = icmp eq i32 %42, 0
br i1 %43, label %match_case.i, label %"`loop`.i.i.backedge.i.i"
unwind.loopexit.i: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i.i
%lpad.loopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind.i
unwind.nonloopexit.i: ; preds = %match_case31.i, %match_else30.i, %match_case7.i
%lpad.nonloopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind.i
unwind.i: ; preds = %unwind.nonloopexit.i, %unwind.loopexit.i
%lpad.phi.i = phi { i8*, i32 } [ %lpad.loopexit.i, %unwind.loopexit.i ], [ %lpad.nonloopexit.i, %unwind.nonloopexit.i ]
call void @upcall_reset_stack_limit()
%.fca.0.extract.i = extractvalue { i8*, i32 } %lpad.phi.i, 0
%.fca.1.extract.i = extractvalue { i8*, i32 } %lpad.phi.i, 1
br label %cleanup.i
cleanup.i: ; preds = %cond.i18.i, %unwind44.i, %cond.i.i12.i, %unwind37.i, %cond.i8.i, %unwind24.i, %cond.i.i4.i, %unwind12.i, %unwind.i
%.sroa.085.0.i = phi i8* [ %.fca.0.extract.i, %unwind.i ], [ %.fca.0.extract70.i, %unwind12.i ], [ %.fca.0.extract70.i, %cond.i.i4.i ], [ %.fca.0.extract74.i, %unwind24.i ], [ %.fca.0.extract74.i, %cond.i8.i ], [ %.fca.0.extract78.i, %unwind37.i ], [ %.fca.0.extract78.i, %cond.i.i12.i ], [ %.fca.0.extract82.i, %unwind44.i ], [ %.fca.0.extract82.i, %cond.i18.i ]
%.sroa.186.0.i = phi i32 [ %.fca.1.extract.i, %unwind.i ], [ %.fca.1.extract72.i, %unwind12.i ], [ %.fca.1.extract72.i, %cond.i.i4.i ], [ %.fca.1.extract76.i, %unwind24.i ], [ %.fca.1.extract76.i, %cond.i8.i ], [ %.fca.1.extract80.i, %unwind37.i ], [ %.fca.1.extract80.i, %cond.i.i12.i ], [ %.fca.1.extract84.i, %unwind44.i ], [ %.fca.1.extract84.i, %cond.i18.i ]
%44 = icmp eq { i64, i64, [0 x i8] }* %16, null
br i1 %44, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", label %cond.i.i.i
cond.i.i.i: ; preds = %cleanup.i
%45 = bitcast { i64, i64, [0 x i8] }* %16 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %45)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i": ; preds = %cond.i.i.i, %cleanup.i
%.fca.0.insert.i = insertvalue { i8*, i32 } undef, i8* %.sroa.085.0.i, 0
%.fca.1.insert.i = insertvalue { i8*, i32 } %.fca.0.insert.i, i32 %.sroa.186.0.i, 1
resume { i8*, i32 } %.fca.1.insert.i
match_else.i: ; preds = %"`loop`.i.i.backedge.i.i", %match_case
%46 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 1, i64* %46, align 8
br label %join49.i
match_case.i: ; preds = %.noexc.i
%47 = inttoptr i64 %.sroa.08.091.i.i to i8*
%__arg.i.i.i.sroa.1.16..idx = getelementptr inbounds i8* %47, i64 16
%__arg.i.i.i.sroa.1.16..cast = bitcast i8* %__arg.i.i.i.sroa.1.16..idx to i64*
%__arg.i.i.i.sroa.1.16.copyload = load i64* %__arg.i.i.i.sroa.1.16..cast, align 8
%__arg.i.i.i.sroa.2.24..raw_idx = getelementptr inbounds i8* %47, i64 24
%__arg.i.i.i.sroa.3.64..idx = getelementptr inbounds i8* %47, i64 64
%__arg.i.i.i.sroa.3.64..cast = bitcast i8* %__arg.i.i.i.sroa.3.64..idx to i64*
%__arg.i.i.i.sroa.3.64.copyload = load i64* %__arg.i.i.i.sroa.3.64..cast, align 8
%__arg.i.i.i.sroa.4.72..idx = getelementptr inbounds i8* %47, i64 72
%__arg.i.i.i.sroa.4.72..cast = bitcast i8* %__arg.i.i.i.sroa.4.72..idx to void ({ i64, %tydesc*, i8*, i8*, i8 }*)**
%__arg.i.i.i.sroa.4.72.copyload = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__arg.i.i.i.sroa.4.72..cast, align 8
%__arg.i.i.i.sroa.5.80..idx = getelementptr inbounds i8* %47, i64 80
%__arg.i.i.i.sroa.5.80..cast = bitcast i8* %__arg.i.i.i.sroa.5.80..idx to i64*
%__arg.i.i.i.sroa.5.80.copyload = load i64* %__arg.i.i.i.sroa.5.80..cast, align 8
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %.sroa.1.sroa.0.i.0.idx, i8* %47, i64 16, i32 8, i1 false)
call void @llvm.memmove.p0i8.p0i8.i64(i8* %command.sroa.2.i.0.idx30, i8* %__arg.i.i.i.sroa.2.24..raw_idx, i64 40, i32 8, i1 false)
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %command.sroa.0.i.0.cast, i8* %.sroa.1.sroa.0.i.0.idx, i64 16, i32 8, i1 false)
%cond1.i = icmp eq i64 %__arg.i.i.i.sroa.1.16.copyload, 1
br i1 %cond1.i, label %match_case7.i, label %join.i
match_case7.i: ; preds = %match_case.i
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %prog.i.0.cast, i8* %command.sroa.2.i.0.idx30, i64 16, i32 8, i1 false)
%48 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([5 x i8]* @str11091, i64 0, i64 0), i64 4)
to label %"normal return8.i" unwind label %unwind.nonloopexit.i
"normal return8.i": ; preds = %match_case7.i
store { i64, i64, [0 x i8] }* %48, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
%.sroa.054.0..idx.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 0
store i32 0, i32* %.sroa.054.0..idx.i, align 8
%.sroa.256.8..idx57.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 1, i32 0
store i64 1, i64* %.sroa.256.8..idx57.i, align 8
%.sroa.460.24..idx61.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 2, i32 0
store i64 1, i64* %.sroa.460.24..idx61.i, align 8
%.sroa.664.40..idx65.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 3, i32 0
store i64 0, i64* %.sroa.664.40..idx65.i, align 8
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %19, i8* %command.sroa.0.i.0.cast, i64 16, i32 8, i1 false)
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, %str_slice* %__arg10.i, { i64, i64, [0 x i8] }** %__fmtbuf.i)
to label %"normal return11.i" unwind label %unwind12.i
"normal return11.i": ; preds = %"normal return8.i"
%.sroa.051.0..idx.i = getelementptr inbounds %str_slice* %__arg14.i, i64 0, i32 0
store i8* getelementptr inbounds ([30 x i8]* @str11092, i64 0, i64 0), i8** %.sroa.051.0..idx.i, align 8
%.sroa.152.8..idx53.i = getelementptr inbounds %str_slice* %__arg14.i, i64 0, i32 1
store i64 30, i64* %.sroa.152.8..idx53.i, align 8
invoke void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }** %__fmtbuf.i, %str_slice* %__arg14.i)
to label %"normal return15.i" unwind label %unwind12.i
unwind12.i: ; preds = %"normal return18.i", %"normal return15.i", %"normal return11.i", %"normal return8.i"
%49 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract70.i = extractvalue { i8*, i32 } %49, 0
%.fca.1.extract72.i = extractvalue { i8*, i32 } %49, 1
%50 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
%51 = icmp eq { i64, i64, [0 x i8] }* %50, null
br i1 %51, label %cleanup.i, label %cond.i.i4.i
cond.i.i4.i: ; preds = %unwind12.i
%52 = bitcast { i64, i64, [0 x i8] }* %50 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %52)
br label %cleanup.i
"normal return15.i": ; preds = %"normal return11.i"
%.sroa.039.0..idx.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 0
store i32 0, i32* %.sroa.039.0..idx.i, align 8
%.sroa.241.8..idx42.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 1, i32 0
store i64 1, i64* %.sroa.241.8..idx42.i, align 8
%.sroa.445.24..idx46.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 2, i32 0
store i64 1, i64* %.sroa.445.24..idx46.i, align 8
%.sroa.649.40..idx50.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, i64 0, i32 3, i32 0
store i64 0, i64* %.sroa.649.40..idx50.i, align 8
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %22, i8* %prog.i.0.cast, i64 16, i32 8, i1 false)
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg16.i, %str_slice* %__arg17.i, { i64, i64, [0 x i8] }** %__fmtbuf.i)
to label %"normal return18.i" unwind label %unwind12.i
"normal return18.i": ; preds = %"normal return15.i"
%.sroa.036.0..idx.i = getelementptr inbounds %str_slice* %__arg19.i, i64 0, i32 0
store i8* getelementptr inbounds ([10 x i8]* @str11093, i64 0, i64 0), i8** %.sroa.036.0..idx.i, align 8
%.sroa.137.8..idx38.i = getelementptr inbounds %str_slice* %__arg19.i, i64 0, i32 1
store i64 10, i64* %.sroa.137.8..idx38.i, align 8
invoke void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }** %__fmtbuf.i, %str_slice* %__arg19.i)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit7.i" unwind label %unwind12.i
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit7.i": ; preds = %"normal return18.i"
%53 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
%54 = getelementptr inbounds { i64, i64, [0 x i8] }* %53, i64 0, i32 2, i64 0
%55 = getelementptr inbounds { i64, i64, [0 x i8] }* %53, i64 0, i32 0
%56 = load i64* %55, align 8
%__adjust21.sroa.0.0..idx.i = getelementptr inbounds { i8*, i64 }* %__arg22.i, i64 0, i32 0
store i8* %54, i8** %__adjust21.sroa.0.0..idx.i, align 8
%__adjust21.sroa.1.8..idx35.i = getelementptr inbounds { i8*, i64 }* %__arg22.i, i64 0, i32 1
store i64 %56, i64* %__adjust21.sroa.1.8..idx35.i, align 8
%57 = bitcast { i8*, i64 }* %__arg22.i to %str_slice*
invoke void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %57)
to label %"normal return23.i" unwind label %unwind24.i
"normal return23.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit7.i"
%58 = icmp eq { i64, i64, [0 x i8] }* %53, null
br i1 %58, label %join.i, label %cond.i.i
cond.i.i: ; preds = %"normal return23.i"
%59 = bitcast { i64, i64, [0 x i8] }* %53 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %59)
br label %join.i
unwind24.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit7.i"
%60 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract74.i = extractvalue { i8*, i32 } %60, 0
%.fca.1.extract76.i = extractvalue { i8*, i32 } %60, 1
%61 = icmp eq { i64, i64, [0 x i8] }* %53, null
br i1 %61, label %cleanup.i, label %cond.i8.i
cond.i8.i: ; preds = %unwind24.i
%62 = bitcast { i64, i64, [0 x i8] }* %53 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %62)
br label %cleanup.i
join.i: ; preds = %cond.i.i, %"normal return23.i", %match_case.i
%cond2.i = icmp eq i64 %__arg.i.i.i.sroa.3.64.copyload, 0
br i1 %cond2.i, label %match_case31.i, label %match_else30.i
match_else30.i: ; preds = %join.i
invoke void %__arg.i.i.i.sroa.4.72.copyload({ i64, %tydesc*, i8*, i8*, i8 }* undef)
to label %join47.i unwind label %unwind.nonloopexit.i
match_case31.i: ; preds = %join.i
%63 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([1 x i8]* @str11094, i64 0, i64 0), i64 0)
to label %"normal return33.i" unwind label %unwind.nonloopexit.i
"normal return33.i": ; preds = %match_case31.i
store { i64, i64, [0 x i8] }* %63, { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8
%.sroa.025.0..idx.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 0
store i32 0, i32* %.sroa.025.0..idx.i, align 8
%.sroa.2.8..idx27.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 1, i32 0
store i64 1, i64* %.sroa.2.8..idx27.i, align 8
%.sroa.4.24..idx29.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 2, i32 0
store i64 1, i64* %.sroa.4.24..idx29.i, align 8
%.sroa.6.40..idx31.i = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, i64 0, i32 3, i32 0
store i64 0, i64* %.sroa.6.40..idx31.i, align 8
%64 = getelementptr inbounds %str_slice* %__arg35.i, i64 0, i32 0
%.sroa.1.sroa.4.72.copyload.c.i = bitcast void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %__arg.i.i.i.sroa.4.72.copyload to i8*
store i8* %.sroa.1.sroa.4.72.copyload.c.i, i8** %64, align 8
%msg.sroa.1.8..idx96.i = getelementptr inbounds %str_slice* %__arg35.i, i64 0, i32 1
store i64 %__arg.i.i.i.sroa.5.80.copyload, i64* %msg.sroa.1.8..idx96.i, align 8
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg34.i, %str_slice* %__arg35.i, { i64, i64, [0 x i8] }** %__fmtbuf32.i)
to label %"normal return36.i" unwind label %unwind37.i
"normal return36.i": ; preds = %"normal return33.i"
%.sroa.0.0..idx.i = getelementptr inbounds %str_slice* %__arg39.i, i64 0, i32 0
store i8* getelementptr inbounds ([2 x i8]* @str11095, i64 0, i64 0), i8** %.sroa.0.0..idx.i, align 8
%.sroa.1.8..idx24.i = getelementptr inbounds %str_slice* %__arg39.i, i64 0, i32 1
store i64 2, i64* %.sroa.1.8..idx24.i, align 8
invoke void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }** %__fmtbuf32.i, %str_slice* %__arg39.i)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit15.i" unwind label %unwind37.i
unwind37.i: ; preds = %"normal return36.i", %"normal return33.i"
%65 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract78.i = extractvalue { i8*, i32 } %65, 0
%.fca.1.extract80.i = extractvalue { i8*, i32 } %65, 1
%66 = load { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8
%67 = icmp eq { i64, i64, [0 x i8] }* %66, null
br i1 %67, label %cleanup.i, label %cond.i.i12.i
cond.i.i12.i: ; preds = %unwind37.i
%68 = bitcast { i64, i64, [0 x i8] }* %66 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %68)
br label %cleanup.i
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit15.i": ; preds = %"normal return36.i"
%69 = load { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf32.i, align 8
%70 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 2, i64 0
%71 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 0
%72 = load i64* %71, align 8
%__adjust41.sroa.0.0..idx.i = getelementptr inbounds { i8*, i64 }* %__arg42.i, i64 0, i32 0
store i8* %70, i8** %__adjust41.sroa.0.0..idx.i, align 8
%__adjust41.sroa.1.8..idx23.i = getelementptr inbounds { i8*, i64 }* %__arg42.i, i64 0, i32 1
store i64 %72, i64* %__adjust41.sroa.1.8..idx23.i, align 8
%73 = bitcast { i8*, i64 }* %__arg42.i to %str_slice*
invoke void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %73)
to label %"normal return43.i" unwind label %unwind44.i
"normal return43.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit15.i"
%74 = icmp eq { i64, i64, [0 x i8] }* %69, null
br i1 %74, label %join47.i, label %cond.i16.i
cond.i16.i: ; preds = %"normal return43.i"
%75 = bitcast { i64, i64, [0 x i8] }* %69 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %75)
br label %join47.i
unwind44.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit15.i"
%76 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract82.i = extractvalue { i8*, i32 } %76, 0
%.fca.1.extract84.i = extractvalue { i8*, i32 } %76, 1
%77 = icmp eq { i64, i64, [0 x i8] }* %69, null
br i1 %77, label %cleanup.i, label %cond.i18.i
cond.i18.i: ; preds = %unwind44.i
%78 = bitcast { i64, i64, [0 x i8] }* %69 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %78)
br label %cleanup.i
join47.i: ; preds = %cond.i16.i, %"normal return43.i", %match_else30.i
%79 = bitcast %enum.ValidUsage* %0 to i8*
call void @llvm.memset.p0i8.i64(i8* %79, i8 0, i64 16, i32 8, i1 false)
br label %join49.i
join49.i: ; preds = %join47.i, %match_else.i
%80 = icmp eq { i64, i64, [0 x i8] }* %16, null
br i1 %80, label %join, label %cond.i.i20.i
cond.i.i20.i: ; preds = %join49.i
%81 = bitcast { i64, i64, [0 x i8] }* %16 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %81)
br label %join
compare_vec_len_next: ; preds = %"function top level"
%82 = getelementptr inbounds %enum.ValidUsage* %0, i64 0, i32 0
store i64 1, i64* %82, align 8
br label %join
join: ; preds = %cond.i.i20.i, %join49.i, %compare_vec_len_next
ret void
}
declare void @"_ZN5usage16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*)
define internal fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #3 {
"function top level":
%__trans_ret_slot.i = alloca {}, align 8
%ret.i = alloca { i64, i64, [0 x i8] }*, align 8
%__adjust.i = alloca { i8*, i64 }, align 8
%__arg3.i = alloca %str_slice, align 8
%v.i = alloca { i64, i64, [0 x i8] }*, align 8
%__arg.sroa.0.0..cast.i = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %0 to i8**
%__arg.sroa.0.0.copyload.i = load i8** %__arg.sroa.0.0..cast.i, align 8
%__arg.sroa.1.8..idx.i = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %0, i64 0, i32 1
%__arg.sroa.1.8..cast.i = bitcast %tydesc** %__arg.sroa.1.8..idx.i to i64*
%__arg.sroa.1.8.copyload.i = load i64* %__arg.sroa.1.8..cast.i, align 8
%1 = bitcast {}* %__trans_ret_slot.i to i8*
call void @llvm.lifetime.start(i64 0, i8* %1)
%2 = bitcast { i8*, i64 }* %__adjust.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %2)
%3 = bitcast %str_slice* %__arg3.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %3)
%4 = bitcast { i64, i64, [0 x i8] }** %v.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %4)
%5 = icmp eq i64 %__arg.sroa.1.8.copyload.i, 0
br i1 %5, label %then.i, label %next.i
then.i: ; preds = %"function top level"
%6 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([19 x i8]* @str10945, i64 0, i64 0), i64 18)
%7 = getelementptr inbounds { i64, i64, [0 x i8] }* %6, i64 0, i32 2, i64 0
%8 = getelementptr inbounds { i64, i64, [0 x i8] }* %6, i64 0, i32 0
%9 = load i64* %8, align 8
%10 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0
store i8* %7, i8** %10, align 8
%11 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1
store i64 %9, i64* %11, align 8
%12 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }*
%13 = bitcast { i64, i64, [0 x i8] }** %ret.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %13)
%14 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %12)
to label %.noexc110 unwind label %unwind.i
.noexc110: ; preds = %then.i
store { i64, i64, [0 x i8] }* %14, { i64, i64, [0 x i8] }** %ret.i, align 8
%15 = getelementptr inbounds { i64, i64, [0 x i8] }* %14, i64 0, i32 0
%16 = load i64* %15, align 8
%17 = add i64 %16, 6
%18 = lshr i64 %17, 1
%19 = or i64 %18, %17
%20 = lshr i64 %19, 2
%21 = or i64 %20, %19
%22 = lshr i64 %21, 4
%23 = or i64 %22, %21
%24 = lshr i64 %23, 8
%25 = or i64 %24, %23
%26 = lshr i64 %25, 16
%27 = or i64 %26, %25
%28 = lshr i64 %27, 32
%29 = or i64 %28, %27
%30 = add i64 %29, 1
%31 = bitcast { i64, i64, [0 x i8] }** %ret.i to { i64, %tydesc*, i8*, i8*, i8 }*
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %31, i64 %30)
to label %"normal return.i" unwind label %unwind.i7
unwind.i7: ; preds = %.noexc110
%32 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%33 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%34 = icmp eq { i64, i64, [0 x i8] }* %33, null
br i1 %34, label %unwind.i.body, label %cond.i12
cond.i12: ; preds = %unwind.i7
%35 = bitcast { i64, i64, [0 x i8] }* %33 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %35)
to label %unwind.i.body unwind label %unwind.i
"normal return.i": ; preds = %.noexc110
%36 = add i64 %16, -1
%37 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%38 = getelementptr inbounds { i64, i64, [0 x i8] }* %37, i64 0, i32 2, i64 0
%39 = ptrtoint i8* %38 to i64
%40 = add i64 %36, %39
%41 = inttoptr i64 %40 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %41, i8* getelementptr inbounds ([8 x i8]* @str10946, i64 0, i64 0), i64 7, i32 1, i1 false)
%42 = load { i64, i64, [0 x i8] }** %ret.i, align 8
%43 = add i64 %16, 7
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %42, i64 0, i32 0
store i64 %43, i64* %44, align 8
%45 = getelementptr inbounds { i64, i64, [0 x i8] }* %42, i64 1
%46 = ptrtoint { i64, i64, [0 x i8] }* %45 to i64
%47 = add i64 %17, %46
%48 = inttoptr i64 %47 to i8*
store i8 0, i8* %48, align 1
%49 = load { i64, i64, [0 x i8] }** %ret.i, align 8
call void @llvm.lifetime.end(i64 8, i8* %13)
%50 = icmp eq { i64, i64, [0 x i8] }* %6, null
br i1 %50, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18", label %cond.i17
cond.i17: ; preds = %"normal return.i"
%51 = bitcast { i64, i64, [0 x i8] }* %6 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %51)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18": ; preds = %"normal return.i", %cond.i17
%.sroa.0186.0..idx = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 0
store i8* getelementptr inbounds ([53 x i8]* @str10947, i64 0, i64 0), i8** %.sroa.0186.0..idx, align 8
%.sroa.1188.8..idx189 = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 1
store i64 53, i64* %.sroa.1188.8..idx189, align 8
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %49, %str_slice* %__arg3.i, i64 1581)
unreachable
unwind.i: ; preds = %cond.i12, %then.i
%52 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind.i.body
unwind.i.body: ; preds = %unwind.i7, %cond.i12, %unwind.i
%eh.lpad-body = phi { i8*, i32 } [ %52, %unwind.i ], [ %32, %cond.i12 ], [ %32, %unwind.i7 ]
call void @upcall_reset_stack_limit()
%53 = icmp eq { i64, i64, [0 x i8] }* %6, null
br i1 %53, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit21", label %cond.i20
cond.i20: ; preds = %unwind.i.body
%54 = bitcast { i64, i64, [0 x i8] }* %6 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %54)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit21"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit21": ; preds = %unwind.i.body, %cond.i20
resume { i8*, i32 } %eh.lpad-body
next.i: ; preds = %"function top level"
%55 = add i64 %__arg.sroa.1.8.copyload.i, 16
%56 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 %55)
%57 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %56, null
br i1 %57, label %then.i24, label %.noexc40
then.i24: ; preds = %next.i
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
br label %.noexc40
unwind7.i.body: ; preds = %"while loop cond.i170.preheader"
%58 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%59 = load { i64, i64, [0 x i8] }** %v.i, align 8
%60 = icmp eq { i64, i64, [0 x i8] }* %59, null
br i1 %60, label %"_ZN8_$UP$u3216_3347fe3223215de15glue_free_10965E.exit37", label %cond.i36
cond.i36: ; preds = %unwind7.i.body
%61 = bitcast { i64, i64, [0 x i8] }* %59 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %61)
br label %"_ZN8_$UP$u3216_3347fe3223215de15glue_free_10965E.exit37"
"_ZN8_$UP$u3216_3347fe3223215de15glue_free_10965E.exit37": ; preds = %unwind7.i.body, %cond.i36
resume { i8*, i32 } %58
.noexc40: ; preds = %then.i24, %next.i
%62 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %56 to %"struct.std::unstable::raw::Vec<()>[#1]"*
%63 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %62, i64 0, i32 1
store i64 %__arg.sroa.1.8.copyload.i, i64* %63, align 8
%64 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %56 to i64*
store i64 0, i64* %64, align 8
%.c.i = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %56 to { i64, i64, [0 x i8] }*
store { i64, i64, [0 x i8] }* %.c.i, { i64, i64, [0 x i8] }** %v.i, align 8
%65 = getelementptr inbounds { i64, i64, [0 x i8] }* %.c.i, i64 0, i32 2, i64 0
%66 = add i64 %__arg.sroa.1.8.copyload.i, -1
call void @llvm.memmove.p0i8.p0i8.i64(i8* %65, i8* %__arg.sroa.0.0.copyload.i, i64 %66, i32 1, i1 false)
%67 = load { i64, i64, [0 x i8] }** %v.i, align 8
%68 = getelementptr inbounds { i64, i64, [0 x i8] }* %67, i64 0, i32 0
store i64 %66, i64* %68, align 8
%69 = load { i64, i64, [0 x i8] }** %v.i, align 8
%70 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 0
%71 = load i64* %70, align 8
%72 = getelementptr inbounds { i64, i64, [0 x i8] }* %69, i64 0, i32 1
%73 = load i64* %72, align 8
%74 = icmp ugt i64 %73, %71
br i1 %74, label %_ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit, label %"while loop cond.i170.preheader"
"while loop cond.i170.preheader": ; preds = %.noexc40
%75 = bitcast { i64, i64, [0 x i8] }** %v.i to { i64, %tydesc*, i8*, i8*, i8 }*
%76 = lshr i64 %71, 1
%77 = or i64 %76, %71
%78 = lshr i64 %77, 2
%79 = or i64 %78, %77
%80 = lshr i64 %79, 4
%81 = or i64 %80, %79
%82 = lshr i64 %81, 8
%83 = or i64 %82, %81
%84 = lshr i64 %83, 16
%85 = or i64 %84, %83
%86 = lshr i64 %85, 32
%87 = or i64 %86, %85
%88 = add i64 %87, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %75, i64 %88)
to label %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit_crit_edge" unwind label %unwind7.i.body
"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit_crit_edge": ; preds = %"while loop cond.i170.preheader"
%.pre = load { i64, i64, [0 x i8] }** %v.i, align 8
%.phi.trans.insert = getelementptr inbounds { i64, i64, [0 x i8] }* %.pre, i64 0, i32 0
%.pre390 = load i64* %.phi.trans.insert, align 8
br label %_ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit
_ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit: ; preds = %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit_crit_edge", %.noexc40
%89 = phi i64 [ %.pre390, %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit_crit_edge" ], [ %71, %.noexc40 ]
%90 = phi { i64, i64, [0 x i8] }* [ %.pre, %"while loop cond.i170.preheader._ZN3std3str14__extensions__8to_owned4anon13expr_fn_10799E.exit_crit_edge" ], [ %69, %.noexc40 ]
%91 = getelementptr inbounds { i64, i64, [0 x i8] }* %90, i64 0, i32 0
%92 = add i64 %89, 1
store i64 %92, i64* %91, align 8
%93 = load { i64, i64, [0 x i8] }** %v.i, align 8
%94 = getelementptr inbounds { i64, i64, [0 x i8] }* %93, i64 1
%95 = ptrtoint { i64, i64, [0 x i8] }* %94 to i64
%96 = add i64 %95, %89
%97 = inttoptr i64 %96 to i8*
store i8 0, i8* %97, align 1
%98 = load { i64, i64, [0 x i8] }** %v.i, align 8
call void @llvm.lifetime.end(i64 0, i8* %1)
call void @llvm.lifetime.end(i64 16, i8* %2)
call void @llvm.lifetime.end(i64 16, i8* %3)
call void @llvm.lifetime.end(i64 8, i8* %4)
ret { i64, i64, [0 x i8] }* %98
}
declare void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}*, { i64, %tydesc*, i8*, i8*, i8 }*, { i64, i64, [0 x i8] }*, %str_slice*, i64)
define internal fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64) #2 {
"function top level":
%__trans_ret_slot = alloca {}, align 8
%__fmtbuf = alloca { i64, i64, [0 x i8] }*, align 8
%__arg5 = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg7 = alloca %str_slice, align 8
%2 = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %0 to %"struct.std::unstable::raw::Vec<()>[#1]"**
%3 = load %"struct.std::unstable::raw::Vec<()>[#1]"** %2, align 8
%4 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %3, i64 0, i32 1
%5 = load i64* %4, align 8
%6 = icmp ult i64 %5, %1
br i1 %6, label %join, label %next10
join: ; preds = %"function top level"
%uadd = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %1, i64 16)
%7 = extractvalue { i64, i1 } %uadd, 1
br i1 %7, label %then3, label %next8
then3: ; preds = %join
%8 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([27 x i8]* @str10881, i64 0, i64 0), i64 26)
store { i64, i64, [0 x i8] }* %8, { i64, i64, [0 x i8] }** %__fmtbuf, align 8
%.sroa.018.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 0
store i32 0, i32* %.sroa.018.0..idx, align 8
%.sroa.2.8..idx20 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 1, i32 0
store i64 1, i64* %.sroa.2.8..idx20, align 8
%.sroa.4.24..idx22 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 2, i32 0
store i64 1, i64* %.sroa.4.24..idx22, align 8
%.sroa.6.40..idx24 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 3, i32 0
store i64 0, i64* %.sroa.6.40..idx24, align 8
invoke void @"_ZN8unstable6extfmt2rt9conv_uint17_7d8efb9aa1a1a0b614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 %1, { i64, i64, [0 x i8] }** %__fmtbuf)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit12" unwind label %unwind
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit12": ; preds = %then3
%9 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf, align 8
%.sroa.0.0..idx = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 0
store i8* getelementptr inbounds ([53 x i8]* @str10892, i64 0, i64 0), i8** %.sroa.0.0..idx, align 8
%.sroa.1.8..idx13 = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 1
store i64 53, i64* %.sroa.1.8..idx13, align 8
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %9, %str_slice* %__arg7, i64 1166)
unreachable
unwind: ; preds = %then3
%10 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%11 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8
%12 = icmp eq { i64, i64, [0 x i8] }* %11, null
br i1 %12, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", label %cond.i.i
cond.i.i: ; preds = %unwind
%13 = bitcast { i64, i64, [0 x i8] }* %11 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %13)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit": ; preds = %unwind, %cond.i.i
resume { i8*, i32 } %10
next8: ; preds = %join
%14 = extractvalue { i64, i1 } %uadd, 0
%15 = bitcast %"struct.std::unstable::raw::Vec<()>[#1]"* %3 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%16 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib7realloc16_e898c12982ea93e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %15, i64 %14)
%17 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %16, null
br i1 %17, label %then.i, label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit"
then.i: ; preds = %next8
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
br label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit"
"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit": ; preds = %next8, %then.i
%18 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %16 to %"struct.std::unstable::raw::Vec<()>[#1]"*
%19 = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %0, i64 0, i32 0
%.c = ptrtoint %"enum.std::libc::types::common::c95::c_void[#1]"* %16 to i64
store i64 %.c, i64* %19, align 8
%20 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %18, i64 0, i32 1
store i64 %1, i64* %20, align 8
br label %next10
next10: ; preds = %"function top level", %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit"
ret void
}
declare { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i8*, i64)
declare void @"_ZN8unstable6extfmt2rt9conv_uint17_7d8efb9aa1a1a0b614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"struct.std::unstable::extfmt::rt::Conv[#1]"*, i64, { i64, i64, [0 x i8] }**)
declare void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"enum.std::libc::types::common::c95::c_void[#1]"*)
declare %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib7realloc16_e898c12982ea93e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"enum.std::libc::types::common::c95::c_void[#1]"*, i64)
declare void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64)
declare { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* @"_ZN2os4args16_707125f9258e1ff14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i8*, i64, i64, i64)
define void @"_ZN8find_cmd17_d4675eccdab8bd1614_0$x2e8$x2dpreE"(%"enum.std::option::Option<Command>[#1]"* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture) #2 {
"function top level":
%__arg.i = alloca %struct.Command, align 8
%__arg2.i.sroa.0.0..idx = getelementptr inbounds %str_slice* %2, i64 0, i32 0
%__arg2.i.sroa.1.8..idx78 = getelementptr inbounds %str_slice* %2, i64 0, i32 1
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %match_case.i, label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52"
"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52": ; preds = %"`loop`.i.i.backedge", %"function top level"
%.sroa.08.091 = phi i64 [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %"function top level" ], [ %3, %"`loop`.i.i.backedge" ]
%3 = add i64 %.sroa.08.091, 88
%4 = inttoptr i64 %.sroa.08.091 to %struct.Command*
%__arg1.i.sroa.1.8..idx43 = getelementptr inbounds %struct.Command* %4, i64 0, i32 0, i32 1
%__arg1.i.sroa.1.8.copyload = load i64* %__arg1.i.sroa.1.8..idx43, align 8
%__arg2.i.sroa.1.8.copyload = load i64* %__arg2.i.sroa.1.8..idx78, align 8
%5 = icmp eq i64 %__arg1.i.sroa.1.8.copyload, %__arg2.i.sroa.1.8.copyload
br i1 %5, label %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit, label %"`loop`.i.i.backedge"
"`loop`.i.i.backedge": ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52", %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit
%6 = inttoptr i64 %3 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%7 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %6, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)
%8 = icmp eq i64 %3, 0
%or.cond = or i1 %7, %8
br i1 %or.cond, label %match_case.i, label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52"
_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit: ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52"
%__arg1.i.sroa.0.0..idx = getelementptr inbounds %struct.Command* %4, i64 0, i32 0, i32 0
%__arg2.i.sroa.0.0.copyload = load i8** %__arg2.i.sroa.0.0..idx, align 8
%__arg1.i.sroa.0.0.copyload = load i8** %__arg1.i.sroa.0.0..idx, align 8
%9 = bitcast i8* %__arg1.i.sroa.0.0.copyload to %"enum.std::libc::types::common::c95::c_void[#1]"*
%10 = bitcast i8* %__arg2.i.sroa.0.0.copyload to %"enum.std::libc::types::common::c95::c_void[#1]"*
%11 = add i64 %__arg1.i.sroa.1.8.copyload, -1
%12 = call i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %9, %"enum.std::libc::types::common::c95::c_void[#1]"* %10, i64 %11)
%13 = icmp eq i32 %12, 0
br i1 %13, label %match_else.i, label %"`loop`.i.i.backedge"
match_else.i: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit
%14 = bitcast %struct.Command* %__arg.i to i8*
call void @llvm.lifetime.start(i64 88, i8* %14)
%15 = inttoptr i64 %.sroa.08.091 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %15, i64 88, i32 8, i1 false)
%16 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %0, i64 0, i32 0
store i64 1, i64* %16, align 8
%17 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %0, i64 0, i32 1, i64 0
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %17, i8* %14, i64 88, i32 8, i1 false) #0
br label %"_ZN6option14__extensions__17map_consume_1101816_40771e9153818ec14_0$x2e8$x2dpreE.exit"
match_case.i: ; preds = %"`loop`.i.i.backedge", %"function top level"
%18 = bitcast %struct.Command* %__arg.i to i8*
call void @llvm.lifetime.start(i64 88, i8* %18)
%19 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %0, i64 0, i32 0
store i64 0, i64* %19, align 8
br label %"_ZN6option14__extensions__17map_consume_1101816_40771e9153818ec14_0$x2e8$x2dpreE.exit"
"_ZN6option14__extensions__17map_consume_1101816_40771e9153818ec14_0$x2e8$x2dpreE.exit": ; preds = %match_else.i, %match_case.i
%20 = phi i8* [ %14, %match_else.i ], [ %18, %match_case.i ]
call void @llvm.lifetime.end(i64 88, i8* %20)
ret void
}
declare i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"enum.std::libc::types::common::c95::c_void[#1]"*, %"enum.std::libc::types::common::c95::c_void[#1]"*, i64)
declare void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*)
declare void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %"struct.std::unstable::extfmt::rt::Conv[#1]"*, %str_slice*, { i64, i64, [0 x i8] }**)
declare void @"_ZN3str8push_str16_d83c17bf50a939914_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, { i64, i64, [0 x i8] }**, %str_slice*)
declare void @"_ZN3sys14__extensions__10meth_127919fail_with16_db4c44d01ce411614_0$x2e8$x2dpreE"({}*, { i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*, %str_slice*, i64)
declare void @"_ZN4path14__extensions__10meth_225708filestem17_b384379c13763c9b14_0$x2e8$x2dpreE"(%"enum.std::option::Option<~str>[#1]"*, { i64, %tydesc*, i8*, i8*, i8 }*)
declare void @"_ZN4path9PosixPath17_7c6da4115ba3bd6514_0$x2e8$x2dpreE"(%"struct.std::path::PosixPath[#1]"*, { i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*)
define void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture, %str_slice* nocapture, { { i64, i64, [0 x i8] }**, i64 }* nocapture, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* nocapture) #2 {
"function top level":
%__adjust.i.i = alloca { i8*, i64 }, align 8
%result.i = alloca { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*, align 8
%osargs = alloca { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*, align 8
%4 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 48)
%5 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %4, null
br i1 %5, label %then.i.i, label %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit"
then.i.i: ; preds = %"function top level"
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
br label %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit"
"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit": ; preds = %"function top level", %then.i.i
%6 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %4 to i8*
%7 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %4 to i64*
store i64 8, i64* %7, align 8
%8 = getelementptr inbounds i8* %6, i64 8
%9 = bitcast i8* %8 to i64*
store i64 32, i64* %9, align 8
%10 = bitcast %str_slice* %1 to { i64, %tydesc*, i8*, i8*, i8 }*
%11 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %10)
to label %"normal return" unwind label %unwind
"normal return": ; preds = %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit"
%12 = getelementptr inbounds i8* %6, i64 16
%13 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %4 to { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*
%14 = bitcast i8* %12 to { i64, i64, [0 x i8] }**
store { i64, i64, [0 x i8] }* %11, { i64, i64, [0 x i8] }** %14, align 8
store { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %13, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
%15 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %15)
%s.sroa.1.8..idx.i.i.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 1
%s.sroa.1.8.copyload.i.i.i = load i64* %s.sroa.1.8..idx.i.i.i, align 1
%16 = and i64 %s.sroa.1.8.copyload.i.i.i, -8
%17 = add i64 %16, 16
%18 = invoke %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib6malloc17_29e63c4e98d61cf514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i64 %17)
to label %.noexc unwind label %unwind2.nonloopexit.nonloopexit
.noexc: ; preds = %"normal return"
%19 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %18, null
br i1 %19, label %then.i.i.i, label %"normal return.i"
then.i.i.i: ; preds = %.noexc
invoke void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
to label %"normal return.i" unwind label %unwind2.nonloopexit.nonloopexit
"normal return.i": ; preds = %then.i.i.i, %.noexc
%20 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %18 to %"struct.std::unstable::raw::Vec<()>[#1]"*
%21 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %20, i64 0, i32 1
store i64 %16, i64* %21, align 8
%22 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %18 to i64*
store i64 0, i64* %22, align 8
%.c.i.i.i.i = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %18 to { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*
store { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %.c.i.i.i.i, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8
%23 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %2, i64 0, i32 0
%24 = load { i64, i64, [0 x i8] }*** %23, align 8
%25 = load i64* %s.sroa.1.8..idx.i.i.i, align 8
%26 = ptrtoint { i64, i64, [0 x i8] }** %24 to i64
%27 = and i64 %25, -8
%28 = add i64 %27, %26
%29 = inttoptr i64 %28 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%30 = bitcast { i64, i64, [0 x i8] }** %24 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%31 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %30, %29
br i1 %31, label %"normal return1", label %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i"
"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i": ; preds = %"normal return.i"
%32 = bitcast { i8*, i64 }* %__adjust.i.i to i8*
%33 = getelementptr inbounds { i8*, i64 }* %__adjust.i.i, i64 0, i32 0
%34 = getelementptr inbounds { i8*, i64 }* %__adjust.i.i, i64 0, i32 1
%35 = bitcast { i8*, i64 }* %__adjust.i.i to { i64, %tydesc*, i8*, i8*, i8 }*
%36 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i to { i64, %tydesc*, i8*, i8*, i8 }*
br label %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i"
"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i": ; preds = %.noexc.i, %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i"
%.sroa.015.082.i = phi i64 [ %26, %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.lr.ph.i" ], [ %37, %.noexc.i ]
%37 = add i64 %.sroa.015.082.i, 8
%38 = icmp eq i64 %.sroa.015.082.i, 0
br i1 %38, label %"normal return2.loopexit.i", label %match_case.i.i
match_case.i.i: ; preds = %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i"
call void @llvm.lifetime.start(i64 16, i8* %32)
%39 = inttoptr i64 %.sroa.015.082.i to { i64, i64, [0 x i8] }**
%40 = load { i64, i64, [0 x i8] }** %39, align 8
%41 = getelementptr inbounds { i64, i64, [0 x i8] }* %40, i64 0, i32 2, i64 0
%42 = getelementptr inbounds { i64, i64, [0 x i8] }* %40, i64 0, i32 0
%43 = load i64* %42, align 8
store i8* %41, i8** %33, align 8
store i64 %43, i64* %34, align 8
%44 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %35)
to label %"normal return8.i.i" unwind label %unwind.loopexit.i
unwind.i.body.i: ; preds = %"normal return12.i.i"
%45 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%46 = icmp eq { i64, i64, [0 x i8] }* %44, null
br i1 %46, label %unwind.body.i, label %cond.i.i34.i
cond.i.i34.i: ; preds = %unwind.i.body.i
%47 = bitcast { i64, i64, [0 x i8] }* %44 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %47)
to label %unwind.body.i unwind label %unwind.nonloopexit.i
"normal return8.i.i": ; preds = %match_case.i.i
call void @llvm.lifetime.end(i64 16, i8* %32)
%48 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8
%49 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %48, i64 0, i32 0
%50 = load i64* %49, align 8
%51 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %48, i64 0, i32 1
%52 = load i64* %51, align 8
%53 = icmp ugt i64 %52, %50
br i1 %53, label %.noexc.i, label %"normal return12.i.i"
"normal return12.i.i": ; preds = %"normal return8.i.i"
%54 = lshr i64 %50, 3
%55 = lshr i64 %50, 4
%56 = or i64 %55, %54
%57 = lshr i64 %56, 2
%58 = or i64 %57, %56
%59 = lshr i64 %58, 4
%60 = or i64 %59, %58
%61 = lshr i64 %60, 8
%62 = or i64 %61, %60
%63 = lshr i64 %62, 16
%64 = or i64 %63, %62
%65 = lshr i64 %64, 32
%66 = or i64 %65, %64
%67 = add i64 %66, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1116116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %36, i64 %67)
to label %"normal return12.i..noexc_crit_edge.i" unwind label %unwind.i.body.i
"normal return12.i..noexc_crit_edge.i": ; preds = %"normal return12.i.i"
%.pre.i = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8
%.phi.trans.insert.i = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %.pre.i, i64 0, i32 0
%.pre84.i = load i64* %.phi.trans.insert.i, align 8
br label %.noexc.i
.noexc.i: ; preds = %"normal return12.i..noexc_crit_edge.i", %"normal return8.i.i"
%68 = phi i64 [ %.pre84.i, %"normal return12.i..noexc_crit_edge.i" ], [ %50, %"normal return8.i.i" ]
%69 = phi { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* [ %.pre.i, %"normal return12.i..noexc_crit_edge.i" ], [ %48, %"normal return8.i.i" ]
%70 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %69, i64 0, i32 0
%71 = add i64 %68, 8
store i64 %71, i64* %70, align 8
%72 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8
%73 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %72, i64 1
%74 = ptrtoint { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %73 to i64
%75 = add i64 %74, %68
%76 = inttoptr i64 %75 to { i64, i64, [0 x i8] }**
store { i64, i64, [0 x i8] }* %44, { i64, i64, [0 x i8] }** %76, align 8
%77 = inttoptr i64 %37 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%78 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %77, %29
br i1 %78, label %"normal return2.loopexit.i", label %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i"
unwind.loopexit.i: ; preds = %match_case.i.i
%lpad.loopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind.body.i
unwind.nonloopexit.i: ; preds = %cond.i.i34.i
%lpad.nonloopexit.i = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind.body.i
unwind.body.i: ; preds = %unwind.nonloopexit.i, %unwind.loopexit.i, %cond.i.i34.i, %unwind.i.body.i
%eh.lpad-body.i = phi { i8*, i32 } [ %45, %unwind.i.body.i ], [ %45, %cond.i.i34.i ], [ %lpad.loopexit.i, %unwind.loopexit.i ], [ %lpad.nonloopexit.i, %unwind.nonloopexit.i ]
call void @upcall_reset_stack_limit()
%79 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8
%80 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79, null
br i1 %80, label %unwind2.body, label %cond.i.i3.i
cond.i.i3.i: ; preds = %unwind.body.i
%81 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79, i64 0, i32 0
%82 = load i64* %81, align 8
%83 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79, i64 0, i32 2, i64 0
%84 = bitcast { i64, i64, [0 x i8] }** %83 to i8*
%85 = getelementptr inbounds i8* %84, i64 %82
%86 = bitcast i8* %85 to { i64, i64, [0 x i8] }**
%87 = icmp ult { i64, i64, [0 x i8] }** %83, %86
br i1 %87, label %iter_vec_loop_body.i.i.i4.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i7.i"
iter_vec_loop_body.i.i.i4.i: ; preds = %cond.i.i3.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i6.i"
%88 = phi { i64, i64, [0 x i8] }** [ %92, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i6.i" ], [ %83, %cond.i.i3.i ]
%89 = load { i64, i64, [0 x i8] }** %88, align 8
%90 = icmp eq { i64, i64, [0 x i8] }* %89, null
br i1 %90, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i6.i", label %cond.i.i.i.i.i5.i
cond.i.i.i.i.i5.i: ; preds = %iter_vec_loop_body.i.i.i4.i
%91 = bitcast { i64, i64, [0 x i8] }* %89 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %91)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i6.i" unwind label %unwind2.nonloopexit.loopexit
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i6.i": ; preds = %cond.i.i.i.i.i5.i, %iter_vec_loop_body.i.i.i4.i
%92 = getelementptr inbounds { i64, i64, [0 x i8] }** %88, i64 1
%93 = icmp ult { i64, i64, [0 x i8] }** %92, %86
br i1 %93, label %iter_vec_loop_body.i.i.i4.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i7.i"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i7.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i6.i", %cond.i.i3.i
%94 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %79 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %94)
to label %unwind2.body unwind label %unwind2.nonloopexit.nonloopexit
"normal return2.loopexit.i": ; preds = %.noexc.i, %"_ZN3vec14__extensions__10next_1121015_3b383846f414f614_0$x2e8$x2dpreE.exit.i.i"
%.pre85.i = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %result.i, align 8
br label %"normal return1"
unwind: ; preds = %"_ZN2rt11global_heap15exchange_malloc16_ecc457221971b4814_0$x2e8$x2dpreE.exit"
%95 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %4)
resume { i8*, i32 } %95
"normal return1": ; preds = %"normal return2.loopexit.i", %"normal return.i"
%96 = phi { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* [ %.pre85.i, %"normal return2.loopexit.i" ], [ %.c.i.i.i.i, %"normal return.i" ]
call void @llvm.lifetime.end(i64 8, i8* %15)
%97 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs to { i64, %tydesc*, i8*, i8*, i8 }*
%98 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
%99 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %98, i64 0, i32 0
%100 = load i64* %99, align 8
%101 = lshr i64 %100, 3
%102 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96, i64 0, i32 0
%103 = load i64* %102, align 8
%104 = lshr i64 %103, 3
%105 = add i64 %104, %101
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1116116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %97, i64 %105)
to label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit.i" unwind label %cond.i.i12.i
cond.i.i12.i: ; preds = %"normal return1"
%106 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%107 = load i64* %102, align 8
%108 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96, i64 0, i32 2, i64 0
%109 = bitcast { i64, i64, [0 x i8] }** %108 to i8*
%110 = getelementptr inbounds i8* %109, i64 %107
%111 = bitcast i8* %110 to { i64, i64, [0 x i8] }**
%112 = icmp ult { i64, i64, [0 x i8] }** %108, %111
br i1 %112, label %iter_vec_loop_body.i.i.i13.i, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit17.i"
iter_vec_loop_body.i.i.i13.i: ; preds = %cond.i.i12.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i15.i"
%113 = phi { i64, i64, [0 x i8] }** [ %117, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i15.i" ], [ %108, %cond.i.i12.i ]
%114 = load { i64, i64, [0 x i8] }** %113, align 8
%115 = icmp eq { i64, i64, [0 x i8] }* %114, null
br i1 %115, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i15.i", label %cond.i.i.i.i.i14.i
cond.i.i.i.i.i14.i: ; preds = %iter_vec_loop_body.i.i.i13.i
%116 = bitcast { i64, i64, [0 x i8] }* %114 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %116)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i15.i" unwind label %unwind2.loopexit
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i15.i": ; preds = %cond.i.i.i.i.i14.i, %iter_vec_loop_body.i.i.i13.i
%117 = getelementptr inbounds { i64, i64, [0 x i8] }** %113, i64 1
%118 = icmp ult { i64, i64, [0 x i8] }** %117, %111
br i1 %118, label %iter_vec_loop_body.i.i.i13.i, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit17.i"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit17.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i15.i", %cond.i.i12.i
%119 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %119)
to label %unwind2.body unwind label %unwind2.nonloopexit.nonloopexit
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit.i": ; preds = %"normal return1"
%120 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
%121 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %120, i64 0, i32 2, i64 0
%122 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96, i64 0, i32 2, i64 0
%123 = ptrtoint { i64, i64, [0 x i8] }** %121 to i64
%124 = shl nuw i64 %101, 3
%125 = add i64 %123, %124
%126 = inttoptr i64 %125 to i8*
%127 = bitcast { i64, i64, [0 x i8] }** %122 to i8*
%128 = shl nuw i64 %104, 3
call void @llvm.memmove.p0i8.p0i8.i64(i8* %126, i8* %127, i64 %128, i32 8, i1 false) #0
%129 = shl i64 %105, 3
%130 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
%131 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %130, i64 0, i32 0
store i64 %129, i64* %131, align 8
store i64 0, i64* %102, align 8
%132 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %96 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %132)
to label %"normal return4" unwind label %unwind2.nonloopexit.nonloopexit
unwind2.loopexit: ; preds = %cond.i.i.i.i.i14.i
%lpad.loopexit = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind2.body
unwind2.nonloopexit.loopexit: ; preds = %cond.i.i.i.i.i5.i
%lpad.loopexit32 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind2.body
unwind2.nonloopexit.nonloopexit: ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit.i", %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit17.i", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i7.i", %then.i.i.i, %"normal return", %"normal return6", %"normal return4"
%lpad.nonloopexit33 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind2.body
unwind2.body: ; preds = %unwind2.loopexit, %unwind2.nonloopexit.nonloopexit, %unwind2.nonloopexit.loopexit, %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit17.i", %unwind.body.i, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i7.i"
%eh.lpad-body = phi { i8*, i32 } [ %eh.lpad-body.i, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i7.i" ], [ %eh.lpad-body.i, %unwind.body.i ], [ %106, %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit17.i" ], [ %lpad.loopexit, %unwind2.loopexit ], [ %lpad.loopexit32, %unwind2.nonloopexit.loopexit ], [ %lpad.nonloopexit33, %unwind2.nonloopexit.nonloopexit ]
call void @upcall_reset_stack_limit()
%133 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
%134 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133, null
br i1 %134, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit", label %cond.i.i
cond.i.i: ; preds = %unwind2.body
%135 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133, i64 0, i32 0
%136 = load i64* %135, align 8
%137 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133, i64 0, i32 2, i64 0
%138 = bitcast { i64, i64, [0 x i8] }** %137 to i8*
%139 = getelementptr inbounds i8* %138, i64 %136
%140 = bitcast i8* %139 to { i64, i64, [0 x i8] }**
%141 = icmp ult { i64, i64, [0 x i8] }** %137, %140
br i1 %141, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i"
iter_vec_loop_body.i.i.i: ; preds = %cond.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i"
%142 = phi { i64, i64, [0 x i8] }** [ %146, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i" ], [ %137, %cond.i.i ]
%143 = load { i64, i64, [0 x i8] }** %142, align 8
%144 = icmp eq { i64, i64, [0 x i8] }* %143, null
br i1 %144, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i", label %cond.i.i.i.i.i
cond.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i
%145 = bitcast { i64, i64, [0 x i8] }* %143 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %145)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i": ; preds = %cond.i.i.i.i.i, %iter_vec_loop_body.i.i.i
%146 = getelementptr inbounds { i64, i64, [0 x i8] }** %142, i64 1
%147 = icmp ult { i64, i64, [0 x i8] }** %146, %140
br i1 %147, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i", %cond.i.i
%148 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %133 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %148)
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit": ; preds = %unwind2.body, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i"
resume { i8*, i32 } %eh.lpad-body
"normal return4": ; preds = %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit.i"
%149 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
store { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* null, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
invoke void @"_ZN2os8set_args17_1b27c995593ce49d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %149)
to label %"normal return6" unwind label %unwind2.nonloopexit.nonloopexit
"normal return6": ; preds = %"normal return4"
%150 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %3, i64 0, i32 0
%151 = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %150, align 8
%152 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %3, i64 0, i32 1
%153 = load { i64, %tydesc*, i8*, i8*, i8 }** %152, align 8
invoke void %151({ i64, %tydesc*, i8*, i8*, i8 }* %153)
to label %"normal return7" unwind label %unwind2.nonloopexit.nonloopexit
"normal return7": ; preds = %"normal return6"
%154 = load { i64, i64, [0 x { i64, i64, [0 x i8] }*] }** %osargs, align 8
%155 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154, null
br i1 %155, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit21", label %cond.i.i16
cond.i.i16: ; preds = %"normal return7"
%156 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154, i64 0, i32 0
%157 = load i64* %156, align 8
%158 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154, i64 0, i32 2, i64 0
%159 = bitcast { i64, i64, [0 x i8] }** %158 to i8*
%160 = getelementptr inbounds i8* %159, i64 %157
%161 = bitcast i8* %160 to { i64, i64, [0 x i8] }**
%162 = icmp ult { i64, i64, [0 x i8] }** %158, %161
br i1 %162, label %iter_vec_loop_body.i.i.i17, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i20"
iter_vec_loop_body.i.i.i17: ; preds = %cond.i.i16, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i19"
%163 = phi { i64, i64, [0 x i8] }** [ %167, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i19" ], [ %158, %cond.i.i16 ]
%164 = load { i64, i64, [0 x i8] }** %163, align 8
%165 = icmp eq { i64, i64, [0 x i8] }* %164, null
br i1 %165, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i19", label %cond.i.i.i.i.i18
cond.i.i.i.i.i18: ; preds = %iter_vec_loop_body.i.i.i17
%166 = bitcast { i64, i64, [0 x i8] }* %164 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %166)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i19"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i19": ; preds = %cond.i.i.i.i.i18, %iter_vec_loop_body.i.i.i17
%167 = getelementptr inbounds { i64, i64, [0 x i8] }** %163, i64 1
%168 = icmp ult { i64, i64, [0 x i8] }** %167, %161
br i1 %168, label %iter_vec_loop_body.i.i.i17, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i20"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i20": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i19", %cond.i.i16
%169 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %154 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %169)
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit21"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit21": ; preds = %"normal return7", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i20"
ret void
}
declare i64 @"_ZN3run14process_status17_414f913ecacd531b14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*, { { i64, i64, [0 x i8] }**, i64 }*)
define internal fastcc void @"_ZN3vec14__extensions__13reserve_1116116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64) #2 {
"function top level":
%__trans_ret_slot = alloca {}, align 8
%__fmtbuf = alloca { i64, i64, [0 x i8] }*, align 8
%__arg5 = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg7 = alloca %str_slice, align 8
%2 = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %0 to %"struct.std::unstable::raw::Vec<()>[#1]"**
%3 = load %"struct.std::unstable::raw::Vec<()>[#1]"** %2, align 8
%4 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %3, i64 0, i32 1
%5 = load i64* %4, align 8
%6 = lshr i64 %5, 3
%7 = icmp ult i64 %6, %1
br i1 %7, label %next, label %next10
next: ; preds = %"function top level"
%8 = shl i64 %1, 3
%uadd = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %8, i64 16)
%9 = extractvalue { i64, i1 } %uadd, 0
%10 = and i64 %1, 2305843009213693951
%11 = icmp ne i64 %10, %1
%12 = zext i1 %11 to i8
br i1 %11, label %join, label %rhs
join: ; preds = %rhs, %next
%13 = phi i8 [ %12, %next ], [ %16, %rhs ]
%14 = icmp eq i8 %13, 0
br i1 %14, label %next8, label %then3
rhs: ; preds = %next
%15 = extractvalue { i64, i1 } %uadd, 1
%16 = zext i1 %15 to i8
br label %join
then3: ; preds = %join
%17 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([27 x i8]* @str10881, i64 0, i64 0), i64 26)
store { i64, i64, [0 x i8] }* %17, { i64, i64, [0 x i8] }** %__fmtbuf, align 8
%.sroa.018.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 0
store i32 0, i32* %.sroa.018.0..idx, align 8
%.sroa.2.8..idx20 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 1, i32 0
store i64 1, i64* %.sroa.2.8..idx20, align 8
%.sroa.4.24..idx22 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 2, i32 0
store i64 1, i64* %.sroa.4.24..idx22, align 8
%.sroa.6.40..idx24 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 0, i32 3, i32 0
store i64 0, i64* %.sroa.6.40..idx24, align 8
invoke void @"_ZN8unstable6extfmt2rt9conv_uint17_7d8efb9aa1a1a0b614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg5, i64 %1, { i64, i64, [0 x i8] }** %__fmtbuf)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit12" unwind label %unwind
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit12": ; preds = %then3
%18 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf, align 8
%.sroa.0.0..idx = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 0
store i8* getelementptr inbounds ([53 x i8]* @str10892, i64 0, i64 0), i8** %.sroa.0.0..idx, align 8
%.sroa.1.8..idx13 = getelementptr inbounds %str_slice* %__arg7, i64 0, i32 1
store i64 53, i64* %.sroa.1.8..idx13, align 8
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %18, %str_slice* %__arg7, i64 1166)
unreachable
unwind: ; preds = %then3
%19 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%20 = load { i64, i64, [0 x i8] }** %__fmtbuf, align 8
%21 = icmp eq { i64, i64, [0 x i8] }* %20, null
br i1 %21, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", label %cond.i.i
cond.i.i: ; preds = %unwind
%22 = bitcast { i64, i64, [0 x i8] }* %20 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %22)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit": ; preds = %unwind, %cond.i.i
resume { i8*, i32 } %19
next8: ; preds = %join
%23 = bitcast %"struct.std::unstable::raw::Vec<()>[#1]"* %3 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%24 = call %"enum.std::libc::types::common::c95::c_void[#1]"* @"_ZN4libc5funcs3c956stdlib7realloc16_e898c12982ea93e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %23, i64 %9)
%25 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %24, null
br i1 %25, label %then.i, label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit"
then.i: ; preds = %next8
call void @"_ZN2rt11global_heap5abort16_df5982df3c0192c14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
br label %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit"
"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit": ; preds = %next8, %then.i
%26 = bitcast %"enum.std::libc::types::common::c95::c_void[#1]"* %24 to %"struct.std::unstable::raw::Vec<()>[#1]"*
%27 = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %0, i64 0, i32 0
%.c = ptrtoint %"enum.std::libc::types::common::c95::c_void[#1]"* %24 to i64
store i64 %.c, i64* %27, align 8
%28 = getelementptr inbounds %"struct.std::unstable::raw::Vec<()>[#1]"* %26, i64 0, i32 1
store i64 %8, i64* %28, align 8
br label %next10
next10: ; preds = %"function top level", %"_ZN2rt11global_heap11realloc_raw17_7876e87b6e4b168c14_0$x2e8$x2dpreE.exit"
ret void
}
declare void @"_ZN2os8set_args17_1b27c995593ce49d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, { i64, i64, [0 x { i64, i64, [0 x i8] }*] }*)
define void @"_ZN10do_command17_6f2daee512704c8a14_0$x2e8$x2dpreE"(%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }* nocapture, %struct.Command*, { { i64, i64, [0 x i8] }**, i64 }* nocapture) #2 {
"function top level":
%__arg5 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg6 = alloca %str_slice, align 8
%__arg8 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg10 = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8
%4 = getelementptr inbounds %struct.Command* %2, i64 0, i32 1, i32 0
%5 = load i64* %4, align 8, !range !0
%cond = icmp eq i64 %5, 0
%6 = getelementptr inbounds %struct.Command* %2, i64 0, i32 1, i32 1
br i1 %cond, label %match_case, label %match_else
match_else: ; preds = %"function top level"
%7 = getelementptr inbounds %struct.Command* %2, i64 0, i32 1, i32 2, i64 8
%8 = bitcast i8* %7 to void ({ i64, %tydesc*, i8*, i8*, i8 }*)**
%9 = bitcast void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %6 to i8*
%__arg614 = bitcast %str_slice* %__arg6 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %__arg614, i8* %9, i64 16, i32 8, i1 false)
%10 = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %8, align 8
%11 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 0
%12 = load { i64, i64, [0 x i8] }*** %11, align 8
%13 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 1
%14 = load i64* %13, align 8
%__adjust7.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8, i64 0, i32 0
store { i64, i64, [0 x i8] }** %12, { i64, i64, [0 x i8] }*** %__adjust7.sroa.0.0..idx, align 8
%__adjust7.sroa.1.8..idx12 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8, i64 0, i32 1
store i64 %14, i64* %__adjust7.sroa.1.8..idx12, align 8
%__adjust9.sroa.0.0..idx = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10, i64 0, i32 0
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %10, void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust9.sroa.0.0..idx, align 8
%__adjust9.sroa.1.8..idx11 = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10, i64 0, i32 1
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust9.sroa.1.8..idx11, align 8
call void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6, { { i64, i64, [0 x i8] }**, i64 }* %__arg8, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10)
%15 = bitcast %enum.ValidUsage* %0 to i8*
call void @llvm.memset.p0i8.i64(i8* %15, i8 0, i64 16, i32 8, i1 false)
br label %join
match_case: ; preds = %"function top level"
%16 = load void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %6, align 8
%17 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 0
%18 = load { i64, i64, [0 x i8] }*** %17, align 8
%19 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %3, i64 0, i32 1
%20 = load i64* %19, align 8
%__adjust.sroa.0.0..idx = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5, i64 0, i32 0
store { i64, i64, [0 x i8] }** %18, { i64, i64, [0 x i8] }*** %__adjust.sroa.0.0..idx, align 8
%__adjust.sroa.1.8..idx13 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5, i64 0, i32 1
store i64 %20, i64* %__adjust.sroa.1.8..idx13, align 8
call void %16(%enum.ValidUsage* %0, { i64, %tydesc*, i8*, i8*, i8 }* undef, { { i64, i64, [0 x i8] }**, i64 }* %__arg5)
br label %join
join: ; preds = %match_else, %match_case
ret void
}
define void @"_ZN5usage16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #2 {
"function top level":
%1 = alloca %str_slice, align 8
%__fmtbuf.i = alloca { i64, i64, [0 x i8] }*, align 8
%__arg1.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg2.i = alloca %str_slice, align 8
%__arg6.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg7.i = alloca { i8*, i64 }, align 8
%__arg9.i = alloca %"struct.std::unstable::extfmt::rt::Conv[#1]", align 8
%__arg10.i = alloca %str_slice, align 8
%__arg13.i = alloca { i8*, i64 }, align 8
%__arg = alloca %str_slice, align 8
%__arg2 = alloca %str_slice, align 8
%.sroa.010.0..idx = getelementptr inbounds %str_slice* %__arg, i64 0, i32 0
store i8* getelementptr inbounds ([177 x i8]* @str11231, i64 0, i64 0), i8** %.sroa.010.0..idx, align 8
%.sroa.111.8..idx12 = getelementptr inbounds %str_slice* %__arg, i64 0, i32 1
store i64 177, i64* %.sroa.111.8..idx12, align 8
call void @"_ZN2io5print17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg)
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %"_ZN8iterator14__extensions__13advance_1123215_c1aea65ce534e914_0$x2e8$x2dpreE.exit", label %match_case.i.lr.ph
match_case.i.lr.ph: ; preds = %"function top level"
%2 = bitcast %str_slice* %1 to i8*
%3 = bitcast { i64, i64, [0 x i8] }** %__fmtbuf.i to i8*
%4 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i to i8*
%5 = bitcast %str_slice* %__arg2.i to i8*
%6 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i to i8*
%7 = bitcast { i8*, i64 }* %__arg7.i to i8*
%8 = bitcast %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i to i8*
%9 = bitcast %str_slice* %__arg10.i to i8*
%10 = bitcast { i8*, i64 }* %__arg13.i to i8*
%11 = getelementptr inbounds %str_slice* %1, i64 0, i32 0
%12 = getelementptr inbounds %str_slice* %1, i64 0, i32 1
%13 = bitcast %str_slice* %1 to { i64, %tydesc*, i8*, i8*, i8 }*
%.sroa.063.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 0
%.sroa.267.8..idx68 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 1, i32 0
%.sroa.473.24..idx74 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 2, i32 0
%.sroa.679.40..idx80 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, i64 0, i32 3, i32 0
%.sroa.044.0..idx = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 0
%.sroa.248.8..idx49 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 1, i32 0
%.sroa.454.24..idx55 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 2, i32 0
%.sroa.660.40..idx61 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, i64 0, i32 3, i32 0
%__adjust.i.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg7.i, i64 0, i32 0
%__adjust.i.sroa.1.8..idx42 = getelementptr inbounds { i8*, i64 }* %__arg7.i, i64 0, i32 1
%14 = bitcast { i8*, i64 }* %__arg7.i to %str_slice*
%.sroa.0.0..idx28 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 0
%.sroa.2.8..idx31 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 1, i32 0
%.sroa.4.24..idx35 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 2, i32 0
%.sroa.6.40..idx39 = getelementptr inbounds %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, i64 0, i32 3, i32 0
%__adjust12.i.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg13.i, i64 0, i32 0
%__adjust12.i.sroa.1.8..idx26 = getelementptr inbounds { i8*, i64 }* %__arg13.i, i64 0, i32 1
%15 = bitcast { i8*, i64 }* %__arg13.i to %str_slice*
br label %match_case.i
match_case.i: ; preds = %match_case.i.lr.ph, %"`loop`.i.backedge"
%.sroa.08.0110 = phi i64 [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %match_case.i.lr.ph ], [ %16, %"`loop`.i.backedge" ]
%16 = add i64 %.sroa.08.0110, 88
%17 = inttoptr i64 %.sroa.08.0110 to %struct.Command*
call void @llvm.lifetime.start(i64 16, i8* %2)
call void @llvm.lifetime.start(i64 8, i8* %3)
call void @llvm.lifetime.start(i64 48, i8* %4)
call void @llvm.lifetime.start(i64 16, i8* %5)
call void @llvm.lifetime.start(i64 48, i8* %6)
call void @llvm.lifetime.start(i64 16, i8* %7)
call void @llvm.lifetime.start(i64 48, i8* %8)
call void @llvm.lifetime.start(i64 16, i8* %9)
call void @llvm.lifetime.start(i64 16, i8* %10)
store i8* getelementptr inbounds ([2 x i8]* @str11237, i64 0, i64 0), i8** %11, align 8
store i64 2, i64* %12, align 8
%18 = inttoptr i64 %.sroa.08.0110 to { i64, %tydesc*, i8*, i8*, i8 }*
%__arg.sroa.1.8..idx.i.i = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %18, i64 0, i32 1
%__arg.sroa.1.8..cast.i.i = bitcast %tydesc** %__arg.sroa.1.8..idx.i.i to i64*
%__arg.sroa.1.8.copyload.i.i = load i64* %__arg.sroa.1.8..cast.i.i, align 8
%19 = sub i64 9, %__arg.sroa.1.8.copyload.i.i
%20 = call { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_174406repeat16_c6cb6c269539f3014_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %13, i64 %19)
%21 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([5 x i8]* @str11238, i64 0, i64 0), i64 4)
to label %"normal return.i" unwind label %unwind.i
"normal return.i": ; preds = %match_case.i
store { i64, i64, [0 x i8] }* %21, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
store i32 0, i32* %.sroa.063.0..idx, align 8
store i64 1, i64* %.sroa.267.8..idx68, align 8
store i64 1, i64* %.sroa.473.24..idx74, align 8
store i64 0, i64* %.sroa.679.40..idx80, align 8
%22 = inttoptr i64 %.sroa.08.0110 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %22, i64 16, i32 8, i1 false)
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg1.i, %str_slice* %__arg2.i, { i64, i64, [0 x i8] }** %__fmtbuf.i)
to label %"normal return3.i" unwind label %unwind4.i
unwind.i: ; preds = %match_case.i
%23 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract = extractvalue { i8*, i32 } %23, 0
%.fca.1.extract = extractvalue { i8*, i32 } %23, 1
br label %cleanup.i
cleanup.i: ; preds = %cond.i, %unwind15.i, %cond.i.i13, %unwind4.i, %unwind.i
%.sroa.092.0 = phi i8* [ %.fca.0.extract, %unwind.i ], [ %.fca.0.extract85, %unwind4.i ], [ %.fca.0.extract85, %cond.i.i13 ], [ %.fca.0.extract89, %unwind15.i ], [ %.fca.0.extract89, %cond.i ]
%.sroa.194.0 = phi i32 [ %.fca.1.extract, %unwind.i ], [ %.fca.1.extract87, %unwind4.i ], [ %.fca.1.extract87, %cond.i.i13 ], [ %.fca.1.extract91, %unwind15.i ], [ %.fca.1.extract91, %cond.i ]
%24 = icmp eq { i64, i64, [0 x i8] }* %20, null
br i1 %24, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", label %cond.i.i
cond.i.i: ; preds = %cleanup.i
%25 = bitcast { i64, i64, [0 x i8] }* %20 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %25)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit": ; preds = %cleanup.i, %cond.i.i
%.fca.0.insert = insertvalue { i8*, i32 } undef, i8* %.sroa.092.0, 0
%.fca.1.insert = insertvalue { i8*, i32 } %.fca.0.insert, i32 %.sroa.194.0, 1
resume { i8*, i32 } %.fca.1.insert
"normal return3.i": ; preds = %"normal return.i"
store i32 0, i32* %.sroa.044.0..idx, align 8
store i64 1, i64* %.sroa.248.8..idx49, align 8
store i64 1, i64* %.sroa.454.24..idx55, align 8
store i64 0, i64* %.sroa.660.40..idx61, align 8
%26 = getelementptr inbounds { i64, i64, [0 x i8] }* %20, i64 0, i32 2, i64 0
%27 = getelementptr inbounds { i64, i64, [0 x i8] }* %20, i64 0, i32 0
%28 = load i64* %27, align 8
store i8* %26, i8** %__adjust.i.sroa.0.0..idx, align 8
store i64 %28, i64* %__adjust.i.sroa.1.8..idx42, align 8
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg6.i, %str_slice* %14, { i64, i64, [0 x i8] }** %__fmtbuf.i)
to label %"normal return8.i" unwind label %unwind4.i
unwind4.i: ; preds = %"normal return8.i", %"normal return3.i", %"normal return.i"
%29 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract85 = extractvalue { i8*, i32 } %29, 0
%.fca.1.extract87 = extractvalue { i8*, i32 } %29, 1
%30 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
%31 = icmp eq { i64, i64, [0 x i8] }* %30, null
br i1 %31, label %cleanup.i, label %cond.i.i13
cond.i.i13: ; preds = %unwind4.i
%32 = bitcast { i64, i64, [0 x i8] }* %30 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %32)
br label %cleanup.i
"normal return8.i": ; preds = %"normal return3.i"
store i32 0, i32* %.sroa.0.0..idx28, align 8
store i64 1, i64* %.sroa.2.8..idx31, align 8
store i64 1, i64* %.sroa.4.24..idx35, align 8
store i64 0, i64* %.sroa.6.40..idx39, align 8
%33 = getelementptr inbounds %struct.Command* %17, i64 0, i32 2
%34 = bitcast %str_slice* %33 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %34, i64 16, i32 8, i1 false)
invoke void @"_ZN8unstable6extfmt2rt8conv_str17_97a3fb4818a71dce14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"struct.std::unstable::extfmt::rt::Conv[#1]"* %__arg9.i, %str_slice* %__arg10.i, { i64, i64, [0 x i8] }** %__fmtbuf.i)
to label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit16" unwind label %unwind4.i
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit16": ; preds = %"normal return8.i"
%35 = load { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
store { i64, i64, [0 x i8] }* null, { i64, i64, [0 x i8] }** %__fmtbuf.i, align 8
%36 = getelementptr inbounds { i64, i64, [0 x i8] }* %35, i64 0, i32 2, i64 0
%37 = getelementptr inbounds { i64, i64, [0 x i8] }* %35, i64 0, i32 0
%38 = load i64* %37, align 8
store i8* %36, i8** %__adjust12.i.sroa.0.0..idx, align 8
store i64 %38, i64* %__adjust12.i.sroa.1.8..idx26, align 8
invoke void @"_ZN2io7println17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %15)
to label %_ZN5usage4anon13expr_fn_11235E.exit unwind label %unwind15.i
unwind15.i: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit16"
%39 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract89 = extractvalue { i8*, i32 } %39, 0
%.fca.1.extract91 = extractvalue { i8*, i32 } %39, 1
%40 = icmp eq { i64, i64, [0 x i8] }* %35, null
br i1 %40, label %cleanup.i, label %cond.i
cond.i: ; preds = %unwind15.i
%41 = bitcast { i64, i64, [0 x i8] }* %35 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %41)
br label %cleanup.i
_ZN5usage4anon13expr_fn_11235E.exit: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit16"
%42 = icmp eq { i64, i64, [0 x i8] }* %35, null
br i1 %42, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18", label %cond.i17
cond.i17: ; preds = %_ZN5usage4anon13expr_fn_11235E.exit
%43 = bitcast { i64, i64, [0 x i8] }* %35 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %43)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18": ; preds = %_ZN5usage4anon13expr_fn_11235E.exit, %cond.i17
%44 = icmp eq { i64, i64, [0 x i8] }* %20, null
br i1 %44, label %"`loop`.i.backedge", label %cond.i.i19
"`loop`.i.backedge": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18", %cond.i.i19
%45 = inttoptr i64 %16 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%46 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %45, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)
%47 = icmp eq i64 %16, 0
%or.cond = or i1 %46, %47
br i1 %or.cond, label %"_ZN8iterator14__extensions__13advance_1123215_c1aea65ce534e914_0$x2e8$x2dpreE.exit", label %match_case.i
cond.i.i19: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_free_10889E.exit18"
%48 = bitcast { i64, i64, [0 x i8] }* %20 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %48)
br label %"`loop`.i.backedge"
"_ZN8iterator14__extensions__13advance_1123215_c1aea65ce534e914_0$x2e8$x2dpreE.exit": ; preds = %"`loop`.i.backedge", %"function top level"
%.sroa.0.0..idx = getelementptr inbounds %str_slice* %__arg2, i64 0, i32 0
store i8* getelementptr inbounds ([67 x i8]* @str11239, i64 0, i64 0), i8** %.sroa.0.0..idx, align 8
%.sroa.1.8..idx3 = getelementptr inbounds %str_slice* %__arg2, i64 0, i32 1
store i64 67, i64* %.sroa.1.8..idx3, align 8
call void @"_ZN2io5print17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg2)
ret void
}
declare void @"_ZN2io5print17_cbd0294d6bc48ab614_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*)
declare { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_174406repeat16_c6cb6c269539f3014_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, i64)
define void @"_ZN4main16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* nocapture) #2 {
"normal return":
%__trans_ret_slot.i92 = alloca {}, align 8
%__arg5.i = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg6.i = alloca %str_slice, align 8
%__arg8.i = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg10.i = alloca { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }, align 8
%result.i = alloca %enum.ValidUsage, align 8
%1 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__arg.i.i = alloca %struct.Command, align 8
%__arg = alloca { i8*, i64 }, align 8
%args = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%__adjust21 = alloca { { i64, i64, [0 x i8] }**, i64 }, align 8
%r = alloca %"enum.std::option::Option<Command>[#1]", align 8
%2 = call { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* @"_ZN2os4args16_707125f9258e1ff14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
%3 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 0
%4 = load i64* %3, align 8
%5 = icmp ugt i64 %4, 15
%6 = zext i1 %5 to i8
br i1 %5, label %next, label %join
unwind.loopexit.loopexit: ; preds = %match_case.i55, %match_else.i, %match_case.i99
%lpad.loopexit114 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind
unwind.loopexit.nonloopexit: ; preds = %.noexc96
%lpad.nonloopexit = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind
unwind.nonloopexit.loopexit: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i
%lpad.loopexit85 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind
unwind.nonloopexit.nonloopexit: ; preds = %next8, %next, %next32, %next20, %"normal return18", %next15, %cond16, %cond9
%lpad.nonloopexit86 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind
unwind: ; preds = %unwind.loopexit.loopexit, %unwind.loopexit.nonloopexit, %unwind.nonloopexit.loopexit, %unwind.nonloopexit.nonloopexit
%lpad.phi = phi { i8*, i32 } [ %lpad.loopexit85, %unwind.nonloopexit.loopexit ], [ %lpad.nonloopexit86, %unwind.nonloopexit.nonloopexit ], [ %lpad.loopexit114, %unwind.loopexit.loopexit ], [ %lpad.nonloopexit, %unwind.loopexit.nonloopexit ]
call void @upcall_reset_stack_limit()
%.fca.0.extract = extractvalue { i8*, i32 } %lpad.phi, 0
%.fca.1.extract = extractvalue { i8*, i32 } %lpad.phi, 1
br label %cleanup
cleanup: ; preds = %cond.i.i51, %unwind13, %cond.i.i41, %unwind4, %unwind
%.sroa.078.0 = phi i8* [ %.fca.0.extract, %unwind ], [ %.fca.0.extract71, %unwind4 ], [ %.fca.0.extract71, %cond.i.i41 ], [ %.fca.0.extract75, %unwind13 ], [ %.fca.0.extract75, %cond.i.i51 ]
%.sroa.179.0 = phi i32 [ %.fca.1.extract, %unwind ], [ %.fca.1.extract73, %unwind4 ], [ %.fca.1.extract73, %cond.i.i41 ], [ %.fca.1.extract77, %unwind13 ], [ %.fca.1.extract77, %cond.i.i51 ]
%7 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, null
br i1 %7, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit39", label %cond.i.i34
cond.i.i34: ; preds = %cleanup
%8 = load i64* %3, align 8
%9 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 0
%10 = bitcast { i64, i64, [0 x i8] }** %9 to i8*
%11 = getelementptr inbounds i8* %10, i64 %8
%12 = bitcast i8* %11 to { i64, i64, [0 x i8] }**
%13 = icmp ult { i64, i64, [0 x i8] }** %9, %12
br i1 %13, label %iter_vec_loop_body.i.i.i35, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i38"
iter_vec_loop_body.i.i.i35: ; preds = %cond.i.i34, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i37"
%14 = phi { i64, i64, [0 x i8] }** [ %18, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i37" ], [ %9, %cond.i.i34 ]
%15 = load { i64, i64, [0 x i8] }** %14, align 8
%16 = icmp eq { i64, i64, [0 x i8] }* %15, null
br i1 %16, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i37", label %cond.i.i.i.i.i36
cond.i.i.i.i.i36: ; preds = %iter_vec_loop_body.i.i.i35
%17 = bitcast { i64, i64, [0 x i8] }* %15 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %17)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i37"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i37": ; preds = %cond.i.i.i.i.i36, %iter_vec_loop_body.i.i.i35
%18 = getelementptr inbounds { i64, i64, [0 x i8] }** %14, i64 1
%19 = icmp ult { i64, i64, [0 x i8] }** %18, %12
br i1 %19, label %iter_vec_loop_body.i.i.i35, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i38"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i38": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i37", %cond.i.i34
%20 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %20)
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit39"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit39": ; preds = %cleanup, %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i38"
%.fca.0.insert = insertvalue { i8*, i32 } undef, i8* %.sroa.078.0, 0
%.fca.1.insert = insertvalue { i8*, i32 } %.fca.0.insert, i32 %.sroa.179.0, 1
resume { i8*, i32 } %.fca.1.insert
join: ; preds = %cond.i.i49, %"normal return12", %"normal return"
%21 = phi i8 [ %6, %"normal return" ], [ %storemerge.i.i.i46, %"normal return12" ], [ %storemerge.i.i.i46, %cond.i.i49 ]
%22 = icmp eq i8 %21, 0
br i1 %22, label %next20, label %then
next: ; preds = %"normal return"
%23 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([3 x i8]* @str11243, i64 0, i64 0), i64 2)
to label %"normal return2" unwind label %unwind.nonloopexit.nonloopexit
"normal return2": ; preds = %next
%24 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 1
%25 = load { i64, i64, [0 x i8] }** %24, align 8
%26 = getelementptr inbounds { i64, i64, [0 x i8] }* %25, i64 0, i32 0
%27 = load i64* %26, align 8
%28 = getelementptr inbounds { i64, i64, [0 x i8] }* %23, i64 0, i32 0
%29 = load i64* %28, align 8
%30 = icmp eq i64 %27, %29
br i1 %30, label %else.i.i.i, label %"normal return3"
else.i.i.i: ; preds = %"normal return2"
%31 = getelementptr inbounds { i64, i64, [0 x i8] }* %23, i64 0, i32 2, i64 0
%32 = getelementptr inbounds { i64, i64, [0 x i8] }* %25, i64 0, i32 2, i64 0
%33 = bitcast i8* %32 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%34 = bitcast i8* %31 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%35 = add i64 %27, -1
%36 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %33, %"enum.std::libc::types::common::c95::c_void[#1]"* %34, i64 %35)
to label %.noexc unwind label %unwind4
.noexc: ; preds = %else.i.i.i
%37 = icmp eq i32 %36, 0
%38 = zext i1 %37 to i8
br label %"normal return3"
"normal return3": ; preds = %.noexc, %"normal return2"
%storemerge.i.i.i = phi i8 [ %38, %.noexc ], [ 0, %"normal return2" ]
%39 = icmp eq { i64, i64, [0 x i8] }* %23, null
br i1 %39, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", label %cond.i.i40
cond.i.i40: ; preds = %"normal return3"
%40 = bitcast { i64, i64, [0 x i8] }* %23 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %40)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit": ; preds = %"normal return3", %cond.i.i40
%41 = icmp eq i8 %storemerge.i.i.i, 0
br i1 %41, label %rhs7, label %then
unwind4: ; preds = %else.i.i.i
%42 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract71 = extractvalue { i8*, i32 } %42, 0
%.fca.1.extract73 = extractvalue { i8*, i32 } %42, 1
%43 = icmp eq { i64, i64, [0 x i8] }* %23, null
br i1 %43, label %cleanup, label %cond.i.i41
cond.i.i41: ; preds = %unwind4
%44 = bitcast { i64, i64, [0 x i8] }* %23 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %44)
br label %cleanup
rhs7: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit"
%45 = load i64* %3, align 8
%46 = icmp ult i64 %45, 9
br i1 %46, label %cond9, label %next8
next8: ; preds = %rhs7
%47 = invoke { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([10 x i8]* @str11244, i64 0, i64 0), i64 9)
to label %"normal return11" unwind label %unwind.nonloopexit.nonloopexit
cond9: ; preds = %rhs7
%48 = lshr i64 %45, 3
invoke void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([55 x i8]* @str10798, i64 0, i64 0), i64 228, i64 1, i64 %48)
to label %"normal return10" unwind label %unwind.nonloopexit.nonloopexit
"normal return10": ; preds = %cond9
unreachable
"normal return11": ; preds = %next8
%49 = load { i64, i64, [0 x i8] }** %24, align 8
%50 = getelementptr inbounds { i64, i64, [0 x i8] }* %49, i64 0, i32 0
%51 = load i64* %50, align 8
%52 = getelementptr inbounds { i64, i64, [0 x i8] }* %47, i64 0, i32 0
%53 = load i64* %52, align 8
%54 = icmp eq i64 %51, %53
br i1 %54, label %else.i.i.i45, label %"normal return12"
else.i.i.i45: ; preds = %"normal return11"
%55 = getelementptr inbounds { i64, i64, [0 x i8] }* %47, i64 0, i32 2, i64 0
%56 = getelementptr inbounds { i64, i64, [0 x i8] }* %49, i64 0, i32 2, i64 0
%57 = bitcast i8* %56 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%58 = bitcast i8* %55 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%59 = add i64 %51, -1
%60 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %57, %"enum.std::libc::types::common::c95::c_void[#1]"* %58, i64 %59)
to label %.noexc47 unwind label %unwind13
.noexc47: ; preds = %else.i.i.i45
%61 = icmp eq i32 %60, 0
%62 = zext i1 %61 to i8
br label %"normal return12"
"normal return12": ; preds = %.noexc47, %"normal return11"
%storemerge.i.i.i46 = phi i8 [ %62, %.noexc47 ], [ 0, %"normal return11" ]
%63 = icmp eq { i64, i64, [0 x i8] }* %47, null
br i1 %63, label %join, label %cond.i.i49
cond.i.i49: ; preds = %"normal return12"
%64 = bitcast { i64, i64, [0 x i8] }* %47 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %64)
br label %join
unwind13: ; preds = %else.i.i.i45
%65 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%.fca.0.extract75 = extractvalue { i8*, i32 } %65, 0
%.fca.1.extract77 = extractvalue { i8*, i32 } %65, 1
%66 = icmp eq { i64, i64, [0 x i8] }* %47, null
br i1 %66, label %cleanup, label %cond.i.i51
cond.i.i51: ; preds = %unwind13
%67 = bitcast { i64, i64, [0 x i8] }* %47 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %67)
br label %cleanup
then: ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit", %join
%68 = load i64* %3, align 8
%69 = icmp eq i64 %68, 0
br i1 %69, label %cond16, label %next15
next15: ; preds = %then
%70 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 0
%71 = load { i64, i64, [0 x i8] }** %70, align 8
%72 = getelementptr inbounds { i64, i64, [0 x i8] }* %71, i64 0, i32 2, i64 0
%73 = getelementptr inbounds { i64, i64, [0 x i8] }* %71, i64 0, i32 0
%74 = load i64* %73, align 8
%__adjust.sroa.0.0..idx = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 0
store i8* %72, i8** %__adjust.sroa.0.0..idx, align 8
%__adjust.sroa.1.8..idx60 = getelementptr inbounds { i8*, i64 }* %__arg, i64 0, i32 1
store i64 %74, i64* %__adjust.sroa.1.8..idx60, align 8
%75 = bitcast { i8*, i64 }* %__arg to %str_slice*
invoke void @"_ZN7version16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %75)
to label %"normal return18" unwind label %unwind.nonloopexit.nonloopexit
cond16: ; preds = %then
invoke void @"_ZN8unstable4lang17fail_bounds_check17_7112ff25e39642a214_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([55 x i8]* @str10798, i64 0, i64 0), i64 229, i64 0, i64 0)
to label %"normal return17" unwind label %unwind.nonloopexit.nonloopexit
"normal return17": ; preds = %cond16
unreachable
"normal return18": ; preds = %next15
invoke void @"_ZN4libc5funcs3c956stdlib4exit15_65062626eb4b5914_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i92, { i64, %tydesc*, i8*, i8*, i8 }* undef, i32 0)
to label %"normal return19" unwind label %unwind.nonloopexit.nonloopexit
"normal return19": ; preds = %"normal return18"
unreachable
next20: ; preds = %join
%76 = getelementptr inbounds { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, i64 0, i32 2, i64 0
%77 = load i64* %3, align 8
%78 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__adjust21, i64 0, i32 0
store { i64, i64, [0 x i8] }** %76, { i64, i64, [0 x i8] }*** %78, align 8
%79 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__adjust21, i64 0, i32 1
store i64 %77, i64* %79, align 8
%80 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %__adjust21 to { i64, %tydesc*, i8*, i8*, i8 }*
invoke fastcc void @"_ZN3vec14__extensions__10tail_1124616_fab30464cb6f54114_0$x2e8$x2dpreE"({ { i64, i64, [0 x i8] }**, i64 }* %args, { i64, %tydesc*, i8*, i8*, i8 }* %80)
to label %"normal return23" unwind label %unwind.nonloopexit.nonloopexit
"normal return23": ; preds = %next20
%s.sroa.1.8..idx.i.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %args, i64 0, i32 1
%s.sroa.1.8.copyload.i.i = load i64* %s.sroa.1.8..idx.i.i, align 8
%81 = icmp ult i64 %s.sroa.1.8.copyload.i.i, 8
br i1 %81, label %next32, label %"normal return25"
"normal return25": ; preds = %"normal return23"
%82 = bitcast {}* %__trans_ret_slot.i92 to i8*
call void @llvm.lifetime.start(i64 0, i8* %82)
%83 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %args, i64 0, i32 0
%84 = load { i64, i64, [0 x i8] }*** %83, align 8
call void @llvm.lifetime.end(i64 0, i8* %82)
%85 = load { i64, i64, [0 x i8] }** %84, align 8
%86 = getelementptr inbounds { i64, i64, [0 x i8] }* %85, i64 0, i32 0
%87 = load i64* %86, align 8
br i1 icmp eq (%"enum.std::libc::types::common::c95::c_void[#1]"* bitcast ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to %"enum.std::libc::types::common::c95::c_void[#1]"*), %"enum.std::libc::types::common::c95::c_void[#1]"* inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)), label %"normal return28", label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader"
"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader": ; preds = %"normal return25"
%88 = getelementptr inbounds { i64, i64, [0 x i8] }* %85, i64 0, i32 2, i64 0
%89 = bitcast i8* %88 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%90 = add i64 %87, -1
br label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i"
"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i": ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader", %"`loop`.i.i.backedge.i"
%.sroa.08.091.i = phi i64 [ %91, %"`loop`.i.i.backedge.i" ], [ ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i.preheader" ]
%91 = add i64 %.sroa.08.091.i, 88
%92 = inttoptr i64 %.sroa.08.091.i to %struct.Command*
%__arg1.i.sroa.1.8..idx43.i = getelementptr inbounds %struct.Command* %92, i64 0, i32 0, i32 1
%__arg1.i.sroa.1.8.copyload.i = load i64* %__arg1.i.sroa.1.8..idx43.i, align 8
%93 = icmp eq i64 %__arg1.i.sroa.1.8.copyload.i, %87
br i1 %93, label %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i, label %"`loop`.i.i.backedge.i"
"`loop`.i.i.backedge.i": ; preds = %.noexc54, %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i"
%94 = inttoptr i64 %91 to %"enum.std::libc::types::common::c95::c_void[#1]"*
%95 = icmp eq %"enum.std::libc::types::common::c95::c_void[#1]"* %94, inttoptr (i64 add (i64 ptrtoint ({ { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [8 x i8] } }, { { i8*, i64 }, { i64, { i8*, i64 }, void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, [0 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } }, { { i8*, i64 }, { i64, void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)*, [16 x i8] }, { i8*, i64 }, { i64, { i8*, i64 }, [0 x i8] } } }* @const to i64), i64 616) to %"enum.std::libc::types::common::c95::c_void[#1]"*)
%96 = icmp eq i64 %91, 0
%or.cond.i = or i1 %95, %96
br i1 %or.cond.i, label %"normal return28", label %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i"
_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i: ; preds = %"_ZN3vec14__extensions__16as_imm_buf_1108217_1862b99f6f1c70de14_0$x2e8$x2dpreE.exit52.i"
%__arg1.i.sroa.0.0..idx.i = getelementptr inbounds %struct.Command* %92, i64 0, i32 0, i32 0
%__arg1.i.sroa.0.0.copyload.i = load i8** %__arg1.i.sroa.0.0..idx.i, align 8
%97 = bitcast i8* %__arg1.i.sroa.0.0.copyload.i to %"enum.std::libc::types::common::c95::c_void[#1]"*
%98 = invoke i32 @"_ZN4libc5funcs3c956string6memcmp17_c0e5887b4130711314_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %97, %"enum.std::libc::types::common::c95::c_void[#1]"* %89, i64 %90)
to label %.noexc54 unwind label %unwind.nonloopexit.loopexit
.noexc54: ; preds = %_ZN3str8eq_slice4anon4anon13expr_fn_11086E.exit.i
%99 = icmp eq i32 %98, 0
br i1 %99, label %match_case.i, label %"`loop`.i.i.backedge.i"
"normal return28": ; preds = %"`loop`.i.i.backedge.i", %"normal return25"
%__arg.i.i.0.cast = bitcast %struct.Command* %__arg.i.i to i8*
call void @llvm.lifetime.start(i64 88, i8* %__arg.i.i.0.cast)
%100 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 0
store i64 0, i64* %100, align 8
call void @llvm.lifetime.end(i64 88, i8* %__arg.i.i.0.cast)
br label %"`loop`.i.preheader"
match_case.i: ; preds = %.noexc54
%101 = bitcast %struct.Command* %__arg.i.i to i8*
call void @llvm.lifetime.start(i64 88, i8* %101)
%102 = inttoptr i64 %.sroa.08.091.i to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %101, i8* %102, i64 88, i32 8, i1 false)
%103 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 0
store i64 1, i64* %103, align 8
%104 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 1, i64 0
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %104, i8* %101, i64 88, i32 8, i1 false) #0
call void @llvm.lifetime.end(i64 88, i8* %101)
%105 = getelementptr inbounds %"enum.std::option::Option<Command>[#1]"* %r, i64 0, i32 1
%106 = ptrtoint [88 x i8]* %105 to i64
br label %"`loop`.i.preheader"
"`loop`.i.preheader": ; preds = %"normal return28", %match_case.i
%.sroa.058.1.ph = phi i64 [ %106, %match_case.i ], [ 0, %"normal return28" ]
%107 = bitcast %enum.ValidUsage* %result.i to i8*
%108 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %1 to i8*
%109 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %args to { i64, %tydesc*, i8*, i8*, i8 }*
%110 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %1, i64 0, i32 0
%111 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %1, i64 0, i32 1
%112 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i to i8*
%113 = bitcast %str_slice* %__arg6.i to i8*
%114 = bitcast { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i to i8*
%115 = bitcast { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i to i8*
%__adjust.sroa.0.0..idx.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i, i64 0, i32 0
%__adjust.sroa.1.8..idx13.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i, i64 0, i32 1
%116 = getelementptr inbounds %enum.ValidUsage* %result.i, i64 0, i32 0
%__adjust7.sroa.0.0..idx.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i, i64 0, i32 0
%__adjust7.sroa.1.8..idx12.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i, i64 0, i32 1
%__adjust9.sroa.0.0..idx.i = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i, i64 0, i32 0
%__adjust9.sroa.1.8..idx11.i = getelementptr inbounds { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i, i64 0, i32 1
br label %"`loop`.i"
"`loop`.i": ; preds = %"`loop`.i.preheader", %match_case.i99..noexc95_crit_edge
%.sroa.058.1 = phi i64 [ 0, %match_case.i99..noexc95_crit_edge ], [ %.sroa.058.1.ph, %"`loop`.i.preheader" ]
%117 = icmp eq i64 %.sroa.058.1, 0
br i1 %117, label %next32, label %match_case.i55
match_case.i55: ; preds = %"`loop`.i"
%118 = inttoptr i64 %.sroa.058.1 to %struct.Command*
call void @llvm.lifetime.start(i64 0, i8* %82)
call void @llvm.lifetime.start(i64 16, i8* %107)
call void @llvm.lifetime.start(i64 16, i8* %108)
invoke fastcc void @"_ZN3vec14__extensions__10tail_1124616_fab30464cb6f54114_0$x2e8$x2dpreE"({ { i64, i64, [0 x i8] }**, i64 }* %1, { i64, %tydesc*, i8*, i8*, i8 }* %109)
to label %.noexc94 unwind label %unwind.loopexit.loopexit
.noexc94: ; preds = %match_case.i55
%119 = load { i64, i64, [0 x i8] }*** %110, align 8
%120 = load i64* %111, align 8
call void @llvm.lifetime.start(i64 16, i8* %112)
call void @llvm.lifetime.start(i64 16, i8* %113)
call void @llvm.lifetime.start(i64 16, i8* %114)
call void @llvm.lifetime.start(i64 16, i8* %115)
%121 = getelementptr inbounds %struct.Command* %118, i64 0, i32 1, i32 0
%122 = load i64* %121, align 8, !range !0
%cond.i98 = icmp eq i64 %122, 0
%123 = getelementptr inbounds %struct.Command* %118, i64 0, i32 1, i32 1
br i1 %cond.i98, label %match_case.i99, label %match_else.i
match_else.i: ; preds = %.noexc94
%124 = getelementptr inbounds %struct.Command* %118, i64 0, i32 1, i32 2, i64 8
%125 = bitcast i8* %124 to void ({ i64, %tydesc*, i8*, i8*, i8 }*)**
%126 = bitcast void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %123 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %113, i8* %126, i64 16, i32 8, i1 false)
%127 = load void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %125, align 8
store { i64, i64, [0 x i8] }** %119, { i64, i64, [0 x i8] }*** %__adjust7.sroa.0.0..idx.i, align 8
store i64 %120, i64* %__adjust7.sroa.1.8..idx12.i, align 8
store void ({ i64, %tydesc*, i8*, i8*, i8 }*)* %127, void ({ i64, %tydesc*, i8*, i8*, i8 }*)** %__adjust9.sroa.0.0..idx.i, align 8
store { i64, %tydesc*, i8*, i8*, i8 }* null, { i64, %tydesc*, i8*, i8*, i8 }** %__adjust9.sroa.1.8..idx11.i, align 8
invoke void @"_ZN6invoke15_dc2cf633faae8514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %str_slice* %__arg6.i, { { i64, i64, [0 x i8] }**, i64 }* %__arg8.i, { void ({ i64, %tydesc*, i8*, i8*, i8 }*)*, { i64, %tydesc*, i8*, i8*, i8 }* }* %__arg10.i)
to label %.noexc100 unwind label %unwind.loopexit.loopexit
.noexc100: ; preds = %match_else.i
call void @llvm.memset.p0i8.i64(i8* %107, i8 0, i64 16, i32 8, i1 false)
call void @llvm.lifetime.end(i64 16, i8* %112)
call void @llvm.lifetime.end(i64 16, i8* %113)
call void @llvm.lifetime.end(i64 16, i8* %114)
call void @llvm.lifetime.end(i64 16, i8* %115)
br label %.noexc96
match_case.i99: ; preds = %.noexc94
%128 = load void (%enum.ValidUsage*, { i64, %tydesc*, i8*, i8*, i8 }*, { { i64, i64, [0 x i8] }**, i64 }*)** %123, align 8
store { i64, i64, [0 x i8] }** %119, { i64, i64, [0 x i8] }*** %__adjust.sroa.0.0..idx.i, align 8
store i64 %120, i64* %__adjust.sroa.1.8..idx13.i, align 8
invoke void %128(%enum.ValidUsage* %result.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, { { i64, i64, [0 x i8] }**, i64 }* %__arg5.i)
to label %match_case.i99..noexc95_crit_edge unwind label %unwind.loopexit.loopexit
match_case.i99..noexc95_crit_edge: ; preds = %match_case.i99
%.pre = load i64* %116, align 8
%phitmp = icmp eq i64 %.pre, 0
call void @llvm.lifetime.end(i64 16, i8* %112)
call void @llvm.lifetime.end(i64 16, i8* %113)
call void @llvm.lifetime.end(i64 16, i8* %114)
call void @llvm.lifetime.end(i64 16, i8* %115)
br i1 %phitmp, label %.noexc96, label %"`loop`.i"
.noexc96: ; preds = %.noexc100, %match_case.i99..noexc95_crit_edge
%129 = getelementptr inbounds %enum.ValidUsage* %result.i, i64 0, i32 1
%130 = load i64* %129, align 8
%131 = trunc i64 %130 to i32
invoke void @"_ZN4libc5funcs3c956stdlib4exit15_65062626eb4b5914_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i92, { i64, %tydesc*, i8*, i8*, i8 }* undef, i32 %131)
to label %.noexc97 unwind label %unwind.loopexit.nonloopexit
.noexc97: ; preds = %.noexc96
unreachable
next32: ; preds = %"`loop`.i", %"normal return23"
invoke void @"_ZN5usage16_d7417fb5c428c7e14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef)
to label %"normal return33" unwind label %unwind.nonloopexit.nonloopexit
"normal return33": ; preds = %next32
%132 = icmp eq { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2, null
br i1 %132, label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit", label %cond.i.i
cond.i.i: ; preds = %"normal return33"
%133 = load i64* %3, align 8
%134 = bitcast { i64, i64, [0 x i8] }** %76 to i8*
%135 = getelementptr inbounds i8* %134, i64 %133
%136 = bitcast i8* %135 to { i64, i64, [0 x i8] }**
%137 = icmp ult { i64, i64, [0 x i8] }** %76, %136
br i1 %137, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i"
iter_vec_loop_body.i.i.i: ; preds = %cond.i.i, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i"
%138 = phi { i64, i64, [0 x i8] }** [ %142, %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i" ], [ %76, %cond.i.i ]
%139 = load { i64, i64, [0 x i8] }** %138, align 8
%140 = icmp eq { i64, i64, [0 x i8] }* %139, null
br i1 %140, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i", label %cond.i.i.i.i.i
cond.i.i.i.i.i: ; preds = %iter_vec_loop_body.i.i.i
%141 = bitcast { i64, i64, [0 x i8] }* %139 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %141)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i": ; preds = %cond.i.i.i.i.i, %iter_vec_loop_body.i.i.i
%142 = getelementptr inbounds { i64, i64, [0 x i8] }** %138, i64 1
%143 = icmp ult { i64, i64, [0 x i8] }** %142, %136
br i1 %143, label %iter_vec_loop_body.i.i.i, label %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i"
"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i": ; preds = %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i.i.i", %cond.i.i
%144 = bitcast { i64, i64, [0 x { i64, i64, [0 x i8] }*] }* %2 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %144)
br label %"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit"
"_ZN20_$UP$$x5b$UP$str$x5d16_84fcab041b77e2f15glue_drop_11112E.exit": ; preds = %"normal return33", %"_ZN26unboxed_vec$LT$$UP$str$GT$16_7baa01de5ef631915glue_drop_11015E.exit.i.i"
ret void
}
declare void @"_ZN7version16_b6588a19758f49114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*, %str_slice*)
declare void @"_ZN4libc5funcs3c956stdlib4exit15_65062626eb4b5914_0$x2e8$x2dpreE"({}*, { i64, %tydesc*, i8*, i8*, i8 }*, i32)
define internal fastcc void @"_ZN3vec14__extensions__10tail_1124616_fab30464cb6f54114_0$x2e8$x2dpreE"({ { i64, i64, [0 x i8] }**, i64 }* nocapture, { i64, %tydesc*, i8*, i8*, i8 }* nocapture) #3 {
"function top level":
%__trans_ret_slot.i = alloca {}, align 8
%ret.i.i = alloca { i64, i64, [0 x i8] }*, align 8
%__adjust.i = alloca { i8*, i64 }, align 8
%__arg3.i = alloca %str_slice, align 8
%s.sroa.1.8..idx.i.i = getelementptr inbounds { i64, %tydesc*, i8*, i8*, i8 }* %1, i64 0, i32 1
%s.sroa.1.8..cast.i.i = bitcast %tydesc** %s.sroa.1.8..idx.i.i to i64*
%s.sroa.1.8.copyload.i.i = load i64* %s.sroa.1.8..cast.i.i, align 1
%2 = lshr i64 %s.sroa.1.8.copyload.i.i, 3
%3 = bitcast {}* %__trans_ret_slot.i to i8*
call void @llvm.lifetime.start(i64 0, i8* %3)
%4 = bitcast { i8*, i64 }* %__adjust.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %4)
%5 = bitcast %str_slice* %__arg3.i to i8*
call void @llvm.lifetime.start(i64 16, i8* %5)
%6 = icmp eq i64 %2, 0
br i1 %6, label %then.i, label %"_ZN3vec14__extensions__11slice_1124917_7dfbf588b669df8914_0$x2e8$x2dpreE.exit"
then.i: ; preds = %"function top level"
%7 = call { i64, i64, [0 x i8] }* @"_ZN3str3raw12from_buf_len16_66cfe6ec26abd1114_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, i8* getelementptr inbounds ([19 x i8]* @str10945, i64 0, i64 0), i64 18)
%8 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 2, i64 0
%9 = getelementptr inbounds { i64, i64, [0 x i8] }* %7, i64 0, i32 0
%10 = load i64* %9, align 8
%11 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 0
store i8* %8, i8** %11, align 8
%12 = getelementptr inbounds { i8*, i64 }* %__adjust.i, i64 0, i32 1
store i64 %10, i64* %12, align 8
%13 = bitcast { i8*, i64 }* %__adjust.i to { i64, %tydesc*, i8*, i8*, i8 }*
%14 = bitcast { i64, i64, [0 x i8] }** %ret.i.i to i8*
call void @llvm.lifetime.start(i64 8, i8* %14)
%15 = invoke fastcc { i64, i64, [0 x i8] }* @"_ZN3str14__extensions__10meth_107498to_owned17_236dfb6defa5cb4714_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %13)
to label %.noexc.i unwind label %unwind.i
.noexc.i: ; preds = %then.i
store { i64, i64, [0 x i8] }* %15, { i64, i64, [0 x i8] }** %ret.i.i, align 8
%16 = bitcast { i64, i64, [0 x i8] }** %ret.i.i to { i64, %tydesc*, i8*, i8*, i8 }*
%17 = getelementptr inbounds { i64, i64, [0 x i8] }* %15, i64 0, i32 0
%18 = load i64* %17, align 8
%19 = add i64 %18, 11
%20 = lshr i64 %19, 1
%21 = or i64 %20, %19
%22 = lshr i64 %21, 2
%23 = or i64 %22, %21
%24 = lshr i64 %23, 4
%25 = or i64 %24, %23
%26 = lshr i64 %25, 8
%27 = or i64 %26, %25
%28 = lshr i64 %27, 16
%29 = or i64 %28, %27
%30 = lshr i64 %29, 32
%31 = or i64 %30, %29
%32 = add i64 %31, 1
invoke fastcc void @"_ZN3vec14__extensions__13reserve_1084116_7da913789de211514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* %16, i64 %32)
to label %"normal return.i" unwind label %unwind.i.i
unwind.i.i: ; preds = %.noexc.i
%33 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
call void @upcall_reset_stack_limit()
%34 = load { i64, i64, [0 x i8] }** %ret.i.i, align 8
%35 = icmp eq { i64, i64, [0 x i8] }* %34, null
br i1 %35, label %unwind.body.i, label %cond.i.i2.i.i
cond.i.i2.i.i: ; preds = %unwind.i.i
%36 = bitcast { i64, i64, [0 x i8] }* %34 to %"enum.std::libc::types::common::c95::c_void[#1]"*
invoke void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %36)
to label %unwind.body.i unwind label %unwind.i
"normal return.i": ; preds = %.noexc.i
%37 = add i64 %18, -1
%38 = load { i64, i64, [0 x i8] }** %ret.i.i, align 8
%39 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 2, i64 0
%40 = ptrtoint i8* %39 to i64
%41 = add i64 %37, %40
%42 = inttoptr i64 %41 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %42, i8* getelementptr inbounds ([13 x i8]* @str11252, i64 0, i64 0), i64 12, i32 1, i1 false)
%43 = add i64 %18, 12
%44 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 0, i32 0
store i64 %43, i64* %44, align 8
%45 = getelementptr inbounds { i64, i64, [0 x i8] }* %38, i64 1
%46 = ptrtoint { i64, i64, [0 x i8] }* %45 to i64
%47 = add i64 %46, %19
%48 = inttoptr i64 %47 to i8*
store i8 0, i8* %48, align 1
%49 = load { i64, i64, [0 x i8] }** %ret.i.i, align 8
call void @llvm.lifetime.end(i64 8, i8* %14)
%50 = icmp eq { i64, i64, [0 x i8] }* %7, null
br i1 %50, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i", label %cond.i.i.i
cond.i.i.i: ; preds = %"normal return.i"
%51 = bitcast { i64, i64, [0 x i8] }* %7 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %51)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit.i": ; preds = %cond.i.i.i, %"normal return.i"
%.sroa.028.0..idx.i = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 0
store i8* getelementptr inbounds ([53 x i8]* @str10892, i64 0, i64 0), i8** %.sroa.028.0..idx.i, align 8
%.sroa.129.8..idx30.i = getelementptr inbounds %str_slice* %__arg3.i, i64 0, i32 1
store i64 53, i64* %.sroa.129.8..idx30.i, align 8
call void @"_ZN3sys14__extensions__10meth_111489fail_with17_d96679812a86c36714_0$x2e8$x2dpreE"({}* %__trans_ret_slot.i, { i64, %tydesc*, i8*, i8*, i8 }* undef, { i64, i64, [0 x i8] }* %49, %str_slice* %__arg3.i, i64 735)
unreachable
unwind.i: ; preds = %cond.i.i2.i.i, %then.i
%52 = landingpad { i8*, i32 } personality i32 ()* @upcall_rust_personality
cleanup
br label %unwind.body.i
unwind.body.i: ; preds = %unwind.i, %cond.i.i2.i.i, %unwind.i.i
%eh.lpad-body.i = phi { i8*, i32 } [ %52, %unwind.i ], [ %33, %cond.i.i2.i.i ], [ %33, %unwind.i.i ]
call void @upcall_reset_stack_limit()
%53 = icmp eq { i64, i64, [0 x i8] }* %7, null
br i1 %53, label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit3.i", label %cond.i.i2.i
cond.i.i2.i: ; preds = %unwind.body.i
%54 = bitcast { i64, i64, [0 x i8] }* %7 to %"enum.std::libc::types::common::c95::c_void[#1]"*
call void @"_ZN4libc5funcs3c956stdlib4free16_9824537d581963d14_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }* undef, %"enum.std::libc::types::common::c95::c_void[#1]"* %54)
br label %"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit3.i"
"_ZN8_$UP$str17_fc137df4be95e6aa15glue_drop_10887E.exit3.i": ; preds = %cond.i.i2.i, %unwind.body.i
resume { i8*, i32 } %eh.lpad-body.i
"_ZN3vec14__extensions__11slice_1124917_7dfbf588b669df8914_0$x2e8$x2dpreE.exit": ; preds = %"function top level"
%s.sroa.0.0..cast.i.i = bitcast { i64, %tydesc*, i8*, i8*, i8 }* %1 to { i64, i64, [0 x i8] }***
%s.sroa.0.0.copyload.i.i = load { i64, i64, [0 x i8] }*** %s.sroa.0.0..cast.i.i, align 1
%55 = ptrtoint { i64, i64, [0 x i8] }** %s.sroa.0.0.copyload.i.i to i64
%56 = add i64 %55, 8
%57 = inttoptr i64 %56 to { i64, i64, [0 x i8] }**
%58 = shl nuw i64 %2, 3
%59 = add i64 %58, -8
%__arg2.i.sroa.0.0..idx.i = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %0, i64 0, i32 0
store { i64, i64, [0 x i8] }** %57, { i64, i64, [0 x i8] }*** %__arg2.i.sroa.0.0..idx.i, align 1
%60 = getelementptr inbounds { { i64, i64, [0 x i8] }**, i64 }* %0, i64 0, i32 1
store i64 %59, i64* %60, align 1
call void @llvm.lifetime.end(i64 0, i8* %3)
call void @llvm.lifetime.end(i64 16, i8* %4)
call void @llvm.lifetime.end(i64 16, i8* %5)
ret void
}
declare void @"_ZN8unstable4lang10annihilate16_82984335c95fdd514_0$x2e8$x2dpreE"({ i64, %tydesc*, i8*, i8*, i8 }*)
declare void @llvm.lifetime.start(i64, i8* nocapture) #0
declare void @llvm.lifetime.end(i64, i8* nocapture) #0
declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) #4
attributes #0 = { nounwind }
attributes #1 = { inlinehint nounwind }
attributes #2 = { uwtable }
attributes #3 = { inlinehint uwtable }
attributes #4 = { nounwind readnone }
!0 = metadata !{i64 0, i64 2}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment