Skip to content

Instantly share code, notes, and snippets.

@nikic

nikic/slow.ll Secret

Created December 8, 2021 12:12
Show Gist options
  • Save nikic/d66abc8901a21594d0798d169eb9d725 to your computer and use it in GitHub Desktop.
Save nikic/d66abc8901a21594d0798d169eb9d725 to your computer and use it in GitHub Desktop.
; ModuleID = '<stdin>'
source_filename = "rustc_nightly_reduction.4ebbea32-cgu.5"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%struct.ham = type { %struct.zot, %struct.quux }
%struct.zot = type {}
%struct.quux = type { %struct.wombat, i8 }
%struct.wombat = type { [14 x i8], i8 }
%struct.wombat.0 = type { %struct.blam, i8 }
%struct.blam = type { [6 x i8], i8 }
%struct.spam = type { %struct.foo }
%struct.foo = type { %struct.zot.1, i8 }
%struct.zot.1 = type { [5 x i8], i8 }
%struct.foo.2 = type { %struct.snork, i8 }
%struct.snork = type { [2 x i8], i8 }
%struct.bar.3 = type { %struct.wombat.4 }
%struct.wombat.4 = type { { i8, i8 }, i8 }
%struct.zot.5 = type { %struct.hoge, i8 }
%struct.hoge = type { [12 x i8], i8 }
%struct.pluto = type { %struct.foo.6 }
%struct.foo.6 = type { %struct.barney, i8 }
%struct.barney = type { [11 x i8], i8 }
%struct.wobble = type { %struct.quux.7, i8 }
%struct.quux.7 = type { [4 x i8], i8 }
%struct.barney.8 = type { %struct.widget }
%struct.widget = type { %struct.baz, i8 }
%struct.baz = type { [3 x i8], i8 }
%struct.foo.9 = type { %struct.quux.10 }
%struct.quux.10 = type { %struct.baz.11, i8 }
%struct.baz.11 = type { [10 x i8], i8 }
%struct.hoge.12 = type { %struct.blam.13, i8 }
%struct.blam.13 = type { [13 x i8], i8 }
%struct.ham.14 = type { %struct.zot.5 }
%struct.pluto.15 = type { %struct.bar.16, i8 }
%struct.bar.16 = type { [7 x i8], i8 }
%struct.quux.17 = type { %struct.wombat.0 }
%struct.blam.18 = type { %struct.hoge.12 }
%struct.ham.19 = type { %struct.widget.20, i8 }
%struct.widget.20 = type { [8 x i8], i8 }
%struct.foo.21 = type { %struct.pluto.15 }
%struct.blam.22 = type { %struct.wombat.23 }
%struct.wombat.23 = type { %struct.wombat.24, i8 }
%struct.wombat.24 = type { [9 x i8], i8 }
%struct.hoge.25 = type { %struct.wobble }
%struct.barney.26 = type { %struct.ham.19 }
%struct.wobble.27 = type { %struct.foo.2 }
%struct.spam.28 = type { { i8*, i64 }, i64 }
%struct.bar = type { [1 x i64], i64 }
%struct.zot.29 = type { { [0 x i8]*, i64 }, i32, i32 }
%struct.bar.30 = type { { i8*, i64 }, i64 }
%struct.quux.31 = type {}
%struct.widget.32 = type { [0 x i8] }
%struct.wibble = type { %struct.spam.28 }
%struct.eggs = type { { i64*, i64 }, i64 }
%struct.wombat.33 = type { %struct.hoge.34, { i64, i64 } }
%struct.hoge.34 = type { %struct.blam.35, %struct.hoge.39 }
%struct.blam.35 = type { %struct.pluto.36, %struct.foo.37 }
%struct.pluto.36 = type {}
%struct.foo.37 = type { %struct.blam.38, i64, i8*, i64, i64 }
%struct.blam.38 = type {}
%struct.hoge.39 = type { { i64*, i64 }, i64 }
%struct.wibble.40 = type { %struct.barney.41, { i64, i64 } }
%struct.barney.41 = type { %struct.blam.35, %struct.zot.42 }
%struct.zot.42 = type { { i64*, i64 }, i64 }
%struct.blam.43 = type { i64, %struct.baz.44, %struct.wibble.45 }
%struct.baz.44 = type { %struct.bar.30 }
%struct.wibble.45 = type { i32, [9 x i32] }
%struct.snork.46 = type { i64, %struct.baz.44, { i32, i32 } }
%struct.snork.47 = type { i64, %struct.baz.44, %struct.eggs.48 }
%struct.eggs.48 = type { i64, [3 x i64] }
%struct.ham.49 = type { {}*, [2 x i64] }
%struct.quux.50 = type { %struct.baz.51 }
%struct.baz.51 = type { { i64*, i64 }, i64 }
%struct.snork.52 = type { %struct.snork.53, %struct.spam.54, { i32, i32 }, { i32, i32 } }
%struct.snork.53 = type { {}*, [2 x i64] }
%struct.spam.54 = type { i64, [3 x i64] }
%struct.widget.55 = type { %struct.snork.56, i64, i32, i32 }
%struct.snork.56 = type { { i64*, i64 }, i64 }
%struct.zot.57 = type { %struct.wombat.33 }
%struct.barney.58 = type { %struct.eggs.59, %struct.eggs.59, %struct.zot.60, i32, i32, i32, [1 x i32] }
%struct.eggs.59 = type { {}*, [2 x i64] }
%struct.zot.60 = type { { i64*, i64 }, i64 }
%struct.wibble.61 = type { i64, i32, i32 }
%struct.foo.62 = type { %struct.pluto.63, %struct.pluto.64 }
%struct.pluto.63 = type {}
%struct.pluto.64 = type { i32, { i32, i32 }, i8, [3 x i8] }
%struct.blam.65 = type { i64, i32, { i32, i32 }, { i32, i32 }, [1 x i32] }
%struct.widget.66 = type { i32 }
%struct.baz.67 = type { i32, [19 x i32] }
%struct.pluto.68 = type { %struct.pluto.69, { i64, i64 }, i64, i64 }
%struct.pluto.69 = type { i64, { i64, i64 }, i8, i8, [6 x i8] }
%struct.eggs.70 = type { { [0 x i8]*, i64 }, i64, { [0 x i8]*, i64 }, i64 }
%struct.wibble.71 = type { %struct.blam.72, %struct.ham.49 }
%struct.blam.72 = type { i64, [4 x i64] }
%struct.widget.73 = type { %struct.snork.74, i32, [1 x i32] }
%struct.snork.74 = type { { [0 x i32]*, i64 }, i32, [1 x i32] }
%struct.blam.75 = type { { [0 x i32]*, i64 }, i32, { i32, i32 }, i32 }
%struct.widget.76 = type { i64, [3 x i64] }
%struct.ham.77 = type { %struct.eggs.78, %struct.barney.81 }
%struct.eggs.78 = type { %struct.hoge.79 }
%struct.hoge.79 = type { %struct.zot.80 }
%struct.zot.80 = type { i64, [3 x i64] }
%struct.barney.81 = type { { i64*, i64 }, i64 }
%struct.zot.82 = type { %struct.eggs.59, %struct.eggs.59, { i32, i32 }, { i32, i32 } }
%struct.wibble.83 = type { [1 x i64], {}*, [5 x i64] }
%struct.widget.84 = type { %struct.wombat.33, i32, [1 x i32] }
%struct.ham.85 = type { i32, [3 x i32] }
%struct.foo.86 = type { %struct.foo.87, i8, i8, [6 x i8] }
%struct.foo.87 = type { i32, [5 x i32] }
%struct.wombat.88 = type { %struct.snork.53, { i64, i64 }, %struct.baz.89, { i32, i32 }, { i32, i32 } }
%struct.baz.89 = type { {}*, [2 x i64] }
%struct.ham.90 = type { %struct.ham.91 }
%struct.ham.91 = type { %struct.pluto.92 }
%struct.pluto.92 = type { %struct.bar.30 }
%struct.foo.93 = type { { i16*, i64 }, i64 }
%struct.snork.94 = type { i64, [3 x i64] }
%struct.wibble.95 = type { [1 x i64], %struct.bar.30 }
%struct.foo.96 = type { [1 x i64], %struct.foo.93 }
%struct.blam.97 = type { i64, [2 x i64] }
%struct.eggs.98 = type { [1 x i64], i64* }
%struct.eggs.99 = type { { i64*, i64 }, i64 }
%struct.wombat.100 = type { [1 x i64], i64* }
%struct.wobble.101 = type { [1 x i64], %struct.blam.97 }
%struct.widget.102 = type { [1 x i64], i64* }
%struct.bar.103 = type { i64, [3 x i64] }
%struct.quux.104 = type { [1 x i64], %struct.ham.90 }
%struct.quux.105 = type { [1 x i64], %struct.ham.90 }
%struct.wombat.106 = type { i64, %struct.eggs.70 }
%struct.quux.107 = type { [1 x i32], { i32, i32 }, [1 x i32], %struct.baz.44, %struct.eggs.59 }
%struct.bar.108 = type { [1 x i32], i32, %struct.baz.44 }
%struct.pluto.109 = type { [1 x i32], i32, %struct.wibble.40 }
%struct.ham.110 = type { [1 x i64], i64, %struct.eggs.99, %struct.wombat.111 }
%struct.wombat.111 = type { { i64*, i64 }, i64 }
%struct.eggs.112 = type { %struct.ham.90 }
%struct.wombat.113 = type { %struct.baz.44 }
%struct.widget.114 = type { %struct.bar.30 }
%struct.baz.115 = type { %struct.snork.94 }
%struct.zot.116 = type { %struct.bar.103 }
%struct.eggs.117 = type { %struct.wombat.106 }
%struct.pluto.157 = type { %struct.eggs.158, %struct.eggs.158, %struct.blam.159 }
%struct.eggs.158 = type { i64 }
%struct.blam.159 = type { i64*, void (%struct.bar.160*, %struct.bar.160*, %struct.quux.162*, %struct.baz.163*)*, i64*, i64* }
%struct.bar.160 = type { %struct.hoge.161 }
%struct.hoge.161 = type {}
%struct.quux.162 = type { i8 }
%struct.baz.163 = type { [2 x i64] }
%struct.pluto.164 = type { %struct.eggs.158, %struct.eggs.158, %struct.baz.165 }
%struct.baz.165 = type { %struct.baz.166, { i64, i64 } }
%struct.baz.166 = type { %struct.blam.35, %struct.wombat.167 }
%struct.wombat.167 = type { { i64*, i64 }, i64 }
%struct.foo.168 = type { %struct.eggs.158, %struct.eggs.158, %struct.widget.169 }
%struct.widget.169 = type { i64*, i64*, %struct.wibble.170, %struct.bar.171, i64*, i64* }
%struct.wibble.170 = type { { i64*, i64 }, i64 }
%struct.bar.171 = type { { i64*, i64 }, i64 }
%struct.baz.172 = type { %struct.eggs.158, %struct.eggs.158, %struct.bar.173 }
%struct.bar.173 = type { { i64, i64 }, { i64, i64 }, { i64, i64 }, i64*, %struct.eggs.174, %struct.spam.177, %struct.hoge.178, { i64, i64 }, %struct.barney.179, %struct.snork.184 }
%struct.eggs.174 = type { %struct.hoge.175, %struct.wombat.176 }
%struct.hoge.175 = type {}
%struct.wombat.176 = type { { i64*, i64 }, i64 }
%struct.spam.177 = type { { i64*, i64 }, i64 }
%struct.hoge.178 = type { i64, i8, i8, i8, [5 x i8] }
%struct.barney.179 = type { %struct.wibble.180, %struct.wobble.182, i8, [7 x i8] }
%struct.wibble.180 = type { %struct.barney.181 }
%struct.barney.181 = type { i64*, { i64, i64 } }
%struct.wobble.182 = type { %struct.pluto.183 }
%struct.pluto.183 = type { {}*, [2 x i64] }
%struct.snork.184 = type { {}*, [2 x i64] }
%struct.eggs.185 = type { i8*, { i64*, i64 } }
%struct.bar.186 = type { %struct.eggs.185 }
%struct.wobble.187 = type { i8*, { i64*, i64 } }
%struct.wobble.188 = type { %struct.wobble.187 }
%struct.barney.189 = type { { i64*, i64 }, i64 }
%struct.ham.190 = type { { i64*, i64 }, i64 }
%struct.widget.191 = type { { i32*, i64 }, i64 }
%struct.quux.192 = type { { i64*, i64 }, i64 }
%struct.blam.193 = type { { i64*, i64 }, i64 }
%struct.blam.194 = type { { i32*, i64 }, i64 }
%struct.pluto.195 = type { { i64*, i64 }, i64 }
%struct.spam.196 = type { { i64*, i64 }, i64 }
%struct.ham.197 = type { { i64*, i64 }, i64 }
%struct.spam.198 = type { { i32*, i64 }, i64 }
%struct.zot.199 = type { { i64*, i64 }, i64 }
%struct.quux.200 = type { { i64*, i64 }, i64 }
%struct.zot.201 = type { { i64*, i64 }, i64 }
%struct.wibble.202 = type { { i64*, i64 }, i64 }
%struct.quux.203 = type { { i64*, i64 }, i64 }
%struct.hoge.204 = type { { i64*, i64 }, i64 }
%struct.blam.205 = type { { i64*, i64 }, i64 }
%struct.snork.206 = type { { i64*, i64 }, i64 }
%struct.blam.207 = type { { i32*, i64 }, i64 }
%struct.hoge.208 = type { { i32*, i64 }, i64 }
%struct.wobble.209 = type { { i32*, i64 }, i64 }
%struct.zot.210 = type { { i64*, i64 }, i64 }
%struct.snork.211 = type { i64, void (i32, %struct.snork.211*)*, [6 x i64] }
%struct.quux.212 = type { [0 x i8] }
@global = private unnamed_addr constant <{ [17 x i8] }> <{ [17 x i8] c"capacity overflow" }>, align 1
@global.1 = private unnamed_addr constant <{ [94 x i8] }> <{ [94 x i8] c"/rustc/65c55bf931a55e6b1e5ed14ad8623814a7386424/library/alloc/src/vec/spec_from_iter_nested.rs" }>, align 1
@global.2 = private unnamed_addr constant <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds (<{ [94 x i8] }>, <{ [94 x i8] }>* @global.1, i32 0, i32 0, i32 0), [16 x i8] c"^\00\00\00\00\00\00\005\00\00\00\12\00\00\00" }>, align 8
@global.3 = private unnamed_addr constant <{ [75 x i8] }> <{ [75 x i8] c"/rustc/65c55bf931a55e6b1e5ed14ad8623814a7386424/library/core/src/ptr/mod.rs" }>, align 1
@global.4 = private unnamed_addr constant <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds (<{ [75 x i8] }>, <{ [75 x i8] }>* @global.3, i32 0, i32 0, i32 0), [16 x i8] c"K\00\00\00\00\00\00\00\BE\02\00\00\0D\00\00\00" }>, align 8
@global.5 = private unnamed_addr constant <{ [41 x i8] }> <{ [41 x i8] c"there is no such thing as a relaxed fence" }>, align 1
@global.6 = private unnamed_addr constant <{ [79 x i8] }> <{ [79 x i8] c"/rustc/65c55bf931a55e6b1e5ed14ad8623814a7386424/library/core/src/sync/atomic.rs" }>, align 1
@global.7 = private unnamed_addr constant <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds (<{ [79 x i8] }>, <{ [79 x i8] }>* @global.6, i32 0, i32 0, i32 0), [16 x i8] c"O\00\00\00\00\00\00\00~\0A\00\00\18\00\00\00" }>, align 8
@global.8 = private unnamed_addr constant <{ [84 x i8] }> <{ [84 x i8] c"/rustc/65c55bf931a55e6b1e5ed14ad8623814a7386424/library/alloc/src/vec/spec_extend.rs" }>, align 1
@global.9 = private unnamed_addr constant <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds (<{ [84 x i8] }>, <{ [84 x i8] }>* @global.8, i32 0, i32 0, i32 0), [16 x i8] c"T\00\00\00\00\00\00\007\00\00\00\0D\00\00\00" }>, align 8
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @wombat({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %arg1) unnamed_addr #0 {
bb:
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %arg1)
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @quux({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.ham* noalias readonly align 1 dereferenceable(16) %arg1) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.ham* %arg1 to %struct.quux*
call void @baz.12({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.quux* noalias readonly align 1 dereferenceable(16) %tmp)
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @wobble({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.wombat.0* noalias readonly align 1 dereferenceable(8) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.wombat.0* %arg1 to %struct.blam*
%tmp7 = getelementptr inbounds %struct.blam, %struct.blam* %tmp6, i32 0, i32 1
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.wombat.0, %struct.wombat.0* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb99, label %bb113
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.wombat.0, %struct.wombat.0* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb29
bb25: ; preds = %bb19
%tmp27 = bitcast %struct.blam* %tmp6 to %struct.spam*
%tmp28 = bitcast %struct.spam* %tmp27 to %struct.foo*
call void @snork({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.foo* noalias readonly align 1 dereferenceable(7) %tmp28)
br label %bb97
bb29: ; preds = %bb19
%tmp31 = bitcast %struct.blam* %tmp6 to %struct.spam*
%tmp32 = bitcast %struct.spam* %tmp31 to %struct.foo*
%tmp34 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp34)
call void @snork({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.foo* noalias readonly align 1 dereferenceable(7) %tmp32)
%tmp36 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp37 = load i64, i64* %tmp36, align 8
%tmp38 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 0
%tmp40 = load i64, i64* %tmp39, align 8, !range !4
%tmp41 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 1
%tmp42 = load i64, i64* %tmp41, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp34)
%tmp44 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp44)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp46 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp47 = load i64, i64* %tmp46, align 8
%tmp48 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp49 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 0
%tmp50 = load i64, i64* %tmp49, align 8, !range !4
%tmp51 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 1
%tmp52 = load i64, i64* %tmp51, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp44)
%tmp54 = call i64 @spam.29(i64 %tmp37, i64 %tmp47)
%tmp67 = icmp eq i64 %tmp40, 1
%tmp72 = icmp eq i64 %tmp50, 1
%or.cond = select i1 %tmp67, i1 %tmp72, i1 false
br i1 %or.cond, label %bb75, label %bb73
bb73: ; preds = %bb29
br label %bb85
bb75: ; preds = %bb29
%tmp84 = call { i64, i64 } @wobble.28(i64 %tmp42, i64 %tmp52)
%tmp84.fca.0.extract = extractvalue { i64, i64 } %tmp84, 0
%tmp84.fca.1.extract = extractvalue { i64, i64 } %tmp84, 1
br label %bb85
bb85: ; preds = %bb75, %bb73
%tmp3.sroa.5.0 = phi i64 [ %tmp84.fca.1.extract, %bb75 ], [ undef, %bb73 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp84.fca.0.extract, %bb75 ], [ 0, %bb73 ]
%tmp91 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp54, i64* %tmp91, align 8
%tmp92 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp93 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp93, align 8
%tmp94 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp94, align 8
br label %bb97
bb97: ; preds = %bb113, %bb99, %bb25, %bb85
ret void
bb99: ; preds = %bb13
%tmp104 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp104, align 8
%tmp105 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp110 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 0
store i64 1, i64* %tmp110, align 8
%tmp111 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 1
store i64 0, i64* %tmp111, align 8
br label %bb97
bb113: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb97
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @hoge({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.foo.2* noalias readonly align 1 dereferenceable(4) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.foo.2* %arg1 to %struct.snork*
%tmp7 = getelementptr inbounds %struct.snork, %struct.snork* %tmp6, i32 0, i32 1
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.foo.2, %struct.foo.2* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb99, label %bb113
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.foo.2, %struct.foo.2* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb29
bb25: ; preds = %bb19
%tmp27 = bitcast %struct.snork* %tmp6 to %struct.bar.3*
%tmp28 = bitcast %struct.bar.3* %tmp27 to %struct.wombat.4*
call void @widget.14({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.wombat.4* noalias readonly align 1 dereferenceable(3) %tmp28)
br label %bb97
bb29: ; preds = %bb19
%tmp31 = bitcast %struct.snork* %tmp6 to %struct.bar.3*
%tmp32 = bitcast %struct.bar.3* %tmp31 to %struct.wombat.4*
%tmp34 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp34)
call void @widget.14({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.wombat.4* noalias readonly align 1 dereferenceable(3) %tmp32)
%tmp36 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp37 = load i64, i64* %tmp36, align 8
%tmp38 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 0
%tmp40 = load i64, i64* %tmp39, align 8, !range !4
%tmp41 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 1
%tmp42 = load i64, i64* %tmp41, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp34)
%tmp44 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp44)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp46 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp47 = load i64, i64* %tmp46, align 8
%tmp48 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp49 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 0
%tmp50 = load i64, i64* %tmp49, align 8, !range !4
%tmp51 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 1
%tmp52 = load i64, i64* %tmp51, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp44)
%tmp54 = call i64 @spam.29(i64 %tmp37, i64 %tmp47)
%tmp67 = icmp eq i64 %tmp40, 1
%tmp72 = icmp eq i64 %tmp50, 1
%or.cond = select i1 %tmp67, i1 %tmp72, i1 false
br i1 %or.cond, label %bb75, label %bb73
bb73: ; preds = %bb29
br label %bb85
bb75: ; preds = %bb29
%tmp84 = call { i64, i64 } @wobble.28(i64 %tmp42, i64 %tmp52)
%tmp84.fca.0.extract = extractvalue { i64, i64 } %tmp84, 0
%tmp84.fca.1.extract = extractvalue { i64, i64 } %tmp84, 1
br label %bb85
bb85: ; preds = %bb75, %bb73
%tmp3.sroa.5.0 = phi i64 [ %tmp84.fca.1.extract, %bb75 ], [ undef, %bb73 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp84.fca.0.extract, %bb75 ], [ 0, %bb73 ]
%tmp91 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp54, i64* %tmp91, align 8
%tmp92 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp93 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp93, align 8
%tmp94 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp94, align 8
br label %bb97
bb97: ; preds = %bb113, %bb99, %bb25, %bb85
ret void
bb99: ; preds = %bb13
%tmp104 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp104, align 8
%tmp105 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp110 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 0
store i64 1, i64* %tmp110, align 8
%tmp111 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 1
store i64 0, i64* %tmp111, align 8
br label %bb97
bb113: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb97
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @wobble.10({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.zot.5* noalias readonly align 1 dereferenceable(14) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.zot.5* %arg1 to %struct.hoge*
%tmp7 = getelementptr inbounds %struct.hoge, %struct.hoge* %tmp6, i32 0, i32 1
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.zot.5, %struct.zot.5* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb99, label %bb113
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.zot.5, %struct.zot.5* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb29
bb25: ; preds = %bb19
%tmp27 = bitcast %struct.hoge* %tmp6 to %struct.pluto*
%tmp28 = bitcast %struct.pluto* %tmp27 to %struct.foo.6*
call void @widget({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.foo.6* noalias readonly align 1 dereferenceable(13) %tmp28)
br label %bb97
bb29: ; preds = %bb19
%tmp31 = bitcast %struct.hoge* %tmp6 to %struct.pluto*
%tmp32 = bitcast %struct.pluto* %tmp31 to %struct.foo.6*
%tmp34 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp34)
call void @widget({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.foo.6* noalias readonly align 1 dereferenceable(13) %tmp32)
%tmp36 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp37 = load i64, i64* %tmp36, align 8
%tmp38 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 0
%tmp40 = load i64, i64* %tmp39, align 8, !range !4
%tmp41 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 1
%tmp42 = load i64, i64* %tmp41, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp34)
%tmp44 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp44)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp46 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp47 = load i64, i64* %tmp46, align 8
%tmp48 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp49 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 0
%tmp50 = load i64, i64* %tmp49, align 8, !range !4
%tmp51 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 1
%tmp52 = load i64, i64* %tmp51, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp44)
%tmp54 = call i64 @spam.29(i64 %tmp37, i64 %tmp47)
%tmp67 = icmp eq i64 %tmp40, 1
%tmp72 = icmp eq i64 %tmp50, 1
%or.cond = select i1 %tmp67, i1 %tmp72, i1 false
br i1 %or.cond, label %bb75, label %bb73
bb73: ; preds = %bb29
br label %bb85
bb75: ; preds = %bb29
%tmp84 = call { i64, i64 } @wobble.28(i64 %tmp42, i64 %tmp52)
%tmp84.fca.0.extract = extractvalue { i64, i64 } %tmp84, 0
%tmp84.fca.1.extract = extractvalue { i64, i64 } %tmp84, 1
br label %bb85
bb85: ; preds = %bb75, %bb73
%tmp3.sroa.5.0 = phi i64 [ %tmp84.fca.1.extract, %bb75 ], [ undef, %bb73 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp84.fca.0.extract, %bb75 ], [ 0, %bb73 ]
%tmp91 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp54, i64* %tmp91, align 8
%tmp92 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp93 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp93, align 8
%tmp94 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp94, align 8
br label %bb97
bb97: ; preds = %bb113, %bb99, %bb25, %bb85
ret void
bb99: ; preds = %bb13
%tmp104 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp104, align 8
%tmp105 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp110 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 0
store i64 1, i64* %tmp110, align 8
%tmp111 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 1
store i64 0, i64* %tmp111, align 8
br label %bb97
bb113: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb97
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @baz({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.wobble* noalias readonly align 1 dereferenceable(6) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.wobble* %arg1 to %struct.quux.7*
%tmp7 = getelementptr inbounds %struct.quux.7, %struct.quux.7* %tmp6, i32 0, i32 1
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.wobble, %struct.wobble* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb99, label %bb113
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.wobble, %struct.wobble* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb29
bb25: ; preds = %bb19
%tmp27 = bitcast %struct.quux.7* %tmp6 to %struct.barney.8*
%tmp28 = bitcast %struct.barney.8* %tmp27 to %struct.widget*
call void @wobble.17({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.widget* noalias readonly align 1 dereferenceable(5) %tmp28)
br label %bb97
bb29: ; preds = %bb19
%tmp31 = bitcast %struct.quux.7* %tmp6 to %struct.barney.8*
%tmp32 = bitcast %struct.barney.8* %tmp31 to %struct.widget*
%tmp34 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp34)
call void @wobble.17({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.widget* noalias readonly align 1 dereferenceable(5) %tmp32)
%tmp36 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp37 = load i64, i64* %tmp36, align 8
%tmp38 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 0
%tmp40 = load i64, i64* %tmp39, align 8, !range !4
%tmp41 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 1
%tmp42 = load i64, i64* %tmp41, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp34)
%tmp44 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp44)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp46 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp47 = load i64, i64* %tmp46, align 8
%tmp48 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp49 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 0
%tmp50 = load i64, i64* %tmp49, align 8, !range !4
%tmp51 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 1
%tmp52 = load i64, i64* %tmp51, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp44)
%tmp54 = call i64 @spam.29(i64 %tmp37, i64 %tmp47)
%tmp67 = icmp eq i64 %tmp40, 1
%tmp72 = icmp eq i64 %tmp50, 1
%or.cond = select i1 %tmp67, i1 %tmp72, i1 false
br i1 %or.cond, label %bb75, label %bb73
bb73: ; preds = %bb29
br label %bb85
bb75: ; preds = %bb29
%tmp84 = call { i64, i64 } @wobble.28(i64 %tmp42, i64 %tmp52)
%tmp84.fca.0.extract = extractvalue { i64, i64 } %tmp84, 0
%tmp84.fca.1.extract = extractvalue { i64, i64 } %tmp84, 1
br label %bb85
bb85: ; preds = %bb75, %bb73
%tmp3.sroa.5.0 = phi i64 [ %tmp84.fca.1.extract, %bb75 ], [ undef, %bb73 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp84.fca.0.extract, %bb75 ], [ 0, %bb73 ]
%tmp91 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp54, i64* %tmp91, align 8
%tmp92 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp93 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp93, align 8
%tmp94 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp94, align 8
br label %bb97
bb97: ; preds = %bb113, %bb99, %bb25, %bb85
ret void
bb99: ; preds = %bb13
%tmp104 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp104, align 8
%tmp105 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp110 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 0
store i64 1, i64* %tmp110, align 8
%tmp111 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 1
store i64 0, i64* %tmp111, align 8
br label %bb97
bb113: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb97
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @widget({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.foo.6* noalias readonly align 1 dereferenceable(13) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.foo.6* %arg1 to %struct.barney*
%tmp7 = getelementptr inbounds %struct.barney, %struct.barney* %tmp6, i32 0, i32 1
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.foo.6, %struct.foo.6* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb99, label %bb113
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.foo.6, %struct.foo.6* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb29
bb25: ; preds = %bb19
%tmp27 = bitcast %struct.barney* %tmp6 to %struct.foo.9*
%tmp28 = bitcast %struct.foo.9* %tmp27 to %struct.quux.10*
call void @wibble.13({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.quux.10* noalias readonly align 1 dereferenceable(12) %tmp28)
br label %bb97
bb29: ; preds = %bb19
%tmp31 = bitcast %struct.barney* %tmp6 to %struct.foo.9*
%tmp32 = bitcast %struct.foo.9* %tmp31 to %struct.quux.10*
%tmp34 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp34)
call void @wibble.13({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.quux.10* noalias readonly align 1 dereferenceable(12) %tmp32)
%tmp36 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp37 = load i64, i64* %tmp36, align 8
%tmp38 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 0
%tmp40 = load i64, i64* %tmp39, align 8, !range !4
%tmp41 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 1
%tmp42 = load i64, i64* %tmp41, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp34)
%tmp44 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp44)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp46 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp47 = load i64, i64* %tmp46, align 8
%tmp48 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp49 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 0
%tmp50 = load i64, i64* %tmp49, align 8, !range !4
%tmp51 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 1
%tmp52 = load i64, i64* %tmp51, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp44)
%tmp54 = call i64 @spam.29(i64 %tmp37, i64 %tmp47)
%tmp67 = icmp eq i64 %tmp40, 1
%tmp72 = icmp eq i64 %tmp50, 1
%or.cond = select i1 %tmp67, i1 %tmp72, i1 false
br i1 %or.cond, label %bb75, label %bb73
bb73: ; preds = %bb29
br label %bb85
bb75: ; preds = %bb29
%tmp84 = call { i64, i64 } @wobble.28(i64 %tmp42, i64 %tmp52)
%tmp84.fca.0.extract = extractvalue { i64, i64 } %tmp84, 0
%tmp84.fca.1.extract = extractvalue { i64, i64 } %tmp84, 1
br label %bb85
bb85: ; preds = %bb75, %bb73
%tmp3.sroa.5.0 = phi i64 [ %tmp84.fca.1.extract, %bb75 ], [ undef, %bb73 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp84.fca.0.extract, %bb75 ], [ 0, %bb73 ]
%tmp91 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp54, i64* %tmp91, align 8
%tmp92 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp93 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp93, align 8
%tmp94 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp94, align 8
br label %bb97
bb97: ; preds = %bb113, %bb99, %bb25, %bb85
ret void
bb99: ; preds = %bb13
%tmp104 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp104, align 8
%tmp105 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp110 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 0
store i64 1, i64* %tmp110, align 8
%tmp111 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 1
store i64 0, i64* %tmp111, align 8
br label %bb97
bb113: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb97
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @wibble({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.hoge.12* noalias readonly align 1 dereferenceable(15) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.hoge.12* %arg1 to %struct.blam.13*
%tmp7 = getelementptr inbounds %struct.blam.13, %struct.blam.13* %tmp6, i32 0, i32 1
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.hoge.12, %struct.hoge.12* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb99, label %bb113
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.hoge.12, %struct.hoge.12* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb29
bb25: ; preds = %bb19
%tmp27 = bitcast %struct.blam.13* %tmp6 to %struct.ham.14*
%tmp28 = bitcast %struct.ham.14* %tmp27 to %struct.zot.5*
call void @wobble.10({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.zot.5* noalias readonly align 1 dereferenceable(14) %tmp28)
br label %bb97
bb29: ; preds = %bb19
%tmp31 = bitcast %struct.blam.13* %tmp6 to %struct.ham.14*
%tmp32 = bitcast %struct.ham.14* %tmp31 to %struct.zot.5*
%tmp34 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp34)
call void @wobble.10({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.zot.5* noalias readonly align 1 dereferenceable(14) %tmp32)
%tmp36 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp37 = load i64, i64* %tmp36, align 8
%tmp38 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 0
%tmp40 = load i64, i64* %tmp39, align 8, !range !4
%tmp41 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 1
%tmp42 = load i64, i64* %tmp41, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp34)
%tmp44 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp44)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp46 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp47 = load i64, i64* %tmp46, align 8
%tmp48 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp49 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 0
%tmp50 = load i64, i64* %tmp49, align 8, !range !4
%tmp51 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 1
%tmp52 = load i64, i64* %tmp51, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp44)
%tmp54 = call i64 @spam.29(i64 %tmp37, i64 %tmp47)
%tmp67 = icmp eq i64 %tmp40, 1
%tmp72 = icmp eq i64 %tmp50, 1
%or.cond = select i1 %tmp67, i1 %tmp72, i1 false
br i1 %or.cond, label %bb75, label %bb73
bb73: ; preds = %bb29
br label %bb85
bb75: ; preds = %bb29
%tmp84 = call { i64, i64 } @wobble.28(i64 %tmp42, i64 %tmp52)
%tmp84.fca.0.extract = extractvalue { i64, i64 } %tmp84, 0
%tmp84.fca.1.extract = extractvalue { i64, i64 } %tmp84, 1
br label %bb85
bb85: ; preds = %bb75, %bb73
%tmp3.sroa.5.0 = phi i64 [ %tmp84.fca.1.extract, %bb75 ], [ undef, %bb73 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp84.fca.0.extract, %bb75 ], [ 0, %bb73 ]
%tmp91 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp54, i64* %tmp91, align 8
%tmp92 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp93 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp93, align 8
%tmp94 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp94, align 8
br label %bb97
bb97: ; preds = %bb113, %bb99, %bb25, %bb85
ret void
bb99: ; preds = %bb13
%tmp104 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp104, align 8
%tmp105 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp110 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 0
store i64 1, i64* %tmp110, align 8
%tmp111 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 1
store i64 0, i64* %tmp111, align 8
br label %bb97
bb113: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb97
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @hoge.11({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.pluto.15* noalias readonly align 1 dereferenceable(9) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.pluto.15* %arg1 to %struct.bar.16*
%tmp7 = getelementptr inbounds %struct.bar.16, %struct.bar.16* %tmp6, i32 0, i32 1
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.pluto.15, %struct.pluto.15* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb99, label %bb113
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.pluto.15, %struct.pluto.15* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb29
bb25: ; preds = %bb19
%tmp27 = bitcast %struct.bar.16* %tmp6 to %struct.quux.17*
%tmp28 = bitcast %struct.quux.17* %tmp27 to %struct.wombat.0*
call void @wobble({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.wombat.0* noalias readonly align 1 dereferenceable(8) %tmp28)
br label %bb97
bb29: ; preds = %bb19
%tmp31 = bitcast %struct.bar.16* %tmp6 to %struct.quux.17*
%tmp32 = bitcast %struct.quux.17* %tmp31 to %struct.wombat.0*
%tmp34 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp34)
call void @wobble({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.wombat.0* noalias readonly align 1 dereferenceable(8) %tmp32)
%tmp36 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp37 = load i64, i64* %tmp36, align 8
%tmp38 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 0
%tmp40 = load i64, i64* %tmp39, align 8, !range !4
%tmp41 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 1
%tmp42 = load i64, i64* %tmp41, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp34)
%tmp44 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp44)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp46 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp47 = load i64, i64* %tmp46, align 8
%tmp48 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp49 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 0
%tmp50 = load i64, i64* %tmp49, align 8, !range !4
%tmp51 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 1
%tmp52 = load i64, i64* %tmp51, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp44)
%tmp54 = call i64 @spam.29(i64 %tmp37, i64 %tmp47)
%tmp67 = icmp eq i64 %tmp40, 1
%tmp72 = icmp eq i64 %tmp50, 1
%or.cond = select i1 %tmp67, i1 %tmp72, i1 false
br i1 %or.cond, label %bb75, label %bb73
bb73: ; preds = %bb29
br label %bb85
bb75: ; preds = %bb29
%tmp84 = call { i64, i64 } @wobble.28(i64 %tmp42, i64 %tmp52)
%tmp84.fca.0.extract = extractvalue { i64, i64 } %tmp84, 0
%tmp84.fca.1.extract = extractvalue { i64, i64 } %tmp84, 1
br label %bb85
bb85: ; preds = %bb75, %bb73
%tmp3.sroa.5.0 = phi i64 [ %tmp84.fca.1.extract, %bb75 ], [ undef, %bb73 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp84.fca.0.extract, %bb75 ], [ 0, %bb73 ]
%tmp91 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp54, i64* %tmp91, align 8
%tmp92 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp93 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp93, align 8
%tmp94 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp94, align 8
br label %bb97
bb97: ; preds = %bb113, %bb99, %bb25, %bb85
ret void
bb99: ; preds = %bb13
%tmp104 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp104, align 8
%tmp105 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp110 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 0
store i64 1, i64* %tmp110, align 8
%tmp111 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 1
store i64 0, i64* %tmp111, align 8
br label %bb97
bb113: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb97
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @baz.12({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.quux* noalias readonly align 1 dereferenceable(16) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.quux* %arg1 to %struct.wombat*
%tmp7 = getelementptr inbounds %struct.wombat, %struct.wombat* %tmp6, i32 0, i32 1
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.quux, %struct.quux* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb99, label %bb113
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.quux, %struct.quux* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb29
bb25: ; preds = %bb19
%tmp27 = bitcast %struct.wombat* %tmp6 to %struct.blam.18*
%tmp28 = bitcast %struct.blam.18* %tmp27 to %struct.hoge.12*
call void @wibble({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.hoge.12* noalias readonly align 1 dereferenceable(15) %tmp28)
br label %bb97
bb29: ; preds = %bb19
%tmp31 = bitcast %struct.wombat* %tmp6 to %struct.blam.18*
%tmp32 = bitcast %struct.blam.18* %tmp31 to %struct.hoge.12*
%tmp34 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp34)
call void @wibble({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.hoge.12* noalias readonly align 1 dereferenceable(15) %tmp32)
%tmp36 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp37 = load i64, i64* %tmp36, align 8
%tmp38 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 0
%tmp40 = load i64, i64* %tmp39, align 8, !range !4
%tmp41 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 1
%tmp42 = load i64, i64* %tmp41, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp34)
%tmp44 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp44)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp46 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp47 = load i64, i64* %tmp46, align 8
%tmp48 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp49 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 0
%tmp50 = load i64, i64* %tmp49, align 8, !range !4
%tmp51 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 1
%tmp52 = load i64, i64* %tmp51, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp44)
%tmp54 = call i64 @spam.29(i64 %tmp37, i64 %tmp47)
%tmp67 = icmp eq i64 %tmp40, 1
%tmp72 = icmp eq i64 %tmp50, 1
%or.cond = select i1 %tmp67, i1 %tmp72, i1 false
br i1 %or.cond, label %bb75, label %bb73
bb73: ; preds = %bb29
br label %bb85
bb75: ; preds = %bb29
%tmp84 = call { i64, i64 } @wobble.28(i64 %tmp42, i64 %tmp52)
%tmp84.fca.0.extract = extractvalue { i64, i64 } %tmp84, 0
%tmp84.fca.1.extract = extractvalue { i64, i64 } %tmp84, 1
br label %bb85
bb85: ; preds = %bb75, %bb73
%tmp3.sroa.5.0 = phi i64 [ %tmp84.fca.1.extract, %bb75 ], [ undef, %bb73 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp84.fca.0.extract, %bb75 ], [ 0, %bb73 ]
%tmp91 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp54, i64* %tmp91, align 8
%tmp92 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp93 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp93, align 8
%tmp94 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp94, align 8
br label %bb97
bb97: ; preds = %bb113, %bb99, %bb25, %bb85
ret void
bb99: ; preds = %bb13
%tmp104 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp104, align 8
%tmp105 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp110 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 0
store i64 1, i64* %tmp110, align 8
%tmp111 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 1
store i64 0, i64* %tmp111, align 8
br label %bb97
bb113: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb97
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @blam({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.ham.19* noalias readonly align 1 dereferenceable(10) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.ham.19* %arg1 to %struct.widget.20*
%tmp7 = getelementptr inbounds %struct.widget.20, %struct.widget.20* %tmp6, i32 0, i32 1
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.ham.19, %struct.ham.19* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb99, label %bb113
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.ham.19, %struct.ham.19* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb29
bb25: ; preds = %bb19
%tmp27 = bitcast %struct.widget.20* %tmp6 to %struct.foo.21*
%tmp28 = bitcast %struct.foo.21* %tmp27 to %struct.pluto.15*
call void @hoge.11({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.pluto.15* noalias readonly align 1 dereferenceable(9) %tmp28)
br label %bb97
bb29: ; preds = %bb19
%tmp31 = bitcast %struct.widget.20* %tmp6 to %struct.foo.21*
%tmp32 = bitcast %struct.foo.21* %tmp31 to %struct.pluto.15*
%tmp34 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp34)
call void @hoge.11({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.pluto.15* noalias readonly align 1 dereferenceable(9) %tmp32)
%tmp36 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp37 = load i64, i64* %tmp36, align 8
%tmp38 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 0
%tmp40 = load i64, i64* %tmp39, align 8, !range !4
%tmp41 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 1
%tmp42 = load i64, i64* %tmp41, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp34)
%tmp44 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp44)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp46 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp47 = load i64, i64* %tmp46, align 8
%tmp48 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp49 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 0
%tmp50 = load i64, i64* %tmp49, align 8, !range !4
%tmp51 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 1
%tmp52 = load i64, i64* %tmp51, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp44)
%tmp54 = call i64 @spam.29(i64 %tmp37, i64 %tmp47)
%tmp67 = icmp eq i64 %tmp40, 1
%tmp72 = icmp eq i64 %tmp50, 1
%or.cond = select i1 %tmp67, i1 %tmp72, i1 false
br i1 %or.cond, label %bb75, label %bb73
bb73: ; preds = %bb29
br label %bb85
bb75: ; preds = %bb29
%tmp84 = call { i64, i64 } @wobble.28(i64 %tmp42, i64 %tmp52)
%tmp84.fca.0.extract = extractvalue { i64, i64 } %tmp84, 0
%tmp84.fca.1.extract = extractvalue { i64, i64 } %tmp84, 1
br label %bb85
bb85: ; preds = %bb75, %bb73
%tmp3.sroa.5.0 = phi i64 [ %tmp84.fca.1.extract, %bb75 ], [ undef, %bb73 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp84.fca.0.extract, %bb75 ], [ 0, %bb73 ]
%tmp91 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp54, i64* %tmp91, align 8
%tmp92 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp93 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp93, align 8
%tmp94 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp94, align 8
br label %bb97
bb97: ; preds = %bb113, %bb99, %bb25, %bb85
ret void
bb99: ; preds = %bb13
%tmp104 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp104, align 8
%tmp105 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp110 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 0
store i64 1, i64* %tmp110, align 8
%tmp111 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 1
store i64 0, i64* %tmp111, align 8
br label %bb97
bb113: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb97
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @wibble.13({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.quux.10* noalias readonly align 1 dereferenceable(12) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.quux.10* %arg1 to %struct.baz.11*
%tmp7 = getelementptr inbounds %struct.baz.11, %struct.baz.11* %tmp6, i32 0, i32 1
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.quux.10, %struct.quux.10* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb99, label %bb113
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.quux.10, %struct.quux.10* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb29
bb25: ; preds = %bb19
%tmp27 = bitcast %struct.baz.11* %tmp6 to %struct.blam.22*
%tmp28 = bitcast %struct.blam.22* %tmp27 to %struct.wombat.23*
call void @hoge.15({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.wombat.23* noalias readonly align 1 dereferenceable(11) %tmp28)
br label %bb97
bb29: ; preds = %bb19
%tmp31 = bitcast %struct.baz.11* %tmp6 to %struct.blam.22*
%tmp32 = bitcast %struct.blam.22* %tmp31 to %struct.wombat.23*
%tmp34 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp34)
call void @hoge.15({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.wombat.23* noalias readonly align 1 dereferenceable(11) %tmp32)
%tmp36 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp37 = load i64, i64* %tmp36, align 8
%tmp38 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 0
%tmp40 = load i64, i64* %tmp39, align 8, !range !4
%tmp41 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 1
%tmp42 = load i64, i64* %tmp41, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp34)
%tmp44 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp44)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp46 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp47 = load i64, i64* %tmp46, align 8
%tmp48 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp49 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 0
%tmp50 = load i64, i64* %tmp49, align 8, !range !4
%tmp51 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 1
%tmp52 = load i64, i64* %tmp51, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp44)
%tmp54 = call i64 @spam.29(i64 %tmp37, i64 %tmp47)
%tmp67 = icmp eq i64 %tmp40, 1
%tmp72 = icmp eq i64 %tmp50, 1
%or.cond = select i1 %tmp67, i1 %tmp72, i1 false
br i1 %or.cond, label %bb75, label %bb73
bb73: ; preds = %bb29
br label %bb85
bb75: ; preds = %bb29
%tmp84 = call { i64, i64 } @wobble.28(i64 %tmp42, i64 %tmp52)
%tmp84.fca.0.extract = extractvalue { i64, i64 } %tmp84, 0
%tmp84.fca.1.extract = extractvalue { i64, i64 } %tmp84, 1
br label %bb85
bb85: ; preds = %bb75, %bb73
%tmp3.sroa.5.0 = phi i64 [ %tmp84.fca.1.extract, %bb75 ], [ undef, %bb73 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp84.fca.0.extract, %bb75 ], [ 0, %bb73 ]
%tmp91 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp54, i64* %tmp91, align 8
%tmp92 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp93 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp93, align 8
%tmp94 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp94, align 8
br label %bb97
bb97: ; preds = %bb113, %bb99, %bb25, %bb85
ret void
bb99: ; preds = %bb13
%tmp104 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp104, align 8
%tmp105 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp110 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 0
store i64 1, i64* %tmp110, align 8
%tmp111 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 1
store i64 0, i64* %tmp111, align 8
br label %bb97
bb113: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb97
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @widget.14({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.wombat.4* noalias readonly align 1 dereferenceable(3) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.wombat.4* %arg1 to { i8, i8 }*
%tmp7 = bitcast { i8, i8 }* %tmp6 to i8*
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.wombat.4, %struct.wombat.4* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb95, label %bb109
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.wombat.4, %struct.wombat.4* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb27
bb25: ; preds = %bb19
call void @quux.16({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, { i8, i8 }* noalias readonly align 1 dereferenceable(2) %tmp6)
br label %bb93
bb27: ; preds = %bb19
%tmp30 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp30)
call void @quux.16({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, { i8, i8 }* noalias readonly align 1 dereferenceable(2) %tmp6)
%tmp32 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp33 = load i64, i64* %tmp32, align 8
%tmp34 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp35 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp34, i32 0, i32 0
%tmp36 = load i64, i64* %tmp35, align 8, !range !4
%tmp37 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp34, i32 0, i32 1
%tmp38 = load i64, i64* %tmp37, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp30)
%tmp40 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp40)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp42 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp43 = load i64, i64* %tmp42, align 8
%tmp44 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp45 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp44, i32 0, i32 0
%tmp46 = load i64, i64* %tmp45, align 8, !range !4
%tmp47 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp44, i32 0, i32 1
%tmp48 = load i64, i64* %tmp47, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp40)
%tmp50 = call i64 @spam.29(i64 %tmp33, i64 %tmp43)
%tmp63 = icmp eq i64 %tmp36, 1
%tmp68 = icmp eq i64 %tmp46, 1
%or.cond = select i1 %tmp63, i1 %tmp68, i1 false
br i1 %or.cond, label %bb71, label %bb69
bb69: ; preds = %bb27
br label %bb81
bb71: ; preds = %bb27
%tmp80 = call { i64, i64 } @wobble.28(i64 %tmp38, i64 %tmp48)
%tmp80.fca.0.extract = extractvalue { i64, i64 } %tmp80, 0
%tmp80.fca.1.extract = extractvalue { i64, i64 } %tmp80, 1
br label %bb81
bb81: ; preds = %bb71, %bb69
%tmp3.sroa.5.0 = phi i64 [ %tmp80.fca.1.extract, %bb71 ], [ undef, %bb69 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp80.fca.0.extract, %bb71 ], [ 0, %bb69 ]
%tmp87 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp50, i64* %tmp87, align 8
%tmp88 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp89 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp88, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp89, align 8
%tmp90 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp88, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp90, align 8
br label %bb93
bb93: ; preds = %bb109, %bb95, %bb25, %bb81
ret void
bb95: ; preds = %bb13
%tmp100 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp100, align 8
%tmp101 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp106 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp101, i32 0, i32 0
store i64 1, i64* %tmp106, align 8
%tmp107 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp101, i32 0, i32 1
store i64 0, i64* %tmp107, align 8
br label %bb93
bb109: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb93
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @snork({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.foo* noalias readonly align 1 dereferenceable(7) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.foo* %arg1 to %struct.zot.1*
%tmp7 = getelementptr inbounds %struct.zot.1, %struct.zot.1* %tmp6, i32 0, i32 1
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.foo, %struct.foo* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb99, label %bb113
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.foo, %struct.foo* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb29
bb25: ; preds = %bb19
%tmp27 = bitcast %struct.zot.1* %tmp6 to %struct.hoge.25*
%tmp28 = bitcast %struct.hoge.25* %tmp27 to %struct.wobble*
call void @baz({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.wobble* noalias readonly align 1 dereferenceable(6) %tmp28)
br label %bb97
bb29: ; preds = %bb19
%tmp31 = bitcast %struct.zot.1* %tmp6 to %struct.hoge.25*
%tmp32 = bitcast %struct.hoge.25* %tmp31 to %struct.wobble*
%tmp34 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp34)
call void @baz({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.wobble* noalias readonly align 1 dereferenceable(6) %tmp32)
%tmp36 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp37 = load i64, i64* %tmp36, align 8
%tmp38 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 0
%tmp40 = load i64, i64* %tmp39, align 8, !range !4
%tmp41 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 1
%tmp42 = load i64, i64* %tmp41, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp34)
%tmp44 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp44)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp46 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp47 = load i64, i64* %tmp46, align 8
%tmp48 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp49 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 0
%tmp50 = load i64, i64* %tmp49, align 8, !range !4
%tmp51 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 1
%tmp52 = load i64, i64* %tmp51, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp44)
%tmp54 = call i64 @spam.29(i64 %tmp37, i64 %tmp47)
%tmp67 = icmp eq i64 %tmp40, 1
%tmp72 = icmp eq i64 %tmp50, 1
%or.cond = select i1 %tmp67, i1 %tmp72, i1 false
br i1 %or.cond, label %bb75, label %bb73
bb73: ; preds = %bb29
br label %bb85
bb75: ; preds = %bb29
%tmp84 = call { i64, i64 } @wobble.28(i64 %tmp42, i64 %tmp52)
%tmp84.fca.0.extract = extractvalue { i64, i64 } %tmp84, 0
%tmp84.fca.1.extract = extractvalue { i64, i64 } %tmp84, 1
br label %bb85
bb85: ; preds = %bb75, %bb73
%tmp3.sroa.5.0 = phi i64 [ %tmp84.fca.1.extract, %bb75 ], [ undef, %bb73 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp84.fca.0.extract, %bb75 ], [ 0, %bb73 ]
%tmp91 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp54, i64* %tmp91, align 8
%tmp92 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp93 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp93, align 8
%tmp94 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp94, align 8
br label %bb97
bb97: ; preds = %bb113, %bb99, %bb25, %bb85
ret void
bb99: ; preds = %bb13
%tmp104 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp104, align 8
%tmp105 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp110 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 0
store i64 1, i64* %tmp110, align 8
%tmp111 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 1
store i64 0, i64* %tmp111, align 8
br label %bb97
bb113: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb97
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @hoge.15({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.wombat.23* noalias readonly align 1 dereferenceable(11) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.wombat.23* %arg1 to %struct.wombat.24*
%tmp7 = getelementptr inbounds %struct.wombat.24, %struct.wombat.24* %tmp6, i32 0, i32 1
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.wombat.23, %struct.wombat.23* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb99, label %bb113
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.wombat.23, %struct.wombat.23* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb29
bb25: ; preds = %bb19
%tmp27 = bitcast %struct.wombat.24* %tmp6 to %struct.barney.26*
%tmp28 = bitcast %struct.barney.26* %tmp27 to %struct.ham.19*
call void @blam({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.ham.19* noalias readonly align 1 dereferenceable(10) %tmp28)
br label %bb97
bb29: ; preds = %bb19
%tmp31 = bitcast %struct.wombat.24* %tmp6 to %struct.barney.26*
%tmp32 = bitcast %struct.barney.26* %tmp31 to %struct.ham.19*
%tmp34 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp34)
call void @blam({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.ham.19* noalias readonly align 1 dereferenceable(10) %tmp32)
%tmp36 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp37 = load i64, i64* %tmp36, align 8
%tmp38 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 0
%tmp40 = load i64, i64* %tmp39, align 8, !range !4
%tmp41 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 1
%tmp42 = load i64, i64* %tmp41, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp34)
%tmp44 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp44)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp46 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp47 = load i64, i64* %tmp46, align 8
%tmp48 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp49 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 0
%tmp50 = load i64, i64* %tmp49, align 8, !range !4
%tmp51 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 1
%tmp52 = load i64, i64* %tmp51, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp44)
%tmp54 = call i64 @spam.29(i64 %tmp37, i64 %tmp47)
%tmp67 = icmp eq i64 %tmp40, 1
%tmp72 = icmp eq i64 %tmp50, 1
%or.cond = select i1 %tmp67, i1 %tmp72, i1 false
br i1 %or.cond, label %bb75, label %bb73
bb73: ; preds = %bb29
br label %bb85
bb75: ; preds = %bb29
%tmp84 = call { i64, i64 } @wobble.28(i64 %tmp42, i64 %tmp52)
%tmp84.fca.0.extract = extractvalue { i64, i64 } %tmp84, 0
%tmp84.fca.1.extract = extractvalue { i64, i64 } %tmp84, 1
br label %bb85
bb85: ; preds = %bb75, %bb73
%tmp3.sroa.5.0 = phi i64 [ %tmp84.fca.1.extract, %bb75 ], [ undef, %bb73 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp84.fca.0.extract, %bb75 ], [ 0, %bb73 ]
%tmp91 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp54, i64* %tmp91, align 8
%tmp92 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp93 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp93, align 8
%tmp94 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp94, align 8
br label %bb97
bb97: ; preds = %bb113, %bb99, %bb25, %bb85
ret void
bb99: ; preds = %bb13
%tmp104 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp104, align 8
%tmp105 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp110 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 0
store i64 1, i64* %tmp110, align 8
%tmp111 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 1
store i64 0, i64* %tmp111, align 8
br label %bb97
bb113: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb97
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @quux.16({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, { i8, i8 }* noalias readonly align 1 dereferenceable(2) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast { i8, i8 }* %arg1 to i8*
%tmp7 = load i8, i8* %tmp6, align 1, !range !3
%tmp8 = sub i8 %tmp7, 8
%tmp9 = icmp eq i8 %tmp8, 0
br i1 %tmp9, label %bb12, label %bb18
bb12: ; preds = %bb
%tmp13 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %arg1, i32 0, i32 1
%tmp14 = load i8, i8* %tmp13, align 1, !range !3
%tmp15 = sub i8 %tmp14, 8
%tmp16 = icmp eq i8 %tmp15, 0
br i1 %tmp16, label %bb94, label %bb108
bb18: ; preds = %bb
%tmp19 = getelementptr inbounds { i8, i8 }, { i8, i8 }* %arg1, i32 0, i32 1
%tmp20 = load i8, i8* %tmp19, align 1, !range !3
%tmp21 = sub i8 %tmp20, 8
%tmp22 = icmp eq i8 %tmp21, 0
br i1 %tmp22, label %bb24, label %bb26
bb24: ; preds = %bb18
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp6)
br label %bb92
bb26: ; preds = %bb18
%tmp29 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp29)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, i8* noalias readonly align 1 dereferenceable(1) %tmp6)
%tmp31 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp32 = load i64, i64* %tmp31, align 8
%tmp33 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp34 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp33, i32 0, i32 0
%tmp35 = load i64, i64* %tmp34, align 8, !range !4
%tmp36 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp33, i32 0, i32 1
%tmp37 = load i64, i64* %tmp36, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp29)
%tmp39 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp39)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp19)
%tmp41 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp42 = load i64, i64* %tmp41, align 8
%tmp43 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp44 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp43, i32 0, i32 0
%tmp45 = load i64, i64* %tmp44, align 8, !range !4
%tmp46 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp43, i32 0, i32 1
%tmp47 = load i64, i64* %tmp46, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp39)
%tmp49 = call i64 @spam.29(i64 %tmp32, i64 %tmp42)
%tmp62 = icmp eq i64 %tmp35, 1
%tmp67 = icmp eq i64 %tmp45, 1
%or.cond = select i1 %tmp62, i1 %tmp67, i1 false
br i1 %or.cond, label %bb70, label %bb68
bb68: ; preds = %bb26
br label %bb80
bb70: ; preds = %bb26
%tmp79 = call { i64, i64 } @wobble.28(i64 %tmp37, i64 %tmp47)
%tmp79.fca.0.extract = extractvalue { i64, i64 } %tmp79, 0
%tmp79.fca.1.extract = extractvalue { i64, i64 } %tmp79, 1
br label %bb80
bb80: ; preds = %bb70, %bb68
%tmp3.sroa.5.0 = phi i64 [ %tmp79.fca.1.extract, %bb70 ], [ undef, %bb68 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp79.fca.0.extract, %bb70 ], [ 0, %bb68 ]
%tmp86 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp49, i64* %tmp86, align 8
%tmp87 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp88 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp87, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp88, align 8
%tmp89 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp87, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp89, align 8
br label %bb92
bb92: ; preds = %bb108, %bb94, %bb24, %bb80
ret void
bb94: ; preds = %bb12
%tmp99 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp99, align 8
%tmp100 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp105 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp100, i32 0, i32 0
store i64 1, i64* %tmp105, align 8
%tmp106 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp100, i32 0, i32 1
store i64 0, i64* %tmp106, align 8
br label %bb92
bb108: ; preds = %bb12
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp13)
br label %bb92
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @wobble.17({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.widget* noalias readonly align 1 dereferenceable(5) %arg1) unnamed_addr #0 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = bitcast %struct.widget* %arg1 to %struct.baz*
%tmp7 = getelementptr inbounds %struct.baz, %struct.baz* %tmp6, i32 0, i32 1
%tmp8 = load i8, i8* %tmp7, align 1, !range !2
%tmp9 = sub i8 %tmp8, 9
%tmp10 = icmp eq i8 %tmp9, 0
br i1 %tmp10, label %bb13, label %bb19
bb13: ; preds = %bb
%tmp14 = getelementptr inbounds %struct.widget, %struct.widget* %arg1, i32 0, i32 1
%tmp15 = load i8, i8* %tmp14, align 1, !range !3
%tmp16 = sub i8 %tmp15, 8
%tmp17 = icmp eq i8 %tmp16, 0
br i1 %tmp17, label %bb99, label %bb113
bb19: ; preds = %bb
%tmp20 = getelementptr inbounds %struct.widget, %struct.widget* %arg1, i32 0, i32 1
%tmp21 = load i8, i8* %tmp20, align 1, !range !3
%tmp22 = sub i8 %tmp21, 8
%tmp23 = icmp eq i8 %tmp22, 0
br i1 %tmp23, label %bb25, label %bb29
bb25: ; preds = %bb19
%tmp27 = bitcast %struct.baz* %tmp6 to %struct.wobble.27*
%tmp28 = bitcast %struct.wobble.27* %tmp27 to %struct.foo.2*
call void @hoge({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, %struct.foo.2* noalias readonly align 1 dereferenceable(4) %tmp28)
br label %bb97
bb29: ; preds = %bb19
%tmp31 = bitcast %struct.baz* %tmp6 to %struct.wobble.27*
%tmp32 = bitcast %struct.wobble.27* %tmp31 to %struct.foo.2*
%tmp34 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp34)
call void @hoge({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.foo.2* noalias readonly align 1 dereferenceable(4) %tmp32)
%tmp36 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp37 = load i64, i64* %tmp36, align 8
%tmp38 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp39 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 0
%tmp40 = load i64, i64* %tmp39, align 8, !range !4
%tmp41 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp38, i32 0, i32 1
%tmp42 = load i64, i64* %tmp41, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp34)
%tmp44 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp44)
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp20)
%tmp46 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp47 = load i64, i64* %tmp46, align 8
%tmp48 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp49 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 0
%tmp50 = load i64, i64* %tmp49, align 8, !range !4
%tmp51 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp48, i32 0, i32 1
%tmp52 = load i64, i64* %tmp51, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp44)
%tmp54 = call i64 @spam.29(i64 %tmp37, i64 %tmp47)
%tmp67 = icmp eq i64 %tmp40, 1
%tmp72 = icmp eq i64 %tmp50, 1
%or.cond = select i1 %tmp67, i1 %tmp72, i1 false
br i1 %or.cond, label %bb75, label %bb73
bb73: ; preds = %bb29
br label %bb85
bb75: ; preds = %bb29
%tmp84 = call { i64, i64 } @wobble.28(i64 %tmp42, i64 %tmp52)
%tmp84.fca.0.extract = extractvalue { i64, i64 } %tmp84, 0
%tmp84.fca.1.extract = extractvalue { i64, i64 } %tmp84, 1
br label %bb85
bb85: ; preds = %bb75, %bb73
%tmp3.sroa.5.0 = phi i64 [ %tmp84.fca.1.extract, %bb75 ], [ undef, %bb73 ]
%tmp3.sroa.0.0 = phi i64 [ %tmp84.fca.0.extract, %bb75 ], [ 0, %bb73 ]
%tmp91 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 %tmp54, i64* %tmp91, align 8
%tmp92 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp93 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 0
store i64 %tmp3.sroa.0.0, i64* %tmp93, align 8
%tmp94 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp92, i32 0, i32 1
store i64 %tmp3.sroa.5.0, i64* %tmp94, align 8
br label %bb97
bb97: ; preds = %bb113, %bb99, %bb25, %bb85
ret void
bb99: ; preds = %bb13
%tmp104 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp104, align 8
%tmp105 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp110 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 0
store i64 1, i64* %tmp110, align 8
%tmp111 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp105, i32 0, i32 1
store i64 0, i64* %tmp111, align 8
br label %bb97
bb113: ; preds = %bb13
call void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %tmp14)
br label %bb97
}
; Function Attrs: nonlazybind uwtable
define internal void @spam(%struct.spam.28* noalias nocapture sret(%struct.spam.28) dereferenceable(24) %arg, i8 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp3 = alloca { i64, { i64, i64 } }, align 8
%tmp4 = alloca i8, align 1
store i8 %arg1, i8* %tmp4, align 1
%tmp5 = bitcast { i64, { i64, i64 } }* %tmp3 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp5)
invoke void @wombat({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp3, i8* noalias readonly align 1 dereferenceable(1) %tmp4)
to label %bb6 unwind label %bb14
bb6: ; preds = %bb
%tmp7 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp3, i32 0, i32 1
%tmp8 = bitcast { i64, i64 }* %tmp7 to i64*
%tmp9 = load i64, i64* %tmp8, align 8, !range !4
%tmp10 = icmp eq i64 %tmp9, 1
br i1 %tmp10, label %bb21, label %bb26
bb14: ; preds = %bb26, %bb21, %bb
%tmp15 = landingpad { i8*, i32 }
cleanup
%tmp17 = extractvalue { i8*, i32 } %tmp15, 0
%tmp18 = extractvalue { i8*, i32 } %tmp15, 1
br label %bb40
bb21: ; preds = %bb6
%tmp23 = bitcast { i64, i64 }* %tmp7 to %struct.bar*
%tmp24 = getelementptr inbounds %struct.bar, %struct.bar* %tmp23, i32 0, i32 1
%tmp25 = load i64, i64* %tmp24, align 8
invoke void @foo.377(%struct.spam.28* noalias nocapture sret(%struct.spam.28) dereferenceable(24) %arg, i64 %tmp25)
to label %bb28 unwind label %bb14
bb26: ; preds = %bb6
invoke void @wibble.543([0 x i8]* noalias nonnull readonly align 1 bitcast (<{ [17 x i8] }>* @global to [0 x i8]*), i64 17, %struct.zot.29* noalias readonly align 8 dereferenceable(24) bitcast (<{ i8*, [16 x i8] }>* @global.2 to %struct.zot.29*)) #12
to label %bb27 unwind label %bb14
bb27: ; preds = %bb26
unreachable
bb28: ; preds = %bb21
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp5)
%tmp30 = load i8, i8* %tmp4, align 1, !range !5
invoke void @pluto.539(%struct.spam.28* noalias align 8 dereferenceable(24) %arg, i8 %tmp30)
to label %bb31 unwind label %bb33
bb31: ; preds = %bb28
ret void
bb33: ; preds = %bb28
%tmp34 = landingpad { i8*, i32 }
cleanup
%tmp36 = extractvalue { i8*, i32 } %tmp34, 0
%tmp37 = extractvalue { i8*, i32 } %tmp34, 1
call void @wibble.130(%struct.spam.28* %arg) #13
br label %bb40
bb40: ; preds = %bb14, %bb33
%tmp.sroa.6.0 = phi i32 [ %tmp37, %bb33 ], [ %tmp18, %bb14 ]
%tmp.sroa.0.0 = phi i8* [ %tmp36, %bb33 ], [ %tmp17, %bb14 ]
%tmp46 = insertvalue { i8*, i32 } undef, i8* %tmp.sroa.0.0, 0
%tmp47 = insertvalue { i8*, i32 } %tmp46, i32 %tmp.sroa.6.0, 1
resume { i8*, i32 } %tmp47
}
; Function Attrs: nonlazybind uwtable
define internal void @bar(%struct.spam.28* noalias nocapture sret(%struct.spam.28) dereferenceable(24) %arg, i128 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = alloca %struct.ham, align 1
%tmp5.0.tmp8.sroa_cast = bitcast %struct.ham* %tmp6 to i128*
store i128 %arg1, i128* %tmp5.0.tmp8.sroa_cast, align 1
%tmp11 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp11)
invoke void @quux({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, %struct.ham* noalias readonly align 1 dereferenceable(16) %tmp6)
to label %bb12 unwind label %bb20
bb12: ; preds = %bb
%tmp13 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp14 = bitcast { i64, i64 }* %tmp13 to i64*
%tmp15 = load i64, i64* %tmp14, align 8, !range !4
%tmp16 = icmp eq i64 %tmp15, 1
br i1 %tmp16, label %bb27, label %bb32
bb20: ; preds = %bb32, %bb27, %bb
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb51
bb27: ; preds = %bb12
%tmp29 = bitcast { i64, i64 }* %tmp13 to %struct.bar*
%tmp30 = getelementptr inbounds %struct.bar, %struct.bar* %tmp29, i32 0, i32 1
%tmp31 = load i64, i64* %tmp30, align 8
invoke void @foo.377(%struct.spam.28* noalias nocapture sret(%struct.spam.28) dereferenceable(24) %arg, i64 %tmp31)
to label %bb34 unwind label %bb20
bb32: ; preds = %bb12
invoke void @wibble.543([0 x i8]* noalias nonnull readonly align 1 bitcast (<{ [17 x i8] }>* @global to [0 x i8]*), i64 17, %struct.zot.29* noalias readonly align 8 dereferenceable(24) bitcast (<{ i8*, [16 x i8] }>* @global.2 to %struct.zot.29*)) #12
to label %bb33 unwind label %bb20
bb33: ; preds = %bb32
unreachable
bb34: ; preds = %bb27
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp11)
%tmp3.sroa.0.0.copyload = load i128, i128* %tmp5.0.tmp8.sroa_cast, align 1
invoke void @snork.538(%struct.spam.28* noalias align 8 dereferenceable(24) %arg, i128 %tmp3.sroa.0.0.copyload)
to label %bb41 unwind label %bb44
bb41: ; preds = %bb34
ret void
bb44: ; preds = %bb34
%tmp45 = landingpad { i8*, i32 }
cleanup
%tmp47 = extractvalue { i8*, i32 } %tmp45, 0
%tmp48 = extractvalue { i8*, i32 } %tmp45, 1
call void @wibble.130(%struct.spam.28* %arg) #13
br label %bb51
bb51: ; preds = %bb20, %bb44
%tmp.sroa.0.0 = phi i8* [ %tmp47, %bb44 ], [ %tmp23, %bb20 ]
%tmp.sroa.6.0 = phi i32 [ %tmp48, %bb44 ], [ %tmp24, %bb20 ]
%tmp57 = insertvalue { i8*, i32 } undef, i8* %tmp.sroa.0.0, 0
%tmp58 = insertvalue { i8*, i32 } %tmp57, i32 %tmp.sroa.6.0, 1
resume { i8*, i32 } %tmp58
}
; Function Attrs: nonlazybind uwtable
define internal void @pluto(%struct.bar.30* noalias align 8 dereferenceable(24) %arg, i8* nonnull %arg1, i8* %arg2) unnamed_addr #1 {
bb:
%tmp = alloca { i8*, i8* }, align 8
%tmp3 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %tmp, i32 0, i32 0
store i8* %arg1, i8** %tmp3, align 8
%tmp4 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %tmp, i32 0, i32 1
store i8* %arg2, i8** %tmp4, align 8
%tmp5 = call { [0 x i8]*, i64 } @barney.544({ i8*, i8* }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp6 = extractvalue { [0 x i8]*, i64 } %tmp5, 0
%tmp7 = extractvalue { [0 x i8]*, i64 } %tmp5, 1
call void @baz.418(%struct.bar.30* noalias align 8 dereferenceable(24) %arg, [0 x i8]* %tmp6, i64 %tmp7)
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @baz.18(i8* %arg, i8* %arg1, i64 %arg2) unnamed_addr #0 {
bb:
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %arg1, i8* align 1 %arg, i64 %arg2, i1 false)
ret void
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal %struct.quux.31* @barney(%struct.widget.32* noalias nonnull align 1 %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.widget.32* %arg to %struct.quux.31*
ret %struct.quux.31* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal { i8*, i64 }* @spam.19({ i8*, i64 }* noalias align 8 dereferenceable(16) %arg) unnamed_addr #2 {
bb:
ret { i8*, i64 }* %arg
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal { i8*, i64 } @zot(i8* %arg, i64 %arg1, %struct.zot.29* noalias readonly align 8 dereferenceable(24) %arg2) unnamed_addr #2 {
bb:
%tmp = call { i8*, i64 } @baz.24(i8* nonnull %arg, i64 %arg1)
%tmp4 = extractvalue { i8*, i64 } %tmp, 0
%tmp5 = extractvalue { i8*, i64 } %tmp, 1
ret { i8*, i64 } %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal void @snork.20(%struct.zot.29* noalias readonly align 8 dereferenceable(24) %arg) unnamed_addr #2 {
bb:
call void @zot.23()
ret void
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal { i8*, i64 } @spam.21() unnamed_addr #2 {
bb:
ret { i8*, i64 } undef
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal void @quux.22() unnamed_addr #2 {
bb:
%tmp = alloca %struct.widget.32, align 1
ret void
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal void @zot.23() unnamed_addr #2 {
bb:
ret void
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal { i8*, i64 } @baz.24(i8* nonnull %arg, i64 %arg1) unnamed_addr #2 {
bb:
%tmp = insertvalue { i8*, i64 } undef, i8* %arg, 0
%tmp2 = insertvalue { i8*, i64 } %tmp, i64 %arg1, 1
ret { i8*, i64 } %tmp2
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal void @wobble.25(%struct.wibble* noalias nocapture sret(%struct.wibble) dereferenceable(24) %arg, %struct.spam.28* noalias nocapture dereferenceable(24) %arg1) unnamed_addr #2 {
bb:
%tmp = alloca %struct.spam.28, align 8
%tmp.0.tmp2.sroa_cast = bitcast %struct.spam.28* %tmp to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp.0.tmp2.sroa_cast)
%tmp4 = bitcast %struct.spam.28* %arg1 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %tmp.0.tmp2.sroa_cast, i8* align 8 %tmp4, i64 24, i1 false)
%tmp5 = bitcast %struct.wibble* %arg to %struct.spam.28*
%tmp6 = bitcast %struct.spam.28* %tmp5 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %tmp6, i8* align 8 %tmp.0.tmp2.sroa_cast, i64 24, i1 false)
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp.0.tmp2.sroa_cast)
ret void
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal { i8*, i64 } @pluto.26([0 x i8]* noalias nonnull align 1 %arg, i64 %arg1) unnamed_addr #2 {
bb:
%0 = bitcast [0 x i8]* %arg to i8*
%tmp9 = insertvalue { i8*, i64 } undef, i8* %0, 0
%tmp10 = insertvalue { i8*, i64 } %tmp9, i64 %arg1, 1
ret { i8*, i64 } %tmp10
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i64 @blam.27() unnamed_addr #2 {
bb:
ret i64 1
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i64 @foo() unnamed_addr #2 {
bb:
ret i64 1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i64, i64 } @wobble.28(i64 %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp3 = call { i64, i8 } @baz.30(i64 %arg, i64 %arg1)
%tmp4 = extractvalue { i64, i8 } %tmp3, 0
%tmp5 = extractvalue { i64, i8 } %tmp3, 1
%tmp6 = trunc i8 %tmp5 to i1
%tmp9 = zext i1 %tmp6 to i8
br i1 %tmp6, label %bb17, label %bb13
bb13: ; preds = %bb
br label %bb19
bb17: ; preds = %bb
br label %bb19
bb19: ; preds = %bb17, %bb13
%tmp2.sroa.0.0 = phi i64 [ 0, %bb17 ], [ 1, %bb13 ]
%tmp24 = insertvalue { i64, i64 } undef, i64 %tmp2.sroa.0.0, 0
%tmp25 = insertvalue { i64, i64 } %tmp24, i64 %tmp4, 1
ret { i64, i64 } %tmp25
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i64 @spam.29(i64 %arg, i64 %arg1) unnamed_addr #2 {
bb:
%tmp3 = call i64 @llvm.uadd.sat.i64(i64 %arg, i64 %arg1)
ret i64 %tmp3
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal { i64, i8 } @baz.30(i64 %arg, i64 %arg1) unnamed_addr #2 {
bb:
%tmp4 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %arg, i64 %arg1)
%tmp5 = extractvalue { i64, i1 } %tmp4, 0
%tmp6 = extractvalue { i64, i1 } %tmp4, 1
%tmp7 = zext i1 %tmp6 to i8
%tmp26 = insertvalue { i64, i8 } undef, i64 %tmp5, 0
%tmp27 = insertvalue { i64, i8 } %tmp26, i8 %tmp7, 1
ret { i64, i8 } %tmp27
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64 @wombat.31(i64 %arg) unnamed_addr #0 {
bb:
ret i64 %arg
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64 @wobble.32(i64 %arg) unnamed_addr #0 {
bb:
ret i64 %arg
}
; Function Attrs: nonlazybind uwtable
define internal void @spam.33({ i64*, i64 }* %arg) unnamed_addr #1 {
bb:
call void @snork.545({ i64*, i64 }* noalias align 8 dereferenceable(16) %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @wibble.34([0 x %struct.eggs]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.eggs]* %arg to %struct.eggs*
%tmp8 = getelementptr inbounds %struct.eggs, %struct.eggs* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.eggs* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.eggs* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.eggs, %struct.eggs* %tmp2.0, i64 1
invoke void @eggs.344(%struct.eggs* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.eggs* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.eggs* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.eggs, %struct.eggs* %tmp2.1, i64 1
call void @eggs.344(%struct.eggs* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @blam.35(%struct.wombat.33* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.wombat.33* %arg to %struct.hoge.34*
call void @baz.41(%struct.hoge.34* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @foo.36(%struct.wibble.40* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.wibble.40* %arg to %struct.barney.41*
call void @eggs(%struct.barney.41* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @bar.37([0 x %struct.blam.43]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.blam.43]* %arg to %struct.blam.43*
%tmp8 = getelementptr inbounds %struct.blam.43, %struct.blam.43* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.blam.43* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.blam.43* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.blam.43, %struct.blam.43* %tmp2.0, i64 1
invoke void @quux.348(%struct.blam.43* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.blam.43* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.blam.43* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.blam.43, %struct.blam.43* %tmp2.1, i64 1
call void @quux.348(%struct.blam.43* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @foo.38([0 x %struct.snork.46]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.snork.46]* %arg to %struct.snork.46*
%tmp8 = getelementptr inbounds %struct.snork.46, %struct.snork.46* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.snork.46* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.snork.46* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.snork.46, %struct.snork.46* %tmp2.0, i64 1
invoke void @quux.350(%struct.snork.46* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.snork.46* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.snork.46* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.snork.46, %struct.snork.46* %tmp2.1, i64 1
call void @quux.350(%struct.snork.46* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @hoge.39([0 x %struct.snork.47]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.snork.47]* %arg to %struct.snork.47*
%tmp8 = getelementptr inbounds %struct.snork.47, %struct.snork.47* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.snork.47* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.snork.47* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.snork.47, %struct.snork.47* %tmp2.0, i64 1
invoke void @wibble.351(%struct.snork.47* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.snork.47* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.snork.47* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.snork.47, %struct.snork.47* %tmp2.1, i64 1
call void @wibble.351(%struct.snork.47* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @quux.40(%struct.ham.49* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.ham.49* %arg to {}**
%tmp1 = load {}*, {}** %tmp, align 8
%tmp2 = icmp eq {}* %tmp1, null
%tmp3 = select i1 %tmp2, i64 0, i64 1
br i1 %tmp2, label %bb5, label %bb6
bb5: ; preds = %bb6, %bb
ret void
bb6: ; preds = %bb
%tmp7 = bitcast %struct.ham.49* %arg to %struct.quux.50*
%tmp8 = bitcast %struct.quux.50* %tmp7 to %struct.baz.51*
call void @wibble.197(%struct.baz.51* %tmp8)
br label %bb5
}
; Function Attrs: nonlazybind uwtable
define internal void @baz.41(%struct.hoge.34* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp1 = bitcast %struct.hoge.34* %arg to %struct.blam.35*
invoke void @zot.125(%struct.blam.35* %tmp1)
to label %bb2 unwind label %bb6
bb2: ; preds = %bb
%tmp3 = getelementptr inbounds %struct.hoge.34, %struct.hoge.34* %arg, i32 0, i32 1
call void @widget.42(%struct.hoge.39* %tmp3)
ret void
bb6: ; preds = %bb
%tmp7 = landingpad { i8*, i32 }
cleanup
%tmp9 = extractvalue { i8*, i32 } %tmp7, 0
%tmp10 = extractvalue { i8*, i32 } %tmp7, 1
%tmp5 = getelementptr inbounds %struct.hoge.34, %struct.hoge.34* %arg, i32 0, i32 1
call void @widget.42(%struct.hoge.39* %tmp5) #13
resume { i8*, i32 } %tmp7
}
; Function Attrs: nonlazybind uwtable
define internal void @eggs(%struct.barney.41* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp1 = bitcast %struct.barney.41* %arg to %struct.blam.35*
invoke void @zot.125(%struct.blam.35* %tmp1)
to label %bb2 unwind label %bb6
bb2: ; preds = %bb
%tmp3 = getelementptr inbounds %struct.barney.41, %struct.barney.41* %arg, i32 0, i32 1
call void @widget.43(%struct.zot.42* %tmp3)
ret void
bb6: ; preds = %bb
%tmp7 = landingpad { i8*, i32 }
cleanup
%tmp9 = extractvalue { i8*, i32 } %tmp7, 0
%tmp10 = extractvalue { i8*, i32 } %tmp7, 1
%tmp5 = getelementptr inbounds %struct.barney.41, %struct.barney.41* %arg, i32 0, i32 1
call void @widget.43(%struct.zot.42* %tmp5) #13
resume { i8*, i32 } %tmp7
}
; Function Attrs: nonlazybind uwtable
define internal void @widget.42(%struct.hoge.39* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
invoke void @barney.507(%struct.hoge.39* noalias align 8 dereferenceable(24) %arg)
to label %bb1 unwind label %bb5
bb1: ; preds = %bb
%tmp2 = bitcast %struct.hoge.39* %arg to { i64*, i64 }*
call void @spam.45({ i64*, i64 }* %tmp2)
ret void
bb5: ; preds = %bb
%tmp6 = landingpad { i8*, i32 }
cleanup
%tmp8 = extractvalue { i8*, i32 } %tmp6, 0
%tmp9 = extractvalue { i8*, i32 } %tmp6, 1
%tmp4 = bitcast %struct.hoge.39* %arg to { i64*, i64 }*
call void @spam.45({ i64*, i64 }* %tmp4) #13
resume { i8*, i32 } %tmp6
}
; Function Attrs: nonlazybind uwtable
define internal void @widget.43(%struct.zot.42* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
invoke void @pluto.501(%struct.zot.42* noalias align 8 dereferenceable(24) %arg)
to label %bb1 unwind label %bb5
bb1: ; preds = %bb
%tmp2 = bitcast %struct.zot.42* %arg to { i64*, i64 }*
call void @pluto.46({ i64*, i64 }* %tmp2)
ret void
bb5: ; preds = %bb
%tmp6 = landingpad { i8*, i32 }
cleanup
%tmp8 = extractvalue { i8*, i32 } %tmp6, 0
%tmp9 = extractvalue { i8*, i32 } %tmp6, 1
%tmp4 = bitcast %struct.zot.42* %arg to { i64*, i64 }*
call void @pluto.46({ i64*, i64 }* %tmp4) #13
resume { i8*, i32 } %tmp6
}
; Function Attrs: nonlazybind uwtable
define internal void @spam.44({ [0 x i8]*, i64 }* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp2 = bitcast { [0 x i8]*, i64 }* %arg to { i8*, i64 }*
%tmp3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp2, i32 0, i32 0
%tmp4 = load i8*, i8** %tmp3, align 8, !nonnull !6
%tmp5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp2, i32 0, i32 1
%tmp6 = load i64, i64* %tmp5, align 8
call void @foo.437(i8* nonnull %tmp4, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @spam.45({ i64*, i64 }* %arg) unnamed_addr #1 {
bb:
call void @ham.546({ i64*, i64 }* noalias align 8 dereferenceable(16) %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @pluto.46({ i64*, i64 }* %arg) unnamed_addr #1 {
bb:
call void @widget.547({ i64*, i64 }* noalias align 8 dereferenceable(16) %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @wombat.47(i64** %arg) unnamed_addr #1 {
bb:
call void @foo.491(i64** noalias align 8 dereferenceable(8) %arg)
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @foo.48(i8* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @hoge.358(i8* %arg)
%tmp3 = call { [0 x i8]*, i64 } @ham.292({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x i8]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x i8]*, i64 } %tmp3, 1
ret { [0 x i8]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x { i64*, i64 }]*, i64 } @snork.49({ i64*, i64 }* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @quux.357({ i64*, i64 }* %arg)
%tmp3 = call { [0 x { i64*, i64 }]*, i64 } @baz.291({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x { i64*, i64 }]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x { i64*, i64 }]*, i64 } %tmp3, 1
ret { [0 x { i64*, i64 }]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @bar.50(i8* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @quux.228(i8* %arg)
%tmp3 = call { [0 x i8]*, i64 } @quux.316({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x i8]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x i8]*, i64 } %tmp3, 1
ret { [0 x i8]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.snork.46]*, i64 } @ham(%struct.snork.46* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @ham.233(%struct.snork.46* %arg)
%tmp3 = call { [0 x %struct.snork.46]*, i64 } @quux.330({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.snork.46]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.snork.46]*, i64 } %tmp3, 1
ret { [0 x %struct.snork.46]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i64*]*, i64 } @snork.51(i64** %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @wobble.211(i64** %arg)
%tmp3 = call { [0 x i64*]*, i64 } @wombat.314({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x i64*]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x i64*]*, i64 } %tmp3, 1
ret { [0 x i64*]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.snork.52]*, i64 } @ham.52(%struct.snork.52* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @bar.235(%struct.snork.52* %arg)
%tmp3 = call { [0 x %struct.snork.52]*, i64 } @ham.322({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.snork.52]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.snork.52]*, i64 } %tmp3, 1
ret { [0 x %struct.snork.52]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.blam.43]*, i64 } @snork.53(%struct.blam.43* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @bar.230(%struct.blam.43* %arg)
%tmp3 = call { [0 x %struct.blam.43]*, i64 } @eggs.307({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.blam.43]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.blam.43]*, i64 } %tmp3, 1
ret { [0 x %struct.blam.43]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.widget.55]*, i64 } @quux.54(%struct.widget.55* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @barney.204(%struct.widget.55* %arg)
%tmp3 = call { [0 x %struct.widget.55]*, i64 } @pluto.295({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.widget.55]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.widget.55]*, i64 } %tmp3, 1
ret { [0 x %struct.widget.55]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.zot.57]*, i64 } @widget.55(%struct.zot.57* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @hoge.214(%struct.zot.57* %arg)
%tmp3 = call { [0 x %struct.zot.57]*, i64 } @baz.310({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.zot.57]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.zot.57]*, i64 } %tmp3, 1
ret { [0 x %struct.zot.57]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.barney.58]*, i64 } @wombat.56(%struct.barney.58* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @spam.210(%struct.barney.58* %arg)
%tmp3 = call { [0 x %struct.barney.58]*, i64 } @widget.321({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.barney.58]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.barney.58]*, i64 } %tmp3, 1
ret { [0 x %struct.barney.58]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.wibble.61]*, i64 } @foo.57(%struct.wibble.61* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @spam.231(%struct.wibble.61* %arg)
%tmp3 = call { [0 x %struct.wibble.61]*, i64 } @foo.299({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.wibble.61]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.wibble.61]*, i64 } %tmp3, 1
ret { [0 x %struct.wibble.61]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.foo.62]*, i64 } @wobble.58(%struct.foo.62* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @barney.237(%struct.foo.62* %arg)
%tmp3 = call { [0 x %struct.foo.62]*, i64 } @zot.304({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.foo.62]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.foo.62]*, i64 } %tmp3, 1
ret { [0 x %struct.foo.62]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i64]*, i64 } @bar.59(i64* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @eggs.209(i64* %arg)
%tmp3 = call { [0 x i64]*, i64 } @ham.320({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x i64]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x i64]*, i64 } %tmp3, 1
ret { [0 x i64]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.snork.47]*, i64 } @bar.60(%struct.snork.47* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @eggs.219(%struct.snork.47* %arg)
%tmp3 = call { [0 x %struct.snork.47]*, i64 } @ham.301({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.snork.47]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.snork.47]*, i64 } %tmp3, 1
ret { [0 x %struct.snork.47]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.blam.65]*, i64 } @foo.61(%struct.blam.65* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @barney.207(%struct.blam.65* %arg)
%tmp3 = call { [0 x %struct.blam.65]*, i64 } @barney.305({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.blam.65]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.blam.65]*, i64 } %tmp3, 1
ret { [0 x %struct.blam.65]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.widget.66]*, i64 } @bar.62(%struct.widget.66* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @snork.206(%struct.widget.66* %arg)
%tmp3 = call { [0 x %struct.widget.66]*, i64 } @bar.327({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.widget.66]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.widget.66]*, i64 } %tmp3, 1
ret { [0 x %struct.widget.66]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.baz.67]*, i64 } @ham.63(%struct.baz.67* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @hoge.217(%struct.baz.67* %arg)
%tmp3 = call { [0 x %struct.baz.67]*, i64 } @foo.298({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.baz.67]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.baz.67]*, i64 } %tmp3, 1
ret { [0 x %struct.baz.67]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.pluto.68]*, i64 } @spam.64(%struct.pluto.68* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @spam.208(%struct.pluto.68* %arg)
%tmp3 = call { [0 x %struct.pluto.68]*, i64 } @zot.313({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.pluto.68]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.pluto.68]*, i64 } %tmp3, 1
ret { [0 x %struct.pluto.68]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x { i32, i32 }]*, i64 } @wibble.65({ i32, i32 }* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @zot.218({ i32, i32 }* %arg)
%tmp3 = call { [0 x { i32, i32 }]*, i64 } @ham.312({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x { i32, i32 }]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x { i32, i32 }]*, i64 } %tmp3, 1
ret { [0 x { i32, i32 }]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.eggs.70]*, i64 } @wibble.66(%struct.eggs.70* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @blam.215(%struct.eggs.70* %arg)
%tmp3 = call { [0 x %struct.eggs.70]*, i64 } @wombat.319({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.eggs.70]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.eggs.70]*, i64 } %tmp3, 1
ret { [0 x %struct.eggs.70]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.eggs]*, i64 } @eggs.67(%struct.eggs* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @baz.221(%struct.eggs* %arg)
%tmp3 = call { [0 x %struct.eggs]*, i64 } @barney.293({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.eggs]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.eggs]*, i64 } %tmp3, 1
ret { [0 x %struct.eggs]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.wibble.71]*, i64 } @bar.68(%struct.wibble.71* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @eggs.203(%struct.wibble.71* %arg)
%tmp3 = call { [0 x %struct.wibble.71]*, i64 } @baz.323({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.wibble.71]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.wibble.71]*, i64 } %tmp3, 1
ret { [0 x %struct.wibble.71]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i16]*, i64 } @ham.69(i16* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @ham.201(i16* %arg)
%tmp3 = call { [0 x i16]*, i64 } @blam.300({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x i16]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x i16]*, i64 } %tmp3, 1
ret { [0 x i16]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i64*]*, i64 } @widget.70(i64** %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @barney.232(i64** %arg)
%tmp3 = call { [0 x i64*]*, i64 } @pluto.303({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x i64*]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x i64*]*, i64 } %tmp3, 1
ret { [0 x i64*]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @pluto.71(i8* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @quux.220(i8* %arg)
%tmp3 = call { [0 x i8]*, i64 } @foo.309({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x i8]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x i8]*, i64 } %tmp3, 1
ret { [0 x i8]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i32]*, i64 } @widget.72(i32* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @pluto.212(i32* %arg)
%tmp3 = call { [0 x i32]*, i64 } @blam.324({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x i32]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x i32]*, i64 } %tmp3, 1
ret { [0 x i32]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.widget.73]*, i64 } @wibble.73(%struct.widget.73* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @pluto.216(%struct.widget.73* %arg)
%tmp3 = call { [0 x %struct.widget.73]*, i64 } @zot.325({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.widget.73]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.widget.73]*, i64 } %tmp3, 1
ret { [0 x %struct.widget.73]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i32]*, i64 } @baz.74(i32* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @quux.222(i32* %arg)
%tmp3 = call { [0 x i32]*, i64 } @zot.306({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x i32]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x i32]*, i64 } %tmp3, 1
ret { [0 x i32]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.blam.75]*, i64 } @foo.75(%struct.blam.75* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @ham.224(%struct.blam.75* %arg)
%tmp3 = call { [0 x %struct.blam.75]*, i64 } @wobble.294({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.blam.75]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.blam.75]*, i64 } %tmp3, 1
ret { [0 x %struct.blam.75]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.widget.76]*, i64 } @spam.76(%struct.widget.76* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @zot.205(%struct.widget.76* %arg)
%tmp3 = call { [0 x %struct.widget.76]*, i64 } @hoge.297({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.widget.76]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.widget.76]*, i64 } %tmp3, 1
ret { [0 x %struct.widget.76]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x { i64, { i32, i32 } }]*, i64 } @snork.77({ i64, { i32, i32 } }* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @eggs.227({ i64, { i32, i32 } }* %arg)
%tmp3 = call { [0 x { i64, { i32, i32 } }]*, i64 } @quux.317({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x { i64, { i32, i32 } }]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x { i64, { i32, i32 } }]*, i64 } %tmp3, 1
ret { [0 x { i64, { i32, i32 } }]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.ham.77]*, i64 } @spam.78(%struct.ham.77* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @wobble.225(%struct.ham.77* %arg)
%tmp3 = call { [0 x %struct.ham.77]*, i64 } @eggs.315({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.ham.77]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.ham.77]*, i64 } %tmp3, 1
ret { [0 x %struct.ham.77]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.zot.82]*, i64 } @quux.79(%struct.zot.82* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @zot.234(%struct.zot.82* %arg)
%tmp3 = call { [0 x %struct.zot.82]*, i64 } @bar.329({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.zot.82]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.zot.82]*, i64 } %tmp3, 1
ret { [0 x %struct.zot.82]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.wibble.83]*, i64 } @zot.80(%struct.wibble.83* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @foo.202(%struct.wibble.83* %arg)
%tmp3 = call { [0 x %struct.wibble.83]*, i64 } @spam.302({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.wibble.83]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.wibble.83]*, i64 } %tmp3, 1
ret { [0 x %struct.wibble.83]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x { [0 x i32]*, i64 }]*, i64 } @wibble.81({ [0 x i32]*, i64 }* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @ham.229({ [0 x i32]*, i64 }* %arg)
%tmp3 = call { [0 x { [0 x i32]*, i64 }]*, i64 } @hoge.296({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x { [0 x i32]*, i64 }]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x { [0 x i32]*, i64 }]*, i64 } %tmp3, 1
ret { [0 x { [0 x i32]*, i64 }]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.widget.84]*, i64 } @wobble.82(%struct.widget.84* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @pluto.213(%struct.widget.84* %arg)
%tmp3 = call { [0 x %struct.widget.84]*, i64 } @ham.318({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.widget.84]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.widget.84]*, i64 } %tmp3, 1
ret { [0 x %struct.widget.84]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.ham.85]*, i64 } @zot.83(%struct.ham.85* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @barney.226(%struct.ham.85* %arg)
%tmp3 = call { [0 x %struct.ham.85]*, i64 } @wobble.311({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.ham.85]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.ham.85]*, i64 } %tmp3, 1
ret { [0 x %struct.ham.85]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i32]*, i64 } @eggs.84(i32* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @eggs.236(i32* %arg)
%tmp3 = call { [0 x i32]*, i64 } @pluto.308({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x i32]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x i32]*, i64 } %tmp3, 1
ret { [0 x i32]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.foo.86]*, i64 } @widget.85(%struct.foo.86* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @blam.238(%struct.foo.86* %arg)
%tmp3 = call { [0 x %struct.foo.86]*, i64 } @eggs.328({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.foo.86]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.foo.86]*, i64 } %tmp3, 1
ret { [0 x %struct.foo.86]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.wombat.88]*, i64 } @spam.86(%struct.wombat.88* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call {}* @baz.223(%struct.wombat.88* %arg)
%tmp3 = call { [0 x %struct.wombat.88]*, i64 } @wibble.326({}* %tmp, i64 %arg1)
%tmp4 = extractvalue { [0 x %struct.wombat.88]*, i64 } %tmp3, 0
%tmp5 = extractvalue { [0 x %struct.wombat.88]*, i64 } %tmp3, 1
ret { [0 x %struct.wombat.88]*, i64 } %tmp3
}
; Function Attrs: nonlazybind uwtable
define internal void @spam.87(%struct.ham.90* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.ham.90* %arg to %struct.ham.91*
call void @bar.92(%struct.ham.91* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @spam.88(%struct.baz.44* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.baz.44* %arg to %struct.bar.30*
call void @wobble.90(%struct.bar.30* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @snork.89(i64** %arg) unnamed_addr #1 {
bb:
call void @eggs.192(i64** %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @wobble.90(%struct.bar.30* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
invoke void @pluto.504(%struct.bar.30* noalias align 8 dereferenceable(24) %arg)
to label %bb1 unwind label %bb5
bb1: ; preds = %bb
%tmp2 = bitcast %struct.bar.30* %arg to { i8*, i64 }*
call void @barney.104({ i8*, i64 }* %tmp2)
ret void
bb5: ; preds = %bb
%tmp6 = landingpad { i8*, i32 }
cleanup
%tmp8 = extractvalue { i8*, i32 } %tmp6, 0
%tmp9 = extractvalue { i8*, i32 } %tmp6, 1
%tmp4 = bitcast %struct.bar.30* %arg to { i8*, i64 }*
call void @barney.104({ i8*, i64 }* %tmp4) #13
resume { i8*, i32 } %tmp6
}
; Function Attrs: nonlazybind uwtable
define internal void @hoge.91(%struct.foo.93* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
invoke void @widget.497(%struct.foo.93* noalias align 8 dereferenceable(24) %arg)
to label %bb1 unwind label %bb5
bb1: ; preds = %bb
%tmp2 = bitcast %struct.foo.93* %arg to { i16*, i64 }*
call void @foo.105({ i16*, i64 }* %tmp2)
ret void
bb5: ; preds = %bb
%tmp6 = landingpad { i8*, i32 }
cleanup
%tmp8 = extractvalue { i8*, i32 } %tmp6, 0
%tmp9 = extractvalue { i8*, i32 } %tmp6, 1
%tmp4 = bitcast %struct.foo.93* %arg to { i16*, i64 }*
call void @foo.105({ i16*, i64 }* %tmp4) #13
resume { i8*, i32 } %tmp6
}
; Function Attrs: nonlazybind uwtable
define internal void @bar.92(%struct.ham.91* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.ham.91* %arg to %struct.pluto.92*
call void @zot.94(%struct.pluto.92* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @pluto.93(%struct.snork.94* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.snork.94* %arg to i64*
%tmp1 = load i64, i64* %tmp, align 8, !range !4
%tmp2 = icmp eq i64 %tmp1, 0
br i1 %tmp2, label %bb3, label %bb6
bb3: ; preds = %bb
%tmp4 = bitcast %struct.snork.94* %arg to %struct.wibble.95*
%tmp5 = getelementptr inbounds %struct.wibble.95, %struct.wibble.95* %tmp4, i32 0, i32 1
call void @wobble.90(%struct.bar.30* %tmp5)
br label %bb9
bb6: ; preds = %bb
%tmp7 = bitcast %struct.snork.94* %arg to %struct.foo.96*
%tmp8 = getelementptr inbounds %struct.foo.96, %struct.foo.96* %tmp7, i32 0, i32 1
call void @hoge.91(%struct.foo.93* %tmp8)
br label %bb9
bb9: ; preds = %bb6, %bb3
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @zot.94(%struct.pluto.92* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.pluto.92* %arg to %struct.bar.30*
call void @wobble.90(%struct.bar.30* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @baz.95(%struct.blam.97* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.blam.97* %arg to i64*
%tmp1 = load i64, i64* %tmp, align 8, !range !7
%switch = icmp ult i64 %tmp1, 5
br i1 %switch, label %bb5, label %bb2
bb2: ; preds = %bb
%tmp3 = bitcast %struct.blam.97* %arg to %struct.eggs.98*
%tmp4 = getelementptr inbounds %struct.eggs.98, %struct.eggs.98* %tmp3, i32 0, i32 1
call void @snork.89(i64** %tmp4)
br label %bb5
bb5: ; preds = %bb, %bb2
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @pluto.96(%struct.eggs.99* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
invoke void @wibble.527(%struct.eggs.99* noalias align 8 dereferenceable(24) %arg)
to label %bb1 unwind label %bb5
bb1: ; preds = %bb
%tmp2 = bitcast %struct.eggs.99* %arg to { i64*, i64 }*
call void @hoge.109({ i64*, i64 }* %tmp2)
ret void
bb5: ; preds = %bb
%tmp6 = landingpad { i8*, i32 }
cleanup
%tmp8 = extractvalue { i8*, i32 } %tmp6, 0
%tmp9 = extractvalue { i8*, i32 } %tmp6, 1
%tmp4 = bitcast %struct.eggs.99* %arg to { i64*, i64 }*
call void @hoge.109({ i64*, i64 }* %tmp4) #13
resume { i8*, i32 } %tmp6
}
; Function Attrs: nonlazybind uwtable
define internal void @spam.97(%struct.eggs.48* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.eggs.48* %arg to i64*
%tmp1 = load i64, i64* %tmp, align 8, !range !8
switch i64 %tmp1, label %bb2 [
i64 0, label %bb5
i64 1, label %bb8
]
bb2: ; preds = %bb
%tmp3 = bitcast %struct.eggs.48* %arg to %struct.wombat.100*
%tmp4 = getelementptr inbounds %struct.wombat.100, %struct.wombat.100* %tmp3, i32 0, i32 1
call void @wombat.47(i64** %tmp4)
br label %bb11
bb5: ; preds = %bb
%tmp6 = bitcast %struct.eggs.48* %arg to %struct.wobble.101*
%tmp7 = getelementptr inbounds %struct.wobble.101, %struct.wobble.101* %tmp6, i32 0, i32 1
call void @baz.95(%struct.blam.97* %tmp7)
br label %bb11
bb8: ; preds = %bb
%tmp9 = bitcast %struct.eggs.48* %arg to %struct.widget.102*
%tmp10 = getelementptr inbounds %struct.widget.102, %struct.widget.102* %tmp9, i32 0, i32 1
call void @widget.131(i64** %tmp10)
br label %bb11
bb11: ; preds = %bb8, %bb5, %bb2
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @blam.98(%struct.eggs.70* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp1 = bitcast %struct.eggs.70* %arg to { [0 x i8]*, i64 }*
invoke void @snork.280({ [0 x i8]*, i64 }* %tmp1)
to label %bb2 unwind label %bb6
bb2: ; preds = %bb
%tmp3 = getelementptr inbounds %struct.eggs.70, %struct.eggs.70* %arg, i32 0, i32 2
call void @snork.280({ [0 x i8]*, i64 }* %tmp3)
ret void
bb6: ; preds = %bb
%tmp7 = landingpad { i8*, i32 }
cleanup
%tmp9 = extractvalue { i8*, i32 } %tmp7, 0
%tmp10 = extractvalue { i8*, i32 } %tmp7, 1
%tmp5 = getelementptr inbounds %struct.eggs.70, %struct.eggs.70* %arg, i32 0, i32 2
call void @snork.280({ [0 x i8]*, i64 }* %tmp5) #13
resume { i8*, i32 } %tmp7
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i8* @blam.99() unnamed_addr #2 {
bb:
ret i8* null
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i8*, i64 } @foo.100({ i8*, i64 }* %arg) unnamed_addr #0 {
bb:
%tmp = alloca { i8*, i64 }, align 8
%tmp1 = bitcast { i8*, i64 }* %tmp to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %tmp1)
%tmp2 = call { i8*, i64 } @spam.21()
%tmp2.fca.0.extract = extractvalue { i8*, i64 } %tmp2, 0
%tmp2.fca.0.gep = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp, i32 0, i32 0
store i8* %tmp2.fca.0.extract, i8** %tmp2.fca.0.gep, align 8
%tmp2.fca.1.extract = extractvalue { i8*, i64 } %tmp2, 1
%tmp2.fca.1.gep = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp, i32 0, i32 1
store i64 %tmp2.fca.1.extract, i64* %tmp2.fca.1.gep, align 8
%tmp4 = call { i8*, i64 }* @spam.19({ i8*, i64 }* noalias align 8 dereferenceable(16) %tmp)
%tmp6 = bitcast { i8*, i64 }* %tmp4 to i8*
%tmp7 = bitcast { i8*, i64 }* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %tmp6, i8* align 8 %tmp7, i64 16, i1 false)
%tmp9 = load i8*, i8** %tmp2.fca.0.gep, align 8
%tmp11 = load i64, i64* %tmp2.fca.1.gep, align 8
%tmp12 = call { i8*, i64 } @zot(i8* %tmp9, i64 %tmp11, %struct.zot.29* noalias readonly align 8 dereferenceable(24) bitcast (<{ i8*, [16 x i8] }>* @global.4 to %struct.zot.29*))
%tmp13 = extractvalue { i8*, i64 } %tmp12, 0
%tmp14 = extractvalue { i8*, i64 } %tmp12, 1
call void @llvm.lifetime.end.p0i8(i64 16, i8* %tmp1)
ret { i8*, i64 } %tmp12
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @wibble.101(%struct.quux.31* %arg) unnamed_addr #0 {
bb:
%tmp = alloca %struct.widget.32, align 1
call void @quux.22()
%tmp2 = call %struct.quux.31* @barney(%struct.widget.32* noalias nonnull align 1 %tmp)
%tmp4 = bitcast %struct.quux.31* %tmp2 to i8*
%tmp5 = bitcast %struct.quux.31* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %tmp4, i8* align 1 %tmp5, i64 0, i1 false)
call void @snork.20(%struct.zot.29* noalias readonly align 8 dereferenceable(24) bitcast (<{ i8*, [16 x i8] }>* @global.4 to %struct.zot.29*))
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @snork.102(%struct.ham.77* %arg) unnamed_addr #1 {
bb:
%tmp = getelementptr inbounds %struct.ham.77, %struct.ham.77* %arg, i32 0, i32 1
call void @eggs.195(%struct.barney.81* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @bar.103(%struct.snork.52* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp1 = bitcast %struct.snork.52* %arg to %struct.snork.53*
invoke void @foo.193(%struct.snork.53* %tmp1)
to label %bb2 unwind label %bb6
bb2: ; preds = %bb
%tmp3 = getelementptr inbounds %struct.snork.52, %struct.snork.52* %arg, i32 0, i32 1
call void @wobble.196(%struct.spam.54* %tmp3)
ret void
bb6: ; preds = %bb
%tmp7 = landingpad { i8*, i32 }
cleanup
%tmp9 = extractvalue { i8*, i32 } %tmp7, 0
%tmp10 = extractvalue { i8*, i32 } %tmp7, 1
%tmp5 = getelementptr inbounds %struct.snork.52, %struct.snork.52* %arg, i32 0, i32 1
call void @wobble.196(%struct.spam.54* %tmp5) #13
resume { i8*, i32 } %tmp7
}
; Function Attrs: nonlazybind uwtable
define internal void @barney.104({ i8*, i64 }* %arg) unnamed_addr #1 {
bb:
call void @quux.548({ i8*, i64 }* noalias align 8 dereferenceable(16) %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @foo.105({ i16*, i64 }* %arg) unnamed_addr #1 {
bb:
call void @baz.549({ i16*, i64 }* noalias align 8 dereferenceable(16) %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @widget.106([0 x i64*]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x i64*]* %arg to i64**
%tmp8 = getelementptr inbounds i64*, i64** %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi i64** [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq i64** %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds i64*, i64** %tmp2.0, i64 1
invoke void @snork.89(i64** %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi i64** [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq i64** %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds i64*, i64** %tmp2.1, i64 1
call void @snork.89(i64** %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @pluto.107(%struct.wibble.71* %arg) unnamed_addr #1 {
bb:
%tmp = getelementptr inbounds %struct.wibble.71, %struct.wibble.71* %arg, i32 0, i32 1
call void @quux.40(%struct.ham.49* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @spam.108(%struct.bar.103* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.bar.103* %arg to i64*
%tmp1 = load i64, i64* %tmp, align 8, !range !4
%tmp2 = icmp eq i64 %tmp1, 0
br i1 %tmp2, label %bb3, label %bb6
bb3: ; preds = %bb
%tmp4 = bitcast %struct.bar.103* %arg to %struct.quux.104*
%tmp5 = getelementptr inbounds %struct.quux.104, %struct.quux.104* %tmp4, i32 0, i32 1
call void @spam.87(%struct.ham.90* %tmp5)
br label %bb9
bb6: ; preds = %bb
%tmp7 = bitcast %struct.bar.103* %arg to %struct.quux.105*
%tmp8 = getelementptr inbounds %struct.quux.105, %struct.quux.105* %tmp7, i32 0, i32 1
call void @spam.87(%struct.ham.90* %tmp8)
br label %bb9
bb9: ; preds = %bb6, %bb3
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @hoge.109({ i64*, i64 }* %arg) unnamed_addr #1 {
bb:
call void @baz.550({ i64*, i64 }* noalias align 8 dereferenceable(16) %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @wombat.110(%struct.wombat.88* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp1 = bitcast %struct.wombat.88* %arg to %struct.snork.53*
invoke void @foo.193(%struct.snork.53* %tmp1)
to label %bb2 unwind label %bb6
bb2: ; preds = %bb
%tmp3 = getelementptr inbounds %struct.wombat.88, %struct.wombat.88* %arg, i32 0, i32 2
call void @zot.127(%struct.baz.89* %tmp3)
ret void
bb6: ; preds = %bb
%tmp7 = landingpad { i8*, i32 }
cleanup
%tmp9 = extractvalue { i8*, i32 } %tmp7, 0
%tmp10 = extractvalue { i8*, i32 } %tmp7, 1
%tmp5 = getelementptr inbounds %struct.wombat.88, %struct.wombat.88* %arg, i32 0, i32 2
call void @zot.127(%struct.baz.89* %tmp5) #13
resume { i8*, i32 } %tmp7
}
; Function Attrs: nonlazybind uwtable
define internal void @ham.111(%struct.wombat.106* %arg) unnamed_addr #1 {
bb:
%tmp = getelementptr inbounds %struct.wombat.106, %struct.wombat.106* %arg, i32 0, i32 1
call void @blam.98(%struct.eggs.70* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @snork.112(%struct.barney.58* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp1 = bitcast %struct.barney.58* %arg to %struct.eggs.59*
invoke void @snork.186(%struct.eggs.59* %tmp1)
to label %bb2 unwind label %bb6
bb2: ; preds = %bb
%tmp3 = getelementptr inbounds %struct.barney.58, %struct.barney.58* %arg, i32 0, i32 1
invoke void @snork.186(%struct.eggs.59* %tmp3)
to label %bb15 unwind label %bb17
bb6: ; preds = %bb
%tmp7 = landingpad { i8*, i32 }
cleanup
%tmp9 = extractvalue { i8*, i32 } %tmp7, 0
%tmp10 = extractvalue { i8*, i32 } %tmp7, 1
%tmp5 = getelementptr inbounds %struct.barney.58, %struct.barney.58* %arg, i32 0, i32 1
call void @snork.186(%struct.eggs.59* %tmp5) #13
br label %bb13
bb13: ; preds = %bb17, %bb6
%tmp.sroa.6.0 = phi i32 [ %tmp21, %bb17 ], [ %tmp10, %bb6 ]
%tmp.sroa.0.0 = phi i8* [ %tmp20, %bb17 ], [ %tmp9, %bb6 ]
%tmp14 = getelementptr inbounds %struct.barney.58, %struct.barney.58* %arg, i32 0, i32 2
call void @hoge.285(%struct.zot.60* %tmp14) #13
%tmp30 = insertvalue { i8*, i32 } undef, i8* %tmp.sroa.0.0, 0
%tmp31 = insertvalue { i8*, i32 } %tmp30, i32 %tmp.sroa.6.0, 1
resume { i8*, i32 } %tmp31
bb15: ; preds = %bb2
%tmp16 = getelementptr inbounds %struct.barney.58, %struct.barney.58* %arg, i32 0, i32 2
call void @hoge.285(%struct.zot.60* %tmp16)
ret void
bb17: ; preds = %bb2
%tmp18 = landingpad { i8*, i32 }
cleanup
%tmp20 = extractvalue { i8*, i32 } %tmp18, 0
%tmp21 = extractvalue { i8*, i32 } %tmp18, 1
br label %bb13
}
; Function Attrs: nonlazybind uwtable
define internal void @ham.113(%struct.baz.67* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp1 = bitcast %struct.baz.67* %arg to i32*
%tmp2 = load i32, i32* %tmp1, align 8, !range !9
%tmp3 = zext i32 %tmp2 to i64
switch i64 %tmp3, label %bb4 [
i64 0, label %bb5
i64 1, label %bb8
i64 2, label %bb11
i64 3, label %bb14
]
bb4: ; preds = %bb38, %bb17, %bb11, %bb8, %bb
ret void
bb5: ; preds = %bb
%tmp6 = bitcast %struct.baz.67* %arg to %struct.quux.107*
%tmp7 = getelementptr inbounds %struct.quux.107, %struct.quux.107* %tmp6, i32 0, i32 3
invoke void @spam.88(%struct.baz.44* %tmp7)
to label %bb38 unwind label %bb44
bb8: ; preds = %bb
%tmp9 = bitcast %struct.baz.67* %arg to %struct.bar.108*
%tmp10 = getelementptr inbounds %struct.bar.108, %struct.bar.108* %tmp9, i32 0, i32 2
call void @spam.88(%struct.baz.44* %tmp10)
br label %bb4
bb11: ; preds = %bb
%tmp12 = bitcast %struct.baz.67* %arg to %struct.pluto.109*
%tmp13 = getelementptr inbounds %struct.pluto.109, %struct.pluto.109* %tmp12, i32 0, i32 2
call void @foo.36(%struct.wibble.40* %tmp13)
br label %bb4
bb14: ; preds = %bb
%tmp15 = bitcast %struct.baz.67* %arg to %struct.ham.110*
%tmp16 = getelementptr inbounds %struct.ham.110, %struct.ham.110* %tmp15, i32 0, i32 2
invoke void @pluto.96(%struct.eggs.99* %tmp16)
to label %bb17 unwind label %bb23
bb17: ; preds = %bb14
%tmp19 = getelementptr inbounds %struct.ham.110, %struct.ham.110* %tmp15, i32 0, i32 3
call void @ham.283(%struct.wombat.111* %tmp19)
br label %bb4
bb23: ; preds = %bb14
%tmp24 = landingpad { i8*, i32 }
cleanup
%tmp26 = extractvalue { i8*, i32 } %tmp24, 0
%tmp27 = extractvalue { i8*, i32 } %tmp24, 1
%tmp22 = getelementptr inbounds %struct.ham.110, %struct.ham.110* %tmp15, i32 0, i32 3
call void @ham.283(%struct.wombat.111* %tmp22) #13
br label %bb30
bb30: ; preds = %bb44, %bb23
%tmp.sroa.6.0 = phi i32 [ %tmp27, %bb23 ], [ %tmp48, %bb44 ]
%tmp.sroa.0.0 = phi i8* [ %tmp26, %bb23 ], [ %tmp47, %bb44 ]
%tmp36 = insertvalue { i8*, i32 } undef, i8* %tmp.sroa.0.0, 0
%tmp37 = insertvalue { i8*, i32 } %tmp36, i32 %tmp.sroa.6.0, 1
resume { i8*, i32 } %tmp37
bb38: ; preds = %bb5
%tmp40 = getelementptr inbounds %struct.quux.107, %struct.quux.107* %tmp6, i32 0, i32 4
call void @snork.186(%struct.eggs.59* %tmp40)
br label %bb4
bb44: ; preds = %bb5
%tmp45 = landingpad { i8*, i32 }
cleanup
%tmp47 = extractvalue { i8*, i32 } %tmp45, 0
%tmp48 = extractvalue { i8*, i32 } %tmp45, 1
%tmp43 = getelementptr inbounds %struct.quux.107, %struct.quux.107* %tmp6, i32 0, i32 4
call void @snork.186(%struct.eggs.59* %tmp43) #13
br label %bb30
}
; Function Attrs: nonlazybind uwtable
define internal void @widget.114(%struct.snork.74* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.snork.74* %arg to { [0 x i32]*, i64 }*
call void @eggs.116({ [0 x i32]*, i64 }* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @wombat.115([0 x %struct.eggs.70]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.eggs.70]* %arg to %struct.eggs.70*
%tmp8 = getelementptr inbounds %struct.eggs.70, %struct.eggs.70* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.eggs.70* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.eggs.70* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.eggs.70, %struct.eggs.70* %tmp2.0, i64 1
invoke void @blam.98(%struct.eggs.70* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.eggs.70* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.eggs.70* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.eggs.70, %struct.eggs.70* %tmp2.1, i64 1
call void @blam.98(%struct.eggs.70* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @eggs.116({ [0 x i32]*, i64 }* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp2 = bitcast { [0 x i32]*, i64 }* %arg to { i32*, i64 }*
%tmp3 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %tmp2, i32 0, i32 0
%tmp4 = load i32*, i32** %tmp3, align 8, !nonnull !6
%tmp5 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %tmp2, i32 0, i32 1
%tmp6 = load i64, i64* %tmp5, align 8
call void @quux.436(i32* nonnull %tmp4, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @quux.117(%struct.zot.82* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp1 = bitcast %struct.zot.82* %arg to %struct.eggs.59*
invoke void @snork.186(%struct.eggs.59* %tmp1)
to label %bb2 unwind label %bb6
bb2: ; preds = %bb
%tmp3 = getelementptr inbounds %struct.zot.82, %struct.zot.82* %arg, i32 0, i32 1
call void @snork.186(%struct.eggs.59* %tmp3)
ret void
bb6: ; preds = %bb
%tmp7 = landingpad { i8*, i32 }
cleanup
%tmp9 = extractvalue { i8*, i32 } %tmp7, 0
%tmp10 = extractvalue { i8*, i32 } %tmp7, 1
%tmp5 = getelementptr inbounds %struct.zot.82, %struct.zot.82* %arg, i32 0, i32 1
call void @snork.186(%struct.eggs.59* %tmp5) #13
resume { i8*, i32 } %tmp7
}
; Function Attrs: nonlazybind uwtable
define internal void @wibble.118([0 x %struct.ham.77]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.ham.77]* %arg to %struct.ham.77*
%tmp8 = getelementptr inbounds %struct.ham.77, %struct.ham.77* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.ham.77* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.ham.77* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.ham.77, %struct.ham.77* %tmp2.0, i64 1
invoke void @snork.102(%struct.ham.77* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.ham.77* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.ham.77* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.ham.77, %struct.ham.77* %tmp2.1, i64 1
call void @snork.102(%struct.ham.77* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @wibble.119([0 x %struct.snork.52]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.snork.52]* %arg to %struct.snork.52*
%tmp8 = getelementptr inbounds %struct.snork.52, %struct.snork.52* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.snork.52* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.snork.52* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.snork.52, %struct.snork.52* %tmp2.0, i64 1
invoke void @bar.103(%struct.snork.52* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.snork.52* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.snork.52* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.snork.52, %struct.snork.52* %tmp2.1, i64 1
call void @bar.103(%struct.snork.52* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @hoge.120(%struct.widget.84* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.widget.84* %arg to %struct.wombat.33*
call void @blam.35(%struct.wombat.33* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @hoge.121(%struct.blam.75* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.blam.75* %arg to { [0 x i32]*, i64 }*
call void @spam.282({ [0 x i32]*, i64 }* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @wobble.122(%struct.widget.55* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.widget.55* %arg to %struct.snork.56*
call void @blam.347(%struct.snork.56* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @snork.123(%struct.zot.57* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.zot.57* %arg to %struct.wombat.33*
call void @blam.35(%struct.wombat.33* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @wombat.124([0 x %struct.wibble.71]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.wibble.71]* %arg to %struct.wibble.71*
%tmp8 = getelementptr inbounds %struct.wibble.71, %struct.wibble.71* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.wibble.71* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.wibble.71* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.wibble.71, %struct.wibble.71* %tmp2.0, i64 1
invoke void @pluto.107(%struct.wibble.71* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.wibble.71* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.wibble.71* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.wibble.71, %struct.wibble.71* %tmp2.1, i64 1
call void @pluto.107(%struct.wibble.71* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @zot.125(%struct.blam.35* %arg) unnamed_addr #1 {
bb:
call void @wobble.551(%struct.blam.35* noalias align 8 dereferenceable(32) %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @quux.126([0 x %struct.wombat.88]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.wombat.88]* %arg to %struct.wombat.88*
%tmp8 = getelementptr inbounds %struct.wombat.88, %struct.wombat.88* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.wombat.88* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.wombat.88* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.wombat.88, %struct.wombat.88* %tmp2.0, i64 1
invoke void @wombat.110(%struct.wombat.88* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.wombat.88* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.wombat.88* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.wombat.88, %struct.wombat.88* %tmp2.1, i64 1
call void @wombat.110(%struct.wombat.88* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @zot.127(%struct.baz.89* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.baz.89* %arg to {}**
%tmp1 = load {}*, {}** %tmp, align 8
%tmp2 = icmp eq {}* %tmp1, null
%tmp3 = select i1 %tmp2, i64 0, i64 1
br i1 %tmp2, label %bb5, label %bb6
bb5: ; preds = %bb6, %bb
ret void
bb6: ; preds = %bb
%tmp7 = bitcast %struct.baz.89* %arg to %struct.eggs.112*
%tmp8 = bitcast %struct.eggs.112* %tmp7 to %struct.ham.90*
call void @spam.87(%struct.ham.90* %tmp8)
br label %bb5
}
; Function Attrs: nonlazybind uwtable
define internal void @baz.128([0 x %struct.barney.58]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.barney.58]* %arg to %struct.barney.58*
%tmp8 = getelementptr inbounds %struct.barney.58, %struct.barney.58* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.barney.58* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.barney.58* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.barney.58, %struct.barney.58* %tmp2.0, i64 1
invoke void @snork.112(%struct.barney.58* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.barney.58* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.barney.58* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.barney.58, %struct.barney.58* %tmp2.1, i64 1
call void @snork.112(%struct.barney.58* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @ham.129([0 x %struct.baz.67]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.baz.67]* %arg to %struct.baz.67*
%tmp8 = getelementptr inbounds %struct.baz.67, %struct.baz.67* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.baz.67* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.baz.67* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.baz.67, %struct.baz.67* %tmp2.0, i64 1
invoke void @ham.113(%struct.baz.67* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.baz.67* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.baz.67* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.baz.67, %struct.baz.67* %tmp2.1, i64 1
call void @ham.113(%struct.baz.67* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @wibble.130(%struct.spam.28* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
invoke void @snork.516(%struct.spam.28* noalias align 8 dereferenceable(24) %arg)
to label %bb1 unwind label %bb5
bb1: ; preds = %bb
%tmp2 = bitcast %struct.spam.28* %arg to { i8*, i64 }*
call void @blam.194({ i8*, i64 }* %tmp2)
ret void
bb5: ; preds = %bb
%tmp6 = landingpad { i8*, i32 }
cleanup
%tmp8 = extractvalue { i8*, i32 } %tmp6, 0
%tmp9 = extractvalue { i8*, i32 } %tmp6, 1
%tmp4 = bitcast %struct.spam.28* %arg to { i8*, i64 }*
call void @blam.194({ i8*, i64 }* %tmp4) #13
resume { i8*, i32 } %tmp6
}
; Function Attrs: nonlazybind uwtable
define internal void @widget.131(i64** %arg) unnamed_addr #1 {
bb:
call void @hoge.489(i64** noalias align 8 dereferenceable(8) %arg)
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i8*, i64 } @wombat.132([0 x i8]* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast [0 x i8]* %arg to i8*
%1 = icmp ne i8* %0, null
call void @llvm.assume(i1 %1)
%tmp9 = insertvalue { i8*, i64 } undef, i8* %0, 0
%tmp10 = insertvalue { i8*, i64 } %tmp9, i64 %arg1, 1
ret { i8*, i64 } %tmp10
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal nonnull i8* @spam.133(i8* %arg) unnamed_addr #0 {
bb:
%0 = icmp ne i8* %arg, null
call void @llvm.assume(i1 %0)
ret i8* %arg
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal nonnull i8* @spam.134(i8* nonnull %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call { [0 x i8]*, i64 } @widget.172(i8* nonnull %arg, i64 %arg1)
%tmp2 = extractvalue { [0 x i8]*, i64 } %tmp, 0
%tmp5 = bitcast [0 x i8]* %tmp2 to i8*
%tmp6 = call nonnull i8* @spam.133(i8* %tmp5)
ret i8* %tmp6
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal nonnull i8* @widget.135(i8* nonnull %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call { [0 x i8]*, i64 } @bar.180(i8* nonnull %arg, i64 %arg1)
%tmp2 = extractvalue { [0 x i8]*, i64 } %tmp, 0
%tmp5 = bitcast [0 x i8]* %tmp2 to i8*
%tmp6 = call nonnull i8* @spam.133(i8* %tmp5)
ret i8* %tmp6
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal nonnull i8* @widget.136(i32* nonnull %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call { [0 x i32]*, i64 } @snork.156(i32* nonnull %arg, i64 %arg1)
%tmp2 = extractvalue { [0 x i32]*, i64 } %tmp, 0
%tmp5 = bitcast [0 x i32]* %tmp2 to i8*
%tmp6 = call nonnull i8* @spam.133(i8* %tmp5)
ret i8* %tmp6
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal nonnull i8* @pluto.137(i32* nonnull %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call { [0 x i32]*, i64 } @spam.141(i32* nonnull %arg, i64 %arg1)
%tmp2 = extractvalue { [0 x i32]*, i64 } %tmp, 0
%tmp5 = bitcast [0 x i32]* %tmp2 to i8*
%tmp6 = call nonnull i8* @spam.133(i8* %tmp5)
ret i8* %tmp6
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.wombat.88* @eggs.138(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.wombat.88*
ret %struct.wombat.88* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.wibble.71* @quux.139(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.wibble.71*
ret %struct.wibble.71* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.wibble.61* @foo.140(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.wibble.61*
ret %struct.wibble.61* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i32]*, i64 } @spam.141(i32* nonnull %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = bitcast i32* %arg to [0 x i32]*
%tmp2 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %tmp, 0
%tmp3 = insertvalue { [0 x i32]*, i64 } %tmp2, i64 %arg1, 1
ret { [0 x i32]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.ham.85* @baz.142(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.ham.85*
ret %struct.ham.85* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.pluto.68* @baz.143(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.pluto.68*
ret %struct.pluto.68* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64* @wombat.144(i64* nonnull %arg) unnamed_addr #0 {
bb:
ret i64* %arg
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.wibble.83* @blam.145(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.wibble.83*
ret %struct.wibble.83* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.76* @ham.146(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.widget.76*
ret %struct.widget.76* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i16* @foo.147(i16* nonnull %arg) unnamed_addr #0 {
bb:
ret i16* %arg
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.eggs* @snork.148(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.eggs*
ret %struct.eggs* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32* @barney.149(i32* nonnull %arg) unnamed_addr #0 {
bb:
ret i32* %arg
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.eggs.70* @hoge.150(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.eggs.70*
ret %struct.eggs.70* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.baz.67* @ham.151(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.baz.67*
ret %struct.baz.67* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.zot.82* @baz.152(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.zot.82*
ret %struct.zot.82* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.73* @wibble.153(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.widget.73*
ret %struct.widget.73* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.ham.77* @baz.154(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.ham.77*
ret %struct.ham.77* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.barney.58* @widget.155(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.barney.58*
ret %struct.barney.58* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i32]*, i64 } @snork.156(i32* nonnull %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = bitcast i32* %arg to [0 x i32]*
%tmp2 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %tmp, 0
%tmp3 = insertvalue { [0 x i32]*, i64 } %tmp2, i64 %arg1, 1
ret { [0 x i32]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i32, i32 }* @ham.157(i32* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i32* %arg to { i32, i32 }*
ret { i32, i32 }* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64** @bar.158(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to i64**
ret i64** %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.snork.52* @foo.159(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.snork.52*
ret %struct.snork.52* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.blam.75* @widget.160(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.blam.75*
ret %struct.blam.75* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.foo.62* @foo.161(i32* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i32* %arg to %struct.foo.62*
ret %struct.foo.62* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.55* @wombat.162(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.widget.55*
ret %struct.widget.55* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.snork.47* @zot.163(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.snork.47*
ret %struct.snork.47* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32* @snork.164(i32* nonnull %arg) unnamed_addr #0 {
bb:
ret i32* %arg
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i8* @snork.165(i8* nonnull %arg) unnamed_addr #0 {
bb:
ret i8* %arg
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i64*, i64 }* @wombat.166(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to { i64*, i64 }*
ret { i64*, i64 }* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.84* @blam.167(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.widget.84*
ret %struct.widget.84* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64** @spam.168(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to i64**
ret i64** %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.foo.86* @snork.169(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.foo.86*
ret %struct.foo.86* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.66* @quux.170(i32* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i32* %arg to %struct.widget.66*
ret %struct.widget.66* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.snork.46* @spam.171(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.snork.46*
ret %struct.snork.46* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @widget.172(i8* nonnull %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = bitcast i8* %arg to [0 x i8]*
%tmp2 = insertvalue { [0 x i8]*, i64 } undef, [0 x i8]* %tmp, 0
%tmp3 = insertvalue { [0 x i8]*, i64 } %tmp2, i64 %arg1, 1
ret { [0 x i8]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32* @quux.173(i32* nonnull %arg) unnamed_addr #0 {
bb:
ret i32* %arg
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.blam.43* @wibble.174(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.blam.43*
ret %struct.blam.43* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.zot.57* @foo.175(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.zot.57*
ret %struct.zot.57* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.blam.65* @snork.176(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.blam.65*
ret %struct.blam.65* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i64, { i32, i32 } }* @eggs.177(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to { i64, { i32, i32 } }*
ret { i64, { i32, i32 } }* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i8* @zot.178(i8* nonnull %arg) unnamed_addr #0 {
bb:
ret i8* %arg
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i32]*, i64 }* @ham.179(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to { [0 x i32]*, i64 }*
ret { [0 x i32]*, i64 }* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @bar.180(i8* nonnull %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = bitcast i8* %arg to [0 x i8]*
%tmp2 = insertvalue { [0 x i8]*, i64 } undef, [0 x i8]* %tmp, 0
%tmp3 = insertvalue { [0 x i8]*, i64 } %tmp2, i64 %arg1, 1
ret { [0 x i8]*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @baz.181({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %arg, i32 0, i32 0
%tmp1 = load i8*, i8** %tmp, align 8, !nonnull !6
%tmp2 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i8]*, i64 } @widget.172(i8* nonnull %tmp1, i64 %tmp3)
%tmp5 = extractvalue { [0 x i8]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x i8]*, i64 } %tmp4, 1
ret { [0 x i8]*, i64 } %tmp4
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @wobble.182({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %arg, i32 0, i32 0
%tmp1 = load i8*, i8** %tmp, align 8, !nonnull !6
%tmp2 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i8]*, i64 } @bar.180(i8* nonnull %tmp1, i64 %tmp3)
%tmp5 = extractvalue { [0 x i8]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x i8]*, i64 } %tmp4, 1
ret { [0 x i8]*, i64 } %tmp4
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i32]*, i64 } @pluto.183({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %arg, i32 0, i32 0
%tmp1 = load i32*, i32** %tmp, align 8, !nonnull !6
%tmp2 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i32]*, i64 } @snork.156(i32* nonnull %tmp1, i64 %tmp3)
%tmp5 = extractvalue { [0 x i32]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x i32]*, i64 } %tmp4, 1
ret { [0 x i32]*, i64 } %tmp4
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i32]*, i64 } @quux.184({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %arg, i32 0, i32 0
%tmp1 = load i32*, i32** %tmp, align 8, !nonnull !6
%tmp2 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i32]*, i64 } @spam.141(i32* nonnull %tmp1, i64 %tmp3)
%tmp5 = extractvalue { [0 x i32]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x i32]*, i64 } %tmp4, 1
ret { [0 x i32]*, i64 } %tmp4
}
; Function Attrs: nonlazybind uwtable
define internal void @ham.185([0 x %struct.zot.82]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.zot.82]* %arg to %struct.zot.82*
%tmp8 = getelementptr inbounds %struct.zot.82, %struct.zot.82* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.zot.82* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.zot.82* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.zot.82, %struct.zot.82* %tmp2.0, i64 1
invoke void @quux.117(%struct.zot.82* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.zot.82* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.zot.82* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.zot.82, %struct.zot.82* %tmp2.1, i64 1
call void @quux.117(%struct.zot.82* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @snork.186(%struct.eggs.59* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.eggs.59* %arg to {}**
%tmp1 = load {}*, {}** %tmp, align 8
%tmp2 = icmp eq {}* %tmp1, null
%tmp3 = select i1 %tmp2, i64 0, i64 1
br i1 %tmp2, label %bb5, label %bb6
bb5: ; preds = %bb6, %bb
ret void
bb6: ; preds = %bb
%tmp7 = bitcast %struct.eggs.59* %arg to %struct.wombat.113*
%tmp8 = bitcast %struct.wombat.113* %tmp7 to %struct.baz.44*
call void @spam.88(%struct.baz.44* %tmp8)
br label %bb5
}
; Function Attrs: nonlazybind uwtable
define internal void @bar.187(%struct.widget.73* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.widget.73* %arg to %struct.snork.74*
call void @widget.114(%struct.snork.74* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @quux.188([0 x %struct.widget.84]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.widget.84]* %arg to %struct.widget.84*
%tmp8 = getelementptr inbounds %struct.widget.84, %struct.widget.84* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.widget.84* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.widget.84* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.widget.84, %struct.widget.84* %tmp2.0, i64 1
invoke void @hoge.120(%struct.widget.84* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.widget.84* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.widget.84* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.widget.84, %struct.widget.84* %tmp2.1, i64 1
call void @hoge.120(%struct.widget.84* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @eggs.189([0 x %struct.blam.75]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.blam.75]* %arg to %struct.blam.75*
%tmp8 = getelementptr inbounds %struct.blam.75, %struct.blam.75* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.blam.75* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.blam.75* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.blam.75, %struct.blam.75* %tmp2.0, i64 1
invoke void @hoge.121(%struct.blam.75* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.blam.75* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.blam.75* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.blam.75, %struct.blam.75* %tmp2.1, i64 1
call void @hoge.121(%struct.blam.75* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @zot.190([0 x %struct.widget.55]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.widget.55]* %arg to %struct.widget.55*
%tmp8 = getelementptr inbounds %struct.widget.55, %struct.widget.55* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.widget.55* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.widget.55* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.widget.55, %struct.widget.55* %tmp2.0, i64 1
invoke void @wobble.122(%struct.widget.55* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.widget.55* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.widget.55* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.widget.55, %struct.widget.55* %tmp2.1, i64 1
call void @wobble.122(%struct.widget.55* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @pluto.191([0 x %struct.zot.57]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.zot.57]* %arg to %struct.zot.57*
%tmp8 = getelementptr inbounds %struct.zot.57, %struct.zot.57* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.zot.57* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.zot.57* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.zot.57, %struct.zot.57* %tmp2.0, i64 1
invoke void @snork.123(%struct.zot.57* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.zot.57* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.zot.57* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.zot.57, %struct.zot.57* %tmp2.1, i64 1
call void @snork.123(%struct.zot.57* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @eggs.192(i64** %arg) unnamed_addr #1 {
bb:
call void @snork.492(i64** noalias align 8 dereferenceable(8) %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @foo.193(%struct.snork.53* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.snork.53* %arg to {}**
%tmp1 = load {}*, {}** %tmp, align 8
%tmp2 = icmp eq {}* %tmp1, null
%tmp3 = select i1 %tmp2, i64 0, i64 1
br i1 %tmp2, label %bb5, label %bb6
bb5: ; preds = %bb6, %bb
ret void
bb6: ; preds = %bb
%tmp7 = bitcast %struct.snork.53* %arg to %struct.widget.114*
%tmp8 = bitcast %struct.widget.114* %tmp7 to %struct.bar.30*
call void @wobble.90(%struct.bar.30* %tmp8)
br label %bb5
}
; Function Attrs: nonlazybind uwtable
define internal void @blam.194({ i8*, i64 }* %arg) unnamed_addr #1 {
bb:
call void @spam.552({ i8*, i64 }* noalias align 8 dereferenceable(16) %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @eggs.195(%struct.barney.81* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
invoke void @barney.500(%struct.barney.81* noalias align 8 dereferenceable(24) %arg)
to label %bb1 unwind label %bb5
bb1: ; preds = %bb
%tmp2 = bitcast %struct.barney.81* %arg to { i64*, i64 }*
call void @foo.284({ i64*, i64 }* %tmp2)
ret void
bb5: ; preds = %bb
%tmp6 = landingpad { i8*, i32 }
cleanup
%tmp8 = extractvalue { i8*, i32 } %tmp6, 0
%tmp9 = extractvalue { i8*, i32 } %tmp6, 1
%tmp4 = bitcast %struct.barney.81* %arg to { i64*, i64 }*
call void @foo.284({ i64*, i64 }* %tmp4) #13
resume { i8*, i32 } %tmp6
}
; Function Attrs: nonlazybind uwtable
define internal void @wobble.196(%struct.spam.54* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.spam.54* %arg to i64*
%tmp1 = load i64, i64* %tmp, align 8, !range !8
%tmp2 = sub i64 %tmp1, 2
%tmp3 = icmp eq i64 %tmp2, 0
%tmp4 = select i1 %tmp3, i64 0, i64 1
br i1 %tmp3, label %bb6, label %bb7
bb6: ; preds = %bb7, %bb
ret void
bb7: ; preds = %bb
%tmp8 = bitcast %struct.spam.54* %arg to %struct.baz.115*
%tmp9 = bitcast %struct.baz.115* %tmp8 to %struct.snork.94*
call void @pluto.93(%struct.snork.94* %tmp9)
br label %bb6
}
; Function Attrs: nonlazybind uwtable
define internal void @wibble.197(%struct.baz.51* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
invoke void @snork.493(%struct.baz.51* noalias align 8 dereferenceable(24) %arg)
to label %bb1 unwind label %bb5
bb1: ; preds = %bb
%tmp2 = bitcast %struct.baz.51* %arg to { i64*, i64 }*
call void @wobble.288({ i64*, i64 }* %tmp2)
ret void
bb5: ; preds = %bb
%tmp6 = landingpad { i8*, i32 }
cleanup
%tmp8 = extractvalue { i8*, i32 } %tmp6, 0
%tmp9 = extractvalue { i8*, i32 } %tmp6, 1
%tmp4 = bitcast %struct.baz.51* %arg to { i64*, i64 }*
call void @wobble.288({ i64*, i64 }* %tmp4) #13
resume { i8*, i32 } %tmp6
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @widget.198(i8* %arg, i8* %arg1) unnamed_addr #0 {
bb:
%tmp2 = icmp eq i8* %arg, %arg1
%tmp3 = zext i1 %tmp2 to i8
ret i1 %tmp2
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i8* @wobble.199(i8* %arg, i64 %arg1) unnamed_addr #2 {
bb:
%tmp = call i8* @quux.239(i8* %arg, i64 %arg1)
ret i8* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i8* @wombat.200(i8* %arg, i64 %arg1) unnamed_addr #2 {
bb:
%tmp = call i8* @pluto.240(i8* %arg, i64 %arg1)
ret i8* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @ham.201(i16* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast i16* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @foo.202(%struct.wibble.83* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.wibble.83* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @eggs.203(%struct.wibble.71* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.wibble.71* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @barney.204(%struct.widget.55* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.widget.55* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @zot.205(%struct.widget.76* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.widget.76* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @snork.206(%struct.widget.66* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.widget.66* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @barney.207(%struct.blam.65* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.blam.65* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @spam.208(%struct.pluto.68* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.pluto.68* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @eggs.209(i64* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast i64* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @spam.210(%struct.barney.58* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.barney.58* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @wobble.211(i64** %arg) unnamed_addr #2 {
bb:
%tmp = bitcast i64** %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @pluto.212(i32* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast i32* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @pluto.213(%struct.widget.84* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.widget.84* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @hoge.214(%struct.zot.57* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.zot.57* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @blam.215(%struct.eggs.70* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.eggs.70* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @pluto.216(%struct.widget.73* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.widget.73* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @hoge.217(%struct.baz.67* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.baz.67* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @zot.218({ i32, i32 }* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast { i32, i32 }* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @eggs.219(%struct.snork.47* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.snork.47* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @quux.220(i8* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast i8* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @baz.221(%struct.eggs* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.eggs* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @quux.222(i32* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast i32* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @baz.223(%struct.wombat.88* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.wombat.88* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @ham.224(%struct.blam.75* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.blam.75* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @wobble.225(%struct.ham.77* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.ham.77* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @barney.226(%struct.ham.85* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.ham.85* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @eggs.227({ i64, { i32, i32 } }* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast { i64, { i32, i32 } }* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @quux.228(i8* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast i8* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @ham.229({ [0 x i32]*, i64 }* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast { [0 x i32]*, i64 }* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @bar.230(%struct.blam.43* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.blam.43* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @spam.231(%struct.wibble.61* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.wibble.61* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @barney.232(i64** %arg) unnamed_addr #2 {
bb:
%tmp = bitcast i64** %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @ham.233(%struct.snork.46* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.snork.46* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @zot.234(%struct.zot.82* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.zot.82* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @bar.235(%struct.snork.52* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.snork.52* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @eggs.236(i32* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast i32* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @barney.237(%struct.foo.62* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.foo.62* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal {}* @blam.238(%struct.foo.86* %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.foo.86* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i8* @quux.239(i8* %arg, i64 %arg1) unnamed_addr #2 {
bb:
%tmp3 = getelementptr inbounds i8, i8* %arg, i64 %arg1
ret i8* %tmp3
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i8* @pluto.240(i8* %arg, i64 %arg1) unnamed_addr #2 {
bb:
%tmp3 = getelementptr inbounds i8, i8* %arg, i64 %arg1
ret i8* %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @quux.241(%struct.blam.65* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.blam.65* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @bar.242(%struct.snork.52* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.snork.52* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @foo.243(%struct.widget.66* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.widget.66* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @wobble.244(%struct.foo.62* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.foo.62* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @widget.245(%struct.wibble.83* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.wibble.83* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @wombat.246(%struct.barney.58* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.barney.58* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @hoge.247(%struct.zot.57* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.zot.57* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @zot.248({ i64, { i32, i32 } }* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64, { i32, i32 } }* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @wombat.249(i32* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i32* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @baz.250(%struct.widget.55* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.widget.55* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @wibble.251(%struct.blam.75* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.blam.75* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @wobble.252(%struct.wibble.61* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.wibble.61* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @barney.253(i64** %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64** %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @wobble.254(%struct.eggs* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.eggs* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @wibble.255(%struct.wibble.71* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.wibble.71* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @ham.256(%struct.snork.46* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.snork.46* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @zot.257(%struct.eggs.70* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.eggs.70* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @barney.258(%struct.widget.84* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.widget.84* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @eggs.259(%struct.foo.86* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.foo.86* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @snork.260(%struct.ham.85* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.ham.85* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @wombat.261(%struct.blam.43* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.blam.43* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @foo.262(i32* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i32* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @baz.263(i64* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @bar.264(%struct.wombat.88* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.wombat.88* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @baz.265(i64** %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64** %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @eggs.266(%struct.widget.76* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.widget.76* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @barney.267({ [0 x i32]*, i64 }* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { [0 x i32]*, i64 }* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @wibble.268(%struct.ham.77* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.ham.77* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @zot.269(i16* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i16* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @blam.270(i32* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i32* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @snork.271({ i64*, i64 }* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @ham.272(%struct.zot.82* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.zot.82* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @hoge.273(%struct.snork.47* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.snork.47* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @hoge.274({ i32, i32 }* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i32, i32 }* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @barney.275(%struct.baz.67* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.baz.67* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @pluto.276(%struct.widget.73* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.widget.73* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @barney.277(i8* %arg) unnamed_addr #0 {
bb:
%tmp = call i8* @quux.341()
%tmp2 = call zeroext i1 @widget.198(i8* %arg, i8* %tmp)
ret i1 %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @bar.278(i8* %arg) unnamed_addr #0 {
bb:
%tmp = call i8* @quux.341()
%tmp2 = call zeroext i1 @widget.198(i8* %arg, i8* %tmp)
ret i1 %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @wobble.279(%struct.pluto.68* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.pluto.68* %arg to i8*
%tmp1 = call i8* @quux.341()
%tmp3 = call zeroext i1 @widget.198(i8* %tmp, i8* %tmp1)
ret i1 %tmp3
}
; Function Attrs: nonlazybind uwtable
define internal void @snork.280({ [0 x i8]*, i64 }* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp2 = bitcast { [0 x i8]*, i64 }* %arg to { i8*, i64 }*
%tmp3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp2, i32 0, i32 0
%tmp4 = load i8*, i8** %tmp3, align 8, !nonnull !6
%tmp5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp2, i32 0, i32 1
%tmp6 = load i64, i64* %tmp5, align 8
call void @ham.438(i8* nonnull %tmp4, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @bar.281([0 x %struct.widget.73]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.widget.73]* %arg to %struct.widget.73*
%tmp8 = getelementptr inbounds %struct.widget.73, %struct.widget.73* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.widget.73* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.widget.73* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.widget.73, %struct.widget.73* %tmp2.0, i64 1
invoke void @bar.187(%struct.widget.73* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.widget.73* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.widget.73* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.widget.73, %struct.widget.73* %tmp2.1, i64 1
call void @bar.187(%struct.widget.73* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @spam.282({ [0 x i32]*, i64 }* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp2 = bitcast { [0 x i32]*, i64 }* %arg to { i32*, i64 }*
%tmp3 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %tmp2, i32 0, i32 0
%tmp4 = load i32*, i32** %tmp3, align 8, !nonnull !6
%tmp5 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %tmp2, i32 0, i32 1
%tmp6 = load i64, i64* %tmp5, align 8
call void @barney.435(i32* nonnull %tmp4, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @ham.283(%struct.wombat.111* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
invoke void @blam.521(%struct.wombat.111* noalias align 8 dereferenceable(24) %arg)
to label %bb1 unwind label %bb5
bb1: ; preds = %bb
%tmp2 = bitcast %struct.wombat.111* %arg to { i64*, i64 }*
call void @wombat.290({ i64*, i64 }* %tmp2)
ret void
bb5: ; preds = %bb
%tmp6 = landingpad { i8*, i32 }
cleanup
%tmp8 = extractvalue { i8*, i32 } %tmp6, 0
%tmp9 = extractvalue { i8*, i32 } %tmp6, 1
%tmp4 = bitcast %struct.wombat.111* %arg to { i64*, i64 }*
call void @wombat.290({ i64*, i64 }* %tmp4) #13
resume { i8*, i32 } %tmp6
}
; Function Attrs: nonlazybind uwtable
define internal void @foo.284({ i64*, i64 }* %arg) unnamed_addr #1 {
bb:
call void @ham.553({ i64*, i64 }* noalias align 8 dereferenceable(16) %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @hoge.285(%struct.zot.60* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
invoke void @wobble.498(%struct.zot.60* noalias align 8 dereferenceable(24) %arg)
to label %bb1 unwind label %bb5
bb1: ; preds = %bb
%tmp2 = bitcast %struct.zot.60* %arg to { i64*, i64 }*
call void @spam.342({ i64*, i64 }* %tmp2)
ret void
bb5: ; preds = %bb
%tmp6 = landingpad { i8*, i32 }
cleanup
%tmp8 = extractvalue { i8*, i32 } %tmp6, 0
%tmp9 = extractvalue { i8*, i32 } %tmp6, 1
%tmp4 = bitcast %struct.zot.60* %arg to { i64*, i64 }*
call void @spam.342({ i64*, i64 }* %tmp4) #13
resume { i8*, i32 } %tmp6
}
; Function Attrs: nonlazybind uwtable
define internal void @zot.286(%struct.widget.76* %arg) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.widget.76* %arg to i64*
%tmp1 = load i64, i64* %tmp, align 8, !range !8
%tmp2 = sub i64 %tmp1, 2
%tmp3 = icmp eq i64 %tmp2, 0
%tmp4 = select i1 %tmp3, i64 0, i64 1
br i1 %tmp3, label %bb6, label %bb7
bb6: ; preds = %bb7, %bb
ret void
bb7: ; preds = %bb
%tmp8 = bitcast %struct.widget.76* %arg to %struct.zot.116*
%tmp9 = bitcast %struct.zot.116* %tmp8 to %struct.bar.103*
call void @spam.108(%struct.bar.103* %tmp9)
br label %bb6
}
; Function Attrs: nonlazybind uwtable
define internal void @barney.287(%struct.wibble.83* %arg) unnamed_addr #1 {
bb:
%tmp = getelementptr inbounds %struct.wibble.83, %struct.wibble.83* %arg, i32 0, i32 1
%tmp1 = load {}*, {}** %tmp, align 8
%tmp2 = icmp eq {}* %tmp1, null
%tmp3 = select i1 %tmp2, i64 0, i64 1
br i1 %tmp2, label %bb5, label %bb6
bb5: ; preds = %bb6, %bb
ret void
bb6: ; preds = %bb
%tmp7 = bitcast %struct.wibble.83* %arg to %struct.eggs.117*
%tmp8 = bitcast %struct.eggs.117* %tmp7 to %struct.wombat.106*
call void @ham.111(%struct.wombat.106* %tmp8)
br label %bb5
}
; Function Attrs: nonlazybind uwtable
define internal void @wobble.288({ i64*, i64 }* %arg) unnamed_addr #1 {
bb:
call void @wibble.554({ i64*, i64 }* noalias align 8 dereferenceable(16) %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @pluto.289(i64** %arg) unnamed_addr #1 {
bb:
call void @hoge.490(i64** noalias align 8 dereferenceable(8) %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @wombat.290({ i64*, i64 }* %arg) unnamed_addr #1 {
bb:
call void @quux.555({ i64*, i64 }* noalias align 8 dereferenceable(16) %arg)
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x { i64*, i64 }]*, i64 } @baz.291({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x { i64*, i64 }]*
%tmp21 = insertvalue { [0 x { i64*, i64 }]*, i64 } undef, [0 x { i64*, i64 }]* %2, 0
%tmp22 = insertvalue { [0 x { i64*, i64 }]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x { i64*, i64 }]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @ham.292({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x i8]*
%tmp21 = insertvalue { [0 x i8]*, i64 } undef, [0 x i8]* %2, 0
%tmp22 = insertvalue { [0 x i8]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x i8]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.eggs]*, i64 } @barney.293({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.eggs]*
%tmp21 = insertvalue { [0 x %struct.eggs]*, i64 } undef, [0 x %struct.eggs]* %2, 0
%tmp22 = insertvalue { [0 x %struct.eggs]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.eggs]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.blam.75]*, i64 } @wobble.294({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.blam.75]*
%tmp21 = insertvalue { [0 x %struct.blam.75]*, i64 } undef, [0 x %struct.blam.75]* %2, 0
%tmp22 = insertvalue { [0 x %struct.blam.75]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.blam.75]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.widget.55]*, i64 } @pluto.295({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.widget.55]*
%tmp21 = insertvalue { [0 x %struct.widget.55]*, i64 } undef, [0 x %struct.widget.55]* %2, 0
%tmp22 = insertvalue { [0 x %struct.widget.55]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.widget.55]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x { [0 x i32]*, i64 }]*, i64 } @hoge.296({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x { [0 x i32]*, i64 }]*
%tmp21 = insertvalue { [0 x { [0 x i32]*, i64 }]*, i64 } undef, [0 x { [0 x i32]*, i64 }]* %2, 0
%tmp22 = insertvalue { [0 x { [0 x i32]*, i64 }]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x { [0 x i32]*, i64 }]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.widget.76]*, i64 } @hoge.297({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.widget.76]*
%tmp21 = insertvalue { [0 x %struct.widget.76]*, i64 } undef, [0 x %struct.widget.76]* %2, 0
%tmp22 = insertvalue { [0 x %struct.widget.76]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.widget.76]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.baz.67]*, i64 } @foo.298({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.baz.67]*
%tmp21 = insertvalue { [0 x %struct.baz.67]*, i64 } undef, [0 x %struct.baz.67]* %2, 0
%tmp22 = insertvalue { [0 x %struct.baz.67]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.baz.67]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.wibble.61]*, i64 } @foo.299({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.wibble.61]*
%tmp21 = insertvalue { [0 x %struct.wibble.61]*, i64 } undef, [0 x %struct.wibble.61]* %2, 0
%tmp22 = insertvalue { [0 x %struct.wibble.61]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.wibble.61]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i16]*, i64 } @blam.300({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x i16]*
%tmp21 = insertvalue { [0 x i16]*, i64 } undef, [0 x i16]* %2, 0
%tmp22 = insertvalue { [0 x i16]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x i16]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.snork.47]*, i64 } @ham.301({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.snork.47]*
%tmp21 = insertvalue { [0 x %struct.snork.47]*, i64 } undef, [0 x %struct.snork.47]* %2, 0
%tmp22 = insertvalue { [0 x %struct.snork.47]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.snork.47]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.wibble.83]*, i64 } @spam.302({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.wibble.83]*
%tmp21 = insertvalue { [0 x %struct.wibble.83]*, i64 } undef, [0 x %struct.wibble.83]* %2, 0
%tmp22 = insertvalue { [0 x %struct.wibble.83]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.wibble.83]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i64*]*, i64 } @pluto.303({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x i64*]*
%tmp21 = insertvalue { [0 x i64*]*, i64 } undef, [0 x i64*]* %2, 0
%tmp22 = insertvalue { [0 x i64*]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x i64*]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.foo.62]*, i64 } @zot.304({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.foo.62]*
%tmp21 = insertvalue { [0 x %struct.foo.62]*, i64 } undef, [0 x %struct.foo.62]* %2, 0
%tmp22 = insertvalue { [0 x %struct.foo.62]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.foo.62]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.blam.65]*, i64 } @barney.305({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.blam.65]*
%tmp21 = insertvalue { [0 x %struct.blam.65]*, i64 } undef, [0 x %struct.blam.65]* %2, 0
%tmp22 = insertvalue { [0 x %struct.blam.65]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.blam.65]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i32]*, i64 } @zot.306({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x i32]*
%tmp21 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %2, 0
%tmp22 = insertvalue { [0 x i32]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x i32]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.blam.43]*, i64 } @eggs.307({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.blam.43]*
%tmp21 = insertvalue { [0 x %struct.blam.43]*, i64 } undef, [0 x %struct.blam.43]* %2, 0
%tmp22 = insertvalue { [0 x %struct.blam.43]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.blam.43]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i32]*, i64 } @pluto.308({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x i32]*
%tmp21 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %2, 0
%tmp22 = insertvalue { [0 x i32]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x i32]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @foo.309({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x i8]*
%tmp21 = insertvalue { [0 x i8]*, i64 } undef, [0 x i8]* %2, 0
%tmp22 = insertvalue { [0 x i8]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x i8]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.zot.57]*, i64 } @baz.310({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.zot.57]*
%tmp21 = insertvalue { [0 x %struct.zot.57]*, i64 } undef, [0 x %struct.zot.57]* %2, 0
%tmp22 = insertvalue { [0 x %struct.zot.57]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.zot.57]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.ham.85]*, i64 } @wobble.311({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.ham.85]*
%tmp21 = insertvalue { [0 x %struct.ham.85]*, i64 } undef, [0 x %struct.ham.85]* %2, 0
%tmp22 = insertvalue { [0 x %struct.ham.85]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.ham.85]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x { i32, i32 }]*, i64 } @ham.312({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x { i32, i32 }]*
%tmp21 = insertvalue { [0 x { i32, i32 }]*, i64 } undef, [0 x { i32, i32 }]* %2, 0
%tmp22 = insertvalue { [0 x { i32, i32 }]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x { i32, i32 }]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.pluto.68]*, i64 } @zot.313({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.pluto.68]*
%tmp21 = insertvalue { [0 x %struct.pluto.68]*, i64 } undef, [0 x %struct.pluto.68]* %2, 0
%tmp22 = insertvalue { [0 x %struct.pluto.68]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.pluto.68]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i64*]*, i64 } @wombat.314({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x i64*]*
%tmp21 = insertvalue { [0 x i64*]*, i64 } undef, [0 x i64*]* %2, 0
%tmp22 = insertvalue { [0 x i64*]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x i64*]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.ham.77]*, i64 } @eggs.315({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.ham.77]*
%tmp21 = insertvalue { [0 x %struct.ham.77]*, i64 } undef, [0 x %struct.ham.77]* %2, 0
%tmp22 = insertvalue { [0 x %struct.ham.77]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.ham.77]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @quux.316({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x i8]*
%tmp21 = insertvalue { [0 x i8]*, i64 } undef, [0 x i8]* %2, 0
%tmp22 = insertvalue { [0 x i8]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x i8]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x { i64, { i32, i32 } }]*, i64 } @quux.317({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x { i64, { i32, i32 } }]*
%tmp21 = insertvalue { [0 x { i64, { i32, i32 } }]*, i64 } undef, [0 x { i64, { i32, i32 } }]* %2, 0
%tmp22 = insertvalue { [0 x { i64, { i32, i32 } }]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x { i64, { i32, i32 } }]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.widget.84]*, i64 } @ham.318({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.widget.84]*
%tmp21 = insertvalue { [0 x %struct.widget.84]*, i64 } undef, [0 x %struct.widget.84]* %2, 0
%tmp22 = insertvalue { [0 x %struct.widget.84]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.widget.84]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.eggs.70]*, i64 } @wombat.319({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.eggs.70]*
%tmp21 = insertvalue { [0 x %struct.eggs.70]*, i64 } undef, [0 x %struct.eggs.70]* %2, 0
%tmp22 = insertvalue { [0 x %struct.eggs.70]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.eggs.70]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i64]*, i64 } @ham.320({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x i64]*
%tmp21 = insertvalue { [0 x i64]*, i64 } undef, [0 x i64]* %2, 0
%tmp22 = insertvalue { [0 x i64]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x i64]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.barney.58]*, i64 } @widget.321({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.barney.58]*
%tmp21 = insertvalue { [0 x %struct.barney.58]*, i64 } undef, [0 x %struct.barney.58]* %2, 0
%tmp22 = insertvalue { [0 x %struct.barney.58]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.barney.58]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.snork.52]*, i64 } @ham.322({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.snork.52]*
%tmp21 = insertvalue { [0 x %struct.snork.52]*, i64 } undef, [0 x %struct.snork.52]* %2, 0
%tmp22 = insertvalue { [0 x %struct.snork.52]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.snork.52]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.wibble.71]*, i64 } @baz.323({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.wibble.71]*
%tmp21 = insertvalue { [0 x %struct.wibble.71]*, i64 } undef, [0 x %struct.wibble.71]* %2, 0
%tmp22 = insertvalue { [0 x %struct.wibble.71]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.wibble.71]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i32]*, i64 } @blam.324({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x i32]*
%tmp21 = insertvalue { [0 x i32]*, i64 } undef, [0 x i32]* %2, 0
%tmp22 = insertvalue { [0 x i32]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x i32]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.widget.73]*, i64 } @zot.325({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.widget.73]*
%tmp21 = insertvalue { [0 x %struct.widget.73]*, i64 } undef, [0 x %struct.widget.73]* %2, 0
%tmp22 = insertvalue { [0 x %struct.widget.73]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.widget.73]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.wombat.88]*, i64 } @wibble.326({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.wombat.88]*
%tmp21 = insertvalue { [0 x %struct.wombat.88]*, i64 } undef, [0 x %struct.wombat.88]* %2, 0
%tmp22 = insertvalue { [0 x %struct.wombat.88]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.wombat.88]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.widget.66]*, i64 } @bar.327({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.widget.66]*
%tmp21 = insertvalue { [0 x %struct.widget.66]*, i64 } undef, [0 x %struct.widget.66]* %2, 0
%tmp22 = insertvalue { [0 x %struct.widget.66]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.widget.66]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.foo.86]*, i64 } @eggs.328({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.foo.86]*
%tmp21 = insertvalue { [0 x %struct.foo.86]*, i64 } undef, [0 x %struct.foo.86]* %2, 0
%tmp22 = insertvalue { [0 x %struct.foo.86]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.foo.86]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.zot.82]*, i64 } @bar.329({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.zot.82]*
%tmp21 = insertvalue { [0 x %struct.zot.82]*, i64 } undef, [0 x %struct.zot.82]* %2, 0
%tmp22 = insertvalue { [0 x %struct.zot.82]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.zot.82]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x %struct.snork.46]*, i64 } @quux.330({}* %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast {}* %arg to i8*
%1 = ptrtoint i8* %0 to i64
%2 = inttoptr i64 %1 to [0 x %struct.snork.46]*
%tmp21 = insertvalue { [0 x %struct.snork.46]*, i64 } undef, [0 x %struct.snork.46]* %2, 0
%tmp22 = insertvalue { [0 x %struct.snork.46]*, i64 } %tmp21, i64 %arg1, 1
ret { [0 x %struct.snork.46]*, i64 } %tmp22
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal nonnull i8* @wobble.331(i8* %arg) unnamed_addr #0 {
bb:
%0 = icmp ne i8* %arg, null
call void @llvm.assume(i1 %0)
ret i8* %arg
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.pluto.157* @wibble.332(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.pluto.157*
ret %struct.pluto.157* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.pluto.164* @baz.333(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.pluto.164*
ret %struct.pluto.164* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.foo.168* @bar.334(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.foo.168*
ret %struct.foo.168* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.baz.172* @zot.335(i64* nonnull %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i64* %arg to %struct.baz.172*
ret %struct.baz.172* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i8* @quux.336(i8* nonnull %arg) unnamed_addr #0 {
bb:
ret i8* %arg
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal align 8 dereferenceable(88) %struct.pluto.164* @eggs.337(i64** noalias readonly align 8 dereferenceable(8) %arg) unnamed_addr #0 {
bb:
%tmp = load i64*, i64** %arg, align 8, !nonnull !6
%tmp1 = call %struct.pluto.164* @baz.333(i64* nonnull %tmp)
ret %struct.pluto.164* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal align 8 dereferenceable(232) %struct.baz.172* @hoge.338(i64** noalias readonly align 8 dereferenceable(8) %arg) unnamed_addr #0 {
bb:
%tmp = load i64*, i64** %arg, align 8, !nonnull !6
%tmp1 = call %struct.baz.172* @zot.335(i64* nonnull %tmp)
ret %struct.baz.172* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal align 8 dereferenceable(96) %struct.foo.168* @zot.339(i64** noalias readonly align 8 dereferenceable(8) %arg) unnamed_addr #0 {
bb:
%tmp = load i64*, i64** %arg, align 8, !nonnull !6
%tmp1 = call %struct.foo.168* @bar.334(i64* nonnull %tmp)
ret %struct.foo.168* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal align 8 dereferenceable(48) %struct.pluto.157* @zot.340(i64** noalias readonly align 8 dereferenceable(8) %arg) unnamed_addr #0 {
bb:
%tmp = load i64*, i64** %arg, align 8, !nonnull !6
%tmp1 = call %struct.pluto.157* @wibble.332(i64* nonnull %tmp)
ret %struct.pluto.157* %tmp1
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i8* @quux.341() unnamed_addr #2 {
bb:
ret i8* null
}
; Function Attrs: nonlazybind uwtable
define internal void @spam.342({ i64*, i64 }* %arg) unnamed_addr #1 {
bb:
call void @snork.556({ i64*, i64 }* noalias align 8 dereferenceable(16) %arg)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @spam.343([0 x { [0 x i32]*, i64 }]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x { [0 x i32]*, i64 }]* %arg to { [0 x i32]*, i64 }*
%tmp8 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi { [0 x i32]*, i64 }* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq { [0 x i32]*, i64 }* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %tmp2.0, i64 1
invoke void @spam.282({ [0 x i32]*, i64 }* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi { [0 x i32]*, i64 }* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq { [0 x i32]*, i64 }* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds { [0 x i32]*, i64 }, { [0 x i32]*, i64 }* %tmp2.1, i64 1
call void @spam.282({ [0 x i32]*, i64 }* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @eggs.344(%struct.eggs* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
invoke void @baz.524(%struct.eggs* noalias align 8 dereferenceable(24) %arg)
to label %bb1 unwind label %bb5
bb1: ; preds = %bb
%tmp2 = bitcast %struct.eggs* %arg to { i64*, i64 }*
call void @spam.352({ i64*, i64 }* %tmp2)
ret void
bb5: ; preds = %bb
%tmp6 = landingpad { i8*, i32 }
cleanup
%tmp8 = extractvalue { i8*, i32 } %tmp6, 0
%tmp9 = extractvalue { i8*, i32 } %tmp6, 1
%tmp4 = bitcast %struct.eggs* %arg to { i64*, i64 }*
call void @spam.352({ i64*, i64 }* %tmp4) #13
resume { i8*, i32 } %tmp6
}
; Function Attrs: nonlazybind uwtable
define internal void @spam.345([0 x %struct.widget.76]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.widget.76]* %arg to %struct.widget.76*
%tmp8 = getelementptr inbounds %struct.widget.76, %struct.widget.76* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.widget.76* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.widget.76* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.widget.76, %struct.widget.76* %tmp2.0, i64 1
invoke void @zot.286(%struct.widget.76* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.widget.76* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.widget.76* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.widget.76, %struct.widget.76* %tmp2.1, i64 1
call void @zot.286(%struct.widget.76* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @hoge.346([0 x %struct.wibble.83]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x %struct.wibble.83]* %arg to %struct.wibble.83*
%tmp8 = getelementptr inbounds %struct.wibble.83, %struct.wibble.83* %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi %struct.wibble.83* [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq %struct.wibble.83* %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds %struct.wibble.83, %struct.wibble.83* %tmp2.0, i64 1
invoke void @barney.287(%struct.wibble.83* %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi %struct.wibble.83* [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq %struct.wibble.83* %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds %struct.wibble.83, %struct.wibble.83* %tmp2.1, i64 1
call void @barney.287(%struct.wibble.83* %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @blam.347(%struct.snork.56* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
invoke void @snork.513(%struct.snork.56* noalias align 8 dereferenceable(24) %arg)
to label %bb1 unwind label %bb5
bb1: ; preds = %bb
%tmp2 = bitcast %struct.snork.56* %arg to { i64*, i64 }*
call void @spam.33({ i64*, i64 }* %tmp2)
ret void
bb5: ; preds = %bb
%tmp6 = landingpad { i8*, i32 }
cleanup
%tmp8 = extractvalue { i8*, i32 } %tmp6, 0
%tmp9 = extractvalue { i8*, i32 } %tmp6, 1
%tmp4 = bitcast %struct.snork.56* %arg to { i64*, i64 }*
call void @spam.33({ i64*, i64 }* %tmp4) #13
resume { i8*, i32 } %tmp6
}
; Function Attrs: nonlazybind uwtable
define internal void @quux.348(%struct.blam.43* %arg) unnamed_addr #1 {
bb:
%tmp = getelementptr inbounds %struct.blam.43, %struct.blam.43* %arg, i32 0, i32 1
call void @spam.88(%struct.baz.44* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @blam.349([0 x i64*]* %arg, i64 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp6 = bitcast [0 x i64*]* %arg to i64**
%tmp8 = getelementptr inbounds i64*, i64** %tmp6, i64 %arg1
br label %bb9
bb9: ; preds = %bb12, %bb
%tmp2.0 = phi i64** [ %tmp6, %bb ], [ %tmp15, %bb12 ]
%tmp11 = icmp eq i64** %tmp2.0, %tmp8
br i1 %tmp11, label %bb16, label %bb12
bb12: ; preds = %bb9
%tmp15 = getelementptr inbounds i64*, i64** %tmp2.0, i64 1
invoke void @pluto.289(i64** %tmp2.0)
to label %bb9 unwind label %bb20
bb16: ; preds = %bb9
ret void
bb17: ; preds = %bb27, %bb20
%tmp2.1 = phi i64** [ %tmp15, %bb20 ], [ %tmp30, %bb27 ]
%tmp19 = icmp eq i64** %tmp2.1, %tmp8
br i1 %tmp19, label %bb31, label %bb27
bb20: ; preds = %bb12
%tmp21 = landingpad { i8*, i32 }
cleanup
%tmp23 = extractvalue { i8*, i32 } %tmp21, 0
%tmp24 = extractvalue { i8*, i32 } %tmp21, 1
br label %bb17
bb27: ; preds = %bb17
%tmp30 = getelementptr inbounds i64*, i64** %tmp2.1, i64 1
call void @pluto.289(i64** %tmp2.1) #13
br label %bb17
bb31: ; preds = %bb17
resume { i8*, i32 } %tmp21
}
; Function Attrs: nonlazybind uwtable
define internal void @quux.350(%struct.snork.46* %arg) unnamed_addr #1 {
bb:
%tmp = getelementptr inbounds %struct.snork.46, %struct.snork.46* %arg, i32 0, i32 1
call void @spam.88(%struct.baz.44* %tmp)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @wibble.351(%struct.snork.47* %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp1 = getelementptr inbounds %struct.snork.47, %struct.snork.47* %arg, i32 0, i32 1
invoke void @spam.88(%struct.baz.44* %tmp1)
to label %bb2 unwind label %bb6
bb2: ; preds = %bb
%tmp3 = getelementptr inbounds %struct.snork.47, %struct.snork.47* %arg, i32 0, i32 2
call void @spam.97(%struct.eggs.48* %tmp3)
ret void
bb6: ; preds = %bb
%tmp7 = landingpad { i8*, i32 }
cleanup
%tmp9 = extractvalue { i8*, i32 } %tmp7, 0
%tmp10 = extractvalue { i8*, i32 } %tmp7, 1
%tmp5 = getelementptr inbounds %struct.snork.47, %struct.snork.47* %arg, i32 0, i32 2
call void @spam.97(%struct.eggs.48* %tmp5) #13
resume { i8*, i32 } %tmp7
}
; Function Attrs: nonlazybind uwtable
define internal void @spam.352({ i64*, i64 }* %arg) unnamed_addr #1 {
bb:
call void @barney.557({ i64*, i64 }* noalias align 8 dereferenceable(16) %arg)
ret void
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i8* @spam.353(i8* %arg, i64 %arg1) unnamed_addr #2 {
bb:
%tmp = call i8* @widget.355(i8* %arg, i64 %arg1)
ret i8* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @blam.354(i8* %arg, i8* %arg1) unnamed_addr #0 {
bb:
%tmp2 = icmp eq i8* %arg, %arg1
%tmp3 = zext i1 %tmp2 to i8
ret i1 %tmp2
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i8* @widget.355(i8* %arg, i64 %arg1) unnamed_addr #2 {
bb:
%tmp3 = getelementptr i8, i8* %arg, i64 %arg1
ret i8* %tmp3
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i8* @hoge.356(i8* %arg, i64 %arg1) unnamed_addr #2 {
bb:
%tmp = call i8* @spam.359(i8* %arg, i64 %arg1)
ret i8* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal {}* @quux.357({ i64*, i64 }* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to {}*
ret {}* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal {}* @hoge.358(i8* %arg) unnamed_addr #0 {
bb:
%tmp = bitcast i8* %arg to {}*
ret {}* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i8* @spam.359(i8* %arg, i64 %arg1) unnamed_addr #2 {
bb:
%tmp3 = getelementptr inbounds i8, i8* %arg, i64 %arg1
ret i8* %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @pluto.360(i8* %arg) unnamed_addr #0 {
bb:
%tmp = call i8* @blam.99()
%tmp2 = call zeroext i1 @blam.354(i8* %arg, i8* %tmp)
ret i1 %tmp2
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i64* @quux.361(i64* align 8 dereferenceable(8) %arg) unnamed_addr #2 {
bb:
ret i64* %arg
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @quux.362(i128 %arg, %struct.eggs.185* noalias nocapture dereferenceable(24) %arg1) unnamed_addr #0 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp3 = alloca %struct.eggs.185, align 8
%tmp4 = alloca %struct.bar.186, align 8
%tmp15 = bitcast %struct.bar.186* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp15)
%tmp16 = bitcast %struct.eggs.185* %tmp3 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp16)
%tmp18 = bitcast %struct.eggs.185* %arg1 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %tmp16, i8* align 8 %tmp18, i64 24, i1 false)
invoke void @spam.365(%struct.bar.186* noalias nocapture sret(%struct.bar.186) dereferenceable(24) %tmp4, %struct.eggs.185* noalias nocapture dereferenceable(24) %tmp3)
to label %bb19 unwind label %bb26
bb19: ; preds = %bb
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp16)
invoke void @pluto.558(i128 %arg, %struct.bar.186* noalias nocapture dereferenceable(24) %tmp4)
to label %bb33 unwind label %bb26
bb26: ; preds = %bb19, %bb
%tmp27 = landingpad { i8*, i32 }
cleanup
%tmp29 = extractvalue { i8*, i32 } %tmp27, 0
%tmp30 = extractvalue { i8*, i32 } %tmp27, 1
resume { i8*, i32 } %tmp27
bb33: ; preds = %bb19
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp15)
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @ham.363(i8 %arg, %struct.wobble.187* noalias nocapture dereferenceable(24) %arg1) unnamed_addr #0 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp3 = alloca %struct.wobble.187, align 8
%tmp4 = alloca %struct.wobble.188, align 8
%tmp5 = bitcast %struct.wobble.188* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp5)
%tmp6 = bitcast %struct.wobble.187* %tmp3 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp6)
%tmp8 = bitcast %struct.wobble.187* %arg1 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %tmp6, i8* align 8 %tmp8, i64 24, i1 false)
invoke void @barney.364(%struct.wobble.188* noalias nocapture sret(%struct.wobble.188) dereferenceable(24) %tmp4, %struct.wobble.187* noalias nocapture dereferenceable(24) %tmp3)
to label %bb9 unwind label %bb14
bb9: ; preds = %bb
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp6)
invoke void @wobble.559(i8 %arg, %struct.wobble.188* noalias nocapture dereferenceable(24) %tmp4)
to label %bb21 unwind label %bb14
bb14: ; preds = %bb9, %bb
%tmp15 = landingpad { i8*, i32 }
cleanup
%tmp17 = extractvalue { i8*, i32 } %tmp15, 0
%tmp18 = extractvalue { i8*, i32 } %tmp15, 1
resume { i8*, i32 } %tmp15
bb21: ; preds = %bb9
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp5)
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @barney.364(%struct.wobble.188* noalias nocapture sret(%struct.wobble.188) dereferenceable(24) %arg, %struct.wobble.187* noalias nocapture dereferenceable(24) %arg1) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.wobble.188* %arg to %struct.wobble.187*
%tmp2 = bitcast %struct.wobble.187* %tmp to i8*
%tmp3 = bitcast %struct.wobble.187* %arg1 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %tmp2, i8* align 8 %tmp3, i64 24, i1 false)
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @spam.365(%struct.bar.186* noalias nocapture sret(%struct.bar.186) dereferenceable(24) %arg, %struct.eggs.185* noalias nocapture dereferenceable(24) %arg1) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.bar.186* %arg to %struct.eggs.185*
%tmp2 = bitcast %struct.eggs.185* %tmp to i8*
%tmp3 = bitcast %struct.eggs.185* %arg1 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %tmp2, i8* align 8 %tmp3, i64 24, i1 false)
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64 @snork.366(i64* %arg, i64 %arg1, i8 %arg2) unnamed_addr #0 {
bb:
%tmp5 = zext i8 %arg2 to i64
switch i64 %tmp5, label %bb6 [
i64 0, label %bb7
i64 1, label %bb9
i64 2, label %bb11
i64 3, label %bb13
i64 4, label %bb15
]
bb6: ; preds = %bb
unreachable
bb7: ; preds = %bb
%tmp8 = atomicrmw sub i64* %arg, i64 %arg1 monotonic, align 8
br label %bb18
bb9: ; preds = %bb
%tmp10 = atomicrmw sub i64* %arg, i64 %arg1 release, align 8
br label %bb18
bb11: ; preds = %bb
%tmp12 = atomicrmw sub i64* %arg, i64 %arg1 acquire, align 8
br label %bb18
bb13: ; preds = %bb
%tmp14 = atomicrmw sub i64* %arg, i64 %arg1 acq_rel, align 8
br label %bb18
bb15: ; preds = %bb
%tmp16 = atomicrmw sub i64* %arg, i64 %arg1 seq_cst, align 8
br label %bb18
bb18: ; preds = %bb7, %bb9, %bb11, %bb13, %bb15
%tmp.0 = phi i64 [ %tmp16, %bb15 ], [ %tmp14, %bb13 ], [ %tmp12, %bb11 ], [ %tmp10, %bb9 ], [ %tmp8, %bb7 ]
ret i64 %tmp.0
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64 @wobble.367(%struct.eggs.158* align 8 dereferenceable(8) %arg, i64 %arg1, i8 %arg2) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.eggs.158* %arg to i64*
%tmp3 = call i64* @quux.361(i64* align 8 dereferenceable(8) %tmp)
%tmp5 = call i64 @snork.366(i64* %tmp3, i64 %arg1, i8 %arg2)
ret i64 %tmp5
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @snork.368(i8 %arg) unnamed_addr #0 {
bb:
%tmp2 = zext i8 %arg to i64
switch i64 %tmp2, label %bb3 [
i64 0, label %bb4
i64 1, label %bb5
i64 2, label %bb6
i64 3, label %bb7
i64 4, label %bb8
]
bb3: ; preds = %bb
unreachable
bb4: ; preds = %bb
call void @wibble.543([0 x i8]* noalias nonnull readonly align 1 bitcast (<{ [41 x i8] }>* @global.5 to [0 x i8]*), i64 41, %struct.zot.29* noalias readonly align 8 dereferenceable(24) bitcast (<{ i8*, [16 x i8] }>* @global.7 to %struct.zot.29*)) #12
unreachable
bb5: ; preds = %bb
fence release
br label %bb9
bb6: ; preds = %bb
fence acquire
br label %bb9
bb7: ; preds = %bb
fence acq_rel
br label %bb9
bb8: ; preds = %bb
fence seq_cst
br label %bb9
bb9: ; preds = %bb8, %bb7, %bb6, %bb5
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i64, i64 } @hoge.369(i64 %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp2 = call i64 @wombat.31(i64 %arg1), !range !10
%tmp10 = insertvalue { i64, i64 } undef, i64 %arg, 0
%tmp11 = insertvalue { i64, i64 } %tmp10, i64 %tmp2, 1
ret { i64, i64 } %tmp11
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64 @eggs.370({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64, i64 }* %arg to i64*
%tmp1 = load i64, i64* %tmp, align 8
ret i64 %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64 @baz.371({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = getelementptr inbounds { i64, i64 }, { i64, i64 }* %arg, i32 0, i32 1
%tmp1 = load i64, i64* %tmp, align 8, !range !10
%tmp2 = call i64 @wobble.32(i64 %tmp1)
ret i64 %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i8*, i8* } @quux.372([0 x i8]* noalias nonnull readonly align 1 %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call { i8*, i8* } @zot.376([0 x i8]* noalias nonnull readonly align 1 %arg, i64 %arg1)
%tmp2 = extractvalue { i8*, i8* } %tmp, 0
%tmp3 = extractvalue { i8*, i8* } %tmp, 1
ret { i8*, i8* } %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i8* @pluto.373([0 x i8]* noalias nonnull readonly align 1 %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = bitcast [0 x i8]* %arg to i8*
ret i8* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x { i64*, i64 }]*, i64 } @ham.374({ i64*, i64 }* %arg, i64 %arg1) unnamed_addr #0 {
bb:
call void @wombat.560({ i64*, i64 }* %arg, i64 %arg1)
%tmp = call { [0 x { i64*, i64 }]*, i64 } @snork.49({ i64*, i64 }* %arg, i64 %arg1)
%tmp3 = extractvalue { [0 x { i64*, i64 }]*, i64 } %tmp, 0
%tmp4 = extractvalue { [0 x { i64*, i64 }]*, i64 } %tmp, 1
ret { [0 x { i64*, i64 }]*, i64 } %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @hoge.375(i8* %arg, i64 %arg1) unnamed_addr #0 {
bb:
call void @zot.561(i8* %arg, i64 %arg1)
%tmp = call { [0 x i8]*, i64 } @foo.48(i8* %arg, i64 %arg1)
%tmp3 = extractvalue { [0 x i8]*, i64 } %tmp, 0
%tmp4 = extractvalue { [0 x i8]*, i64 } %tmp, 1
ret { [0 x i8]*, i64 } %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i8*, i8* } @zot.376([0 x i8]* noalias nonnull readonly align 1 %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp3 = call i8* @pluto.373([0 x i8]* noalias nonnull readonly align 1 %arg, i64 %arg1)
%tmp5 = call zeroext i1 @pluto.360(i8* %tmp3)
%tmp7 = xor i1 %tmp5, true
call void @llvm.assume(i1 %tmp7)
%tmp10 = call i64 @blam.27()
%tmp12 = icmp eq i64 %tmp10, 0
br i1 %tmp12, label %bb13, label %bb15
bb13: ; preds = %bb
%tmp14 = call i8* @spam.353(i8* %tmp3, i64 %arg1)
br label %bb18
bb15: ; preds = %bb
%tmp16 = call i8* @hoge.356(i8* %tmp3, i64 %arg1)
br label %bb18
bb18: ; preds = %bb13, %bb15
%tmp.0 = phi i8* [ %tmp14, %bb13 ], [ %tmp16, %bb15 ]
%tmp19 = call nonnull i8* @wobble.331(i8* %tmp3)
%tmp30 = insertvalue { i8*, i8* } undef, i8* %tmp19, 0
%tmp31 = insertvalue { i8*, i8* } %tmp30, i8* %tmp.0, 1
ret { i8*, i8* } %tmp31
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @foo.377(%struct.spam.28* noalias nocapture sret(%struct.spam.28) dereferenceable(24) %arg, i64 %arg1) unnamed_addr #0 {
bb:
call void @zot.420(%struct.spam.28* noalias nocapture sret(%struct.spam.28) dereferenceable(24) %arg, i64 %arg1)
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i64*, i64 } @eggs.378(i64* noalias align 8 dereferenceable(8) %arg) unnamed_addr #0 {
bb:
%tmp1 = load i64, i64* %arg, align 8
%tmp8 = insertvalue { i64*, i64 } undef, i64* %arg, 0
%tmp9 = insertvalue { i64*, i64 } %tmp8, i64 %tmp1, 1
ret { i64*, i64 } %tmp9
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.eggs* @widget.379(%struct.barney.189* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.barney.189* %arg to { i64*, i64 }*
%tmp1 = call %struct.eggs* @foo.462({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @wobble.254(%struct.eggs* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.eggs* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.55* @baz.380(%struct.wombat.176* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.wombat.176* %arg to { i64*, i64 }*
%tmp1 = call %struct.widget.55* @blam.446({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @baz.250(%struct.widget.55* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.widget.55* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64* @spam.381(%struct.eggs.99* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.eggs.99* %arg to { i64*, i64 }*
%tmp1 = call i64* @snork.452({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @baz.263(i64* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret i64* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.wombat.88* @pluto.382(%struct.baz.51* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.baz.51* %arg to { i64*, i64 }*
%tmp1 = call %struct.wombat.88* @quux.458({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @bar.264(%struct.wombat.88* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.wombat.88* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.blam.65* @baz.383(%struct.ham.190* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.ham.190* %arg to { i64*, i64 }*
%tmp1 = call %struct.blam.65* @bar.476({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @quux.241(%struct.blam.65* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.blam.65* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.66* @widget.384(%struct.widget.191* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.widget.191* %arg to { i32*, i64 }*
%tmp1 = call %struct.widget.66* @snork.460({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @foo.243(%struct.widget.66* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.widget.66* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.wibble.61* @wibble.385(%struct.spam.177* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.spam.177* %arg to { i64*, i64 }*
%tmp1 = call %struct.wibble.61* @hoge.471({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @wobble.252(%struct.wibble.61* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.wibble.61* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.wibble.71* @wibble.386(%struct.quux.192* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.quux.192* %arg to { i64*, i64 }*
%tmp1 = call %struct.wibble.71* @blam.465({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @wibble.255(%struct.wibble.71* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.wibble.71* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.snork.52* @wombat.387(%struct.barney.81* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.barney.81* %arg to { i64*, i64 }*
%tmp1 = call %struct.snork.52* @widget.475({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @bar.242(%struct.snork.52* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.snork.52* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.barney.58* @foo.388(%struct.blam.193* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.blam.193* %arg to { i64*, i64 }*
%tmp1 = call %struct.barney.58* @eggs.450({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @wombat.246(%struct.barney.58* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.barney.58* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32* @bar.389(%struct.blam.194* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.blam.194* %arg to { i32*, i64 }*
%tmp1 = call i32* @hoge.451({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @foo.262(i32* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret i32* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.pluto.68* @pluto.390(%struct.pluto.195* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.pluto.195* %arg to { i64*, i64 }*
%tmp1 = call %struct.pluto.68* @quux.453({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @wobble.279(%struct.pluto.68* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.pluto.68* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.73* @wombat.391(%struct.snork.56* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.snork.56* %arg to { i64*, i64 }*
%tmp1 = call %struct.widget.73* @widget.464({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @pluto.276(%struct.widget.73* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.widget.73* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i32]*, i64 }* @snork.392(%struct.spam.196* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.spam.196* %arg to { i64*, i64 }*
%tmp1 = call { [0 x i32]*, i64 }* @ham.447({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @barney.267({ [0 x i32]*, i64 }* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret { [0 x i32]*, i64 }* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.foo.86* @pluto.393(%struct.ham.197* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.ham.197* %arg to { i64*, i64 }*
%tmp1 = call %struct.foo.86* @quux.445({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @eggs.259(%struct.foo.86* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.foo.86* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.foo.62* @eggs.394(%struct.spam.198* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.spam.198* %arg to { i32*, i64 }*
%tmp1 = call %struct.foo.62* @spam.461({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @wobble.244(%struct.foo.62* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.foo.62* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.ham.77* @quux.395(%struct.zot.199* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.zot.199* %arg to { i64*, i64 }*
%tmp1 = call %struct.ham.77* @baz.470({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @wibble.268(%struct.ham.77* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.ham.77* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.wibble.83* @bar.396(%struct.quux.200* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.quux.200* %arg to { i64*, i64 }*
%tmp1 = call %struct.wibble.83* @baz.454({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @widget.245(%struct.wibble.83* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.wibble.83* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.blam.43* @wobble.397(%struct.hoge.39* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.hoge.39* %arg to { i64*, i64 }*
%tmp1 = call %struct.blam.43* @bar.483({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @wombat.261(%struct.blam.43* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.blam.43* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.zot.82* @ham.398(%struct.zot.60* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.zot.60* %arg to { i64*, i64 }*
%tmp1 = call %struct.zot.82* @widget.472({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @ham.272(%struct.zot.82* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.zot.82* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.blam.75* @baz.399(%struct.zot.201* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.zot.201* %arg to { i64*, i64 }*
%tmp1 = call %struct.blam.75* @foo.477({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @wibble.251(%struct.blam.75* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.blam.75* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.zot.57* @eggs.400(%struct.wibble.202* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.wibble.202* %arg to { i64*, i64 }*
%tmp1 = call %struct.zot.57* @spam.479({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @hoge.247(%struct.zot.57* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.zot.57* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i16* @spam.401(%struct.foo.93* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.foo.93* %arg to { i16*, i64 }*
%tmp1 = call i16* @ham.474({ i16*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @zot.269(i16* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret i16* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.snork.47* @eggs.402(%struct.wombat.167* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.wombat.167* %arg to { i64*, i64 }*
%tmp1 = call %struct.snork.47* @pluto.468({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @hoge.273(%struct.snork.47* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.snork.47* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i64, { i32, i32 } }* @wombat.403(%struct.eggs* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.eggs* %arg to { i64*, i64 }*
%tmp1 = call { i64, { i32, i32 } }* @pluto.449({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @zot.248({ i64, { i32, i32 } }* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret { i64, { i32, i32 } }* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.eggs.70* @spam.404(%struct.quux.203* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.quux.203* %arg to { i64*, i64 }*
%tmp1 = call %struct.eggs.70* @widget.480({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @zot.257(%struct.eggs.70* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.eggs.70* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.76* @hoge.405(%struct.hoge.204* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.hoge.204* %arg to { i64*, i64 }*
%tmp1 = call %struct.widget.76* @barney.459({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @eggs.266(%struct.widget.76* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.widget.76* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.baz.67* @quux.406(%struct.blam.205* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.blam.205* %arg to { i64*, i64 }*
%tmp1 = call %struct.baz.67* @blam.457({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @barney.275(%struct.baz.67* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.baz.67* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.84* @wombat.407(%struct.snork.206* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.snork.206* %arg to { i64*, i64 }*
%tmp1 = call %struct.widget.84* @pluto.473({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @barney.258(%struct.widget.84* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.widget.84* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i32, i32 }* @spam.408(%struct.blam.207* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.blam.207* %arg to { i32*, i64 }*
%tmp1 = call { i32, i32 }* @bar.455({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @hoge.274({ i32, i32 }* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret { i32, i32 }* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i8* @quux.409(%struct.bar.30* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.bar.30* %arg to { i8*, i64 }*
%tmp1 = call i8* @wibble.466({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @bar.278(i8* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret i8* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32* @hoge.410(%struct.hoge.208* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.hoge.208* %arg to { i32*, i64 }*
%tmp1 = call i32* @wombat.482({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @blam.270(i32* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret i32* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i8* @zot.411(%struct.spam.28* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.spam.28* %arg to { i8*, i64 }*
%tmp1 = call i8* @wibble.463({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @barney.277(i8* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret i8* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.ham.85* @eggs.412(%struct.wombat.111* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.wombat.111* %arg to { i64*, i64 }*
%tmp1 = call %struct.ham.85* @wibble.481({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @snork.260(%struct.ham.85* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.ham.85* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32* @wibble.413(%struct.wobble.209* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.wobble.209* %arg to { i32*, i64 }*
%tmp1 = call i32* @wibble.469({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @wombat.249(i32* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret i32* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64** @quux.414(%struct.bar.171* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.bar.171* %arg to { i64*, i64 }*
%tmp1 = call i64** @blam.478({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @barney.253(i64** %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret i64** %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.snork.46* @wombat.415(%struct.zot.42* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.zot.42* %arg to { i64*, i64 }*
%tmp1 = call %struct.snork.46* @bar.456({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @ham.256(%struct.snork.46* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret %struct.snork.46* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64** @blam.416(%struct.wibble.170* noalias align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.wibble.170* %arg to { i64*, i64 }*
%tmp1 = call i64** @bar.448({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @baz.265(i64** %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret i64** %tmp1
}
; Function Attrs: nonlazybind uwtable
define internal void @foo.417(%struct.spam.28* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call i64 @eggs.429(%struct.spam.28* noalias readonly align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.spam.28, %struct.spam.28* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = icmp ugt i64 %tmp, %tmp3
br i1 %tmp4, label %bb6, label %bb5
bb5: ; preds = %bb6, %bb
ret void
bb6: ; preds = %bb
%tmp7 = bitcast %struct.spam.28* %arg to { i8*, i64 }*
call void @wibble.562({ i8*, i64 }* noalias align 8 dereferenceable(16) %tmp7, i64 %tmp3)
br label %bb5
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @baz.418(%struct.bar.30* noalias align 8 dereferenceable(24) %arg, [0 x i8]* %arg1, i64 %arg2) unnamed_addr #0 {
bb:
call void @snork.428(%struct.bar.30* noalias align 8 dereferenceable(24) %arg, i64 %arg2)
%tmp = call i64 @pluto.423(%struct.bar.30* noalias readonly align 8 dereferenceable(24) %arg)
%tmp5 = bitcast [0 x i8]* %arg1 to i8*
%tmp6 = call i8* @quux.409(%struct.bar.30* noalias align 8 dereferenceable(24) %arg)
%tmp8 = call i8* @wombat.200(i8* %tmp6, i64 %tmp)
call void @baz.18(i8* %tmp5, i8* %tmp8, i64 %arg2)
%tmp11 = getelementptr inbounds %struct.bar.30, %struct.bar.30* %arg, i32 0, i32 1
%tmp13 = load i64, i64* %tmp11, align 8
%tmp14 = add i64 %tmp13, %arg2
store i64 %tmp14, i64* %tmp11, align 8
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden { [0 x i8]*, i64 } @widget.419(%struct.spam.28* noalias nocapture dereferenceable(24) %arg) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp3 = alloca { i8*, i64 }, align 8
%tmp4 = alloca %struct.spam.28, align 8
%tmp5 = alloca %struct.wibble, align 8
invoke void @foo.417(%struct.spam.28* noalias align 8 dereferenceable(24) %arg)
to label %bb6 unwind label %bb14
bb6: ; preds = %bb
%tmp7 = bitcast %struct.wibble* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp7)
%tmp8 = bitcast %struct.spam.28* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp8)
%tmp10 = bitcast %struct.spam.28* %arg to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %tmp8, i8* align 8 %tmp10, i64 24, i1 false)
invoke void @wobble.25(%struct.wibble* noalias nocapture sret(%struct.wibble) dereferenceable(24) %tmp5, %struct.spam.28* noalias nocapture dereferenceable(24) %tmp4)
to label %bb21 unwind label %bb14
bb11: ; preds = %bb59, %bb35, %bb14
%tmp.sroa.6.0 = phi i32 [ %tmp39, %bb59 ], [ %tmp39, %bb35 ], [ %tmp18, %bb14 ]
%tmp.sroa.0.0 = phi i8* [ %tmp38, %bb59 ], [ %tmp38, %bb35 ], [ %tmp17, %bb14 ]
%tmp1.0 = phi i8 [ 0, %bb59 ], [ 0, %bb35 ], [ %tmp1.1, %bb14 ]
%tmp13 = trunc i8 %tmp1.0 to i1
br i1 %tmp13, label %bb68, label %bb60
bb14: ; preds = %bb25, %bb21, %bb6, %bb
%tmp1.1 = phi i8 [ 0, %bb25 ], [ 0, %bb21 ], [ 0, %bb6 ], [ 1, %bb ]
%tmp15 = landingpad { i8*, i32 }
cleanup
%tmp17 = extractvalue { i8*, i32 } %tmp15, 0
%tmp18 = extractvalue { i8*, i32 } %tmp15, 1
br label %bb11
bb21: ; preds = %bb6
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp8)
%tmp23 = bitcast { i8*, i64 }* %tmp3 to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %tmp23)
%tmp24 = invoke align 8 dereferenceable(24) %struct.spam.28* @blam.536(%struct.wibble* noalias readonly align 8 dereferenceable(24) %tmp5)
to label %bb25 unwind label %bb14
bb25: ; preds = %bb21
%tmp26 = bitcast %struct.spam.28* %tmp24 to { i8*, i64 }*
%tmp27 = invoke { i8*, i64 } @foo.100({ i8*, i64 }* %tmp26)
to label %bb28 unwind label %bb14
bb28: ; preds = %bb25
%tmp27.fca.0.extract = extractvalue { i8*, i64 } %tmp27, 0
%tmp27.fca.0.gep = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp3, i32 0, i32 0
store i8* %tmp27.fca.0.extract, i8** %tmp27.fca.0.gep, align 8
%tmp27.fca.1.extract = extractvalue { i8*, i64 } %tmp27, 1
%tmp27.fca.1.gep = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp3, i32 0, i32 1
store i64 %tmp27.fca.1.extract, i64* %tmp27.fca.1.gep, align 8
%tmp29 = invoke align 8 dereferenceable(24) %struct.spam.28* @blam.536(%struct.wibble* noalias readonly align 8 dereferenceable(24) %tmp5)
to label %bb30 unwind label %bb35
bb30: ; preds = %bb28
%tmp31 = invoke i64 @wobble.422(%struct.spam.28* noalias readonly align 8 dereferenceable(24) %tmp29)
to label %bb42 unwind label %bb35
bb35: ; preds = %bb48, %bb42, %bb30, %bb28
%tmp2.0 = phi i8 [ 0, %bb48 ], [ 0, %bb42 ], [ 1, %bb30 ], [ 1, %bb28 ]
%tmp36 = landingpad { i8*, i32 }
cleanup
%tmp38 = extractvalue { i8*, i32 } %tmp36, 0
%tmp39 = extractvalue { i8*, i32 } %tmp36, 1
%tmp34 = trunc i8 %tmp2.0 to i1
br i1 %tmp34, label %bb59, label %bb11
bb42: ; preds = %bb30
%tmp44 = load i8*, i8** %tmp27.fca.0.gep, align 8, !nonnull !6
%tmp46 = load i64, i64* %tmp27.fca.1.gep, align 8
%tmp47 = invoke { [0 x i8]*, i64 } @quux.563(i8* nonnull %tmp44, i64 %tmp46, i64 %tmp31)
to label %bb48 unwind label %bb35
bb48: ; preds = %bb42
%tmp49 = extractvalue { [0 x i8]*, i64 } %tmp47, 0
%tmp50 = extractvalue { [0 x i8]*, i64 } %tmp47, 1
%tmp51 = invoke { [0 x i8]*, i64 } @snork.443([0 x i8]* noalias nonnull align 1 %tmp49, i64 %tmp50)
to label %bb52 unwind label %bb35
bb52: ; preds = %bb48
%tmp53 = extractvalue { [0 x i8]*, i64 } %tmp51, 0
%tmp54 = extractvalue { [0 x i8]*, i64 } %tmp51, 1
call void @llvm.lifetime.end.p0i8(i64 16, i8* %tmp23)
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp7)
ret { [0 x i8]*, i64 } %tmp51
bb59: ; preds = %bb35
call void @blam.194({ i8*, i64 }* %tmp3) #13
br label %bb11
bb60: ; preds = %bb68, %bb11
%tmp66 = insertvalue { i8*, i32 } undef, i8* %tmp.sroa.0.0, 0
%tmp67 = insertvalue { i8*, i32 } %tmp66, i32 %tmp.sroa.6.0, 1
resume { i8*, i32 } %tmp67
bb68: ; preds = %bb11
call void @wibble.130(%struct.spam.28* %arg) #13
br label %bb60
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @zot.420(%struct.spam.28* noalias nocapture sret(%struct.spam.28) dereferenceable(24) %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = call { i8*, i64 } @baz.444(i64 %arg1)
%tmp2 = extractvalue { i8*, i64 } %tmp, 0
%tmp3 = extractvalue { i8*, i64 } %tmp, 1
%tmp5 = bitcast %struct.spam.28* %arg to { i8*, i64 }*
%tmp6 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp5, i32 0, i32 0
store i8* %tmp2, i8** %tmp6, align 8
%tmp7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp5, i32 0, i32 1
store i64 %tmp3, i64* %tmp7, align 8
%tmp8 = getelementptr inbounds %struct.spam.28, %struct.spam.28* %arg, i32 0, i32 1
store i64 0, i64* %tmp8, align 8
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @pluto.421(%struct.bar.30* noalias align 8 dereferenceable(24) %arg, [0 x i8]* noalias nonnull readonly align 1 %arg1, i64 %arg2) unnamed_addr #1 {
bb:
%tmp = call { i8*, i8* } @quux.372([0 x i8]* noalias nonnull readonly align 1 %arg1, i64 %arg2)
%tmp3 = extractvalue { i8*, i8* } %tmp, 0
%tmp4 = extractvalue { i8*, i8* } %tmp, 1
call void @pluto(%struct.bar.30* noalias align 8 dereferenceable(24) %arg, i8* nonnull %tmp3, i8* %tmp4)
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64 @wobble.422(%struct.spam.28* noalias readonly align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = getelementptr inbounds %struct.spam.28, %struct.spam.28* %arg, i32 0, i32 1
%tmp1 = load i64, i64* %tmp, align 8
ret i64 %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64 @pluto.423(%struct.bar.30* noalias readonly align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = getelementptr inbounds %struct.bar.30, %struct.bar.30* %arg, i32 0, i32 1
%tmp1 = load i64, i64* %tmp, align 8
ret i64 %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i8* @eggs.424(%struct.bar.30* noalias readonly align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.bar.30* %arg to { i8*, i64 }*
%tmp1 = call i8* @wibble.466({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @bar.278(i8* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret i8* %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i64*, i64 }* @spam.425(%struct.zot.210* noalias readonly align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.zot.210* %arg to { i64*, i64 }*
%tmp1 = call { i64*, i64 }* @hoge.467({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp3 = call zeroext i1 @snork.271({ i64*, i64 }* %tmp1)
%tmp5 = xor i1 %tmp3, true
call void @llvm.assume(i1 %tmp5)
ret { i64*, i64 }* %tmp1
}
; Function Attrs: nonlazybind uwtable
define hidden void @widget.426(%struct.zot.210* noalias align 8 dereferenceable(24) %arg, i64 %arg1) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.zot.210* %arg to { i64*, i64 }*
%tmp2 = getelementptr inbounds %struct.zot.210, %struct.zot.210* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
call void @wibble.486({ i64*, i64 }* noalias align 8 dereferenceable(16) %tmp, i64 %tmp3, i64 %arg1)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @bar.427(%struct.spam.28* noalias align 8 dereferenceable(24) %arg, i64 %arg1) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.spam.28* %arg to { i8*, i64 }*
%tmp2 = getelementptr inbounds %struct.spam.28, %struct.spam.28* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
call void @quux.484({ i8*, i64 }* noalias align 8 dereferenceable(16) %tmp, i64 %tmp3, i64 %arg1)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @snork.428(%struct.bar.30* noalias align 8 dereferenceable(24) %arg, i64 %arg1) unnamed_addr #1 {
bb:
%tmp = bitcast %struct.bar.30* %arg to { i8*, i64 }*
%tmp2 = getelementptr inbounds %struct.bar.30, %struct.bar.30* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
call void @ham.485({ i8*, i64 }* noalias align 8 dereferenceable(16) %tmp, i64 %tmp3, i64 %arg1)
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64 @eggs.429(%struct.spam.28* noalias readonly align 8 dereferenceable(24) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast %struct.spam.28* %arg to { i8*, i64 }*
%tmp1 = call i64 @ham.487({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
ret i64 %tmp1
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal align 8 dereferenceable(48) %struct.pluto.157* @foo.430(i64** noalias readonly align 8 dereferenceable(8) %arg) unnamed_addr #0 {
bb:
%tmp = call align 8 dereferenceable(48) %struct.pluto.157* @zot.340(i64** noalias readonly align 8 dereferenceable(8) %arg)
ret %struct.pluto.157* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal align 8 dereferenceable(232) %struct.baz.172* @ham.431(i64** noalias readonly align 8 dereferenceable(8) %arg) unnamed_addr #0 {
bb:
%tmp = call align 8 dereferenceable(232) %struct.baz.172* @hoge.338(i64** noalias readonly align 8 dereferenceable(8) %arg)
ret %struct.baz.172* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal align 8 dereferenceable(88) %struct.pluto.164* @wobble.432(i64** noalias readonly align 8 dereferenceable(8) %arg) unnamed_addr #0 {
bb:
%tmp = call align 8 dereferenceable(88) %struct.pluto.164* @eggs.337(i64** noalias readonly align 8 dereferenceable(8) %arg)
ret %struct.pluto.164* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal align 8 dereferenceable(96) %struct.foo.168* @snork.433(i64** noalias readonly align 8 dereferenceable(8) %arg) unnamed_addr #0 {
bb:
%tmp = call align 8 dereferenceable(96) %struct.foo.168* @zot.339(i64** noalias readonly align 8 dereferenceable(8) %arg)
ret %struct.foo.168* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @wibble.434(i8* %arg, i64 %arg1, i64 %arg2) unnamed_addr #0 {
bb:
%tmp = alloca { i64, i64 }, align 8
%tmp3 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp, i32 0, i32 0
store i64 %arg1, i64* %tmp3, align 8
%tmp4 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp, i32 0, i32 1
store i64 %arg2, i64* %tmp4, align 8
%tmp5 = call i64 @eggs.370({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp7 = call i64 @baz.371({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
call void @quux.564(i8* %arg, i64 %tmp5, i64 %tmp7) #14
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @barney.435(i32* nonnull %arg, i64 %arg1) unnamed_addr #0 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp4 = alloca %struct.quux.31, align 1
%tmp5 = alloca { i32*, i64 }, align 8
%tmp6 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %tmp5, i32 0, i32 0
store i32* %arg, i32** %tmp6, align 8
%tmp7 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %tmp5, i32 0, i32 1
store i64 %arg1, i64* %tmp7, align 8
%tmp8 = invoke { [0 x i32]*, i64 } @pluto.183({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp5)
to label %bb9 unwind label %bb17
bb9: ; preds = %bb
%tmp11 = extractvalue { [0 x i32]*, i64 } %tmp8, 1
%tmp13 = mul i64 %tmp11, 4
%tmp25 = invoke { [0 x i32]*, i64 } @pluto.183({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp5)
to label %bb26 unwind label %bb17
bb17: ; preds = %bb45, %bb43, %bb35, %bb26, %bb9, %bb
%tmp18 = landingpad { i8*, i32 }
cleanup
%tmp20 = extractvalue { i8*, i32 } %tmp18, 0
%tmp21 = extractvalue { i8*, i32 } %tmp18, 1
resume { i8*, i32 } %tmp18
bb26: ; preds = %bb9
%tmp28 = extractvalue { [0 x i32]*, i64 } %tmp25, 1
%tmp34 = invoke { i64, i64 } @hoge.369(i64 %tmp13, i64 4)
to label %bb35 unwind label %bb17
bb35: ; preds = %bb26
%tmp36 = extractvalue { i64, i64 } %tmp34, 0
%tmp37 = extractvalue { i64, i64 } %tmp34, 1
%tmp39 = load i32*, i32** %tmp6, align 8, !nonnull !6
%tmp41 = load i64, i64* %tmp7, align 8
%tmp42 = invoke nonnull i8* @widget.136(i32* nonnull %tmp39, i64 %tmp41)
to label %bb43 unwind label %bb17
bb43: ; preds = %bb35
%tmp44 = invoke nonnull i8* @foo.565(i8* nonnull %tmp42)
to label %bb45 unwind label %bb17
bb45: ; preds = %bb43
invoke void @wibble.488(%struct.quux.31* noalias nonnull readonly align 1 %tmp4, i8* nonnull %tmp44, i64 %tmp36, i64 %tmp37)
to label %bb55 unwind label %bb17
bb55: ; preds = %bb45
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @quux.436(i32* nonnull %arg, i64 %arg1) unnamed_addr #0 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp4 = alloca %struct.quux.31, align 1
%tmp5 = alloca { i32*, i64 }, align 8
%tmp6 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %tmp5, i32 0, i32 0
store i32* %arg, i32** %tmp6, align 8
%tmp7 = getelementptr inbounds { i32*, i64 }, { i32*, i64 }* %tmp5, i32 0, i32 1
store i64 %arg1, i64* %tmp7, align 8
%tmp8 = invoke { [0 x i32]*, i64 } @quux.184({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp5)
to label %bb9 unwind label %bb17
bb9: ; preds = %bb
%tmp11 = extractvalue { [0 x i32]*, i64 } %tmp8, 1
%tmp13 = mul i64 %tmp11, 4
%tmp25 = invoke { [0 x i32]*, i64 } @quux.184({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp5)
to label %bb26 unwind label %bb17
bb17: ; preds = %bb45, %bb43, %bb35, %bb26, %bb9, %bb
%tmp18 = landingpad { i8*, i32 }
cleanup
%tmp20 = extractvalue { i8*, i32 } %tmp18, 0
%tmp21 = extractvalue { i8*, i32 } %tmp18, 1
resume { i8*, i32 } %tmp18
bb26: ; preds = %bb9
%tmp28 = extractvalue { [0 x i32]*, i64 } %tmp25, 1
%tmp34 = invoke { i64, i64 } @hoge.369(i64 %tmp13, i64 4)
to label %bb35 unwind label %bb17
bb35: ; preds = %bb26
%tmp36 = extractvalue { i64, i64 } %tmp34, 0
%tmp37 = extractvalue { i64, i64 } %tmp34, 1
%tmp39 = load i32*, i32** %tmp6, align 8, !nonnull !6
%tmp41 = load i64, i64* %tmp7, align 8
%tmp42 = invoke nonnull i8* @pluto.137(i32* nonnull %tmp39, i64 %tmp41)
to label %bb43 unwind label %bb17
bb43: ; preds = %bb35
%tmp44 = invoke nonnull i8* @foo.565(i8* nonnull %tmp42)
to label %bb45 unwind label %bb17
bb45: ; preds = %bb43
invoke void @wibble.488(%struct.quux.31* noalias nonnull readonly align 1 %tmp4, i8* nonnull %tmp44, i64 %tmp36, i64 %tmp37)
to label %bb55 unwind label %bb17
bb55: ; preds = %bb45
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @foo.437(i8* nonnull %arg, i64 %arg1) unnamed_addr #0 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp4 = alloca %struct.quux.31, align 1
%tmp5 = alloca { i8*, i64 }, align 8
%tmp6 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp5, i32 0, i32 0
store i8* %arg, i8** %tmp6, align 8
%tmp7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp5, i32 0, i32 1
store i64 %arg1, i64* %tmp7, align 8
%tmp8 = invoke { [0 x i8]*, i64 } @wobble.182({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp5)
to label %bb9 unwind label %bb17
bb9: ; preds = %bb
%tmp11 = extractvalue { [0 x i8]*, i64 } %tmp8, 1
%tmp25 = invoke { [0 x i8]*, i64 } @wobble.182({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp5)
to label %bb26 unwind label %bb17
bb17: ; preds = %bb45, %bb43, %bb35, %bb26, %bb9, %bb
%tmp18 = landingpad { i8*, i32 }
cleanup
%tmp20 = extractvalue { i8*, i32 } %tmp18, 0
%tmp21 = extractvalue { i8*, i32 } %tmp18, 1
resume { i8*, i32 } %tmp18
bb26: ; preds = %bb9
%tmp28 = extractvalue { [0 x i8]*, i64 } %tmp25, 1
%tmp34 = invoke { i64, i64 } @hoge.369(i64 %tmp11, i64 1)
to label %bb35 unwind label %bb17
bb35: ; preds = %bb26
%tmp36 = extractvalue { i64, i64 } %tmp34, 0
%tmp37 = extractvalue { i64, i64 } %tmp34, 1
%tmp39 = load i8*, i8** %tmp6, align 8, !nonnull !6
%tmp41 = load i64, i64* %tmp7, align 8
%tmp42 = invoke nonnull i8* @widget.135(i8* nonnull %tmp39, i64 %tmp41)
to label %bb43 unwind label %bb17
bb43: ; preds = %bb35
%tmp44 = invoke nonnull i8* @foo.565(i8* nonnull %tmp42)
to label %bb45 unwind label %bb17
bb45: ; preds = %bb43
invoke void @wibble.488(%struct.quux.31* noalias nonnull readonly align 1 %tmp4, i8* nonnull %tmp44, i64 %tmp36, i64 %tmp37)
to label %bb55 unwind label %bb17
bb55: ; preds = %bb45
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @ham.438(i8* nonnull %arg, i64 %arg1) unnamed_addr #0 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp4 = alloca %struct.quux.31, align 1
%tmp5 = alloca { i8*, i64 }, align 8
%tmp6 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp5, i32 0, i32 0
store i8* %arg, i8** %tmp6, align 8
%tmp7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp5, i32 0, i32 1
store i64 %arg1, i64* %tmp7, align 8
%tmp8 = invoke { [0 x i8]*, i64 } @baz.181({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp5)
to label %bb9 unwind label %bb17
bb9: ; preds = %bb
%tmp11 = extractvalue { [0 x i8]*, i64 } %tmp8, 1
%tmp25 = invoke { [0 x i8]*, i64 } @baz.181({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp5)
to label %bb26 unwind label %bb17
bb17: ; preds = %bb45, %bb43, %bb35, %bb26, %bb9, %bb
%tmp18 = landingpad { i8*, i32 }
cleanup
%tmp20 = extractvalue { i8*, i32 } %tmp18, 0
%tmp21 = extractvalue { i8*, i32 } %tmp18, 1
resume { i8*, i32 } %tmp18
bb26: ; preds = %bb9
%tmp28 = extractvalue { [0 x i8]*, i64 } %tmp25, 1
%tmp34 = invoke { i64, i64 } @hoge.369(i64 %tmp11, i64 1)
to label %bb35 unwind label %bb17
bb35: ; preds = %bb26
%tmp36 = extractvalue { i64, i64 } %tmp34, 0
%tmp37 = extractvalue { i64, i64 } %tmp34, 1
%tmp39 = load i8*, i8** %tmp6, align 8, !nonnull !6
%tmp41 = load i64, i64* %tmp7, align 8
%tmp42 = invoke nonnull i8* @spam.134(i8* nonnull %tmp39, i64 %tmp41)
to label %bb43 unwind label %bb17
bb43: ; preds = %bb35
%tmp44 = invoke nonnull i8* @foo.565(i8* nonnull %tmp42)
to label %bb45 unwind label %bb17
bb45: ; preds = %bb43
invoke void @wibble.488(%struct.quux.31* noalias nonnull readonly align 1 %tmp4, i8* nonnull %tmp44, i64 %tmp36, i64 %tmp37)
to label %bb55 unwind label %bb17
bb55: ; preds = %bb45
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @foo.439([0 x i8]* %arg, i64 %arg1) unnamed_addr #0 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp3 = invoke { i8*, i64 } @wombat.132([0 x i8]* %arg, i64 %arg1)
to label %bb4 unwind label %bb18
bb4: ; preds = %bb
%tmp5 = extractvalue { i8*, i64 } %tmp3, 0
%tmp6 = extractvalue { i8*, i64 } %tmp3, 1
%0 = bitcast i8* %tmp5 to [0 x i8]*
%1 = icmp ne [0 x i8]* %0, null
call void @llvm.assume(i1 %1)
%tmp15 = insertvalue { [0 x i8]*, i64 } undef, [0 x i8]* %0, 0
%tmp16 = insertvalue { [0 x i8]*, i64 } %tmp15, i64 %tmp6, 1
ret { [0 x i8]*, i64 } %tmp16
bb18: ; preds = %bb
%tmp19 = landingpad { i8*, i32 }
cleanup
%tmp21 = extractvalue { i8*, i32 } %tmp19, 0
%tmp22 = extractvalue { i8*, i32 } %tmp19, 1
resume { i8*, i32 } %tmp19
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i8*, i64 } @spam.440([0 x i8]* noalias nonnull align 1 %arg, i64 %arg1) unnamed_addr #0 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp4 = alloca { [0 x i8]*, i64 }, align 8
%tmp5 = getelementptr inbounds { [0 x i8]*, i64 }, { [0 x i8]*, i64 }* %tmp4, i32 0, i32 0
store [0 x i8]* %arg, [0 x i8]** %tmp5, align 8
%tmp6 = getelementptr inbounds { [0 x i8]*, i64 }, { [0 x i8]*, i64 }* %tmp4, i32 0, i32 1
store i64 %arg1, i64* %tmp6, align 8
%tmp7 = bitcast { [0 x i8]*, i64 }* %tmp4 to %struct.quux.31*
invoke void @wibble.101(%struct.quux.31* %tmp7)
to label %bb8 unwind label %bb17
bb8: ; preds = %bb
%tmp10 = load [0 x i8]*, [0 x i8]** %tmp5, align 8, !nonnull !6
%tmp12 = load i64, i64* %tmp6, align 8
%tmp13 = invoke { [0 x i8]*, i64 } @quux.442([0 x i8]* noalias nonnull align 1 %tmp10, i64 %tmp12)
to label %bb24 unwind label %bb29
bb14: ; preds = %bb29, %bb17
%tmp2.0 = phi i8 [ 0, %bb29 ], [ 1, %bb17 ]
%tmp.sroa.0.0 = phi i8* [ %tmp32, %bb29 ], [ %tmp20, %bb17 ]
%tmp.sroa.6.0 = phi i32 [ %tmp33, %bb29 ], [ %tmp21, %bb17 ]
%tmp16 = trunc i8 %tmp2.0 to i1
br i1 %tmp16, label %bb58, label %bb50
bb17: ; preds = %bb
%tmp18 = landingpad { i8*, i32 }
cleanup
%tmp20 = extractvalue { i8*, i32 } %tmp18, 0
%tmp21 = extractvalue { i8*, i32 } %tmp18, 1
br label %bb14
bb24: ; preds = %bb8
%tmp25 = extractvalue { [0 x i8]*, i64 } %tmp13, 0
%tmp26 = extractvalue { [0 x i8]*, i64 } %tmp13, 1
%tmp27 = invoke { i8*, i64 } @wobble.537([0 x i8]* noalias nonnull align 1 %tmp25, i64 %tmp26)
to label %bb36 unwind label %bb29
bb29: ; preds = %bb24, %bb8
%tmp30 = landingpad { i8*, i32 }
cleanup
%tmp32 = extractvalue { i8*, i32 } %tmp30, 0
%tmp33 = extractvalue { i8*, i32 } %tmp30, 1
br label %bb14
bb36: ; preds = %bb24
%tmp37 = extractvalue { i8*, i64 } %tmp27, 0
%tmp38 = extractvalue { i8*, i64 } %tmp27, 1
%0 = icmp ne i8* %tmp37, null
call void @llvm.assume(i1 %0)
ret { i8*, i64 } %tmp27
bb50: ; preds = %bb58, %bb14
%tmp56 = insertvalue { i8*, i32 } undef, i8* %tmp.sroa.0.0, 0
%tmp57 = insertvalue { i8*, i32 } %tmp56, i32 %tmp.sroa.6.0, 1
resume { i8*, i32 } %tmp57
bb58: ; preds = %bb14
call void @spam.44({ [0 x i8]*, i64 }* %tmp4) #13
br label %bb50
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i8*, i64 } @zot.441([0 x i8]* noalias nonnull align 1 %arg, i64 %arg1) unnamed_addr #0 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp3 = call { i8*, i64 } @spam.440([0 x i8]* noalias nonnull align 1 %arg, i64 %arg1)
%tmp4 = extractvalue { i8*, i64 } %tmp3, 0
%tmp5 = extractvalue { i8*, i64 } %tmp3, 1
%tmp7 = invoke { [0 x i8]*, i64 } @bar.180(i8* nonnull %tmp4, i64 %tmp5)
to label %bb8 unwind label %bb24
bb8: ; preds = %bb
%tmp9 = extractvalue { [0 x i8]*, i64 } %tmp7, 0
%tmp10 = extractvalue { [0 x i8]*, i64 } %tmp7, 1
%0 = bitcast [0 x i8]* %tmp9 to i8*
%tmp21 = insertvalue { i8*, i64 } undef, i8* %0, 0
%tmp22 = insertvalue { i8*, i64 } %tmp21, i64 %tmp10, 1
ret { i8*, i64 } %tmp22
bb24: ; preds = %bb
%tmp25 = landingpad { i8*, i32 }
cleanup
%tmp27 = extractvalue { i8*, i32 } %tmp25, 0
%tmp28 = extractvalue { i8*, i32 } %tmp25, 1
resume { i8*, i32 } %tmp25
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @quux.442([0 x i8]* noalias nonnull align 1 %arg, i64 %arg1) unnamed_addr #0 {
bb:
%tmp = alloca { i8*, i64 }, align 8
%tmp2 = bitcast { i8*, i64 }* %tmp to i8*
call void @llvm.lifetime.start.p0i8(i64 16, i8* %tmp2)
%tmp3 = call { i8*, i64 } @pluto.26([0 x i8]* noalias nonnull align 1 %arg, i64 %arg1)
%tmp3.fca.0.extract = extractvalue { i8*, i64 } %tmp3, 0
%tmp3.fca.0.gep = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp, i32 0, i32 0
store i8* %tmp3.fca.0.extract, i8** %tmp3.fca.0.gep, align 8
%tmp3.fca.1.extract = extractvalue { i8*, i64 } %tmp3, 1
%tmp3.fca.1.gep = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp, i32 0, i32 1
store i64 %tmp3.fca.1.extract, i64* %tmp3.fca.1.gep, align 8
%tmp5 = call align 8 dereferenceable(16) { [0 x i8]*, i64 }* @hoge.535({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp7 = bitcast { [0 x i8]*, i64 }* %tmp5 to { i8*, i64 }*
%tmp8 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp7, i32 0, i32 0
%tmp9 = load i8*, i8** %tmp8, align 8, !nonnull !6
%tmp10 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %tmp7, i32 0, i32 1
%tmp11 = load i64, i64* %tmp10, align 8
%tmp12 = call { [0 x i8]*, i64 } @bar.180(i8* nonnull %tmp9, i64 %tmp11)
%tmp13 = extractvalue { [0 x i8]*, i64 } %tmp12, 0
%tmp14 = extractvalue { [0 x i8]*, i64 } %tmp12, 1
call void @llvm.lifetime.end.p0i8(i64 16, i8* %tmp2)
ret { [0 x i8]*, i64 } %tmp12
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i8]*, i64 } @snork.443([0 x i8]* noalias nonnull align 1 %arg, i64 %arg1) unnamed_addr #0 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp3 = call { i8*, i64 } @zot.441([0 x i8]* noalias nonnull align 1 %arg, i64 %arg1)
%tmp4 = extractvalue { i8*, i64 } %tmp3, 0
%tmp5 = extractvalue { i8*, i64 } %tmp3, 1
%tmp7 = bitcast i8* %tmp4 to [0 x i8]*
%tmp8 = invoke { [0 x i8]*, i64 } @foo.439([0 x i8]* %tmp7, i64 %tmp5)
to label %bb9 unwind label %bb17
bb9: ; preds = %bb
%tmp10 = extractvalue { [0 x i8]*, i64 } %tmp8, 0
%tmp11 = extractvalue { [0 x i8]*, i64 } %tmp8, 1
ret { [0 x i8]*, i64 } %tmp8
bb17: ; preds = %bb
%tmp18 = landingpad { i8*, i32 }
cleanup
%tmp20 = extractvalue { i8*, i32 } %tmp18, 0
%tmp21 = extractvalue { i8*, i32 } %tmp18, 1
resume { i8*, i32 } %tmp18
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i8*, i64 } @baz.444(i64 %arg) unnamed_addr #0 {
bb:
%tmp3 = call { i8*, i64 } @ham.566(i64 %arg, i1 zeroext false)
%tmp4 = extractvalue { i8*, i64 } %tmp3, 0
%tmp5 = extractvalue { i8*, i64 } %tmp3, 1
ret { i8*, i64 } %tmp3
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.foo.86* @quux.445({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.foo.86* @snork.169(i64* nonnull %tmp1)
ret %struct.foo.86* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.55* @blam.446({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.widget.55* @wombat.162(i64* nonnull %tmp1)
ret %struct.widget.55* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { [0 x i32]*, i64 }* @ham.447({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call { [0 x i32]*, i64 }* @ham.179(i64* nonnull %tmp1)
ret { [0 x i32]*, i64 }* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64** @bar.448({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call i64** @spam.168(i64* nonnull %tmp1)
ret i64** %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i64, { i32, i32 } }* @pluto.449({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call { i64, { i32, i32 } }* @eggs.177(i64* nonnull %tmp1)
ret { i64, { i32, i32 } }* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.barney.58* @eggs.450({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.barney.58* @widget.155(i64* nonnull %tmp1)
ret %struct.barney.58* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32* @hoge.451({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i32*, i64 }* %arg to i32**
%tmp1 = load i32*, i32** %tmp, align 8, !nonnull !6
%tmp2 = call i32* @barney.149(i32* nonnull %tmp1)
ret i32* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64* @snork.452({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call i64* @wombat.144(i64* nonnull %tmp1)
ret i64* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.pluto.68* @quux.453({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.pluto.68* @baz.143(i64* nonnull %tmp1)
ret %struct.pluto.68* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.wibble.83* @baz.454({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.wibble.83* @blam.145(i64* nonnull %tmp1)
ret %struct.wibble.83* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i32, i32 }* @bar.455({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i32*, i64 }* %arg to i32**
%tmp1 = load i32*, i32** %tmp, align 8, !nonnull !6
%tmp2 = call { i32, i32 }* @ham.157(i32* nonnull %tmp1)
ret { i32, i32 }* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.snork.46* @bar.456({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.snork.46* @spam.171(i64* nonnull %tmp1)
ret %struct.snork.46* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.baz.67* @blam.457({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.baz.67* @ham.151(i64* nonnull %tmp1)
ret %struct.baz.67* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.wombat.88* @quux.458({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.wombat.88* @eggs.138(i64* nonnull %tmp1)
ret %struct.wombat.88* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.76* @barney.459({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.widget.76* @ham.146(i64* nonnull %tmp1)
ret %struct.widget.76* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.66* @snork.460({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i32*, i64 }* %arg to i32**
%tmp1 = load i32*, i32** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.widget.66* @quux.170(i32* nonnull %tmp1)
ret %struct.widget.66* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.foo.62* @spam.461({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i32*, i64 }* %arg to i32**
%tmp1 = load i32*, i32** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.foo.62* @foo.161(i32* nonnull %tmp1)
ret %struct.foo.62* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.eggs* @foo.462({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.eggs* @snork.148(i64* nonnull %tmp1)
ret %struct.eggs* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i8* @wibble.463({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i8*, i64 }* %arg to i8**
%tmp1 = load i8*, i8** %tmp, align 8, !nonnull !6
%tmp2 = call i8* @zot.178(i8* nonnull %tmp1)
ret i8* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.73* @widget.464({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.widget.73* @wibble.153(i64* nonnull %tmp1)
ret %struct.widget.73* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.wibble.71* @blam.465({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.wibble.71* @quux.139(i64* nonnull %tmp1)
ret %struct.wibble.71* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i8* @wibble.466({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i8*, i64 }* %arg to i8**
%tmp1 = load i8*, i8** %tmp, align 8, !nonnull !6
%tmp2 = call i8* @snork.165(i8* nonnull %tmp1)
ret i8* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i64*, i64 }* @hoge.467({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call { i64*, i64 }* @wombat.166(i64* nonnull %tmp1)
ret { i64*, i64 }* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.snork.47* @pluto.468({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.snork.47* @zot.163(i64* nonnull %tmp1)
ret %struct.snork.47* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32* @wibble.469({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i32*, i64 }* %arg to i32**
%tmp1 = load i32*, i32** %tmp, align 8, !nonnull !6
%tmp2 = call i32* @snork.164(i32* nonnull %tmp1)
ret i32* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.ham.77* @baz.470({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.ham.77* @baz.154(i64* nonnull %tmp1)
ret %struct.ham.77* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.wibble.61* @hoge.471({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.wibble.61* @foo.140(i64* nonnull %tmp1)
ret %struct.wibble.61* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.zot.82* @widget.472({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.zot.82* @baz.152(i64* nonnull %tmp1)
ret %struct.zot.82* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.widget.84* @pluto.473({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.widget.84* @blam.167(i64* nonnull %tmp1)
ret %struct.widget.84* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i16* @ham.474({ i16*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i16*, i64 }* %arg to i16**
%tmp1 = load i16*, i16** %tmp, align 8, !nonnull !6
%tmp2 = call i16* @foo.147(i16* nonnull %tmp1)
ret i16* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.snork.52* @widget.475({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.snork.52* @foo.159(i64* nonnull %tmp1)
ret %struct.snork.52* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.blam.65* @bar.476({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.blam.65* @snork.176(i64* nonnull %tmp1)
ret %struct.blam.65* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.blam.75* @foo.477({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.blam.75* @widget.160(i64* nonnull %tmp1)
ret %struct.blam.75* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i64** @blam.478({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call i64** @bar.158(i64* nonnull %tmp1)
ret i64** %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.zot.57* @spam.479({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.zot.57* @foo.175(i64* nonnull %tmp1)
ret %struct.zot.57* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.eggs.70* @widget.480({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.eggs.70* @hoge.150(i64* nonnull %tmp1)
ret %struct.eggs.70* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.ham.85* @wibble.481({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.ham.85* @baz.142(i64* nonnull %tmp1)
ret %struct.ham.85* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32* @wombat.482({ i32*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i32*, i64 }* %arg to i32**
%tmp1 = load i32*, i32** %tmp, align 8, !nonnull !6
%tmp2 = call i32* @quux.173(i32* nonnull %tmp1)
ret i32* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal %struct.blam.43* @bar.483({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #0 {
bb:
%tmp = bitcast { i64*, i64 }* %arg to i64**
%tmp1 = load i64*, i64** %tmp, align 8, !nonnull !6
%tmp2 = call %struct.blam.43* @wibble.174(i64* nonnull %tmp1)
ret %struct.blam.43* %tmp2
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @quux.484({ i8*, i64 }* noalias align 8 dereferenceable(16) %arg, i64 %arg1, i64 %arg2) unnamed_addr #0 {
bb:
%tmp = call zeroext i1 @foo.567({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %arg, i64 %arg1, i64 %arg2)
br i1 %tmp, label %bb5, label %bb4
bb4: ; preds = %bb5, %bb
ret void
bb5: ; preds = %bb
call void @foo.568({ i8*, i64 }* noalias align 8 dereferenceable(16) %arg, i64 %arg1, i64 %arg2)
br label %bb4
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @ham.485({ i8*, i64 }* noalias align 8 dereferenceable(16) %arg, i64 %arg1, i64 %arg2) unnamed_addr #0 {
bb:
%tmp = call zeroext i1 @eggs.569({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %arg, i64 %arg1, i64 %arg2)
br i1 %tmp, label %bb5, label %bb4
bb4: ; preds = %bb5, %bb
ret void
bb5: ; preds = %bb
call void @eggs.570({ i8*, i64 }* noalias align 8 dereferenceable(16) %arg, i64 %arg1, i64 %arg2)
br label %bb4
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @wibble.486({ i64*, i64 }* noalias align 8 dereferenceable(16) %arg, i64 %arg1, i64 %arg2) unnamed_addr #0 {
bb:
%tmp = call zeroext i1 @zot.571({ i64*, i64 }* noalias readonly align 8 dereferenceable(16) %arg, i64 %arg1, i64 %arg2)
br i1 %tmp, label %bb5, label %bb4
bb4: ; preds = %bb5, %bb
ret void
bb5: ; preds = %bb
call void @spam.572({ i64*, i64 }* noalias align 8 dereferenceable(16) %arg, i64 %arg1, i64 %arg2)
br label %bb4
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal i64 @ham.487({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #2 {
bb:
%tmp1 = call i64 @foo()
%tmp3 = icmp eq i64 %tmp1, 0
br i1 %tmp3, label %bb4, label %bb5
bb4: ; preds = %bb
br label %bb8
bb5: ; preds = %bb
%tmp6 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %arg, i32 0, i32 1
%tmp7 = load i64, i64* %tmp6, align 8
br label %bb8
bb8: ; preds = %bb5, %bb4
%tmp.0 = phi i64 [ -1, %bb4 ], [ %tmp7, %bb5 ]
ret i64 %tmp.0
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @wibble.488(%struct.quux.31* noalias nonnull readonly align 1 %arg, i8* nonnull %arg1, i64 %arg2, i64 %arg3) unnamed_addr #0 {
bb:
%tmp = alloca { i64, i64 }, align 8
%tmp4 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp, i32 0, i32 0
store i64 %arg2, i64* %tmp4, align 8
%tmp5 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp, i32 0, i32 1
store i64 %arg3, i64* %tmp5, align 8
%tmp6 = call i64 @eggs.370({ i64, i64 }* noalias readonly align 8 dereferenceable(16) %tmp)
%tmp8 = icmp eq i64 %tmp6, 0
br i1 %tmp8, label %bb18, label %bb10
bb10: ; preds = %bb
%tmp11 = call i8* @quux.336(i8* nonnull %arg1)
%tmp14 = load i64, i64* %tmp4, align 8
%tmp16 = load i64, i64* %tmp5, align 8, !range !10
call void @wibble.434(i8* %tmp11, i64 %tmp14, i64 %tmp16)
br label %bb18
bb18: ; preds = %bb, %bb10
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @hoge.489(i64** noalias align 8 dereferenceable(8) %arg) unnamed_addr #0 {
bb:
%tmp2 = call align 8 dereferenceable(48) %struct.pluto.157* @foo.430(i64** noalias readonly align 8 dereferenceable(8) %arg)
%tmp4 = bitcast %struct.pluto.157* %tmp2 to %struct.eggs.158*
%tmp6 = call i64 @wobble.367(%struct.eggs.158* align 8 dereferenceable(8) %tmp4, i64 1, i8 1)
%tmp8 = icmp eq i64 %tmp6, 1
br i1 %tmp8, label %bb9, label %bb12
bb9: ; preds = %bb
call void @snork.368(i8 2)
call void @barney.573(i64** noalias align 8 dereferenceable(8) %arg)
br label %bb12
bb12: ; preds = %bb, %bb9
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @hoge.490(i64** noalias align 8 dereferenceable(8) %arg) unnamed_addr #0 {
bb:
%tmp2 = call align 8 dereferenceable(232) %struct.baz.172* @ham.431(i64** noalias readonly align 8 dereferenceable(8) %arg)
%tmp4 = bitcast %struct.baz.172* %tmp2 to %struct.eggs.158*
%tmp6 = call i64 @wobble.367(%struct.eggs.158* align 8 dereferenceable(8) %tmp4, i64 1, i8 1)
%tmp8 = icmp eq i64 %tmp6, 1
br i1 %tmp8, label %bb9, label %bb12
bb9: ; preds = %bb
call void @snork.368(i8 2)
call void @pluto.574(i64** noalias align 8 dereferenceable(8) %arg)
br label %bb12
bb12: ; preds = %bb, %bb9
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @foo.491(i64** noalias align 8 dereferenceable(8) %arg) unnamed_addr #0 {
bb:
%tmp2 = call align 8 dereferenceable(88) %struct.pluto.164* @wobble.432(i64** noalias readonly align 8 dereferenceable(8) %arg)
%tmp4 = bitcast %struct.pluto.164* %tmp2 to %struct.eggs.158*
%tmp6 = call i64 @wobble.367(%struct.eggs.158* align 8 dereferenceable(8) %tmp4, i64 1, i8 1)
%tmp8 = icmp eq i64 %tmp6, 1
br i1 %tmp8, label %bb9, label %bb12
bb9: ; preds = %bb
call void @snork.368(i8 2)
call void @quux.575(i64** noalias align 8 dereferenceable(8) %arg)
br label %bb12
bb12: ; preds = %bb, %bb9
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @snork.492(i64** noalias align 8 dereferenceable(8) %arg) unnamed_addr #0 {
bb:
%tmp2 = call align 8 dereferenceable(96) %struct.foo.168* @snork.433(i64** noalias readonly align 8 dereferenceable(8) %arg)
%tmp4 = bitcast %struct.foo.168* %tmp2 to %struct.eggs.158*
%tmp6 = call i64 @wobble.367(%struct.eggs.158* align 8 dereferenceable(8) %tmp4, i64 1, i8 1)
%tmp8 = icmp eq i64 %tmp6, 1
br i1 %tmp8, label %bb9, label %bb12
bb9: ; preds = %bb
call void @snork.368(i8 2)
call void @pluto.576(i64** noalias align 8 dereferenceable(8) %arg)
br label %bb12
bb12: ; preds = %bb, %bb9
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @snork.493(%struct.baz.51* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.wombat.88* @pluto.382(%struct.baz.51* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.baz.51, %struct.baz.51* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.wombat.88]*, i64 } @spam.86(%struct.wombat.88* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.wombat.88]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.wombat.88]*, i64 } %tmp4, 1
call void @quux.126([0 x %struct.wombat.88]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @pluto.494(%struct.bar.171* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call i64** @quux.414(%struct.bar.171* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.bar.171, %struct.bar.171* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i64*]*, i64 } @widget.70(i64** %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x i64*]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x i64*]*, i64 } %tmp4, 1
call void @widget.106([0 x i64*]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @spam.495(%struct.wombat.167* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.snork.47* @eggs.402(%struct.wombat.167* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.wombat.167, %struct.wombat.167* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.snork.47]*, i64 } @bar.60(%struct.snork.47* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.snork.47]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.snork.47]*, i64 } %tmp4, 1
call void @hoge.39([0 x %struct.snork.47]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @snork.496(%struct.widget.191* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.widget.66* @widget.384(%struct.widget.191* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.widget.191, %struct.widget.191* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.widget.66]*, i64 } @bar.62(%struct.widget.66* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @widget.497(%struct.foo.93* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call i16* @spam.401(%struct.foo.93* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.foo.93, %struct.foo.93* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i16]*, i64 } @ham.69(i16* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @wobble.498(%struct.zot.60* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.zot.82* @ham.398(%struct.zot.60* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.zot.60, %struct.zot.60* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.zot.82]*, i64 } @quux.79(%struct.zot.82* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.zot.82]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.zot.82]*, i64 } %tmp4, 1
call void @ham.185([0 x %struct.zot.82]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @quux.499(%struct.blam.193* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.barney.58* @foo.388(%struct.blam.193* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.blam.193, %struct.blam.193* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.barney.58]*, i64 } @wombat.56(%struct.barney.58* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.barney.58]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.barney.58]*, i64 } %tmp4, 1
call void @baz.128([0 x %struct.barney.58]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @barney.500(%struct.barney.81* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.snork.52* @wombat.387(%struct.barney.81* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.barney.81, %struct.barney.81* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.snork.52]*, i64 } @ham.52(%struct.snork.52* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.snork.52]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.snork.52]*, i64 } %tmp4, 1
call void @wibble.119([0 x %struct.snork.52]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @pluto.501(%struct.zot.42* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.snork.46* @wombat.415(%struct.zot.42* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.zot.42, %struct.zot.42* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.snork.46]*, i64 } @ham(%struct.snork.46* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.snork.46]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.snork.46]*, i64 } %tmp4, 1
call void @foo.38([0 x %struct.snork.46]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @wibble.502(%struct.ham.190* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.blam.65* @baz.383(%struct.ham.190* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.ham.190, %struct.ham.190* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.blam.65]*, i64 } @foo.61(%struct.blam.65* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @blam.503(%struct.quux.192* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.wibble.71* @wibble.386(%struct.quux.192* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.quux.192, %struct.quux.192* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.wibble.71]*, i64 } @bar.68(%struct.wibble.71* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.wibble.71]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.wibble.71]*, i64 } %tmp4, 1
call void @wombat.124([0 x %struct.wibble.71]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @pluto.504(%struct.bar.30* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call i8* @quux.409(%struct.bar.30* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.bar.30, %struct.bar.30* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i8]*, i64 } @bar.50(i8* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @bar.505(%struct.wibble.202* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.zot.57* @eggs.400(%struct.wibble.202* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.wibble.202, %struct.wibble.202* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.zot.57]*, i64 } @widget.55(%struct.zot.57* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.zot.57]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.zot.57]*, i64 } %tmp4, 1
call void @pluto.191([0 x %struct.zot.57]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @baz.506(%struct.blam.205* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.baz.67* @quux.406(%struct.blam.205* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.blam.205, %struct.blam.205* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.baz.67]*, i64 } @ham.63(%struct.baz.67* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.baz.67]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.baz.67]*, i64 } %tmp4, 1
call void @ham.129([0 x %struct.baz.67]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @barney.507(%struct.hoge.39* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.blam.43* @wobble.397(%struct.hoge.39* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.hoge.39, %struct.hoge.39* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.blam.43]*, i64 } @snork.53(%struct.blam.43* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.blam.43]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.blam.43]*, i64 } %tmp4, 1
call void @bar.37([0 x %struct.blam.43]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @barney.508(%struct.zot.201* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.blam.75* @baz.399(%struct.zot.201* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.zot.201, %struct.zot.201* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.blam.75]*, i64 } @foo.75(%struct.blam.75* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.blam.75]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.blam.75]*, i64 } %tmp4, 1
call void @eggs.189([0 x %struct.blam.75]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @ham.509(%struct.snork.206* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.widget.84* @wombat.407(%struct.snork.206* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.snork.206, %struct.snork.206* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.widget.84]*, i64 } @wobble.82(%struct.widget.84* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.widget.84]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.widget.84]*, i64 } %tmp4, 1
call void @quux.188([0 x %struct.widget.84]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @ham.510(%struct.spam.177* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.wibble.61* @wibble.385(%struct.spam.177* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.spam.177, %struct.spam.177* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.wibble.61]*, i64 } @foo.57(%struct.wibble.61* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @ham.511(%struct.spam.196* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call { [0 x i32]*, i64 }* @snork.392(%struct.spam.196* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.spam.196, %struct.spam.196* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x { [0 x i32]*, i64 }]*, i64 } @wibble.81({ [0 x i32]*, i64 }* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x { [0 x i32]*, i64 }]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x { [0 x i32]*, i64 }]*, i64 } %tmp4, 1
call void @spam.343([0 x { [0 x i32]*, i64 }]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @blam.512(%struct.quux.200* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.wibble.83* @bar.396(%struct.quux.200* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.quux.200, %struct.quux.200* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.wibble.83]*, i64 } @zot.80(%struct.wibble.83* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.wibble.83]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.wibble.83]*, i64 } %tmp4, 1
call void @hoge.346([0 x %struct.wibble.83]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @snork.513(%struct.snork.56* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.widget.73* @wombat.391(%struct.snork.56* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.snork.56, %struct.snork.56* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.widget.73]*, i64 } @wibble.73(%struct.widget.73* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.widget.73]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.widget.73]*, i64 } %tmp4, 1
call void @bar.281([0 x %struct.widget.73]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @wobble.514(%struct.hoge.204* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.widget.76* @hoge.405(%struct.hoge.204* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.hoge.204, %struct.hoge.204* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.widget.76]*, i64 } @spam.76(%struct.widget.76* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.widget.76]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.widget.76]*, i64 } %tmp4, 1
call void @spam.345([0 x %struct.widget.76]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @spam.515(%struct.blam.194* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call i32* @bar.389(%struct.blam.194* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.blam.194, %struct.blam.194* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i32]*, i64 } @widget.72(i32* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @snork.516(%struct.spam.28* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call i8* @zot.411(%struct.spam.28* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.spam.28, %struct.spam.28* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i8]*, i64 } @pluto.71(i8* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @pluto.517(%struct.wibble.170* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call i64** @blam.416(%struct.wibble.170* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.wibble.170, %struct.wibble.170* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i64*]*, i64 } @snork.51(i64** %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x i64*]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x i64*]*, i64 } %tmp4, 1
call void @blam.349([0 x i64*]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @spam.518(%struct.zot.199* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.ham.77* @quux.395(%struct.zot.199* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.zot.199, %struct.zot.199* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.ham.77]*, i64 } @spam.78(%struct.ham.77* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.ham.77]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.ham.77]*, i64 } %tmp4, 1
call void @wibble.118([0 x %struct.ham.77]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @ham.519(%struct.pluto.195* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.pluto.68* @pluto.390(%struct.pluto.195* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.pluto.195, %struct.pluto.195* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.pluto.68]*, i64 } @spam.64(%struct.pluto.68* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @pluto.520(%struct.hoge.208* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call i32* @hoge.410(%struct.hoge.208* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.hoge.208, %struct.hoge.208* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i32]*, i64 } @eggs.84(i32* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @blam.521(%struct.wombat.111* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.ham.85* @eggs.412(%struct.wombat.111* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.wombat.111, %struct.wombat.111* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.ham.85]*, i64 } @zot.83(%struct.ham.85* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @blam.522(%struct.blam.207* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call { i32, i32 }* @spam.408(%struct.blam.207* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.blam.207, %struct.blam.207* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x { i32, i32 }]*, i64 } @wibble.65({ i32, i32 }* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @wibble.523(%struct.wobble.209* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call i32* @wibble.413(%struct.wobble.209* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.wobble.209, %struct.wobble.209* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i32]*, i64 } @baz.74(i32* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @baz.524(%struct.eggs* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call { i64, { i32, i32 } }* @wombat.403(%struct.eggs* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.eggs, %struct.eggs* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x { i64, { i32, i32 } }]*, i64 } @snork.77({ i64, { i32, i32 } }* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @hoge.525(%struct.ham.197* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.foo.86* @pluto.393(%struct.ham.197* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.ham.197, %struct.ham.197* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.foo.86]*, i64 } @widget.85(%struct.foo.86* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @barney.526(%struct.barney.189* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.eggs* @widget.379(%struct.barney.189* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.barney.189, %struct.barney.189* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.eggs]*, i64 } @eggs.67(%struct.eggs* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.eggs]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.eggs]*, i64 } %tmp4, 1
call void @wibble.34([0 x %struct.eggs]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @wibble.527(%struct.eggs.99* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call i64* @spam.381(%struct.eggs.99* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.eggs.99, %struct.eggs.99* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i64]*, i64 } @bar.59(i64* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @pluto.528(%struct.quux.203* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.eggs.70* @spam.404(%struct.quux.203* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.quux.203, %struct.quux.203* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.eggs.70]*, i64 } @wibble.66(%struct.eggs.70* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.eggs.70]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.eggs.70]*, i64 } %tmp4, 1
call void @wombat.115([0 x %struct.eggs.70]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @ham.529(%struct.spam.198* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.foo.62* @eggs.394(%struct.spam.198* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.spam.198, %struct.spam.198* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.foo.62]*, i64 } @wobble.58(%struct.foo.62* %tmp, i64 %tmp3)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @hoge.530(%struct.wombat.176* noalias align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call %struct.widget.55* @baz.380(%struct.wombat.176* noalias align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.wombat.176, %struct.wombat.176* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x %struct.widget.55]*, i64 } @quux.54(%struct.widget.55* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x %struct.widget.55]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x %struct.widget.55]*, i64 } %tmp4, 1
call void @zot.190([0 x %struct.widget.55]* %tmp5, i64 %tmp6)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden { [0 x i8]*, i64 } @hoge.531(%struct.bar.30* noalias readonly align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call i8* @eggs.424(%struct.bar.30* noalias readonly align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.bar.30, %struct.bar.30* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x i8]*, i64 } @hoge.375(i8* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x i8]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x i8]*, i64 } %tmp4, 1
ret { [0 x i8]*, i64 } %tmp4
}
; Function Attrs: nonlazybind uwtable
define hidden { [0 x { i64*, i64 }]*, i64 } @eggs.532(%struct.zot.210* noalias readonly align 8 dereferenceable(24) %arg) unnamed_addr #1 {
bb:
%tmp = call { i64*, i64 }* @spam.425(%struct.zot.210* noalias readonly align 8 dereferenceable(24) %arg)
%tmp2 = getelementptr inbounds %struct.zot.210, %struct.zot.210* %arg, i32 0, i32 1
%tmp3 = load i64, i64* %tmp2, align 8
%tmp4 = call { [0 x { i64*, i64 }]*, i64 } @ham.374({ i64*, i64 }* %tmp, i64 %tmp3)
%tmp5 = extractvalue { [0 x { i64*, i64 }]*, i64 } %tmp4, 0
%tmp6 = extractvalue { [0 x { i64*, i64 }]*, i64 } %tmp4, 1
ret { [0 x { i64*, i64 }]*, i64 } %tmp4
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @wibble.533({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %arg1) unnamed_addr #0 {
bb:
%tmp3 = load i8, i8* %arg1, align 1, !range !5
%tmp4 = sub i8 %tmp3, 7
%tmp5 = icmp eq i8 %tmp4, 0
br i1 %tmp5, label %bb8, label %bb22
bb8: ; preds = %bb
%tmp13 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 0, i64* %tmp13, align 8
%tmp14 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp19 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp14, i32 0, i32 0
store i64 1, i64* %tmp19, align 8
%tmp20 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp14, i32 0, i32 1
store i64 0, i64* %tmp20, align 8
br label %bb36
bb22: ; preds = %bb
%tmp27 = bitcast { i64, { i64, i64 } }* %arg to i64*
store i64 1, i64* %tmp27, align 8
%tmp28 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %arg, i32 0, i32 1
%tmp33 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp28, i32 0, i32 0
store i64 1, i64* %tmp33, align 8
%tmp34 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp28, i32 0, i32 1
store i64 1, i64* %tmp34, align 8
br label %bb36
bb36: ; preds = %bb22, %bb8
ret void
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @snork.534({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %arg1) unnamed_addr #0 {
bb:
call void @wibble.533({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %arg, i8* noalias readonly align 1 dereferenceable(1) %arg1)
ret void
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal align 8 dereferenceable(16) { [0 x i8]*, i64 }* @hoge.535({ i8*, i64 }* noalias readonly align 8 dereferenceable(16) %arg) unnamed_addr #2 {
bb:
%tmp = bitcast { i8*, i64 }* %arg to { [0 x i8]*, i64 }*
ret { [0 x i8]*, i64 }* %tmp
}
; Function Attrs: alwaysinline nonlazybind uwtable
define internal align 8 dereferenceable(24) %struct.spam.28* @blam.536(%struct.wibble* noalias readonly align 8 dereferenceable(24) %arg) unnamed_addr #2 {
bb:
%tmp = bitcast %struct.wibble* %arg to %struct.spam.28*
ret %struct.spam.28* %tmp
}
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i8*, i64 } @wobble.537([0 x i8]* noalias nonnull align 1 %arg, i64 %arg1) unnamed_addr #0 {
bb:
%0 = bitcast [0 x i8]* %arg to i8*
%tmp9 = insertvalue { i8*, i64 } undef, i8* %0, 0
%tmp10 = insertvalue { i8*, i64 } %tmp9, i64 %arg1, 1
ret { i8*, i64 } %tmp10
}
; Function Attrs: nonlazybind uwtable
define internal void @snork.538(%struct.spam.28* noalias align 8 dereferenceable(24) %arg, i128 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp3 = alloca %struct.eggs.185, align 8
%tmp5 = alloca { i64, { i64, i64 } }, align 8
%tmp8 = alloca %struct.ham, align 1
%tmp7.0.tmp10.sroa_cast = bitcast %struct.ham* %tmp8 to i128*
store i128 %arg1, i128* %tmp7.0.tmp10.sroa_cast, align 1
%tmp13 = bitcast { i64, { i64, i64 } }* %tmp5 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp13)
invoke void @quux({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp5, %struct.ham* noalias readonly align 1 dereferenceable(16) %tmp8)
to label %bb14 unwind label %bb32
bb14: ; preds = %bb
%tmp15 = bitcast { i64, { i64, i64 } }* %tmp5 to i64*
%tmp18 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp5, i32 0, i32 1
%tmp19 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp18, i32 0, i32 0
%tmp20 = load i64, i64* %tmp19, align 8, !range !4
%tmp21 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp18, i32 0, i32 1
%tmp22 = load i64, i64* %tmp21, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp13)
%tmp28 = icmp eq i64 %tmp20, 1
br i1 %tmp28, label %bb39, label %bb43
bb32: ; preds = %bb54, %bb51, %bb49, %bb47, %bb45, %bb43, %bb39, %bb
%tmp33 = landingpad { i8*, i32 }
cleanup
%tmp35 = extractvalue { i8*, i32 } %tmp33, 0
%tmp36 = extractvalue { i8*, i32 } %tmp33, 1
resume { i8*, i32 } %tmp33
bb39: ; preds = %bb14
invoke void @bar.427(%struct.spam.28* noalias align 8 dereferenceable(24) %arg, i64 %tmp22)
to label %bb45 unwind label %bb32
bb43: ; preds = %bb14
invoke void @wibble.543([0 x i8]* noalias nonnull readonly align 1 bitcast (<{ [17 x i8] }>* @global to [0 x i8]*), i64 17, %struct.zot.29* noalias readonly align 8 dereferenceable(24) bitcast (<{ i8*, [16 x i8] }>* @global.9 to %struct.zot.29*)) #12
to label %bb44 unwind label %bb32
bb44: ; preds = %bb43
unreachable
bb45: ; preds = %bb39
%tmp46 = invoke i8* @zot.411(%struct.spam.28* noalias align 8 dereferenceable(24) %arg)
to label %bb47 unwind label %bb32
bb47: ; preds = %bb45
%tmp48 = invoke i64 @wobble.422(%struct.spam.28* noalias readonly align 8 dereferenceable(24) %arg)
to label %bb49 unwind label %bb32
bb49: ; preds = %bb47
%tmp50 = invoke i8* @wobble.199(i8* %tmp46, i64 %tmp48)
to label %bb51 unwind label %bb32
bb51: ; preds = %bb49
%tmp52 = getelementptr inbounds %struct.spam.28, %struct.spam.28* %arg, i32 0, i32 1
%tmp53 = invoke { i64*, i64 } @eggs.378(i64* noalias align 8 dereferenceable(8) %tmp52)
to label %bb54 unwind label %bb32
bb54: ; preds = %bb51
%tmp55 = extractvalue { i64*, i64 } %tmp53, 0
%tmp56 = extractvalue { i64*, i64 } %tmp53, 1
%tmp4.sroa.0.0.copyload = load i128, i128* %tmp7.0.tmp10.sroa_cast, align 1
%tmp60 = bitcast %struct.eggs.185* %tmp3 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp60)
%tmp61 = bitcast %struct.eggs.185* %tmp3 to i8**
store i8* %tmp50, i8** %tmp61, align 8
%tmp62 = getelementptr inbounds %struct.eggs.185, %struct.eggs.185* %tmp3, i32 0, i32 1
%tmp63 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %tmp62, i32 0, i32 0
store i64* %tmp55, i64** %tmp63, align 8
%tmp64 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %tmp62, i32 0, i32 1
store i64 %tmp56, i64* %tmp64, align 8
invoke void @quux.362(i128 %tmp4.sroa.0.0.copyload, %struct.eggs.185* noalias nocapture dereferenceable(24) %tmp3)
to label %bb67 unwind label %bb32
bb67: ; preds = %bb54
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp60)
ret void
}
; Function Attrs: nonlazybind uwtable
define internal void @pluto.539(%struct.spam.28* noalias align 8 dereferenceable(24) %arg, i8 %arg1) unnamed_addr #1 personality i32 (i32, i32, i64, %struct.snork.211*, %struct.quux.212*)* @foo.542 {
bb:
%tmp3 = alloca %struct.wobble.187, align 8
%tmp4 = alloca { i64, { i64, i64 } }, align 8
%tmp6 = alloca i8, align 1
store i8 %arg1, i8* %tmp6, align 1
%tmp7 = bitcast { i64, { i64, i64 } }* %tmp4 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp7)
invoke void @wombat({ i64, { i64, i64 } }* noalias nocapture sret({ i64, { i64, i64 } }) dereferenceable(24) %tmp4, i8* noalias readonly align 1 dereferenceable(1) %tmp6)
to label %bb8 unwind label %bb26
bb8: ; preds = %bb
%tmp9 = bitcast { i64, { i64, i64 } }* %tmp4 to i64*
%tmp12 = getelementptr inbounds { i64, { i64, i64 } }, { i64, { i64, i64 } }* %tmp4, i32 0, i32 1
%tmp13 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp12, i32 0, i32 0
%tmp14 = load i64, i64* %tmp13, align 8, !range !4
%tmp15 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %tmp12, i32 0, i32 1
%tmp16 = load i64, i64* %tmp15, align 8
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp7)
%tmp22 = icmp eq i64 %tmp14, 1
br i1 %tmp22, label %bb33, label %bb37
bb26: ; preds = %bb48, %bb45, %bb43, %bb41, %bb39, %bb37, %bb33, %bb
%tmp27 = landingpad { i8*, i32 }
cleanup
%tmp29 = extractvalue { i8*, i32 } %tmp27, 0
%tmp30 = extractvalue { i8*, i32 } %tmp27, 1
resume { i8*, i32 } %tmp27
bb33: ; preds = %bb8
invoke void @bar.427(%struct.spam.28* noalias align 8 dereferenceable(24) %arg, i64 %tmp16)
to label %bb39 unwind label %bb26
bb37: ; preds = %bb8
invoke void @wibble.543([0 x i8]* noalias nonnull readonly align 1 bitcast (<{ [17 x i8] }>* @global to [0 x i8]*), i64 17, %struct.zot.29* noalias readonly align 8 dereferenceable(24) bitcast (<{ i8*, [16 x i8] }>* @global.9 to %struct.zot.29*)) #12
to label %bb38 unwind label %bb26
bb38: ; preds = %bb37
unreachable
bb39: ; preds = %bb33
%tmp40 = invoke i8* @zot.411(%struct.spam.28* noalias align 8 dereferenceable(24) %arg)
to label %bb41 unwind label %bb26
bb41: ; preds = %bb39
%tmp42 = invoke i64 @wobble.422(%struct.spam.28* noalias readonly align 8 dereferenceable(24) %arg)
to label %bb43 unwind label %bb26
bb43: ; preds = %bb41
%tmp44 = invoke i8* @wobble.199(i8* %tmp40, i64 %tmp42)
to label %bb45 unwind label %bb26
bb45: ; preds = %bb43
%tmp46 = getelementptr inbounds %struct.spam.28, %struct.spam.28* %arg, i32 0, i32 1
%tmp47 = invoke { i64*, i64 } @eggs.378(i64* noalias align 8 dereferenceable(8) %tmp46)
to label %bb48 unwind label %bb26
bb48: ; preds = %bb45
%tmp49 = extractvalue { i64*, i64 } %tmp47, 0
%tmp50 = extractvalue { i64*, i64 } %tmp47, 1
%tmp51 = load i8, i8* %tmp6, align 1, !range !5
%tmp52 = bitcast %struct.wobble.187* %tmp3 to i8*
call void @llvm.lifetime.start.p0i8(i64 24, i8* %tmp52)
%tmp53 = bitcast %struct.wobble.187* %tmp3 to i8**
store i8* %tmp44, i8** %tmp53, align 8
%tmp54 = getelementptr inbounds %struct.wobble.187, %struct.wobble.187* %tmp3, i32 0, i32 1
%tmp55 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %tmp54, i32 0, i32 0
store i64* %tmp49, i64** %tmp55, align 8
%tmp56 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %tmp54, i32 0, i32 1
store i64 %tmp50, i64* %tmp56, align 8
invoke void @ham.363(i8 %tmp51, %struct.wobble.187* noalias nocapture dereferenceable(24) %tmp3)
to label %bb57 unwind label %bb26
bb57: ; preds = %bb48
call void @llvm.lifetime.end.p0i8(i64 24, i8* %tmp52)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @blam.540(%struct.spam.28* noalias nocapture sret(%struct.spam.28) dereferenceable(24) %arg, i128 %arg1) unnamed_addr #1 {
bb:
call void @bar(%struct.spam.28* noalias nocapture sret(%struct.spam.28) dereferenceable(24) %arg, i128 %arg1)
ret void
}
; Function Attrs: nonlazybind uwtable
define hidden void @snork.541(%struct.spam.28* noalias nocapture sret(%struct.spam.28) dereferenceable(24) %arg, i8 %arg1) unnamed_addr #1 {
bb:
call void @spam(%struct.spam.28* noalias nocapture sret(%struct.spam.28) dereferenceable(24) %arg, i8 %arg1)
ret void
}
; Function Attrs: argmemonly nofree nosync nounwind willreturn
declare void @llvm.lifetime.start.p0i8(i64 immarg, i8* nocapture) #3
; Function Attrs: argmemonly nofree nosync nounwind willreturn
declare void @llvm.lifetime.end.p0i8(i64 immarg, i8* nocapture) #3
; Function Attrs: nonlazybind uwtable
declare i32 @foo.542(i32, i32, i64, %struct.snork.211*, %struct.quux.212*) unnamed_addr #1
; Function Attrs: cold noinline noreturn nonlazybind uwtable
declare void @wibble.543([0 x i8]* noalias nonnull readonly align 1, i64, %struct.zot.29* noalias readonly align 8 dereferenceable(24)) unnamed_addr #4
; Function Attrs: argmemonly nofree nounwind willreturn
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #5
; Function Attrs: nonlazybind uwtable
declare hidden { [0 x i8]*, i64 } @barney.544({ i8*, i8* }* noalias readonly align 8 dereferenceable(16)) unnamed_addr #1
; Function Attrs: nofree nosync nounwind readnone willreturn
declare i1 @llvm.expect.i1(i1, i1) #6
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
declare i64 @llvm.uadd.sat.i64(i64, i64) #7
; Function Attrs: nofree nosync nounwind readnone speculatable willreturn
declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) #7
; Function Attrs: nonlazybind uwtable
declare hidden void @snork.545({ i64*, i64 }* noalias align 8 dereferenceable(16)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @ham.546({ i64*, i64 }* noalias align 8 dereferenceable(16)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @widget.547({ i64*, i64 }* noalias align 8 dereferenceable(16)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @quux.548({ i8*, i64 }* noalias align 8 dereferenceable(16)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @baz.549({ i16*, i64 }* noalias align 8 dereferenceable(16)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @baz.550({ i64*, i64 }* noalias align 8 dereferenceable(16)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @wobble.551(%struct.blam.35* noalias align 8 dereferenceable(32)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @spam.552({ i8*, i64 }* noalias align 8 dereferenceable(16)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @ham.553({ i64*, i64 }* noalias align 8 dereferenceable(16)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @wibble.554({ i64*, i64 }* noalias align 8 dereferenceable(16)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @quux.555({ i64*, i64 }* noalias align 8 dereferenceable(16)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @snork.556({ i64*, i64 }* noalias align 8 dereferenceable(16)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @barney.557({ i64*, i64 }* noalias align 8 dereferenceable(16)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @pluto.558(i128, %struct.bar.186* noalias nocapture dereferenceable(24)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @wobble.559(i8, %struct.wobble.188* noalias nocapture dereferenceable(24)) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @wombat.560({ i64*, i64 }*, i64) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden void @zot.561(i8*, i64) unnamed_addr #1
; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn
declare void @llvm.assume(i1 noundef) #8
; Function Attrs: nonlazybind uwtable
declare hidden void @wibble.562({ i8*, i64 }* noalias align 8 dereferenceable(16), i64) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden { [0 x i8]*, i64 } @quux.563(i8* nonnull, i64, i64) unnamed_addr #1
; Function Attrs: nounwind nonlazybind uwtable
declare void @quux.564(i8*, i64, i64) unnamed_addr #9
; Function Attrs: nonlazybind uwtable
declare hidden nonnull i8* @foo.565(i8* nonnull) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden { i8*, i64 } @ham.566(i64, i1 zeroext) unnamed_addr #1
; Function Attrs: nonlazybind uwtable
declare hidden zeroext i1 @foo.567({ i8*, i64 }* noalias readonly align 8 dereferenceable(16), i64, i64) unnamed_addr #1
; Function Attrs: cold nonlazybind uwtable
declare hidden void @foo.568({ i8*, i64 }* noalias align 8 dereferenceable(16), i64, i64) unnamed_addr #10
; Function Attrs: nonlazybind uwtable
declare hidden zeroext i1 @eggs.569({ i8*, i64 }* noalias readonly align 8 dereferenceable(16), i64, i64) unnamed_addr #1
; Function Attrs: cold nonlazybind uwtable
declare hidden void @eggs.570({ i8*, i64 }* noalias align 8 dereferenceable(16), i64, i64) unnamed_addr #10
; Function Attrs: nonlazybind uwtable
declare hidden zeroext i1 @zot.571({ i64*, i64 }* noalias readonly align 8 dereferenceable(16), i64, i64) unnamed_addr #1
; Function Attrs: cold nonlazybind uwtable
declare hidden void @spam.572({ i64*, i64 }* noalias align 8 dereferenceable(16), i64, i64) unnamed_addr #10
; Function Attrs: noinline nonlazybind uwtable
declare hidden void @barney.573(i64** noalias align 8 dereferenceable(8)) unnamed_addr #11
; Function Attrs: noinline nonlazybind uwtable
declare hidden void @pluto.574(i64** noalias align 8 dereferenceable(8)) unnamed_addr #11
; Function Attrs: noinline nonlazybind uwtable
declare hidden void @quux.575(i64** noalias align 8 dereferenceable(8)) unnamed_addr #11
; Function Attrs: noinline nonlazybind uwtable
declare hidden void @pluto.576(i64** noalias align 8 dereferenceable(8)) unnamed_addr #11
attributes #0 = { inlinehint nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #1 = { nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #2 = { alwaysinline nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #3 = { argmemonly nofree nosync nounwind willreturn }
attributes #4 = { cold noinline noreturn nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #5 = { argmemonly nofree nounwind willreturn }
attributes #6 = { nofree nosync nounwind readnone willreturn }
attributes #7 = { nofree nosync nounwind readnone speculatable willreturn }
attributes #8 = { inaccessiblememonly nofree nosync nounwind willreturn }
attributes #9 = { nounwind nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #10 = { cold nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #11 = { noinline nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #12 = { noreturn }
attributes #13 = { noinline }
attributes #14 = { nounwind }
!llvm.module.flags = !{!0, !1}
!0 = !{i32 7, !"PIC Level", i32 2}
!1 = !{i32 2, !"RtLibUseGOT", i32 1}
!2 = !{i8 0, i8 10}
!3 = !{i8 0, i8 9}
!4 = !{i64 0, i64 2}
!5 = !{i8 0, i8 8}
!6 = !{}
!7 = !{i64 0, i64 6}
!8 = !{i64 0, i64 3}
!9 = !{i32 0, i32 5}
!10 = !{i64 1, i64 0}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment