[llvm] r292649 - NewGVN: Remove pr31686.ll, it is tested by pr31594.ll, which is much smaller and simpler

Daniel Berlin via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 20 13:04:58 PST 2017


Author: dannyb
Date: Fri Jan 20 15:04:58 2017
New Revision: 292649

URL: http://llvm.org/viewvc/llvm-project?rev=292649&view=rev
Log:
NewGVN: Remove pr31686.ll, it is tested by pr31594.ll, which is much smaller and simpler

Removed:
    llvm/trunk/test/Transforms/NewGVN/pr31686.ll

Removed: llvm/trunk/test/Transforms/NewGVN/pr31686.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/NewGVN/pr31686.ll?rev=292648&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/NewGVN/pr31686.ll (original)
+++ llvm/trunk/test/Transforms/NewGVN/pr31686.ll (removed)
@@ -1,2016 +0,0 @@
-; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
-; RUN: opt < %s -basicaa -newgvn -S | FileCheck %s
-target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-scei-ps4"
-
-%struct.ham = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }
-%struct.bar = type { i32 (...)** }
-%struct.eggs = type { %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, float, i32, i32, i32, [32 x i8], i32, i32, i32, %struct.spam*, %struct.blam, [8 x i8] }
-%struct.bar.0 = type { float, float, float, float }
-%struct.spam = type { %struct.ham, [3 x float], [4 x i8] }
-%struct.blam = type <{ %struct.eggs.1*, i32, [256 x i16], [4 x i8] }>
-%struct.eggs.1 = type opaque
-%struct.foo = type { %struct.blam.2, [16 x %struct.widget], [8 x i8], [16 x %struct.bar.3], i32, i32, i32, i32, i32, i32, i32, i32, [32 x %struct.quux*], %struct.eggs.6*, %struct.hoge.10*, %struct.wobble.57*, %struct.quux.89*, %struct.wombat.108*, %struct.barney.130*, %struct.wombat.135*, %struct.zot.137*, %struct.snork.146*, %struct.hoge.168*, %struct.wibble.169*, %struct.wibble.169*, [512 x i8], i32, [1024 x %struct.wibble.169*], i32, [1024 x i32], [256 x i8], i32, [1024 x [256 x i8]], [256 x i8], [256 x i8], [256 x i8], [8 x float], float, i8, i32, i32, i32, i32, [8 x i8], %struct.eggs.251, float, [16 x [256 x i8]], [16 x float], [16 x [256 x i8]], [16 x i32], i32, [1024 x %struct.bar.252], [128 x i8], %struct.bar.253*, %struct.bar.253*, %struct.blam, %struct.blam, %struct.blam, [512 x [32 x i8]], [512 x i32], i32, float, float, [8 x [256 x %struct.bar.254]], [12 x i8], [1024 x %struct.eggs], i32, %struct.pluto.255*, [8 x %struct.quux.256], %struct.blam.258, %struct.snork.260, %s
 truct.spam.270, %struct.pluto.274, %struct.pluto.274, i8, %struct.hoge.275, i32, %struct.eggs.277, i32, %struct.pluto.281, [8 x i8] }
-%struct.blam.2 = type { i32 (...)**, i32, [32 x i8], i32, i32, %struct.blam.2*, %struct.blam.2*, %struct.blam.2*, %struct.blam.2*, %struct.barney*, i8*, i32, i32, i32, i32 }
-%struct.barney = type <{ %struct.blam.2*, %struct.blam.2*, i8*, %struct.baz*, %struct.baz*, %struct.hoge.275, float, i32, i32, i32, i32, [4 x i8] }>
-%struct.baz = type <{ %struct.hoge*, i8, [7 x i8] }>
-%struct.hoge = type opaque
-%struct.widget = type { i8, i8, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }
-%struct.bar.3 = type { %struct.bar.0, float, [12 x i8] }
-%struct.quux = type { %struct.eggs.4, %struct.ham.5* }
-%struct.eggs.4 = type { i32 (...)** }
-%struct.ham.5 = type opaque
-%struct.eggs.6 = type { %struct.blam.2, [64 x i8], %struct.hoge.7*, %struct.bar.8*, %struct.barney.9*, %struct.wobble*, i32, i8, %struct.foo* }
-%struct.hoge.7 = type opaque
-%struct.bar.8 = type opaque
-%struct.barney.9 = type opaque
-%struct.wobble = type opaque
-%struct.hoge.10 = type <{ %struct.blam.2, [8 x i8], %struct.bar.0, float, float, i8, [3 x i8], float, float, float, float, i32, i8, i8, i8, i8, float, float, i32, i32, i32, i8, [7 x i8], %struct.eggs.11, i8, [7 x i8], %struct.foo.12, i8, [7 x i8], %struct.widget.20, %struct.wibble.23, %struct.baz.24*, i32, [4 x i8], %struct.foo*, %struct.ham.25*, i8, [7 x i8] }>
-%struct.eggs.11 = type { %struct.bar.0, %struct.bar.0 }
-%struct.foo.12 = type { %struct.foo.13 }
-%struct.foo.13 = type { %struct.spam.14 }
-%struct.spam.14 = type { %struct.spam.15 }
-%struct.spam.15 = type { %struct.quux.16, %struct.wibble.18*, i64 }
-%struct.quux.16 = type { %struct.wombat* }
-%struct.wombat = type { %struct.wibble*, %struct.wobble.17* }
-%struct.wibble = type { %struct.wombat* }
-%struct.wobble.17 = type { %struct.wombat*, %struct.wobble.17* }
-%struct.wibble.18 = type { %struct.wibble.18*, %struct.wibble.18*, %struct.snork* }
-%struct.snork = type <{ %struct.hoge.10*, %struct.pluto*, %struct.blam.19*, %struct.spam.298*, i8, [7 x i8] }>
-%struct.pluto = type opaque
-%struct.blam.19 = type opaque
-%struct.widget.20 = type { %struct.wobble.21*, i32, %struct.blam.22, %struct.blam.22, [4 x i8], %struct.baz }
-%struct.wobble.21 = type { i8, %struct.spam.298* }
-%struct.blam.22 = type { i32 }
-%struct.wibble.23 = type { %struct.spam.298**, i32, %struct.blam.22, %struct.blam.22, [4 x i8], %struct.baz }
-%struct.baz.24 = type opaque
-%struct.ham.25 = type { %struct.quux.26, i8, %struct.hoge.27*, %struct.hoge.27*, %struct.hoge.27*, %struct.hoge.10*, [4 x i32], [4 x [32 x %struct.hoge.27*]], [4 x [32 x i32]] }
-%struct.quux.26 = type { i32 (...)** }
-%struct.hoge.27 = type { i32 (...)**, %struct.quux.28*, [64 x i8], %struct.spam.298*, void (i8*, %struct.hoge.27*, %struct.ham*, %struct.bar.0*, i8)*, i8*, %struct.blam.22, i8, i8, i8, i8 }
-%struct.quux.28 = type { %struct.ham, %struct.wibble.29*, %struct.snork.30, %struct.spam.298**, %struct.ham.43*, %struct.ham*, i32, i32, i32, float, %struct.snork.44*, i32, [4 x i8], %struct.hoge.50, %struct.eggs.51, %struct.eggs.51, i32, i32, i32, i32, i32, [4 x i8], %struct.barney.52, [64 x i8], i32, %struct.spam.56* }
-%struct.wibble.29 = type opaque
-%struct.snork.30 = type <{ [16 x %struct.zot], %struct.ham.33, %struct.widget.35*, %struct.foo.37*, %struct.ham.39, %struct.quux.28*, %struct.wobble.41*, %struct.wobble.41*, i32, float, i32, i32, i32, i32, i32, i32, i8, [7 x i8], %struct.quux.42*, [1 x i32], [4 x i8] }>
-%struct.zot = type { %struct.snork.30*, %struct.spam.31*, [16 x %struct.blam.32], i32, i32, float, i32, float, float, float, float, float, i32, i32, i32 }
-%struct.spam.31 = type <{ i32, i32, i32, i32, float, [16 x i32], float, float, float, float, float, float, float, float, float, float, i8, i8, i8, i8, i8, i8, i8, i8 }>
-%struct.blam.32 = type <{ i32, float, float, i8, [3 x i8] }>
-%struct.ham.33 = type <{ %struct.foo.34*, i32, [4 x i8] }>
-%struct.foo.34 = type <{ [4 x %struct.bar.0], [4 x %struct.bar.0], [4 x %struct.bar.0], [4 x float], i8, [15 x i8] }>
-%struct.widget.35 = type <{ %struct.eggs.36*, i32, i32, i32, [4 x i8] }>
-%struct.eggs.36 = type { [32 x i8], i32, i32, i32, float, i32, [16 x [32 x i8]], [16 x i32], [8 x i32] }
-%struct.foo.37 = type <{ %struct.bar.38*, i32, i32, i32, [4 x i8] }>
-%struct.bar.38 = type { i32, [32 x i8], [31 x i8], [20 x [32 x i8]], i32, i32, i32, i32 }
-%struct.ham.39 = type <{ %struct.wibble.40*, i32, i32, i32, [4 x i8] }>
-%struct.wibble.40 = type { float }
-%struct.wobble.41 = type <{ [2 x %struct.bar.38*], %struct.wobble.41*, [2 x float], i32, i32, float, [4 x i8] }>
-%struct.quux.42 = type <{ %struct.spam.298*, float, [4 x i8] }>
-%struct.ham.43 = type <{ %struct.snork.30*, [8 x %struct.quux.28*], [8 x i32], i32, i32, i32, [4 x i8] }>
-%struct.snork.44 = type <{ %struct.spam.45*, i32, [4 x i8] }>
-%struct.spam.45 = type <{ [32 x i8], %struct.bar.0, %struct.ham.46*, i8, i8, [6 x i8] }>
-%struct.ham.46 = type { i8*, %struct.barney.47, i8*, i32, i32, i32, [12 x i8], %struct.wobble.49 }
-%struct.barney.47 = type <{ %struct.quux.48*, i32, i32, i32, [4 x i8] }>
-%struct.quux.48 = type { i32 }
-%struct.wobble.49 = type <{ %struct.bar.0, [4 x i32], [4 x i32], [4 x i32], i8, i8, [14 x i8] }>
-%struct.hoge.50 = type <{ i8**, i32, i32, i32, [4 x i8] }>
-%struct.eggs.51 = type <{ %struct.spam.298**, i32, i32, i32, [4 x i8] }>
-%struct.barney.52 = type <{ %struct.zot.53**, i32, i32, i32, [4 x i8] }>
-%struct.zot.53 = type <{ %struct.bar.0, %struct.bar.0, %struct.pluto.54*, %struct.pluto.54*, i64, i64, i32, [6 x float], i32, i32, [24 x float], i16, i16, i16, i8, i8, i8, i8, [2 x i8] }>
-%struct.pluto.54 = type { %struct.eggs.4, %struct.foo.55* }
-%struct.foo.55 = type opaque
-%struct.spam.56 = type opaque
-%struct.wobble.57 = type <{ %struct.blam.2, i32, i32, %struct.wibble.58, %struct.foo*, %struct.ham.78*, %struct.widget.83*, i32, i32, i32, i32, i32, i16, i16, [1024 x %struct.ham.85], [1024 x %struct.ham.78*], [1024 x [128 x i8]], i32, [1024 x %struct.widget.86], i32, [8 x i8], [96 x %struct.spam.87], [96 x [128 x i8]], i32, [96 x [128 x i8]], i32, i32, [96 x [128 x i8]], i32, i32, i32, [96 x i32], [128 x i8], [2048 x %struct.wibble.88], i32, i32, i32, i16, [10 x i8] }>
-%struct.wibble.58 = type { %struct.baz.59 }
-%struct.baz.59 = type { %struct.spam.60 }
-%struct.spam.60 = type { %struct.quux.16, %struct.foo.61**, %struct.foo.61**, %struct.foo.61** }
-%struct.foo.61 = type <{ %struct.eggs.62, %struct.ham, %struct.ham, %struct.ham, %struct.ham, %struct.ham, %struct.ham, %struct.bar.0, %struct.bar.0, %struct.bar.0, [4 x %struct.bar.0], [4 x %struct.bar.0], %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, [8 x %struct.pluto.68*], [64 x %struct.quux.69*], %struct.spam.298*, %struct.zot.72*, %struct.widget*, [4 x i64], i64, i8*, [16 x %struct.hoge.76], float, float, i32, i32, i32, float, float, float, float, float, float, float, [3 x float], i32, i32, i32, i32, i32, i32, i32, float, float, float, i32, i32, i32, i32, i32, float, float, i32, i32, i32, float, i32, [64 x i32], float, i32, [4 x i32], float, float, float, float, float, float, i32, i32, i32, %struct.hoge.77, i16, [64 x i16], i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, 
 i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [64 x i8], i8, i8, i8, i8, [6 x i8] }>
-%struct.eggs.62 = type { %struct.baz.63, [8 x i8], %struct.blam.64 }
-%struct.baz.63 = type { i32 (...)** }
-%struct.blam.64 = type <{ i32 (...)**, [8 x i8], %struct.bar.0, %struct.bar.0, %struct.bar.0, [2 x %struct.ham.65*], [2 x float], %struct.bar.66*, i32, [4 x i8], %struct.wombat.67*, i16, i8, [13 x i8] }>
-%struct.ham.65 = type opaque
-%struct.bar.66 = type opaque
-%struct.wombat.67 = type opaque
-%struct.pluto.68 = type opaque
-%struct.quux.69 = type <{ i32 (...)**, [8 x i8], %struct.ham, %struct.bar.0, %struct.bar.0, i64, %struct.spam.298*, %struct.spam.298*, %struct.wobble.70*, %struct.foo.61*, %struct.quux.71*, i32, i32, i32, float, i16, i16, i16, i8, i8, i8, i8, [6 x i8] }>
-%struct.wobble.70 = type <{ %struct.bar.0, %struct.bar.0, i64, float, i32, i16, i16, i8, i8, [10 x i8] }>
-%struct.quux.71 = type opaque
-%struct.zot.72 = type <{ %struct.hoge.73, i16, i16, i16, i16, i8, [7 x i8] }>
-%struct.hoge.73 = type { %struct.blam.74, %struct.blam.74, %struct.blam.74 }
-%struct.blam.74 = type { %struct.foo.75 }
-%struct.foo.75 = type { <4 x float> }
-%struct.hoge.76 = type { i32 }
-%struct.hoge.77 = type { i32 }
-%struct.ham.78 = type { %struct.hoge.27, %struct.blam.79, %struct.bar.82, [4 x i8], %struct.bar.0 }
-%struct.blam.79 = type { %struct.widget.80 }
-%struct.widget.80 = type { %struct.wibble.81**, i64, i64 }
-%struct.wibble.81 = type { i32 (...)** }
-%struct.bar.82 = type <{ i32 (...)**, i32, [8 x i32], [256 x i8], i32, i32 }>
-%struct.widget.83 = type { %struct.eggs.4, %struct.baz.84* }
-%struct.baz.84 = type opaque
-%struct.ham.85 = type { i32, i32, i32, i32, i32, i8*, i8*, i8*, float, float, float, float, i32, [128 x i8], [128 x i8], [128 x i8] }
-%struct.widget.86 = type { i32, i32, i32, i32, float, float, float, float, [128 x i8], [128 x i8], [128 x i8] }
-%struct.spam.87 = type <{ %struct.bar.0, [32 x i8], i32, float, i32, i32, i8, [15 x i8] }>
-%struct.wibble.88 = type { i32, [128 x i8] }
-%struct.quux.89 = type <{ %struct.blam.2, i32, float, float, i32, i32, float, float, [12 x i8], %struct.bar.0, float, float, i32, i32, float, i32, float, i32, float, float, [8 x i8], %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, float, float, float, float, float, float, float, float, %struct.bar.0, float, i32, i32, i32, float, [12 x i8], %struct.bar.0, %struct.bar.0, float, float, %struct.wombat.90, [2 x [255 x %struct.eggs.92*]], i32, i32, i32, i32, i32, float, [8 x i8], %struct.bar.0, float, float, float, float, i8, [7 x i8], %struct.baz.93, float, i32, [8 x i32], [8 x i32], i32, i32, i32, i32, i32, float, i32, i32, i32, float, float, float, float, float, float, float, float, float, float, float, float, float, float, [12 x i8], %struct.eggs.95, %struct.bar.0, float, float, float, i32, i32, i32, i32, [4 x i8], %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.ba
 r.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, float, float, float, float, float, float, float, float, float, float, [8 x i8], %struct.ham, i8, [3 x i8], i32, [32 x i8], [32 x i8], float, float, i32, [12 x i8], %struct.eggs.96, %struct.hoge.97, %struct.ham.98, %struct.spam.298*, %struct.baz.99, i32, [12 x i8], %struct.bar.0, %struct.bar.0, float, float, [8 x i8], %struct.wobble.101, %struct.wombat.102, %struct.snork.103, i32, i32, i32, [4 x i8], %struct.spam.105, i32, [4 x i8], [8 x %struct.spam.107], i32, i32, i32, i32, i32, i32, %struct.foo*, void ()*, [256 x i8], i32, i32, float, float, float, float, i32, i32, i32, [4 x i8] }>
-%struct.wombat.90 = type { %struct.bar.91**, i64, i64 }
-%struct.bar.91 = type opaque
-%struct.eggs.92 = type opaque
-%struct.baz.93 = type <{ float*, float, float, %struct.spam.94*, float, float, i8, [7 x i8] }>
-%struct.spam.94 = type { i32 (...)** }
-%struct.eggs.95 = type { float, float, float, float, %struct.bar.0, %struct.bar.0, float, [12 x i8] }
-%struct.eggs.96 = type { %struct.bar.0, %struct.bar.0, float, float, [8 x i8] }
-%struct.hoge.97 = type { [6 x %struct.bar.0], %struct.bar.0, float, float, [8 x i8], [5 x %struct.bar.0], [5 x %struct.bar.0] }
-%struct.ham.98 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }
-%struct.baz.99 = type { %struct.blam.100**, i64, i64 }
-%struct.blam.100 = type { i32, i32, [128 x i8], [256 x i8] }
-%struct.wobble.101 = type { [256 x i8], i8*, float, [4 x i8], %struct.bar.0, %struct.bar.0 }
-%struct.wombat.102 = type { i32, float, float, float, float, float, [8 x i8], %struct.bar.0, i32, [12 x i8], %struct.bar.0, i32, [12 x i8] }
-%struct.snork.103 = type { i32 (...)**, [8 x i8], [64 x %struct.eggs.104], [128 x i8] }
-%struct.eggs.104 = type { [64 x i8], i32, [16 x i32], [64 x i8], [32 x float], i32, [8 x i8], [8 x %struct.bar.0] }
-%struct.spam.105 = type { i32 (...)**, [128 x %struct.barney.106], [128 x i8] }
-%struct.barney.106 = type { i32, [64 x i8], i64, i64, i64, i64 }
-%struct.spam.107 = type { %struct.bar.0, %struct.bar.0, i32, i32, i32, [4 x i8] }
-%struct.wombat.108 = type { %struct.blam.2, i32, %struct.foo*, [16 x %struct.quux.109], [64 x %struct.blam.111], %struct.barney.112*, %struct.bar.113*, %struct.wombat.114* }
-%struct.quux.109 = type { %struct.wombat.108*, %struct.zot.110*, [32 x i8], [32 x i8] }
-%struct.zot.110 = type { i32 (...)**, [8 x [32 x i8]], [8 x i32], [8 x float], [8 x i8], [8 x %struct.bar.0], [8 x %struct.ham.98], i32, i32, i32, float, i8*, [8 x i8], %struct.bar.0, %struct.ham.98, %struct.quux.109*, [8 x i8] }
-%struct.blam.111 = type { [32 x i8], i32, float }
-%struct.barney.112 = type opaque
-%struct.bar.113 = type opaque
-%struct.wombat.114 = type { i32, i32, i32, %struct.spam.115*, [9 x i32], [4 x i8], %struct.bar.116, i32, i32, float, i32, [4 x %struct.ham.78*], [512 x i32], [512 x %struct.widget.117*], [512 x %struct.widget.117*] }
-%struct.spam.115 = type <{ i16, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, float, float, [12 x i8], %struct.ham, %struct.foo.61*, [8 x i8], %struct.ham, i32, i32, i32, i32, i32, i32, float, float, %struct.bar.0, %struct.bar.0, float, float, float, float, float, [12 x i8], %struct.ham, float, float, float, float, float, float, i32, float, %struct.bar.0, float, float, [8 x i8], %struct.ham, i32, i32, [8 x i8], %struct.bar.0, %struct.bar.0, float, [12 x i8], %struct.ham, i32, [12 x i8] }>
-%struct.bar.116 = type { i32, i32, [8 x i8], %struct.bar.0, %struct.bar.0, [2 x %struct.bar.0], [2 x %struct.bar.0], [2 x %struct.bar.0], %struct.bar.0, %struct.bar.0, float, float, [8 x i8], %struct.bar.0, %struct.bar.0, %struct.bar.0, float, float, float, [4 x i8], [2 x %struct.bar.0], [2 x %struct.bar.0], [2 x %struct.ham], i32, [12 x i8], %struct.bar.0, float, [12 x i8], %struct.bar.0, float, [12 x i8] }
-%struct.widget.117 = type <{ %struct.blam.118, %struct.bar.0, %struct.bar.0, %struct.spam.298*, i32, i32, i32, i32, float, i16, i16, i16, i8, i8, [12 x i8] }>
-%struct.blam.118 = type { %struct.ham, %struct.pluto.54*, %struct.pluto.54*, %struct.barney.119*, i64, i64, i64 }
-%struct.barney.119 = type { %struct.widget.120, %struct.wombat.125, %struct.zot.126, [12 x i8], %struct.eggs.127, i8*, [8 x i8] }
-%struct.widget.120 = type { [32 x %struct.blam.121*], [4 x %struct.eggs.123*], [4 x %struct.ham.46*], %struct.barney.119* }
-%struct.blam.121 = type { %struct.eggs.4, %struct.zot.122* }
-%struct.zot.122 = type opaque
-%struct.eggs.123 = type { %struct.eggs.4, %struct.wombat.124* }
-%struct.wombat.124 = type opaque
-%struct.wombat.125 = type { %struct.barney.119*, %struct.bar.0*, [4 x i64], [4 x i64], [4 x i64], [4 x i32], [4 x i32], i8 }
-%struct.zot.126 = type { i32, i32, i32, [32 x i8], [32 x i8], [4 x [32 x i8]], [32 x [32 x i8]], [16 x i8], [4 x i8], i8, [32 x i8] }
-%struct.eggs.127 = type <{ %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, [4 x %struct.bar.0], %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, [5 x %struct.bar.0], [5 x %struct.bar.0], [5 x %struct.bar.0], [5 x %struct.bar.0], [5 x %struct.bar.0], %struct.bar.0, %struct.bar.0, [2 x %struct.bar.0], %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, [4 x %struct.bar.0], [4 x %struct.bar.0], [4 x %struct.bar.0], [4 x %struct.bar.0], %struct.bar.0, %struct.bar.0, [16 x %struct.bar.0], [7 x %struct.bar.0], %struct.ham.46*, %struct.ham.46*, %struct.ham.46*, [4 x %struct.ham.46*], %struct.wombat.128*, %struct.blam.129*, float, float, [5 x float], float, float, [16 x i8], [16 x i8], [16 x i8], [16 x i8], [16 x i8], [16 x i8], [16 x i8], [16 x i8], i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, [2 x i8], i8, i8, i8, i8, i8 }>
-%struct.wombat.128 = type opaque
-%struct.blam.129 = type { [4 x i32] }
-%struct.barney.130 = type { %struct.blam.2, [8 x i8], %struct.eggs.131, [8192 x %struct.ham.78*], [64 x [64 x i8]], [64 x i32], [64 x i32], [64 x i32], [64 x [5 x i32]], [64 x i32], i32, [6 x i32], i32, i8, %struct.wibble.132*, %struct.spam.133, %struct.spam.133, %struct.foo*, [8 x i8] }
-%struct.eggs.131 = type { [128 x [128 x i32]], [128 x i32], [128 x %struct.ham], [128 x i32], [128 x %struct.ham], [128 x %struct.bar.0] }
-%struct.wibble.132 = type opaque
-%struct.spam.133 = type { i32, [12 x i8], [128 x %struct.ham.134] }
-%struct.ham.134 = type { i32, i32, [8 x i8], %struct.bar.0 }
-%struct.wombat.135 = type { %struct.blam.2, i32, i32, i32, i32, %struct.foo*, %struct.widget.117*, i32, i32, [128 x %struct.ham.78*], i32, [4 x i8], [32 x %struct.foo.136], i32, i32, i32, i32, [128 x i32] }
-%struct.foo.136 = type <{ %struct.widget.117*, i32, i32, i32, [4 x i8] }>
-%struct.zot.137 = type { %struct.blam.2, i32, float, float, float, i32, %struct.widget.138, [256 x %struct.wobble.142], float, i32, i32, [8 x [128 x i8]], [128 x i8], [128 x i8], i32, %struct.bar.143*, %struct.hoge.144*, i32, i32, i32, i32, float, float, i32, i32, i32, i32, float, i32, i32, i32, i32, float, i32, float, float, float, i32, i32, i32, i32, i32, i32, i32, %struct.foo*, %struct.foo.145*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, float, i32, i32, i32, float, i32, i32, i32, [128 x i8], i32, void (%struct.zot.137*)*, [8 x %struct.hoge.27*], i32, [32 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, [2 x %struct.wibble.169*], float, [128 x i32], i32, i32, i32, i32, float, float, i32, [8 x i8] }
-%struct.widget.138 = type { %struct.quux.139 }
-%struct.quux.139 = type { %struct.blam.140 }
-%struct.blam.140 = type { %struct.quux.16, %struct.wobble.141**, %struct.wobble.141**, %struct.wobble.141** }
-%struct.wobble.141 = type { i32 (...)**, i32, [64 x i8], float, float, [12 x i8], [6 x %struct.ham.46], i8, [32 x %struct.wobble.142*], i32, %struct.foo*, [8 x i8] }
-%struct.wobble.142 = type { i32 (...)**, i32, i32, i32, float, [8 x i8], %struct.bar.0, [64 x i8], i32, i32, i32, i32 }
-%struct.bar.143 = type opaque
-%struct.hoge.144 = type opaque
-%struct.foo.145 = type opaque
-%struct.snork.146 = type { %struct.ham.147, %struct.baz.151*, %struct.blam.159*, i32 (i32, i8*, i8*)*, i32 (i32, i8*, i8*)*, [2 x void (i32, i8**, i8*)*], [32 x [512 x %struct.widget.160]], [32 x i32], [32 x i16], [32 x [16 x %struct.blam.159*]], i32, [2048 x [64 x i8]], [2048 x [64 x i8]], [32 x i32], [2560 x %struct.blam.159], [32 x i32], [5120 x [2 x i8*]], [32 x [6 x [256 x i8]]], [32 x i8], [32 x %struct.blam.159*], i32, i32, i8*, i32, i32, [32 x i8*], i32, i32, i32, i32, i32, [32 x [32 x i8]], [32 x i8*], [32 x i16], %struct.widget.161*, i32, [4096 x i32], [4096 x i32], [4096 x [64 x i8]], %struct.baz* }
-%struct.ham.147 = type { %struct.zot.148 }
-%struct.zot.148 = type { %struct.baz.149 }
-%struct.baz.149 = type { %struct.quux.16, %struct.snork.150, i64, i64 }
-%struct.snork.150 = type { i8*, [8 x i8] }
-%struct.baz.151 = type { i8*, [2560 x i32], %struct.baz.152*, i32, i8*, [32 x [256 x i8]], [32 x [32 x i8]], i32, i32*, i32*, i8*, i32, i32, i32, i32, i32, %struct.snork.146*, %struct.wibble.153*, [256 x %struct.wibble.153], %struct.spam.154*, i32, i32, i32, i32, i32, [4 x i32], [4 x i32], [4 x i32], [4 x [128 x i8]], [4 x [128 x i8]], [4 x i32], [32 x [256 x i8]], [32 x i32], [32 x float], i8*, %struct.spam.155*, i8, i8, %struct.snork.156*, %struct.wobble.157*, %struct.widget.158*, i32, i32, i32, i32, i32, [32 x i32], i32, [32 x i32], [32 x i32] }
-%struct.baz.152 = type { i64, [64 x i8], i64, i64, i64, i32, i64 }
-%struct.wibble.153 = type { [4 x i8] }
-%struct.spam.154 = type <{ i32, i16, i8, i8, [16 x i8], i16, [2 x i8] }>
-%struct.spam.155 = type { [32 x i8], i32, i32, [64 x i16], [64 x [32 x i8]], [64 x i32], [64 x i8], [64 x [8 x i32]] }
-%struct.snork.156 = type <{ i32, i32, i32, i16, [16 x i16], [32 x i8], i8, i8 }>
-%struct.wobble.157 = type { [16 x [32 x i8]] }
-%struct.widget.158 = type { i32, i32, i32, [36 x i8] }
-%struct.blam.159 = type <{ i32, i32, i32, i32, i16, [2 x i8] }>
-%struct.widget.160 = type { [32 x i8], i16, i32, [8 x i32], i32, i8, i8 }
-%struct.widget.161 = type { i16, i8, i32, i8*, i8*, i8*, i8*, i8*, i8*, i16*, [2 x i16], i8*, i8*, i8*, %struct.zot.162, i8*, [6 x i8], i8, i8*, i8*, i32, i32, i16, i16, %struct.blam.163, i32, i8*, i32 (i8*)*, i32 (i8*, i8*, i32)*, void (%struct.quux.164*, i8*, %struct.quux.164*, i32)*, i32 (i8*, i8*, i32)*, %struct.blam.163, i8*, i32, [3 x i8], [1 x i8], %struct.blam.163, i32, %struct.quux.164, %struct.blam.165*, %struct.bar.166*, i32, i32, %struct.barney.167 }
-%struct.zot.162 = type <{ i64, i16, i16, [4 x i8] }>
-%struct.blam.163 = type { i8*, i32 }
-%struct.quux.164 = type { i64, %struct.zot.162 }
-%struct.blam.165 = type opaque
-%struct.bar.166 = type opaque
-%struct.barney.167 = type { i64, [120 x i8] }
-%struct.hoge.168 = type { %struct.blam.2, [1024 x i8] }
-%struct.wibble.169 = type <{ %struct.blam.2, %struct.wombat.170, %struct.eggs.173*, i32, float, float, float, [16 x %struct.widget], i32, float, float, i32, float, i32, i32, i32, i8, i8, [6 x i8], %struct.wobble.174*, i8, [7 x i8], %struct.foo.61*, [8 x i8], %struct.bar.0, %struct.ham.78*, float, i32, %struct.bar.0, i8, [3 x i8], i32, %struct.spam.298*, i32, float, float, [4 x i8], %struct.bar.0, %struct.ham, i32, [4 x i8], %struct.widget.177, %struct.quux.183*, i8, [7 x i8], %struct.hoge.185, %struct.bar.0, i32, [12 x i8], [3 x %struct.bar.0], float, float, float, [4 x i8], %struct.bar.0, i32, i32, i32, i32, i32, [12 x i8], %struct.ham, %struct.ham, %struct.ham, i8, [15 x i8], %struct.ham, float, float, [64 x i8], [64 x i32], [9 x i8], [3 x i8], float, float, [64 x i8], [64 x i8], [64 x i8], [64 x i8], float, i32, i32, i32, i8, i8, [2 x i8], float, i32, i32, i32, float, float, [8 x i8], %struct.bar.0, i32, float, float, float, float, float, [8 x i8], %struct.ham, %struct.bar.0, %st
 ruct.bar.0, float, float, %struct.snork.186, %struct.barney.193*, i32, %struct.wibble.217, float, [4 x i8], %struct.spam.298*, %struct.spam.298*, %struct.zot.198, [64 x i8], [64 x i8], i32, i32, i32, i32, i8, [256 x i8], [256 x i8], [3 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [256 x i8], [256 x i8], i32, [4 x i8], %struct.bar.0, %struct.bar.0, %struct.bar.0, float, float, float, float, i8, i8, [2 x i8], i32, %struct.blam.205*, %struct.wibble.207*, %struct.hoge.208, %struct.blam*, i32, [4 x i8], %struct.ham*, %struct.ham, %struct.bar.0, float, float, float, [32 x i8], [128 x i8], i32, i32, [3 x %struct.wibble.217], i32, [4 x i32], [4 x i8], %struct.eggs.209*, %struct.baz.210, [4 x i8], %struct.bar.212*, %struct.zot.216*, [16 x [256 x i8]], [16 x float], [16 x [256 x i8]], [16 x i32], i8, [6 x [32 x i8]], [7 x i8], %struct.foo.61*, %struct.foo.61*, [8 x i8], %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.
 0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, i8, i8, i8, i8, i8, i8, i8, i8, float, float, float, float, float, float, float, [2 x float], float, i32, i32, i16, i16, i16, i16, i8, i8, i8, i8, i8, i8, [2 x i8], i8, i8, [2 x i8], i32, i32, %struct.wibble.217, float, float, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, i32, i32, i32, i32, float, float, float, i16, i8, i8, i8, [3 x i8], i32, i32, float, %struct.ham.218, i8, [3 x i8], %struct.ham.221, [4 x i8], [4 x %struct.barney.222*], i32, i32, %struct.blam.227*, %struct.zot.228*, %struct.widget.245*, %struct.wombat.247*, %struct.wobble.248*, i32, [4 x i8], %struct.widget.117*, %struct.widget.117*, i8, i8, i8, i8, i32, i32, i32, i32, [4 x i8], %struct.barney.249*, %struct.spam.250*, i8, [15 x i8], %struct.bar.0, %struct.foo*, [8 x i8], %struct.eggs.11, %struct.eggs.11, %struct.eggs.11*, i8, [7 x i8] }>
-%struct.wombat.170 = type { %struct.bar.171 }
-%struct.bar.171 = type { %struct.widget.172**, i64, i64 }
-%struct.widget.172 = type { i32 (...)** }
-%struct.eggs.173 = type { i32, [1024 x %struct.wibble.169*] }
-%struct.wobble.174 = type { %struct.spam.298*, %struct.foo.61*, i8, i32, [16 x i8], [8 x i8], [16 x %struct.bar.0], i8, i8, float, float, float, float, [12 x i8], %struct.bar.0, float, float, float, float, float, float, float, [4 x i8], %struct.bar.0, %struct.bar.0, float, float, float, [16 x %struct.widget], i32, %struct.bar.175*, i32, i32, %struct.spam.298**, i32, i8, i8, float, float, [16 x %struct.widget.176], %struct.foo* }
-%struct.bar.175 = type <{ %struct.foo.61*, %struct.spam.298*, %struct.spam.298*, %struct.ham.221, float, i32, [12 x i8], %struct.bar.0, float, float, %struct.ham.221, i32, float, i8, i8, [10 x i8] }>
-%struct.widget.176 = type { i8, i8, i32, i32, i32, i32, i32 }
-%struct.widget.177 = type { %struct.quux.178*, i32, i32, double, double, %struct.bar.180* }
-%struct.quux.178 = type { [10 x %struct.quux.179], %struct.hoge.27*, [8 x i8] }
-%struct.quux.179 = type { i8, [15 x i8], %struct.bar.0, %struct.bar.0, %struct.bar.0, float, [12 x i8] }
-%struct.bar.180 = type { [32 x %struct.barney.181*] }
-%struct.barney.181 = type { %struct.ham, %struct.snork.182 }
-%struct.snork.182 = type { float, float, float, float, %struct.hoge.27*, %struct.snork.182** }
-%struct.quux.183 = type { i8, i32, [8 x i8], [32 x %struct.pluto.184] }
-%struct.pluto.184 = type { float, float, i8, i8, [6 x i8], %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.ham, %struct.ham, %struct.ham, %struct.ham, float, float, %struct.ham*, %struct.ham*, i8, i8, i32, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.ham, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.ham }
-%struct.hoge.185 = type { [16 x i8], [32 x i8], [32 x i8], float, i64 }
-%struct.snork.186 = type { %struct.spam.187 }
-%struct.spam.187 = type { %struct.barney.188 }
-%struct.barney.188 = type { %struct.zot.189 }
-%struct.zot.189 = type { %struct.spam.190 }
-%struct.spam.190 = type { %struct.wombat.191 }
-%struct.wombat.191 = type { %struct.quux.16, %struct.blam.192*, i64 }
-%struct.blam.192 = type opaque
-%struct.barney.193 = type { %struct.ham.98, %struct.ham.98, float, i32, i32, %struct.quux.194 }
-%struct.quux.194 = type { %struct.blam.195 }
-%struct.blam.195 = type { %struct.wobble.196 }
-%struct.wobble.196 = type { %struct.quux.16, %struct.barney.197**, %struct.barney.197**, %struct.barney.197** }
-%struct.barney.197 = type <{ %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.ham*, %struct.ham*, %struct.spam.298*, float, i8, i8, [2 x i8] }>
-%struct.zot.198 = type <{ %struct.wombat.199, i32, [4 x i8] }>
-%struct.wombat.199 = type { %struct.blam.200*, i64, i64 }
-%struct.blam.200 = type { i32, %struct.eggs.201* }
-%struct.eggs.201 = type { i32 (...)**, %struct.blam.202, %struct.bar.204* }
-%struct.blam.202 = type { i32, %struct.blam.203, %struct.blam.203 }
-%struct.blam.203 = type { float }
-%struct.bar.204 = type { i8*, void (%struct.bar.204*)* }
-%struct.blam.205 = type { %struct.baz.151*, %struct.wibble.169*, [64 x i8], [256 x i8], i32, i32, i32, i8*, i64, i8, i32, i32, [16 x %struct.pluto.206], i8, [128 x i8], %struct.foo* }
-%struct.pluto.206 = type { i8, i16, %struct.spam.298*, %struct.bar.0, %struct.bar.0 }
-%struct.wibble.207 = type opaque
-%struct.hoge.208 = type { i32, float, float, i32, i32, i32, i32, float }
-%struct.eggs.209 = type { float, float, float, %struct.ham*, [8 x i8], %struct.ham }
-%struct.baz.210 = type { %struct.hoge.211, %struct.hoge.211, i32 }
-%struct.hoge.211 = type { float, float, float, float, float, float, float, float, float }
-%struct.bar.212 = type { %struct.bar.213, %struct.spam.214, %struct.spam.215, %struct.wibble.217, [4 x i8], %struct.blam.258 }
-%struct.bar.213 = type { i32, float, [8 x i8], %struct.bar.0 }
-%struct.spam.214 = type { [8 x %struct.spam.298*], [8 x %struct.spam.298*], [8 x %struct.spam.298*], [8 x %struct.spam.298*], i32, i32, i32, i32 }
-%struct.spam.215 = type { i32, %struct.wibble.217 }
-%struct.zot.216 = type { [32 x [32 x float]], float, [12 x i8], [256 x %struct.ham.46] }
-%struct.wibble.217 = type <{ float, float, float, float, i8, [3 x i8] }>
-%struct.ham.218 = type { i32, float, float, i32, %struct.widget.219 }
-%struct.widget.219 = type { %struct.pluto.220 }
-%struct.pluto.220 = type { i32 }
-%struct.ham.221 = type { i32 }
-%struct.barney.222 = type { i32 (...)**, i32, %struct.barney.223*, %struct.ham.225*, %struct.foo* }
-%struct.barney.223 = type <{ %struct.eggs.224, [8 x i8], [50 x %struct.blam.74], [50 x %struct.blam.74], [50 x %struct.blam.74], %struct.blam.74, %struct.blam.74, [150 x %struct.ham], i32, i32, i8, [3 x i8], float, float, float, i32, i32, float, i32, %struct.wibble.169*, %struct.wibble.169*, [256 x i8], [256 x i8], [8 x i8], %struct.bar.0, float, float, i32, [4 x i8], %struct.hoge.27*, [50 x %struct.foo.61*], [50 x i32], %struct.foo*, i8, [7 x i8] }>
-%struct.eggs.224 = type { i32 (...)** }
-%struct.ham.225 = type { %struct.wibble.226, [7 x i8] }
-%struct.wibble.226 = type <{ %struct.eggs.224, [8 x i8], [50 x %struct.blam.74], [50 x %struct.blam.74], [50 x %struct.blam.74], %struct.blam.74, %struct.blam.74, [150 x %struct.ham], i32, i32, i8, [3 x i8], float, float, float, i32, i32, float, i32, %struct.wibble.169*, %struct.wibble.169*, [256 x i8], [256 x i8], [8 x i8], %struct.bar.0, float, float, i32, [4 x i8], %struct.hoge.27*, [50 x %struct.foo.61*], [50 x i32], %struct.foo*, i8 }>
-%struct.blam.227 = type opaque
-%struct.zot.228 = type { %struct.wobble.229, %struct.wibble.169*, %struct.snork.231*, %struct.ham.233*, %struct.eggs.239*, %struct.ham.240*, %struct.snork.241*, %struct.foo.242*, %struct.wibble.243*, %struct.wobble.244* }
-%struct.wobble.229 = type <{ i32 (...)**, i32, [64 x i8], [4 x i8], i8*, %struct.zot.230*, i32 }>
-%struct.zot.230 = type opaque
-%struct.snork.231 = type <{ i32 (...)**, %struct.zot.228*, %struct.baz.232, i32, [4 x i8] }>
-%struct.baz.232 = type { i32, float, float, i32, i32, i32, i32, float }
-%struct.ham.233 = type { i32 (...)**, %struct.zot.228*, i8, i8, %struct.hoge.234, %struct.zot.236, [8 x i8], %struct.spam.237, %struct.bar.238, %struct.ham, %struct.bar.0, i8, i8, i8, i8, [12 x i8], %struct.bar.0, float, i32, i32, i32, i32, i32, float, float, float, float, i8, i8, i8, float, float, float, %struct.hoge.275, [8 x i8] }
-%struct.hoge.234 = type { %struct.snork.235, %struct.snork.235, i32 }
-%struct.snork.235 = type <{ float, float, float, float, float, float, float, float, float, float, i8, i8, [2 x i8] }>
-%struct.zot.236 = type { i32, %struct.wibble.217 }
-%struct.spam.237 = type { i32, float, [8 x i8], %struct.bar.0 }
-%struct.bar.238 = type { i32, i32, i32, i32 }
-%struct.eggs.239 = type opaque
-%struct.ham.240 = type opaque
-%struct.snork.241 = type opaque
-%struct.foo.242 = type opaque
-%struct.wibble.243 = type opaque
-%struct.wobble.244 = type opaque
-%struct.widget.245 = type { i8, %struct.bar.246, %struct.bar.246, %struct.bar.246, %struct.bar.246, float, float, i8, i8, i32 }
-%struct.bar.246 = type { [64 x i8] }
-%struct.wombat.247 = type { i8, %struct.bar.246, float, float, float, i32 }
-%struct.wobble.248 = type { %struct.bar.246, i32 }
-%struct.barney.249 = type opaque
-%struct.spam.250 = type opaque
-%struct.eggs.251 = type { %struct.bar.0, %struct.bar.0, i32, float, i32, i32, i32, i32, [8 x i8] }
-%struct.bar.252 = type { [32 x i8], [256 x i8] }
-%struct.bar.253 = type { %struct.foo*, i32, [256 x i8], [256 x i8], [256 x i8], [1024 x i32], i32, i32, i32, i32, i32 }
-%struct.bar.254 = type { i32, i32, [128 x i8], [128 x i8], float, i32 }
-%struct.pluto.255 = type { %struct.snork.146*, [8 x [256 x i8]], [256 x i8], [256 x i8], i32, %struct.foo*, i8*, i64 }
-%struct.quux.256 = type { i32, %struct.eggs.257 }
-%struct.eggs.257 = type { i64 }
-%struct.blam.258 = type { [33 x %struct.wombat.259], i32, [12 x i8] }
-%struct.wombat.259 = type { i32, i32, i32, i32, float, [32 x i8], [12 x i8], %struct.bar.0 }
-%struct.snork.260 = type { i32 (...)**, %struct.snork.261, %struct.baz.265* }
-%struct.snork.261 = type { %struct.barney.262 }
-%struct.barney.262 = type { %struct.bar.263 }
-%struct.bar.263 = type { %struct.quux.16, %struct.pluto.264**, %struct.pluto.264**, %struct.pluto.264** }
-%struct.pluto.264 = type { i32, i32, [8 x i8], %struct.bar.0, float, [12 x i8], %struct.bar.0, %struct.bar.0, float, float, float, float, %struct.spam, [32 x i8] }
-%struct.baz.265 = type { i8**, i32, i32, %struct.blam.266*, %struct.blam.266*, %struct.foo.267, %struct.foo.267 }
-%struct.blam.266 = type { i8*, i32 }
-%struct.foo.267 = type { %struct.zot.268, %struct.baz.269*, i32, i32, i32, i32, [260 x i32], [260 x i32] }
-%struct.zot.268 = type { i8 }
-%struct.baz.269 = type opaque
-%struct.spam.270 = type { %struct.zot.271 }
-%struct.zot.271 = type { %struct.blam.272 }
-%struct.blam.272 = type { %struct.quux.16, %struct.wibble.273**, %struct.wibble.273**, %struct.wibble.273** }
-%struct.wibble.273 = type { [32 x i8], %struct.bar.0, %struct.bar.0, i32, [12 x i8] }
-%struct.pluto.274 = type { [128 x i32], i32, i32, i32, i32 }
-%struct.hoge.275 = type { %struct.eggs.4, %struct.ham.276*, [8192 x i8] }
-%struct.ham.276 = type opaque
-%struct.eggs.277 = type { %struct.baz.278 }
-%struct.baz.278 = type { %struct.zot.279 }
-%struct.zot.279 = type { %struct.widget.280 }
-%struct.widget.280 = type { %struct.quux.16, %struct.spam*, %struct.spam*, %struct.spam* }
-%struct.pluto.281 = type { %struct.quux.282 }
-%struct.quux.282 = type { %struct.wobble.283 }
-%struct.wobble.283 = type { %struct.snork.284 }
-%struct.snork.284 = type { %struct.bar.285 }
-%struct.bar.285 = type { %struct.quux.16, %struct.barney.286*, %struct.barney.286*, %struct.barney.286* }
-%struct.barney.286 = type { i32, [256 x i8], [64 x i8], [64 x i8], i32, i32, float, float, %struct.spam.298*, %struct.spam.287*, %struct.spam.298*, %struct.spam.287* }
-%struct.spam.287 = type <{ i32, i32, %struct.hoge.288, %struct.spam.291, float, [4 x i8], %struct.bar.294, i32, [4 x i8] }>
-%struct.hoge.288 = type { %struct.bar.289 }
-%struct.bar.289 = type { %struct.hoge.290 }
-%struct.hoge.290 = type { %struct.quux.16, %struct.bar.0*, %struct.bar.0*, %struct.bar.0* }
-%struct.spam.291 = type { %struct.wombat.292 }
-%struct.wombat.292 = type { %struct.blam.293 }
-%struct.blam.293 = type { %struct.quux.16, float*, float*, float* }
-%struct.bar.294 = type { %struct.foo.295 }
-%struct.foo.295 = type { %struct.bar.296 }
-%struct.bar.296 = type { %struct.quux.16, %struct.hoge.297**, %struct.hoge.297**, %struct.hoge.297** }
-%struct.hoge.297 = type { [256 x i8], i32, [256 x [256 x i8]], float, float, float, float, %struct.ham.46* }
-%struct.spam.298 = type { %struct.snork.299, [14 x i8] }
-%struct.snork.299 = type <{ %struct.spam.300, i64, %struct.quux.28*, %struct.ham*, %struct.bar.301*, %struct.bar.306*, %struct.eggs.307*, %struct.hoge.309*, %struct.blam.310*, %struct.blam.311*, %struct.ham.312*, %struct.wibble.313*, %struct.wibble.314*, %struct.wibble.315*, %struct.spam.287*, %struct.foo.316*, %struct.eggs.317*, %struct.ham.318*, %struct.ham*, i8*, float, float, %struct.barney.320, i32, i32, i32, i16 }>
-%struct.spam.300 = type { %struct.bar.0, %struct.bar.0, %struct.bar.0 }
-%struct.bar.301 = type { %struct.wibble.302*, i32, i32, i32, %struct.blam.303 }
-%struct.wibble.302 = type <{ [64 x i8], i8*, i32, [4 x i8] }>
-%struct.blam.303 = type { %struct.spam.304, %struct.zot.305*, i32, i32, i32, i32, [260 x i32], [260 x i32] }
-%struct.spam.304 = type { i8 }
-%struct.zot.305 = type opaque
-%struct.bar.306 = type <{ %struct.ham.46, %struct.ham.46, %struct.ham.46, i32, [12 x i8] }>
-%struct.eggs.307 = type { i32 (...)**, i32, [4 x i8], %struct.bar.0, %struct.pluto.308, i8, float, float, [8 x i8] }
-%struct.pluto.308 = type <{ float, float, float, float, float, float, i8, [3 x i8] }>
-%struct.hoge.309 = type { i32, i32, i8*, i8**, i8, %struct.ham*, %struct.ham*, %struct.ham*, %struct.spam.298*, %struct.spam.298** }
-%struct.blam.310 = type <{ %struct.bar.0, %struct.spam.298*, %struct.spam.298*, %struct.widget.117*, float, i8, i8, [2 x i8] }>
-%struct.blam.311 = type { i32, i32, [2 x float], [2 x float], [2 x float] }
-%struct.ham.312 = type { i32 (...)**, [32 x i8], i32, i32, i32, float, float, float }
-%struct.wibble.313 = type { %struct.bar.0, %struct.ham.46*, %struct.ham.46*, %struct.ham.46*, %struct.ham.46*, [2 x float], float, float, float, float, float, i32, i8, i8, i8, float, float, float, [64 x i8], [64 x i8], %struct.blam.121*, %struct.blam.121*, i32, %struct.spam.298*, %struct.eggs.11, %struct.bar.0 }
-%struct.wibble.314 = type { %struct.ham.46*, %struct.ham.46*, %struct.ham.46*, %struct.ham.46*, %struct.ham.46*, %struct.ham.46* }
-%struct.wibble.315 = type { [64 x i8], [64 x i8], i32, i32 }
-%struct.foo.316 = type { %struct.bar.0*, i32, float, i32, i16, i8, i8 }
-%struct.eggs.317 = type { i32, i8, i32, [3 x float], i32, [2 x i32], i8* }
-%struct.ham.318 = type <{ %struct.quux.319, i32, [12 x i8] }>
-%struct.quux.319 = type { i8, i8, [6 x i8], i16*, %struct.bar.0*, [16 x i8], [8 x i8], %struct.bar.0 }
-%struct.barney.320 = type { i32 }
-%struct.foo.321 = type <{ %struct.bar, %struct.widget.322*, %struct.bar.338, [4 x i8], %struct.wobble.339*, %struct.quux.380*, %struct.ham.387*, %struct.zot.393*, %struct.barney.394*, %struct.pluto.395*, %struct.wombat.396*, %struct.ham.397*, %struct.eggs.398*, %struct.barney.399*, %struct.snork.400*, %struct.baz.404*, %struct.barney*, %struct.pluto.421*, %struct.hoge.422*, %struct.snork.486*, %struct.hoge.487*, %struct.hoge.488*, %struct.pluto.489*, %struct.wobble.490*, [3 x %struct.wombat.491*], [2 x %struct.barney.499*], %struct.widget.500*, %struct.zot.502*, %struct.blam*, %struct.blam*, %struct.blam*, %struct.eggs.503, %struct.zot.504*, %struct.ham.506*, [2 x %struct.foo*], [17 x %struct.ham.507*], %struct.baz.508*, %struct.wombat.509*, %struct.baz.510*, %struct.blam.511*, %struct.quux.512*, %struct.snork.513*, %struct.blam.514, %struct.baz.515*, %struct.barney.516*, %struct.baz.152*, i8*, %struct.hoge.517*, %struct.snork.519*, %struct.snork.519*, i32, %struct.blam.22, i32, i32
 , i32, i32, i32, [4 x i8], i8*, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i8, [3 x i8], i32, float, float, i32, i32, i32, i32, i8, i8, i8, i8, i32, i32, i64, %struct.pluto.521*, %struct.barney.577*, i32, float, %struct.baz*, %struct.baz*, %struct.blam.22, i32, [2 x i32], [2 x i32], i32, i32, %struct.ham.580*, i8, [7 x i8], %struct.hoge.603*, %struct.spam.604*, [10 x i32], [64 x i8], i8, [3 x i8], i32, [32 x i32], [32 x i32], [32 x [256 x i8]], i32, i32, [256 x i8], i32, i32, i32, i32, i32, float, float, i32, i32, i32, float, [4 x i8], %struct.pluto.255*, %struct.quux.605*, [64 x i8], i8, [3 x i8], i32, i32, [12 x i8] }>
-%struct.widget.322 = type <{ %struct.blam.2, [2 x %struct.pluto.323], [8 x i8], %struct.blam.330, [2 x i64], [2 x i32], %struct.spam.336, [8 x i8] }>
-%struct.pluto.323 = type { %struct.baz.324 }
-%struct.baz.324 = type { %struct.foo.325 }
-%struct.foo.325 = type { %struct.pluto.326 }
-%struct.pluto.326 = type { %struct.blam.327 }
-%struct.blam.327 = type { %struct.wombat.328 }
-%struct.wombat.328 = type { %struct.quux.16, %struct.wobble.329*, i64 }
-%struct.wobble.329 = type opaque
-%struct.blam.330 = type { %struct.wombat.331, %struct.blam.332, %struct.blam.332, float, i32, i32, %struct.bar.335, %struct.bar.335 }
-%struct.wombat.331 = type { i32 (...)** }
-%struct.blam.332 = type { %struct.zot.333 }
-%struct.zot.333 = type { %struct.quux.334 }
-%struct.quux.334 = type { %struct.quux.16, %struct.bar.335*, %struct.bar.335*, %struct.bar.335* }
-%struct.bar.335 = type { %struct.foo.75 }
-%struct.spam.336 = type { [64 x [16 x i8]], [64 x [16 x i8]], [64 x i32], [64 x %struct.widget.337] }
-%struct.widget.337 = type { [64 x float] }
-%struct.bar.338 = type { float, i32, i32 }
-%struct.wobble.339 = type { %struct.barney.340, [256 x i8], i8, i32, [29 x %struct.spam.341], i32 (i8*, i32, i32, %struct.bar.0*, %struct.bar.0*, i32, %struct.ham*, i32, %struct.bar.0*, i32, %struct.bar.0*, i32)*, i32 (i8*, i32, %struct.bar.0*, %struct.bar.0*, %struct.bar.0*, %struct.bar.0*)*, i32 (i8*, i32, i32, %struct.barney.346*, i32*)*, i32 (i8*, i32, i32, %struct.hoge.347*, i32*)*, i8*, i32 (i8*, i8*, i8*, i32, i32, i8*)*, i8*, void (%struct.ham*, i8*)*, i8*, void (i32, i8*, %struct.spam.348*)*, i8*, { <2 x float>, <2 x float> } (i8*, %struct.bar.0*, i32)*, %struct.blam.349*, %struct.blam.349*, i32*, [8 x i32], float, %struct.spam.350*, [8 x i8], [4 x %struct.quux.351], i32, i32, i32, i32, i32, i32, [1024 x %struct.blam.362*], [1024 x %struct.blam.362*], [1024 x %struct.blam.362*], %struct.blam.22, %struct.blam.22, [512 x float], i32, %struct.zot.367, %struct.wobble.370, [1024 x %struct.ham.373], i32, i8, [8 x %struct.ham], i32, %struct.baz*, %struct.baz*, float, float, [5 x f
 loat], [12 x i8], %struct.bar.0, %struct.ham, %struct.ham, %struct.bar.0, %struct.hoge.97, %struct.hoge.97, i32, %struct.blam.374*, %struct.wibble.375*, i8, i8, i16, [2560 x i8], i32, float, [12 x i8], [256 x %struct.hoge.376], [2 x %struct.quux.378], [512 x %struct.snork.182*], %struct.pluto.379*, [8 x i8] }
-%struct.barney.340 = type { i32 (...)** }
-%struct.spam.341 = type { %struct.quux.26* (i8*, i32, %struct.snork.342*)*, i8* }
-%struct.snork.342 = type <{ %struct.hoge.343, %struct.ham.344, %struct.ham, %struct.ham, %struct.ham, %struct.ham, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, [4 x %struct.bar.0], %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.wibble.345, float, float, float, float, float, float, float, [4 x i8], i8*, i32, i16, i16, i16, i16, i8, [3 x i8], i32, i32, i32, i8, i8, i8, i8, i8, i8, i8, i8, i32, float, i8, [3 x i8], i32, [4 x i8], %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.bar.0, float, i32, [4 x i32], i32, [4 x i8], %struct.hoge.27*, float*, float*, %struct.snork.182**, float, [8 x float], [8 x i16], float, %struct.ham*, %struct.ham*, %struct.ham*, %struct.quux.26*, %struct.snork.342*, float, i16, i16, i32, i8, [3 x i8] }>
-%struct.hoge.343 = type { %struct.hoge.343*, %struct.hoge.343* }
-%struct.ham.344 = type { %struct.ham.344*, %struct.ham.344* }
-%struct.wibble.345 = type { float, float, float, float }
-%struct.barney.346 = type { %struct.bar.0, %struct.bar.0, %struct.bar.0, %struct.ham, i32, i32, i32, i32 }
-%struct.hoge.347 = type <{ %struct.bar.0, %struct.bar.0, float, i32, %struct.bar.0*, float*, %struct.bar.0*, float*, i32*, i32*, i8, [7 x i8] }>
-%struct.spam.348 = type { i32, i32, i8*, i8* }
-%struct.blam.349 = type opaque
-%struct.spam.350 = type { i32 (...)** }
-%struct.quux.351 = type <{ %struct.bar.352, float, float, %struct.snork.182*, [8 x i8], %struct.ham, i32, i32, i32, i32, i32, i32, i32, [4 x i32], [32 x float], [10 x [4 x i32]], i8, [3 x i8], %struct.ham**, float, [4 x i8], [625 x %struct.blam.353], [625 x %struct.snork.342*], i32, [4 x i8], [192 x %struct.foo.354], i32, [194 x i32], [194 x i32], [194 x i32], [4 x i8], [2500 x %struct.snork.342], [2500 x %struct.barney.358], [2500 x i32], i32, [2500 x float], i32, [8 x i8], [5000 x %struct.eggs.11], [5000 x i8], %struct.hoge.343*, [192 x %struct.widget.359], %struct.zot.360, %struct.zot.360, %struct.hoge.517*, i8*, %struct.hoge.517*, i8*, i8*, [128 x %struct.hoge.27*], %struct.blam.349*, i32, [128 x float], i32, [8 x i8], [512 x %struct.barney.346], i32, [12 x i8], [2 x [512 x %struct.hoge.347]], [2 x i32], i32, [4 x i8], %struct.snork.342*, i32, i32, [1024 x %struct.baz.361], i32, [12 x i8] }>
-%struct.bar.352 = type { i32 (...)** }
-%struct.blam.353 = type { [64 x i8], [32 x i8], i32, i32, i32, i32, float, float, float, float*, i8, i16, i8, %struct.bar.0, %struct.bar.0, %struct.wibble.345, i32, i8, float, i8, %struct.snork.342*, %struct.snork.182*, %struct.ham*, %struct.ham*, i8, [15 x i8], %struct.ham }
-%struct.foo.354 = type { i32, i8, %struct.wibble.355*, %struct.spam.356* }
-%struct.wibble.355 = type opaque
-%struct.spam.356 = type { [4 x %struct.bar.357], [4 x %struct.bar.357], [3 x %struct.bar.357], [3 x %struct.bar.357], [3 x %struct.bar.357], %struct.bar.357, %struct.bar.357, [4 x %struct.bar.357], [4 x %struct.bar.357], [2 x %struct.bar.357], %struct.ham.46, %struct.ham.46, [16 x %struct.ham.46], [32 x i8], i32, i32, i32, i32, i32, [8 x [8 x i32]], i32, i32, [4 x float], i32, i8, i8, i32, float, float, float, float, float, float, i8, i32, float, [64 x i8], i32, i8, i8, i32, i8, %struct.wibble.355*, [8 x i8] }
-%struct.bar.357 = type { [30 x i8], [12 x float] }
-%struct.barney.358 = type { %struct.snork.342*, float, float }
-%struct.widget.359 = type <{ %struct.ham.344, i32, [4 x i8] }>
-%struct.zot.360 = type <{ %struct.hoge.343, i32, [4 x i8] }>
-%struct.baz.361 = type { i32, %struct.snork.342* }
-%struct.blam.362 = type { [64 x i8], i32, i32, i32, i32, i32, [128 x %struct.spam.356*], [128 x %struct.wibble.355*], [128 x %struct.hoge.27*], [128 x %struct.snork.363*], [128 x i32], %struct.bar.364 }
-%struct.snork.363 = type { [4 x float], [3 x float], i8 }
-%struct.bar.364 = type { %struct.widget.365, %struct.quux.366*, i32, i32, i32, i32, [260 x i32], [260 x i32] }
-%struct.widget.365 = type { %struct.baz }
-%struct.quux.366 = type opaque
-%struct.zot.367 = type { %struct.hoge.368, %struct.ham.369*, i32, i32, i32, i32, [260 x i32], [260 x i32] }
-%struct.hoge.368 = type { %struct.baz }
-%struct.ham.369 = type opaque
-%struct.wobble.370 = type { %struct.widget.371, %struct.zot.372*, i32, i32, i32, i32, [260 x i32], [260 x i32] }
-%struct.widget.371 = type { %struct.baz }
-%struct.zot.372 = type opaque
-%struct.ham.373 = type { [32 x i8], [128 x i8], i32 }
-%struct.blam.374 = type opaque
-%struct.wibble.375 = type opaque
-%struct.hoge.376 = type { %struct.hoge.377, float, [12 x i8], %struct.blam.353 }
-%struct.hoge.377 = type { %struct.hoge.377*, %struct.hoge.377* }
-%struct.quux.378 = type <{ %struct.hoge.377, i32, [4 x i8] }>
-%struct.pluto.379 = type opaque
-%struct.quux.380 = type { %struct.blam.381, %struct.baz*, %struct.wobble.382*, [8 x i8], %struct.ham, %struct.bar.0, %struct.baz.384, %struct.baz.384 }
-%struct.blam.381 = type { i32 (...)** }
-%struct.wobble.382 = type { %struct.barney.119, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, %struct.ham*, %struct.blam.121*, i8*, [8 x i8], %struct.bar.0, %struct.bar.0, float, i32, [2 x %struct.ham.383*], [2 x %struct.ham.383*], [8 x i8] }
-%struct.ham.383 = type { i32, i8* }
-%struct.baz.384 = type { %struct.zot.385 }
-%struct.zot.385 = type { %struct.zot.386 }
-%struct.zot.386 = type { %struct.quux.16, %struct.wobble.382**, %struct.wobble.382**, %struct.wobble.382** }
-%struct.ham.387 = type { %struct.snork.388, %struct.baz*, %struct.quux.389*, [8 x i8], %struct.ham, %struct.bar.0, %struct.widget.390, %struct.widget.390 }
-%struct.snork.388 = type { i32 (...)** }
-%struct.quux.389 = type { %struct.barney.119, i32, i32, i32, i32, i32, float, i32, i32, i32, %struct.ham*, %struct.blam.121*, i8*, %struct.bar.0, %struct.bar.0, float, i32, [2 x %struct.ham.383*], [8 x i8] }
-%struct.widget.390 = type { %struct.wombat.391 }
-%struct.wombat.391 = type { %struct.baz.392 }
-%struct.baz.392 = type { %struct.quux.16, %struct.quux.389**, %struct.quux.389**, %struct.quux.389** }
-%struct.zot.393 = type opaque
-%struct.barney.394 = type opaque
-%struct.pluto.395 = type opaque
-%struct.wombat.396 = type opaque
-%struct.ham.397 = type opaque
-%struct.eggs.398 = type opaque
-%struct.barney.399 = type opaque
-%struct.snork.400 = type <{ %struct.blam.2, %struct.barney.401, [32768 x i32], [32768 x float], i32, [2 x [32768 x float]], i32, [8 x i8], [2 x [32768 x %struct.bar.0]], [32 x %struct.wibble.402], float, i32, i32, [4 x i8] }>
-%struct.barney.401 = type { i32 (...)** }
-%struct.wibble.402 = type { %struct.ham, %struct.quux.389*, i8, [7 x i8], [1024 x %struct.baz.403] }
-%struct.baz.403 = type { %struct.bar.0, %struct.bar.0, float, float, float, float, float, i32, [8 x i8] }
-%struct.baz.404 = type { %struct.baz*, %struct.baz*, %struct.barney.405, %struct.quux.416, i32, i32 }
-%struct.barney.405 = type { %struct.foo.406, [4 x i8] }
-%struct.foo.406 = type <{ %struct.blam.407, %struct.bar.412, i64, i64, float }>
-%struct.blam.407 = type { %struct.ham.408 }
-%struct.ham.408 = type { %struct.wombat.409 }
-%struct.wombat.409 = type { %struct.wobble.410 }
-%struct.wobble.410 = type { %struct.quux.16, %struct.zot.411*, i64 }
-%struct.zot.411 = type opaque
-%struct.bar.412 = type { %struct.wombat.413 }
-%struct.wombat.413 = type { %struct.zot.414 }
-%struct.zot.414 = type { %struct.quux.16, %struct.foo.415*, %struct.foo.415*, %struct.foo.415* }
-%struct.foo.415 = type opaque
-%struct.quux.416 = type { %struct.baz.417 }
-%struct.baz.417 = type { %struct.barney.418 }
-%struct.barney.418 = type { %struct.zot.419 }
-%struct.zot.419 = type { %struct.quux.16, %struct.snork.420*, i64 }
-%struct.snork.420 = type opaque
-%struct.pluto.421 = type <{ %struct.blam.2, i32, i32, i32, i32, i32, i32, i32, i32, i32, [256 x i8], [256 x i8], [256 x i8], [256 x i8], [4 x i8] }>
-%struct.hoge.422 = type { %struct.blam.2, %struct.barney.423, i64, i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, %struct.ham.424, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, float, float, float, i32, i32, i32, float, float, float, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, float, float, float, float, float, float, float, float, float, float, i32, i32, i32, float, float, float, i32, i32, float, float, float, float, i32, float, float, float, float, float, i32, i32, i32, i32, i32, i32, float, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32
 , i32, i32, i32, [12 x i8], [4 x %struct.ham.98], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, float, i32, [4 x float], i32, i32, i32, i32, i32, [4 x i8], %struct.bar.0, [2 x %struct.eggs.11], %struct.eggs.11, %struct.ham.98, %struct.ham, %struct.bar.0, i32, [5 x i32], i8, double, float, [4 x i8], %struct.bar.0, %struct.bar.0, float, float, float, float, float, i8, i8, i8, i8, float, [4 x float], i8, i8, i32, i32, float, %struct.blam.425, %struct.blam.426*, %struct.blam.426*, %struct.blam.426*, %struct.blam.426*, %struct.eggs.427*, [8 x i8], %struct.bar.0, %struct.bar.0, [2 x %struct.bar.0], [2 x %struct.bar.0], [2 x %struct.bar.0], %struct.ham.98, float, i32, [8 x i8], [1 x %struct.bar.0], %struct.spam.437, %struct.spam.437, %struct.blam.121*, %struct.blam.121*, %struct.blam.121*, %struct.blam.121*, %struct.blam.121*, %struct.blam.121*, %struct.pluto.54*, %struct.pluto.54*, %struct.pluto.54*, %struct.pluto.54*, [6 x %struct.pluto.54*], %struct.p
 luto.54*, [4 x %struct.pluto.54*], [4 x %struct.pluto.54*], %struct.pluto.54*, %struct.pluto.54*, %struct.pluto.54*, %struct.pluto.54*, %struct.pluto.54*, %struct.pluto.54*, %struct.pluto.54*, %struct.pluto.54*, %struct.hoge.275, %struct.wobble.448, [2 x %struct.wobble.451], %struct.ham.453*, %struct.wobble.454*, %struct.bar.455*, %struct.wobble.456*, %struct.barney.457*, [8 x i8], %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibb
 le.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.wibble.458, %struct.eggs.461*, %struct.snork.462, %struct.zot.484, [8 x i8] }
-%struct.barney.423 = type { i32 (...)** }
-%struct.ham.424 = type { float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float }
-%struct.blam.425 = type { i8*, i8*, i8*, i64 }
-%struct.blam.426 = type { [64 x i8], i32, [12 x i8], %struct.bar.0, %struct.bar.0, %struct.bar.0, float, float, float, float, %struct.bar.0, %struct.bar.0, %struct.bar.0, float, float, float, float, i32, i32, float, float, float, float, float, float, float, float, float, [4 x i8], %struct.bar.0, float, float, i32, float, float, float, float, float, float, float, float, i32, float, float, float, float, float, i32, float, float, float, float, i32, float, float, float, float, float, float, float, float, float, i32, [12 x i8], %struct.bar.0, float, float, float, float, float, float, i32, float, float, float, float, float, float, float, float, i32, float, [12 x i8], %struct.bar.0, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, i32, float, i32, float, i32, float, i32, float, float, float, float, float, i32, float }
-%struct.eggs.427 = type { %struct.wombat.428, %struct.snork.435 }
-%struct.wombat.428 = type { %struct.wombat.429 }
-%struct.wombat.429 = type { %struct.snork.430 }
-%struct.snork.430 = type { %struct.bar.431 }
-%struct.bar.431 = type { %struct.ham.432 }
-%struct.ham.432 = type { %struct.zot.433 }
-%struct.zot.433 = type { %struct.quux.16, %struct.hoge.434*, i64 }
-%struct.hoge.434 = type opaque
-%struct.snork.435 = type { %struct.widget.436*, %struct.widget.436* }
-%struct.widget.436 = type opaque
-%struct.spam.437 = type { %struct.barney.438, [4 x i8] }
-%struct.barney.438 = type <{ %struct.ham.439, %struct.zot.444, i64, i64, float }>
-%struct.ham.439 = type { %struct.quux.440 }
-%struct.quux.440 = type { %struct.ham.441 }
-%struct.ham.441 = type { %struct.barney.442 }
-%struct.barney.442 = type { %struct.quux.16, %struct.foo.443*, i64 }
-%struct.foo.443 = type opaque
-%struct.zot.444 = type { %struct.wobble.445 }
-%struct.wobble.445 = type { %struct.bar.446 }
-%struct.bar.446 = type { %struct.quux.16, %struct.hoge.447*, %struct.hoge.447*, %struct.hoge.447* }
-%struct.hoge.447 = type opaque
-%struct.wobble.448 = type { %struct.ham.449 }
-%struct.ham.449 = type { %struct.snork.450*, i32, %struct.blam.22, %struct.blam.22, [4 x i8], %struct.baz }
-%struct.snork.450 = type { %struct.bar.0, float, float, i32, [4 x i8] }
-%struct.wobble.451 = type { %struct.barney.452* }
-%struct.barney.452 = type opaque
-%struct.ham.453 = type opaque
-%struct.wobble.454 = type opaque
-%struct.bar.455 = type opaque
-%struct.wobble.456 = type opaque
-%struct.barney.457 = type opaque
-%struct.wibble.458 = type <{ i32 (...)**, i8*, i32, i32, i32, i32, i32, i8, i8, [8 x i8], i8, i8, i8, i8, i8, [13 x i8], %struct.bar.0, %struct.bar.0, [8 x i32], [8 x %struct.blam.121*], %struct.blam.121*, [8 x %struct.pluto.54*], [64 x %struct.blam.121*], [80 x %struct.pluto.54*], %struct.eggs.123*, [8 x i32], i32, i32, i32 (%struct.barney.459*, i32, i32)*, i8, [3 x i8], i32, i32, i32, i32, i8, i8, i8, [9 x i8] }>
-%struct.barney.459 = type { %struct.eggs.4, %struct.ham.460* }
-%struct.ham.460 = type opaque
-%struct.eggs.461 = type opaque
-%struct.snork.462 = type { %struct.spam.463, %struct.widget.470, %struct.pluto.475 }
-%struct.spam.463 = type { %struct.quux.464 }
-%struct.quux.464 = type { %struct.barney.465 }
-%struct.barney.465 = type { %struct.barney.466 }
-%struct.barney.466 = type { %struct.hoge.467 }
-%struct.hoge.467 = type { %struct.foo.468 }
-%struct.foo.468 = type { %struct.quux.16, %struct.quux.469*, i64 }
-%struct.quux.469 = type opaque
-%struct.widget.470 = type { %struct.wombat.471 }
-%struct.wombat.471 = type { %struct.snork.472 }
-%struct.snork.472 = type { %struct.quux.16, %struct.wombat.473*, %struct.wombat.473*, %struct.wombat.473* }
-%struct.wombat.473 = type { %struct.bar.0, i32, i32, i32, i8, i8, i8, [4 x i32], [4 x float], %struct.barney.474 }
-%struct.barney.474 = type { [9 x %struct.bar.0] }
-%struct.pluto.475 = type { %struct.wobble.476 }
-%struct.wobble.476 = type { %struct.wibble.477 }
-%struct.wibble.477 = type { %struct.ham.478 }
-%struct.ham.478 = type { %struct.wibble, %struct.spam.479**, i64, i64, i64 }
-%struct.spam.479 = type <{ %struct.barney.480, %struct.widget.470, void (%struct.ham.147*, %struct.widget.470*)*, %struct.ham.147, %struct.hoge.275, i32, [4 x i8] }>
-%struct.barney.480 = type { %struct.baz.481 }
-%struct.baz.481 = type { %struct.foo.482 }
-%struct.foo.482 = type { %struct.foo.483 }
-%struct.foo.483 = type { %struct.wibble, %struct.wombat.473**, i64, i64, i64 }
-%struct.zot.484 = type { %struct.hoge.485*, %struct.hoge.485* }
-%struct.hoge.485 = type opaque
-%struct.snork.486 = type opaque
-%struct.hoge.487 = type <{ %struct.blam.2, %struct.baz*, i32, i8, i8, i8, i8, i32, i32, i32, i32, i32, float, i32, [4 x i8] }>
-%struct.hoge.488 = type opaque
-%struct.pluto.489 = type opaque
-%struct.wobble.490 = type opaque
-%struct.wombat.491 = type { %struct.blam.2, [1024 x %struct.ham.492], i32, %struct.hoge.495 }
-%struct.ham.492 = type <{ %struct.snork.493, %struct.wibble.169*, float, [4 x i8] }>
-%struct.snork.493 = type { %struct.hoge.494, %struct.snork.493* }
-%struct.hoge.494 = type <{ i32 (...)**, i32 }>
-%struct.hoge.495 = type { %struct.wobble.496 }
-%struct.wobble.496 = type { %struct.quux.497, %struct.eggs.498, %struct.snork.493*, %struct.snork.493* }
-%struct.quux.497 = type { i32 (...)** }
-%struct.eggs.498 = type { %struct.snork.493 }
-%struct.barney.499 = type <{ %struct.blam.2, i32, [4 x i8] }>
-%struct.widget.500 = type { %struct.blam.2, [1024 x %struct.widget.501], i32, %struct.hoge.495 }
-%struct.widget.501 = type { %struct.snork.493, float, %struct.wibble.169* }
-%struct.zot.502 = type opaque
-%struct.eggs.503 = type { i32, [12 x i8], %struct.bar.0, [256 x i8], i32, %struct.blam*, %struct.blam*, %struct.blam* }
-%struct.zot.504 = type <{ %struct.eggs.4, %struct.wibble.505*, [2 x [23 x i32]], i8, [7 x i8] }>
-%struct.wibble.505 = type opaque
-%struct.ham.506 = type opaque
-%struct.ham.507 = type opaque
-%struct.baz.508 = type opaque
-%struct.wombat.509 = type { [1536 x %struct.baz.265*], [1536 x [128 x i8]], %struct.baz.265*, [128 x i8] }
-%struct.baz.510 = type opaque
-%struct.blam.511 = type opaque
-%struct.quux.512 = type opaque
-%struct.snork.513 = type opaque
-%struct.blam.514 = type <{ i32, i32, i32, i32, %struct.blam.2*, i32, [4 x i8] }>
-%struct.baz.515 = type opaque
-%struct.barney.516 = type opaque
-%struct.hoge.517 = type { %struct.eggs.4, %struct.blam.518*, %struct.baz* }
-%struct.blam.518 = type opaque
-%struct.snork.519 = type { %struct.eggs.4, %struct.snork.520* }
-%struct.snork.520 = type opaque
-%struct.pluto.521 = type { %struct.blam.2, [40 x %struct.eggs.531*], %struct.quux.522*, %struct.wobble.523*, %struct.wibble.524*, %struct.spam.525*, %struct.eggs.531*, %struct.zot.526*, %struct.quux.527*, %struct.pluto.528*, %struct.barney.529*, %struct.foo.530*, %struct.eggs.531*, %struct.eggs.531*, %struct.wombat.533*, %struct.eggs.538*, %struct.hoge.539*, %struct.wombat.540*, %struct.wombat.540*, %struct.wombat.540*, %struct.widget.541*, %struct.widget.542*, %struct.eggs.543*, %struct.pluto.546*, %struct.widget.547*, %struct.widget.548*, %struct.wobble.549*, %struct.baz.554*, %struct.widget.556*, %struct.blam.557*, %struct.foo.558*, %struct.blam.559*, %struct.eggs.560*, %struct.pluto.561*, i32, float, float, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [64 x i8], i32, i32, i32, i32, %struct.wobble.564*, %struct.wobble.564*, %struct.wobble.564*, i32, [32 x i32], [32 x [64 x i8]], [32 x [64 x i8]], [32 x [64 x i8]], [32 x [64 x i8]], [
 32 x i8], [256 x i8], [256 x i8], i32, i32, i32, float, float, i32, [5 x [128 x i8]], [5 x [128 x i16]], [5 x [128 x i16]], [5 x [128 x i16]], [5 x [1024 x i16]], [64 x [64 x i16]], [64 x i32], [64 x float], [64 x float], [12 x i8], [64 x %struct.bar.0], i32, %struct.blam.565, %struct.wobble.569*, %struct.foo.570, i8, %struct.widget.576*, i32, [4 x i8], %struct.blam, [8 x i8] }
-%struct.quux.522 = type <{ %struct.blam.2, [40 x %struct.eggs.531*], [40 x %struct.eggs.531*], [40 x float], i32, i32, i32, i32, float, float, i32, i8, [3 x i8] }>
-%struct.wobble.523 = type opaque
-%struct.wibble.524 = type opaque
-%struct.spam.525 = type opaque
-%struct.zot.526 = type opaque
-%struct.quux.527 = type opaque
-%struct.pluto.528 = type opaque
-%struct.barney.529 = type opaque
-%struct.foo.530 = type opaque
-%struct.eggs.531 = type <{ i32 (...)**, [256 x i16], i32, i32, i32, i32, i32, i32, i32, i32, i32, float, float, i32, i32, i32, i32, [4 x i8], [256 x %struct.widget.532*], i32, i32, i32, [4 x i8] }>
-%struct.widget.532 = type { i32 (...)**, i32, i32, i32, i32, i32, [256 x i16], i32 }
-%struct.wombat.533 = type { %struct.snork.534, %struct.foo*, %struct.pluto.521*, %struct.spam.535 }
-%struct.snork.534 = type <{ i32 (...)**, [256 x i16], i32, i32, i32, i32, i32, i32, i32, i32, i32, float, float, i32, i32, i32, i32, [4 x i8], [256 x %struct.widget.532*], i32, i32, i32 }>
-%struct.spam.535 = type { %struct.hoge.536**, i64, i64 }
-%struct.hoge.536 = type { i32 (...)**, i32, %struct.snork.537, %struct.snork.537 }
-%struct.snork.537 = type { i8* }
-%struct.eggs.538 = type opaque
-%struct.hoge.539 = type opaque
-%struct.wombat.540 = type opaque
-%struct.widget.541 = type opaque
-%struct.widget.542 = type opaque
-%struct.eggs.543 = type <{ %struct.snork.534, [12 x i8], [2 x [128 x %struct.pluto.544]], %struct.wobble.545*, i32, i32, i32, [12 x i8] }>
-%struct.pluto.544 = type { [32 x i8], %struct.bar.0, i32, i32, i32, i32 }
-%struct.wobble.545 = type <{ %struct.widget.532, i32*, i32*, i16*, i32*, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i8] }>
-%struct.pluto.546 = type opaque
-%struct.widget.547 = type opaque
-%struct.widget.548 = type opaque
-%struct.wobble.549 = type <{ %struct.snork.534, i32, i32, i32, i32, i32, i32, [4 x i8], %struct.wombat.550*, %struct.wombat.550*, %struct.wombat.550*, i32, i32, %struct.hoge.551*, i32, [4 x i8], %struct.widget.552*, i32, i32, i32, [4 x i8], %struct.snork.553*, i32, i32, i32, i32, i32, [4 x i8] }>
-%struct.wombat.550 = type opaque
-%struct.hoge.551 = type opaque
-%struct.widget.552 = type opaque
-%struct.snork.553 = type opaque
-%struct.baz.554 = type { %struct.snork.534, i32, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, float, i32, i32, i32, i32, float, float, i32, float, float, float, float, i32, float, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i8], %struct.pluto.555, [128 x i8], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i8] }
-%struct.pluto.555 = type { %struct.snork.534, [4 x i8] }
-%struct.widget.556 = type opaque
-%struct.blam.557 = type opaque
-%struct.foo.558 = type opaque
-%struct.blam.559 = type opaque
-%struct.eggs.560 = type opaque
-%struct.pluto.561 = type { %struct.blam.2, %struct.quux.562, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, float, i32, i32, i32, i32, i32, i8, %struct.snork.519, float, float, [8 x i8], %struct.bar.0, %struct.hoge.563, float, float, [8 x i8] }
-%struct.quux.562 = type { i32 (...)** }
-%struct.hoge.563 = type { [64 x i8], i16, i16, i16, i16, i32, i32 }
-%struct.wobble.564 = type <{ %struct.widget.532, i32*, i16*, i16*, i32*, [9 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [4 x i8] }>
-%struct.blam.565 = type { %struct.wibble.566 }
-%struct.wibble.566 = type { %struct.snork.567 }
-%struct.snork.567 = type { %struct.quux.16, %struct.foo.568*, %struct.foo.568*, %struct.foo.568* }
-%struct.foo.568 = type { [128 x i16], %struct.bar.0, i32, [12 x i8] }
-%struct.wobble.569 = type opaque
-%struct.foo.570 = type { [128 x %struct.barney.571], [128 x float], [128 x float], [128 x i8], i32, [12 x i8] }
-%struct.barney.571 = type <{ %struct.zot.572, [8 x i8], %struct.bar.0, %struct.bar.0, float, i8, [3 x i8], i32, [4 x i8] }>
-%struct.zot.572 = type { %struct.baz.573 }
-%struct.baz.573 = type { %struct.zot.574 }
-%struct.zot.574 = type { %struct.quux.16, %struct.spam.575, i64, i64 }
-%struct.spam.575 = type { i16*, [8 x i8] }
-%struct.widget.576 = type opaque
-%struct.barney.577 = type { %struct.hoge.578*, %struct.snork.519*, i32, i32, i32, [256 x %struct.baz.151*], [256 x [32 x i8]], [256 x [64 x [256 x i8]]], [256 x i32], [256 x i32], [256 x i32], [256 x [256 x i32]], [256 x i32], [256 x i32], [256 x i32], [256 x i32], [256 x [32 x [128 x i8]]], [256 x i32], [256 x i32], [256 x i32], [256 x i32] }
-%struct.hoge.578 = type { %struct.eggs.4, %struct.bar.579* }
-%struct.bar.579 = type opaque
-%struct.ham.580 = type { %struct.blam.2, [2 x %struct.eggs.581], [2 x %struct.wobble.588], %struct.barney.593, %struct.baz*, %struct.baz*, %struct.baz*, float, float, [2 x [30000 x i32]], [2 x [30000 x i8]], [2 x [30000 x i8]], [2 x [30000 x %struct.foo.61*]], [2 x [30000 x i32]], [8 x i8], [6024 x [32 x %struct.bar.0]], [6024 x [32 x %struct.bar.0]], [6024 x [32 x %struct.quux.69*]], [6024 x [32 x i32]], [6024 x [32 x i32]], [6024 x [32 x i32]], [6024 x [32 x i32]], [6024 x i32], [6024 x i32], [2 x i32], [2 x i32], i8, float, i32, [30000 x i32], [30000 x i32], i32, [2 x float], i32, [2 x %struct.snork.596], i32, %struct.wombat.597*, [2 x %struct.blam.598*], %struct.quux.599, i32, i32, [16 x i32], [16 x i32] }
-%struct.eggs.581 = type { %struct.ham.582 }
-%struct.ham.582 = type { %struct.baz.583 }
-%struct.baz.583 = type { %struct.wobble.584 }
-%struct.wobble.584 = type { %struct.quux.585 }
-%struct.quux.585 = type { %struct.snork.586 }
-%struct.snork.586 = type { %struct.quux.16, %struct.quux.587*, i64 }
-%struct.quux.587 = type opaque
-%struct.wobble.588 = type { %struct.foo.589 }
-%struct.foo.589 = type { %struct.spam.590 }
-%struct.spam.590 = type { %struct.spam.591 }
-%struct.spam.591 = type { %struct.quux.16, %struct.foo.592*, i64 }
-%struct.foo.592 = type opaque
-%struct.barney.593 = type { %struct.blam.594 }
-%struct.blam.594 = type { %struct.widget.595 }
-%struct.widget.595 = type { %struct.quux.16, i32*, i32*, i32* }
-%struct.snork.596 = type { float, i8, i8, i8, i8 }
-%struct.wombat.597 = type opaque
-%struct.blam.598 = type opaque
-%struct.quux.599 = type { %struct.spam.600 }
-%struct.spam.600 = type { %struct.spam.601 }
-%struct.spam.601 = type { %struct.quux.16, %struct.barney.602*, %struct.barney.602*, %struct.barney.602* }
-%struct.barney.602 = type <{ %struct.quux.69*, i32, [4 x i8] }>
-%struct.hoge.603 = type opaque
-%struct.spam.604 = type opaque
-%struct.quux.605 = type <{ [1 x %struct.snork.606], [1 x i32], [1024 x %struct.hoge.613], [4 x i8] }>
-%struct.snork.606 = type { %struct.wibble.607 }
-%struct.wibble.607 = type { %struct.wobble.608 }
-%struct.wobble.608 = type { %struct.bar.609 }
-%struct.bar.609 = type { %struct.ham.610 }
-%struct.ham.610 = type { %struct.pluto.611 }
-%struct.pluto.611 = type { %struct.quux.16, %struct.widget.612*, i64 }
-%struct.widget.612 = type opaque
-%struct.hoge.613 = type { i32, float, float, float, float, float, float, float, float, [64 x i8], [64 x i8], [64 x i8], [64 x i8], float, i32, i32, i32 }
-%struct.zot.614 = type <{ %struct.spam.300, i64, %struct.quux.28*, %struct.ham*, %struct.bar.301*, %struct.bar.306*, %struct.eggs.307*, %struct.hoge.309*, %struct.blam.310*, %struct.blam.311*, %struct.ham.312*, %struct.wibble.313*, %struct.wibble.314*, %struct.wibble.315*, %struct.spam.287*, %struct.foo.316*, %struct.eggs.317*, %struct.ham.318*, %struct.ham*, i8*, float, float, %struct.barney.320, i32, i32, i32, i16, [14 x i8] }>
-
- at global = private unnamed_addr constant [10 x i8] c"anonymous\00", align 1
- at global.1 = private unnamed_addr constant [11 x i8] c"_anonymous\00", align 1
- at global.2 = external global %struct.ham, align 16
- at global.3 = external local_unnamed_addr global %struct.bar*, align 8
-
-; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start(i64, i8* nocapture) #0
-
-; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end(i64, i8* nocapture) #0
-
-; Function Attrs: nounwind readonly
-declare i8* @hoge(i8*, i8* nocapture) local_unnamed_addr #1
-
-declare void @pluto(%struct.eggs*) local_unnamed_addr #2
-
-declare i32 @baz(%struct.spam*, %struct.bar.0* dereferenceable(16), float, %struct.bar.0*, float*) local_unnamed_addr #2
-
-; Function Attrs: sspstrong uwtable
-define i32 @wobble(%struct.foo* nocapture readonly %arg, %struct.eggs* %arg1, %struct.spam.298* nocapture %arg2, i32 %arg3) local_unnamed_addr #3 align 2 {
-; CHECK-LABEL: @wobble(
-; CHECK-NEXT:  bb:
-; CHECK-NEXT:    [[TMP:%.*]] = alloca [32 x i8], align 16
-; CHECK-NEXT:    [[TMP4:%.*]] = alloca [256 x i8], align 16
-; CHECK-NEXT:    [[TMP5:%.*]] = alloca { <2 x float>, <2 x float> }, align 16
-; CHECK-NEXT:    [[TMP6:%.*]] = bitcast { <2 x float>, <2 x float> }* [[TMP5]] to %struct.bar.0*
-; CHECK-NEXT:    tail call void @pluto(%struct.eggs* [[ARG1:%.*]])
-; CHECK-NEXT:    [[TMP7:%.*]] = getelementptr inbounds [32 x i8], [32 x i8]* [[TMP]], i64 0, i64 0
-; CHECK-NEXT:    call void @llvm.lifetime.start(i64 32, i8* nonnull [[TMP7]]) #4
-; CHECK-NEXT:    [[TMP8:%.*]] = getelementptr inbounds [[STRUCT_SPAM_298:%.*]], %struct.spam.298* [[ARG2:%.*]], i64 0, i32 0, i32 19
-; CHECK-NEXT:    [[TMP9:%.*]] = load i8*, i8** [[TMP8]], align 16
-; CHECK-NEXT:    br label [[BB10:%.*]]
-; CHECK:       bb10:
-; CHECK-NEXT:    [[TMP11:%.*]] = phi i8* [ [[TMP9]], [[BB:%.*]] ], [ [[TMP17:%.*]], [[BB16:%.*]] ]
-; CHECK-NEXT:    [[TMP12:%.*]] = load i8, i8* [[TMP11]], align 1
-; CHECK-NEXT:    [[TMP13:%.*]] = icmp eq i8 [[TMP12]], 95
-; CHECK-NEXT:    br i1 [[TMP13]], label [[BB16]], label [[BB14:%.*]]
-; CHECK:       bb14:
-; CHECK-NEXT:    br label [[BB20:%.*]]
-; CHECK:       bb16:
-; CHECK-NEXT:    [[TMP17]] = getelementptr inbounds i8, i8* [[TMP11]], i64 1
-; CHECK-NEXT:    [[TMP18:%.*]] = load i8, i8* [[TMP17]], align 1
-; CHECK-NEXT:    [[TMP19:%.*]] = icmp eq i8 [[TMP18]], 0
-; CHECK-NEXT:    br i1 [[TMP19]], label [[BB30:%.*]], label [[BB10]]
-; CHECK:       bb20:
-; CHECK-NEXT:    [[TMP21:%.*]] = phi i8* [ [[TMP25:%.*]], [[BB24:%.*]] ], [ [[TMP11]], [[BB14]] ]
-; CHECK-NEXT:    [[TMP22:%.*]] = phi i8* [ [[TMP26:%.*]], [[BB24]] ], [ [[TMP7]], [[BB14]] ]
-; CHECK-NEXT:    [[TMP23:%.*]] = load i8, i8* [[TMP21]], align 1
-; CHECK-NEXT:    switch i8 [[TMP23]], label [[BB24]] [
-; CHECK-NEXT:    i8 95, label [[BB27:%.*]]
-; CHECK-NEXT:    i8 0, label [[BB27]]
-; CHECK-NEXT:    ]
-; CHECK:       bb24:
-; CHECK-NEXT:    [[TMP25]] = getelementptr inbounds i8, i8* [[TMP21]], i64 1
-; CHECK-NEXT:    [[TMP26]] = getelementptr inbounds i8, i8* [[TMP22]], i64 1
-; CHECK-NEXT:    store i8 [[TMP23]], i8* [[TMP22]], align 1
-; CHECK-NEXT:    br label [[BB20]]
-; CHECK:       bb27:
-; CHECK-NEXT:    br label [[BB32:%.*]]
-; CHECK:       bb30:
-; CHECK-NEXT:    br label [[BB32]]
-; CHECK:       bb32:
-; CHECK-NEXT:    [[TMP33:%.*]] = phi i8* [ [[TMP22]], [[BB27]] ], [ [[TMP7]], [[BB30]] ]
-; CHECK-NEXT:    [[TMP34:%.*]] = phi i8* [ [[TMP21]], [[BB27]] ], [ [[TMP17]], [[BB30]] ]
-; CHECK-NEXT:    store i8 0, i8* [[TMP33]], align 1
-; CHECK-NEXT:    [[TMP35:%.*]] = getelementptr inbounds [[STRUCT_EGGS:%.*]], %struct.eggs* [[ARG1]], i64 0, i32 5
-; CHECK-NEXT:    store i32 [[ARG3:%.*]], i32* [[TMP35]], align 4
-; CHECK-NEXT:    br label [[BB36:%.*]]
-; CHECK:       bb36:
-; CHECK-NEXT:    [[TMP37:%.*]] = phi i8* [ [[TMP34]], [[BB32]] ], [ [[TMP43:%.*]], [[BB42:%.*]] ]
-; CHECK-NEXT:    [[TMP38:%.*]] = load i8, i8* [[TMP37]], align 1
-; CHECK-NEXT:    [[TMP39:%.*]] = icmp eq i8 [[TMP38]], 95
-; CHECK-NEXT:    br i1 [[TMP39]], label [[BB42]], label [[BB40:%.*]]
-; CHECK:       bb40:
-; CHECK-NEXT:    br label [[BB46:%.*]]
-; CHECK:       bb42:
-; CHECK-NEXT:    [[TMP43]] = getelementptr inbounds i8, i8* [[TMP37]], i64 1
-; CHECK-NEXT:    [[TMP44:%.*]] = load i8, i8* [[TMP43]], align 1
-; CHECK-NEXT:    [[TMP45:%.*]] = icmp eq i8 [[TMP44]], 0
-; CHECK-NEXT:    br i1 [[TMP45]], label [[BB56:%.*]], label [[BB36]]
-; CHECK:       bb46:
-; CHECK-NEXT:    [[TMP47:%.*]] = phi i8* [ [[TMP51:%.*]], [[BB50:%.*]] ], [ [[TMP37]], [[BB40]] ]
-; CHECK-NEXT:    [[TMP48:%.*]] = phi i8* [ [[TMP52:%.*]], [[BB50]] ], [ [[TMP7]], [[BB40]] ]
-; CHECK-NEXT:    [[TMP49:%.*]] = load i8, i8* [[TMP47]], align 1
-; CHECK-NEXT:    switch i8 [[TMP49]], label [[BB50]] [
-; CHECK-NEXT:    i8 95, label [[BB53:%.*]]
-; CHECK-NEXT:    i8 0, label [[BB53]]
-; CHECK-NEXT:    ]
-; CHECK:       bb50:
-; CHECK-NEXT:    [[TMP51]] = getelementptr inbounds i8, i8* [[TMP47]], i64 1
-; CHECK-NEXT:    [[TMP52]] = getelementptr inbounds i8, i8* [[TMP48]], i64 1
-; CHECK-NEXT:    store i8 [[TMP49]], i8* [[TMP48]], align 1
-; CHECK-NEXT:    br label [[BB46]]
-; CHECK:       bb53:
-; CHECK-NEXT:    br label [[BB58:%.*]]
-; CHECK:       bb56:
-; CHECK-NEXT:    br label [[BB58]]
-; CHECK:       bb58:
-; CHECK-NEXT:    [[TMP59:%.*]] = phi i8* [ [[TMP48]], [[BB53]] ], [ [[TMP7]], [[BB56]] ]
-; CHECK-NEXT:    [[TMP60:%.*]] = phi i8* [ [[TMP47]], [[BB53]] ], [ [[TMP43]], [[BB56]] ]
-; CHECK-NEXT:    store i8 0, i8* [[TMP59]], align 1
-; CHECK-NEXT:    [[TMP61:%.*]] = load i32, i32* [[TMP35]], align 4
-; CHECK-NEXT:    [[TMP62:%.*]] = icmp eq i32 [[TMP61]], 10
-; CHECK-NEXT:    br i1 [[TMP62]], label [[BB63:%.*]], label [[BB93:%.*]]
-; CHECK:       bb63:
-; CHECK-NEXT:    [[TMP64:%.*]] = getelementptr inbounds [256 x i8], [256 x i8]* [[TMP4]], i64 0, i64 0
-; CHECK-NEXT:    call void @llvm.lifetime.start(i64 256, i8* nonnull [[TMP64]]) #4
-; CHECK-NEXT:    [[TMP65:%.*]] = load i8*, i8** [[TMP8]], align 16
-; CHECK-NEXT:    [[TMP66:%.*]] = getelementptr inbounds i8, i8* [[TMP65]], i64 10
-; CHECK-NEXT:    br label [[BB67:%.*]]
-; CHECK:       bb67:
-; CHECK-NEXT:    [[TMP68:%.*]] = phi i64 [ [[TMP77:%.*]], [[BB73:%.*]] ], [ 1, [[BB63]] ]
-; CHECK-NEXT:    [[TMP69:%.*]] = phi i8* [ [[TMP75:%.*]], [[BB73]] ], [ [[TMP66]], [[BB63]] ]
-; CHECK-NEXT:    [[TMP70:%.*]] = phi i8* [ [[TMP74:%.*]], [[BB73]] ], [ [[TMP64]], [[BB63]] ]
-; CHECK-NEXT:    [[TMP71:%.*]] = load i8, i8* [[TMP69]], align 1
-; CHECK-NEXT:    store i8 [[TMP71]], i8* [[TMP70]], align 1
-; CHECK-NEXT:    [[TMP72:%.*]] = icmp eq i8 [[TMP71]], 0
-; CHECK-NEXT:    br i1 [[TMP72]], label [[BB80:%.*]], label [[BB73]]
-; CHECK:       bb73:
-; CHECK-NEXT:    [[TMP74]] = getelementptr inbounds i8, i8* [[TMP70]], i64 1
-; CHECK-NEXT:    [[TMP75]] = getelementptr inbounds i8, i8* [[TMP69]], i64 1
-; CHECK-NEXT:    [[TMP76:%.*]] = icmp ult i64 [[TMP68]], 255
-; CHECK-NEXT:    [[TMP77]] = add nuw nsw i64 [[TMP68]], 1
-; CHECK-NEXT:    br i1 [[TMP76]], label [[BB67]], label [[BB78:%.*]]
-; CHECK:       bb78:
-; CHECK-NEXT:    store i8 0, i8* [[TMP74]], align 1
-; CHECK-NEXT:    br label [[BB81:%.*]]
-; CHECK:       bb80:
-; CHECK-NEXT:    br label [[BB81]]
-; CHECK:       bb81:
-; CHECK-NEXT:    [[TMP82:%.*]] = call i8* @hoge(i8* nonnull [[TMP64]], i8* getelementptr inbounds ([11 x i8], [11 x i8]* @global.1, i64 0, i64 0))
-; CHECK-NEXT:    [[TMP83:%.*]] = icmp eq i8* [[TMP82]], null
-; CHECK-NEXT:    br i1 [[TMP83]], label [[BB85:%.*]], label [[BB84:%.*]]
-; CHECK:       bb84:
-; CHECK-NEXT:    store i8 0, i8* [[TMP82]], align 1
-; CHECK-NEXT:    br label [[BB85]]
-; CHECK:       bb85:
-; CHECK-NEXT:    [[TMP86:%.*]] = load %struct.foo.321*, %struct.foo.321** bitcast (%struct.bar** @global.3 to %struct.foo.321**), align 8
-; CHECK-NEXT:    [[TMP87:%.*]] = getelementptr inbounds [[STRUCT_FOO_321:%.*]], %struct.foo.321* [[TMP86]], i64 0, i32 131
-; CHECK-NEXT:    [[TMP88:%.*]] = load %struct.quux.605*, %struct.quux.605** [[TMP87]], align 16
-; CHECK-NEXT:    [[TMP89:%.*]] = call i32 @foo(%struct.quux.605* [[TMP88]], i32 0, i8* nonnull [[TMP64]])
-; CHECK-NEXT:    [[TMP90:%.*]] = icmp sgt i32 [[TMP89]], 0
-; CHECK-NEXT:    [[TMP91:%.*]] = select i1 [[TMP90]], i32 [[TMP89]], i32 0
-; CHECK-NEXT:    [[TMP92:%.*]] = getelementptr inbounds [[STRUCT_EGGS]], %struct.eggs* [[ARG1]], i64 0, i32 6
-; CHECK-NEXT:    store i32 [[TMP91]], i32* [[TMP92]], align 8
-; CHECK-NEXT:    call void @llvm.lifetime.end(i64 256, i8* nonnull [[TMP64]]) #4
-; CHECK-NEXT:    br label [[BB97:%.*]]
-; CHECK:       bb93:
-; CHECK-NEXT:    [[TMP94:%.*]] = call i64 @ham(i8* nonnull [[TMP7]], i8** null, i32 10)
-; CHECK-NEXT:    [[TMP95:%.*]] = trunc i64 [[TMP94]] to i32
-; CHECK-NEXT:    [[TMP96:%.*]] = getelementptr inbounds [[STRUCT_EGGS]], %struct.eggs* [[ARG1]], i64 0, i32 6
-; CHECK-NEXT:    store i32 [[TMP95]], i32* [[TMP96]], align 8
-; CHECK-NEXT:    br label [[BB97]]
-; CHECK:       bb97:
-; CHECK-NEXT:    [[TMP98:%.*]] = load i8, i8* [[TMP60]], align 1
-; CHECK-NEXT:    [[TMP99:%.*]] = icmp eq i8 [[TMP98]], 0
-; CHECK-NEXT:    br i1 [[TMP99]], label [[BB155:%.*]], label [[BB100:%.*]]
-; CHECK:       bb100:
-; CHECK-NEXT:    br label [[BB101:%.*]]
-; CHECK:       bb101:
-; CHECK-NEXT:    [[TMP102:%.*]] = phi i8* [ [[TMP108:%.*]], [[BB107:%.*]] ], [ [[TMP60]], [[BB100]] ]
-; CHECK-NEXT:    [[TMP103:%.*]] = load i8, i8* [[TMP102]], align 1
-; CHECK-NEXT:    [[TMP104:%.*]] = icmp eq i8 [[TMP103]], 95
-; CHECK-NEXT:    br i1 [[TMP104]], label [[BB107]], label [[BB105:%.*]]
-; CHECK:       bb105:
-; CHECK-NEXT:    br label [[BB111:%.*]]
-; CHECK:       bb107:
-; CHECK-NEXT:    [[TMP108]] = getelementptr inbounds i8, i8* [[TMP102]], i64 1
-; CHECK-NEXT:    [[TMP109:%.*]] = load i8, i8* [[TMP108]], align 1
-; CHECK-NEXT:    [[TMP110:%.*]] = icmp eq i8 [[TMP109]], 0
-; CHECK-NEXT:    br i1 [[TMP110]], label [[BB121:%.*]], label [[BB101]]
-; CHECK:       bb111:
-; CHECK-NEXT:    [[TMP112:%.*]] = phi i8* [ [[TMP116:%.*]], [[BB115:%.*]] ], [ [[TMP102]], [[BB105]] ]
-; CHECK-NEXT:    [[TMP113:%.*]] = phi i8* [ [[TMP117:%.*]], [[BB115]] ], [ [[TMP7]], [[BB105]] ]
-; CHECK-NEXT:    [[TMP114:%.*]] = load i8, i8* [[TMP112]], align 1
-; CHECK-NEXT:    switch i8 [[TMP114]], label [[BB115]] [
-; CHECK-NEXT:    i8 95, label [[BB118:%.*]]
-; CHECK-NEXT:    i8 0, label [[BB118]]
-; CHECK-NEXT:    ]
-; CHECK:       bb115:
-; CHECK-NEXT:    [[TMP116]] = getelementptr inbounds i8, i8* [[TMP112]], i64 1
-; CHECK-NEXT:    [[TMP117]] = getelementptr inbounds i8, i8* [[TMP113]], i64 1
-; CHECK-NEXT:    store i8 [[TMP114]], i8* [[TMP113]], align 1
-; CHECK-NEXT:    br label [[BB111]]
-; CHECK:       bb118:
-; CHECK-NEXT:    br label [[BB123:%.*]]
-; CHECK:       bb121:
-; CHECK-NEXT:    br label [[BB123]]
-; CHECK:       bb123:
-; CHECK-NEXT:    [[TMP124:%.*]] = phi i8* [ [[TMP113]], [[BB118]] ], [ [[TMP7]], [[BB121]] ]
-; CHECK-NEXT:    [[TMP125:%.*]] = phi i8* [ [[TMP112]], [[BB118]] ], [ [[TMP108]], [[BB121]] ]
-; CHECK-NEXT:    store i8 0, i8* [[TMP124]], align 1
-; CHECK-NEXT:    [[TMP126:%.*]] = load i8, i8* [[TMP125]], align 1
-; CHECK-NEXT:    [[TMP127:%.*]] = icmp ne i8 [[TMP126]], 95
-; CHECK-NEXT:    [[TMP128:%.*]] = load i8, i8* [[TMP7]], align 16
-; CHECK-NEXT:    [[TMP129:%.*]] = icmp eq i8 [[TMP128]], 0
-; CHECK-NEXT:    [[TMP130:%.*]] = or i1 [[TMP127]], [[TMP129]]
-; CHECK-NEXT:    br i1 [[TMP130]], label [[BB155]], label [[BB131:%.*]]
-; CHECK:       bb131:
-; CHECK-NEXT:    [[TMP132:%.*]] = call i32 @wibble(i8* nonnull [[TMP7]], i8* getelementptr inbounds ([10 x i8], [10 x i8]* @global, i64 0, i64 0))
-; CHECK-NEXT:    [[TMP133:%.*]] = icmp eq i32 [[TMP132]], 0
-; CHECK-NEXT:    [[TMP134:%.*]] = getelementptr inbounds [[STRUCT_EGGS]], %struct.eggs* [[ARG1]], i64 0, i32 8, i64 0
-; CHECK-NEXT:    br i1 [[TMP133]], label [[BB136:%.*]], label [[BB135:%.*]]
-; CHECK:       bb135:
-; CHECK-NEXT:    br label [[BB137:%.*]]
-; CHECK:       bb136:
-; CHECK-NEXT:    br label [[BB150:%.*]]
-; CHECK:       bb137:
-; CHECK-NEXT:    [[TMP138:%.*]] = phi i64 [ [[TMP147:%.*]], [[BB143:%.*]] ], [ 1, [[BB135]] ]
-; CHECK-NEXT:    [[TMP139:%.*]] = phi i8* [ [[TMP145:%.*]], [[BB143]] ], [ [[TMP7]], [[BB135]] ]
-; CHECK-NEXT:    [[TMP140:%.*]] = phi i8* [ [[TMP144:%.*]], [[BB143]] ], [ [[TMP134]], [[BB135]] ]
-; CHECK-NEXT:    [[TMP141:%.*]] = load i8, i8* [[TMP139]], align 1
-; CHECK-NEXT:    store i8 [[TMP141]], i8* [[TMP140]], align 1
-; CHECK-NEXT:    [[TMP142:%.*]] = icmp eq i8 [[TMP141]], 0
-; CHECK-NEXT:    br i1 [[TMP142]], label [[BB154:%.*]], label [[BB143]]
-; CHECK:       bb143:
-; CHECK-NEXT:    [[TMP144]] = getelementptr inbounds i8, i8* [[TMP140]], i64 1
-; CHECK-NEXT:    [[TMP145]] = getelementptr inbounds i8, i8* [[TMP139]], i64 1
-; CHECK-NEXT:    [[TMP146:%.*]] = icmp ult i64 [[TMP138]], 31
-; CHECK-NEXT:    [[TMP147]] = add nuw nsw i64 [[TMP138]], 1
-; CHECK-NEXT:    br i1 [[TMP146]], label [[BB137]], label [[BB148:%.*]]
-; CHECK:       bb148:
-; CHECK-NEXT:    store i8 0, i8* [[TMP144]], align 1
-; CHECK-NEXT:    br label [[BB155]]
-; CHECK:       bb150:
-; CHECK-NEXT:    store i8 0, i8* [[TMP134]], align 1
-; CHECK-NEXT:    br i1 true, label [[BB153:%.*]], label [[BB151:%.*]]
-; CHECK:       bb151:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB370:%.*]]
-; CHECK:       bb153:
-; CHECK-NEXT:    br label [[BB155]]
-; CHECK:       bb154:
-; CHECK-NEXT:    br label [[BB155]]
-; CHECK:       bb155:
-; CHECK-NEXT:    [[TMP156:%.*]] = phi i8* [ [[TMP125]], [[BB123]] ], [ [[TMP60]], [[BB97]] ], [ [[TMP125]], [[BB148]] ], [ undef, [[BB428:%.*]] ], [ [[TMP125]], [[BB153]] ], [ [[TMP125]], [[BB154]] ]
-; CHECK-NEXT:    [[TMP157:%.*]] = load i8, i8* [[TMP156]], align 1
-; CHECK-NEXT:    [[TMP158:%.*]] = icmp eq i8 [[TMP157]], 0
-; CHECK-NEXT:    br i1 [[TMP158]], label [[BB191:%.*]], label [[BB159:%.*]]
-; CHECK:       bb159:
-; CHECK-NEXT:    br label [[BB160:%.*]]
-; CHECK:       bb160:
-; CHECK-NEXT:    [[TMP161:%.*]] = phi i8* [ [[TMP167:%.*]], [[BB166:%.*]] ], [ [[TMP156]], [[BB159]] ]
-; CHECK-NEXT:    [[TMP162:%.*]] = load i8, i8* [[TMP161]], align 1
-; CHECK-NEXT:    [[TMP163:%.*]] = icmp eq i8 [[TMP162]], 95
-; CHECK-NEXT:    br i1 [[TMP163]], label [[BB166]], label [[BB164:%.*]]
-; CHECK:       bb164:
-; CHECK-NEXT:    br label [[BB170:%.*]]
-; CHECK:       bb166:
-; CHECK-NEXT:    [[TMP167]] = getelementptr inbounds i8, i8* [[TMP161]], i64 1
-; CHECK-NEXT:    [[TMP168:%.*]] = load i8, i8* [[TMP167]], align 1
-; CHECK-NEXT:    [[TMP169:%.*]] = icmp eq i8 [[TMP168]], 0
-; CHECK-NEXT:    br i1 [[TMP169]], label [[BB180:%.*]], label [[BB160]]
-; CHECK:       bb170:
-; CHECK-NEXT:    [[TMP171:%.*]] = phi i8* [ [[TMP175:%.*]], [[BB174:%.*]] ], [ [[TMP161]], [[BB164]] ]
-; CHECK-NEXT:    [[TMP172:%.*]] = phi i8* [ [[TMP176:%.*]], [[BB174]] ], [ [[TMP7]], [[BB164]] ]
-; CHECK-NEXT:    [[TMP173:%.*]] = load i8, i8* [[TMP171]], align 1
-; CHECK-NEXT:    switch i8 [[TMP173]], label [[BB174]] [
-; CHECK-NEXT:    i8 95, label [[BB177:%.*]]
-; CHECK-NEXT:    i8 0, label [[BB177]]
-; CHECK-NEXT:    ]
-; CHECK:       bb174:
-; CHECK-NEXT:    [[TMP175]] = getelementptr inbounds i8, i8* [[TMP171]], i64 1
-; CHECK-NEXT:    [[TMP176]] = getelementptr inbounds i8, i8* [[TMP172]], i64 1
-; CHECK-NEXT:    store i8 [[TMP173]], i8* [[TMP172]], align 1
-; CHECK-NEXT:    br label [[BB170]]
-; CHECK:       bb177:
-; CHECK-NEXT:    br label [[BB182:%.*]]
-; CHECK:       bb180:
-; CHECK-NEXT:    br label [[BB182]]
-; CHECK:       bb182:
-; CHECK-NEXT:    [[TMP183:%.*]] = phi i8* [ [[TMP172]], [[BB177]] ], [ [[TMP7]], [[BB180]] ]
-; CHECK-NEXT:    [[TMP184:%.*]] = phi i8* [ [[TMP171]], [[BB177]] ], [ [[TMP167]], [[BB180]] ]
-; CHECK-NEXT:    store i8 0, i8* [[TMP183]], align 1
-; CHECK-NEXT:    [[TMP185:%.*]] = load i8, i8* [[TMP7]], align 16
-; CHECK-NEXT:    [[TMP186:%.*]] = icmp eq i8 [[TMP185]], 0
-; CHECK-NEXT:    br i1 [[TMP186]], label [[BB191]], label [[BB187:%.*]]
-; CHECK:       bb187:
-; CHECK-NEXT:    [[TMP188:%.*]] = call i64 @ham(i8* nonnull [[TMP7]], i8** null, i32 10)
-; CHECK-NEXT:    [[TMP189:%.*]] = trunc i64 [[TMP188]] to i32
-; CHECK-NEXT:    [[TMP190:%.*]] = getelementptr inbounds [[STRUCT_EGGS]], %struct.eggs* [[ARG1]], i64 0, i32 9
-; CHECK-NEXT:    store i32 [[TMP189]], i32* [[TMP190]], align 16
-; CHECK-NEXT:    br label [[BB191]]
-; CHECK:       bb191:
-; CHECK-NEXT:    [[TMP192:%.*]] = phi i8* [ [[TMP184]], [[BB187]] ], [ [[TMP184]], [[BB182]] ], [ [[TMP156]], [[BB155]] ]
-; CHECK-NEXT:    [[TMP193:%.*]] = load i8, i8* [[TMP192]], align 1
-; CHECK-NEXT:    [[TMP194:%.*]] = icmp eq i8 [[TMP193]], 0
-; CHECK-NEXT:    br i1 [[TMP194]], label [[BB224:%.*]], label [[BB195:%.*]]
-; CHECK:       bb195:
-; CHECK-NEXT:    br label [[BB196:%.*]]
-; CHECK:       bb196:
-; CHECK-NEXT:    [[TMP197:%.*]] = phi i8* [ [[TMP203:%.*]], [[BB202:%.*]] ], [ [[TMP192]], [[BB195]] ]
-; CHECK-NEXT:    [[TMP198:%.*]] = load i8, i8* [[TMP197]], align 1
-; CHECK-NEXT:    [[TMP199:%.*]] = icmp eq i8 [[TMP198]], 95
-; CHECK-NEXT:    br i1 [[TMP199]], label [[BB202]], label [[BB200:%.*]]
-; CHECK:       bb200:
-; CHECK-NEXT:    br label [[BB206:%.*]]
-; CHECK:       bb202:
-; CHECK-NEXT:    [[TMP203]] = getelementptr inbounds i8, i8* [[TMP197]], i64 1
-; CHECK-NEXT:    [[TMP204:%.*]] = load i8, i8* [[TMP203]], align 1
-; CHECK-NEXT:    [[TMP205:%.*]] = icmp eq i8 [[TMP204]], 0
-; CHECK-NEXT:    br i1 [[TMP205]], label [[BB215:%.*]], label [[BB196]]
-; CHECK:       bb206:
-; CHECK-NEXT:    [[TMP207:%.*]] = phi i8* [ [[TMP211:%.*]], [[BB210:%.*]] ], [ [[TMP197]], [[BB200]] ]
-; CHECK-NEXT:    [[TMP208:%.*]] = phi i8* [ [[TMP212:%.*]], [[BB210]] ], [ [[TMP7]], [[BB200]] ]
-; CHECK-NEXT:    [[TMP209:%.*]] = load i8, i8* [[TMP207]], align 1
-; CHECK-NEXT:    switch i8 [[TMP209]], label [[BB210]] [
-; CHECK-NEXT:    i8 95, label [[BB213:%.*]]
-; CHECK-NEXT:    i8 0, label [[BB213]]
-; CHECK-NEXT:    ]
-; CHECK:       bb210:
-; CHECK-NEXT:    [[TMP211]] = getelementptr inbounds i8, i8* [[TMP207]], i64 1
-; CHECK-NEXT:    [[TMP212]] = getelementptr inbounds i8, i8* [[TMP208]], i64 1
-; CHECK-NEXT:    store i8 [[TMP209]], i8* [[TMP208]], align 1
-; CHECK-NEXT:    br label [[BB206]]
-; CHECK:       bb213:
-; CHECK-NEXT:    br label [[BB216:%.*]]
-; CHECK:       bb215:
-; CHECK-NEXT:    br label [[BB216]]
-; CHECK:       bb216:
-; CHECK-NEXT:    [[TMP217:%.*]] = phi i8* [ [[TMP208]], [[BB213]] ], [ [[TMP7]], [[BB215]] ]
-; CHECK-NEXT:    store i8 0, i8* [[TMP217]], align 1
-; CHECK-NEXT:    [[TMP218:%.*]] = load i8, i8* [[TMP7]], align 16
-; CHECK-NEXT:    [[TMP219:%.*]] = icmp eq i8 [[TMP218]], 0
-; CHECK-NEXT:    br i1 [[TMP219]], label [[BB224]], label [[BB220:%.*]]
-; CHECK:       bb220:
-; CHECK-NEXT:    [[TMP221:%.*]] = call i64 @ham(i8* nonnull [[TMP7]], i8** null, i32 10)
-; CHECK-NEXT:    [[TMP222:%.*]] = trunc i64 [[TMP221]] to i32
-; CHECK-NEXT:    [[TMP223:%.*]] = getelementptr inbounds [[STRUCT_EGGS]], %struct.eggs* [[ARG1]], i64 0, i32 11
-; CHECK-NEXT:    store i32 [[TMP222]], i32* [[TMP223]], align 8
-; CHECK-NEXT:    br label [[BB224]]
-; CHECK:       bb224:
-; CHECK-NEXT:    [[TMP225:%.*]] = getelementptr inbounds [[STRUCT_SPAM_298]], %struct.spam.298* [[ARG2]], i64 0, i32 0, i32 3
-; CHECK-NEXT:    [[TMP226:%.*]] = load %struct.ham*, %struct.ham** [[TMP225]], align 16
-; CHECK-NEXT:    [[TMP227:%.*]] = icmp eq %struct.ham* [[TMP226]], null
-; CHECK-NEXT:    [[TMP228:%.*]] = select i1 [[TMP227]], %struct.ham* @global.2, %struct.ham* [[TMP226]]
-; CHECK-NEXT:    call void @hoge.4(%struct.eggs* [[ARG1]], %struct.ham* nonnull dereferenceable(64) [[TMP228]])
-; CHECK-NEXT:    [[TMP229:%.*]] = bitcast { <2 x float>, <2 x float> }* [[TMP5]] to i8*
-; CHECK-NEXT:    call void @llvm.lifetime.start(i64 16, i8* nonnull [[TMP229]]) #4
-; CHECK-NEXT:    [[TMP230:%.*]] = load %struct.ham*, %struct.ham** [[TMP225]], align 16
-; CHECK-NEXT:    [[TMP231:%.*]] = icmp eq %struct.ham* [[TMP230]], null
-; CHECK-NEXT:    [[TMP232:%.*]] = select i1 [[TMP231]], %struct.ham* @global.2, %struct.ham* [[TMP230]]
-; CHECK-NEXT:    [[TMP233:%.*]] = call { <2 x float>, <2 x float> } @quux(%struct.ham* nonnull [[TMP232]])
-; CHECK-NEXT:    [[TMP234:%.*]] = getelementptr inbounds { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* [[TMP5]], i64 0, i32 0
-; CHECK-NEXT:    [[TMP235:%.*]] = extractvalue { <2 x float>, <2 x float> } [[TMP233]], 0
-; CHECK-NEXT:    store <2 x float> [[TMP235]], <2 x float>* [[TMP234]], align 16
-; CHECK-NEXT:    [[TMP236:%.*]] = getelementptr inbounds { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* [[TMP5]], i64 0, i32 1
-; CHECK-NEXT:    [[TMP237:%.*]] = extractvalue { <2 x float>, <2 x float> } [[TMP233]], 1
-; CHECK-NEXT:    store <2 x float> [[TMP237]], <2 x float>* [[TMP236]], align 8
-; CHECK-NEXT:    [[TMP238:%.*]] = getelementptr inbounds [[STRUCT_EGGS]], %struct.eggs* [[ARG1]], i64 0, i32 7
-; CHECK-NEXT:    store i32 -1, i32* [[TMP238]], align 4
-; CHECK-NEXT:    [[TMP239:%.*]] = getelementptr inbounds [[STRUCT_FOO:%.*]], %struct.foo* [[ARG:%.*]], i64 0, i32 66
-; CHECK-NEXT:    [[TMP240:%.*]] = load i32, i32* [[TMP239]], align 16
-; CHECK-NEXT:    [[TMP241:%.*]] = icmp sgt i32 [[TMP240]], 0
-; CHECK-NEXT:    br i1 [[TMP241]], label [[BB242:%.*]], label [[BB258:%.*]]
-; CHECK:       bb242:
-; CHECK-NEXT:    br label [[BB243:%.*]]
-; CHECK:       bb243:
-; CHECK-NEXT:    [[TMP244:%.*]] = phi i64 [ 0, [[BB242]] ], [ [[TMP266:%.*]], [[BB265:%.*]] ]
-; CHECK-NEXT:    [[TMP245:%.*]] = getelementptr inbounds [[STRUCT_FOO]], %struct.foo* [[ARG]], i64 0, i32 65, i64 [[TMP244]], i32 5
-; CHECK-NEXT:    [[TMP246:%.*]] = load i32, i32* [[TMP245]], align 4
-; CHECK-NEXT:    [[TMP247:%.*]] = icmp eq i32 [[TMP246]], 9
-; CHECK-NEXT:    br i1 [[TMP247]], label [[BB248:%.*]], label [[BB265]]
-; CHECK:       bb248:
-; CHECK-NEXT:    [[TMP249:%.*]] = getelementptr inbounds [[STRUCT_FOO]], %struct.foo* [[ARG]], i64 0, i32 65, i64 [[TMP244]], i32 12
-; CHECK-NEXT:    [[TMP250:%.*]] = load %struct.spam*, %struct.spam** [[TMP249]], align 16
-; CHECK-NEXT:    [[TMP251:%.*]] = call i32 @baz(%struct.spam* [[TMP250]], %struct.bar.0* nonnull dereferenceable(16) [[TMP6]], float 1.000000e+01, %struct.bar.0* null, float* null)
-; CHECK-NEXT:    [[TMP252:%.*]] = icmp eq i32 [[TMP251]], 0
-; CHECK-NEXT:    br i1 [[TMP252]], label [[BB265]], label [[BB253:%.*]]
-; CHECK:       bb253:
-; CHECK-NEXT:    [[TMP255:%.*]] = getelementptr inbounds [[STRUCT_FOO]], %struct.foo* [[ARG]], i64 0, i32 65, i64 [[TMP244]], i32 6
-; CHECK-NEXT:    [[TMP256:%.*]] = load i32, i32* [[TMP255]], align 8
-; CHECK-NEXT:    store i32 [[TMP256]], i32* [[TMP238]], align 4
-; CHECK-NEXT:    br label [[BB258]]
-; CHECK:       bb257:
-; CHECK-NEXT:    br label [[BB258]]
-; CHECK:       bb258:
-; CHECK-NEXT:    [[TMP259:%.*]] = getelementptr inbounds [[STRUCT_SPAM_298]], %struct.spam.298* [[ARG2]], i64 0, i32 0, i32 24
-; CHECK-NEXT:    [[TMP260:%.*]] = getelementptr inbounds [[STRUCT_SPAM_298]], %struct.spam.298* [[ARG2]], i64 0, i32 0, i32 25
-; CHECK-NEXT:    [[TMP261:%.*]] = getelementptr inbounds [[STRUCT_SPAM_298]], %struct.spam.298* [[ARG2]], i64 0, i32 0, i32 2
-; CHECK-NEXT:    [[TMP262:%.*]] = getelementptr inbounds [[STRUCT_SPAM_298]], %struct.spam.298* [[ARG2]], i64 0, i32 0, i32 26
-; CHECK-NEXT:    br label [[BB270:%.*]]
-; CHECK:       bb265:
-; CHECK-NEXT:    [[TMP266]] = add nuw i64 [[TMP244]], 1
-; CHECK-NEXT:    [[TMP267:%.*]] = load i32, i32* [[TMP239]], align 16
-; CHECK-NEXT:    [[TMP268:%.*]] = sext i32 [[TMP267]] to i64
-; CHECK-NEXT:    [[TMP269:%.*]] = icmp slt i64 [[TMP266]], [[TMP268]]
-; CHECK-NEXT:    br i1 [[TMP269]], label [[BB243]], label [[BB257:%.*]]
-; CHECK:       bb270:
-; CHECK-NEXT:    [[TMP271:%.*]] = phi i32 [ [[TMP369:%.*]], [[BB368:%.*]] ], [ 0, [[BB258]] ]
-; CHECK-NEXT:    [[TMP272:%.*]] = load i32, i32* [[TMP259]], align 8
-; CHECK-NEXT:    [[TMP273:%.*]] = icmp eq i32 [[TMP272]], -1
-; CHECK-NEXT:    br i1 [[TMP273]], label [[BB317:%.*]], label [[BB274:%.*]]
-; CHECK:       bb274:
-; CHECK-NEXT:    [[TMP275:%.*]] = load i16, i16* [[TMP262]], align 16
-; CHECK-NEXT:    [[TMP276:%.*]] = icmp sgt i16 [[TMP275]], -1
-; CHECK-NEXT:    br i1 [[TMP276]], label [[BB277:%.*]], label [[BB279:%.*]]
-; CHECK:       bb277:
-; CHECK-NEXT:    [[TMP278:%.*]] = sext i16 [[TMP275]] to i32
-; CHECK-NEXT:    br label [[BB317]]
-; CHECK:       bb279:
-; CHECK-NEXT:    [[TMP280:%.*]] = load i32, i32* [[TMP260]], align 4
-; CHECK-NEXT:    [[TMP281:%.*]] = icmp sgt i32 [[TMP280]], 0
-; CHECK-NEXT:    [[TMP282:%.*]] = select i1 [[TMP281]], i32 [[TMP280]], i32 0
-; CHECK-NEXT:    [[TMP283:%.*]] = load %struct.quux.28*, %struct.quux.28** [[TMP261]], align 8
-; CHECK-NEXT:    [[TMP284:%.*]] = getelementptr inbounds [[STRUCT_QUUX_28:%.*]], %struct.quux.28* [[TMP283]], i64 0, i32 16
-; CHECK-NEXT:    [[TMP285:%.*]] = load i32, i32* [[TMP284]], align 16
-; CHECK-NEXT:    [[TMP286:%.*]] = icmp slt i32 [[TMP282]], [[TMP285]]
-; CHECK-NEXT:    br i1 [[TMP286]], label [[BB287:%.*]], label [[BB292:%.*]]
-; CHECK:       bb287:
-; CHECK-NEXT:    [[TMP288:%.*]] = zext i32 [[TMP282]] to i64
-; CHECK-NEXT:    [[TMP289:%.*]] = getelementptr inbounds [[STRUCT_QUUX_28]], %struct.quux.28* [[TMP283]], i64 0, i32 15, i32 0
-; CHECK-NEXT:    br label [[BB295:%.*]]
-; CHECK:       bb290:
-; CHECK-NEXT:    br label [[BB292]]
-; CHECK:       bb292:
-; CHECK-NEXT:    [[TMP293:%.*]] = phi i32 [ 0, [[BB279]] ], [ [[TMP312:%.*]], [[BB290:%.*]] ]
-; CHECK-NEXT:    [[TMP294:%.*]] = trunc i32 [[TMP293]] to i16
-; CHECK-NEXT:    store i16 [[TMP294]], i16* [[TMP262]], align 16
-; CHECK-NEXT:    br label [[BB317]]
-; CHECK:       bb295:
-; CHECK-NEXT:    [[TMP296:%.*]] = phi i64 [ [[TMP288]], [[BB287]] ], [ [[TMP313:%.*]], [[BB311:%.*]] ]
-; CHECK-NEXT:    [[TMP297:%.*]] = phi i32 [ 0, [[BB287]] ], [ [[TMP312]], [[BB311]] ]
-; CHECK-NEXT:    [[TMP298:%.*]] = load %struct.spam.298**, %struct.spam.298*** [[TMP289]], align 8
-; CHECK-NEXT:    [[TMP299:%.*]] = getelementptr inbounds %struct.spam.298*, %struct.spam.298** [[TMP298]], i64 [[TMP296]]
-; CHECK-NEXT:    [[TMP300:%.*]] = bitcast %struct.spam.298** [[TMP299]] to %struct.zot.614**
-; CHECK-NEXT:    [[TMP301:%.*]] = load %struct.zot.614*, %struct.zot.614** [[TMP300]], align 8
-; CHECK-NEXT:    [[TMP302:%.*]] = getelementptr inbounds [[STRUCT_ZOT_614:%.*]], %struct.zot.614* [[TMP301]], i64 0, i32 23
-; CHECK-NEXT:    [[TMP303:%.*]] = load i32, i32* [[TMP302]], align 4
-; CHECK-NEXT:    [[TMP304:%.*]] = icmp eq i32 [[TMP272]], [[TMP303]]
-; CHECK-NEXT:    br i1 [[TMP304]], label [[BB305:%.*]], label [[BB311]]
-; CHECK:       bb305:
-; CHECK-NEXT:    [[TMP306:%.*]] = icmp eq i32 [[TMP297]], 0
-; CHECK-NEXT:    br i1 [[TMP306]], label [[BB307:%.*]], label [[BB309:%.*]]
-; CHECK:       bb307:
-; CHECK-NEXT:    [[TMP308:%.*]] = trunc i64 [[TMP296]] to i32
-; CHECK-NEXT:    store i32 [[TMP308]], i32* [[TMP260]], align 4
-; CHECK-NEXT:    br label [[BB309]]
-; CHECK:       bb309:
-; CHECK-NEXT:    [[TMP310:%.*]] = add nsw i32 [[TMP297]], 1
-; CHECK-NEXT:    br label [[BB311]]
-; CHECK:       bb311:
-; CHECK-NEXT:    [[TMP312]] = phi i32 [ [[TMP310]], [[BB309]] ], [ [[TMP297]], [[BB295]] ]
-; CHECK-NEXT:    [[TMP313]] = add nuw nsw i64 [[TMP296]], 1
-; CHECK-NEXT:    [[TMP314:%.*]] = load i32, i32* [[TMP284]], align 16
-; CHECK-NEXT:    [[TMP315:%.*]] = sext i32 [[TMP314]] to i64
-; CHECK-NEXT:    [[TMP316:%.*]] = icmp slt i64 [[TMP313]], [[TMP315]]
-; CHECK-NEXT:    br i1 [[TMP316]], label [[BB295]], label [[BB290]]
-; CHECK:       bb317:
-; CHECK-NEXT:    [[TMP318:%.*]] = phi i32 [ [[TMP278]], [[BB277]] ], [ [[TMP293]], [[BB292]] ], [ 0, [[BB270]] ]
-; CHECK-NEXT:    [[TMP319:%.*]] = icmp slt i32 [[TMP271]], [[TMP318]]
-; CHECK-NEXT:    br i1 [[TMP319]], label [[BB321:%.*]], label [[BB320:%.*]]
-; CHECK:       bb320:
-; CHECK-NEXT:    call void @llvm.lifetime.end(i64 16, i8* nonnull [[TMP229]]) #4
-; CHECK-NEXT:    call void @llvm.lifetime.end(i64 32, i8* nonnull [[TMP7]]) #4
-; CHECK-NEXT:    ret i32 1
-; CHECK:       bb321:
-; CHECK-NEXT:    br i1 [[TMP273]], label [[BB368]], label [[BB324:%.*]]
-; CHECK:       bb324:
-; CHECK-NEXT:    [[TMP325:%.*]] = load i32, i32* [[TMP260]], align 4
-; CHECK-NEXT:    [[TMP326:%.*]] = icmp sgt i32 [[TMP325]], 0
-; CHECK-NEXT:    [[TMP327:%.*]] = select i1 [[TMP326]], i32 [[TMP325]], i32 0
-; CHECK-NEXT:    [[TMP328:%.*]] = load %struct.quux.28*, %struct.quux.28** [[TMP261]], align 8
-; CHECK-NEXT:    [[TMP329:%.*]] = getelementptr inbounds [[STRUCT_QUUX_28]], %struct.quux.28* [[TMP328]], i64 0, i32 16
-; CHECK-NEXT:    [[TMP330:%.*]] = load i32, i32* [[TMP329]], align 16
-; CHECK-NEXT:    [[TMP331:%.*]] = icmp slt i32 [[TMP327]], [[TMP330]]
-; CHECK-NEXT:    br i1 [[TMP331]], label [[BB332:%.*]], label [[BB368]]
-; CHECK:       bb332:
-; CHECK-NEXT:    [[TMP333:%.*]] = zext i32 [[TMP327]] to i64
-; CHECK-NEXT:    [[TMP334:%.*]] = getelementptr inbounds [[STRUCT_QUUX_28]], %struct.quux.28* [[TMP328]], i64 0, i32 15, i32 0
-; CHECK-NEXT:    br label [[BB335:%.*]]
-; CHECK:       bb335:
-; CHECK-NEXT:    [[TMP336:%.*]] = phi i64 [ [[TMP333]], [[BB332]] ], [ [[TMP355:%.*]], [[BB353:%.*]] ]
-; CHECK-NEXT:    [[TMP337:%.*]] = phi i32 [ 0, [[BB332]] ], [ [[TMP354:%.*]], [[BB353]] ]
-; CHECK-NEXT:    [[TMP338:%.*]] = load %struct.spam.298**, %struct.spam.298*** [[TMP334]], align 8
-; CHECK-NEXT:    [[TMP339:%.*]] = getelementptr inbounds %struct.spam.298*, %struct.spam.298** [[TMP338]], i64 [[TMP336]]
-; CHECK-NEXT:    [[TMP340:%.*]] = bitcast %struct.spam.298** [[TMP339]] to %struct.zot.614**
-; CHECK-NEXT:    [[TMP341:%.*]] = load %struct.zot.614*, %struct.zot.614** [[TMP340]], align 8
-; CHECK-NEXT:    [[TMP342:%.*]] = getelementptr inbounds [[STRUCT_ZOT_614]], %struct.zot.614* [[TMP341]], i64 0, i32 23
-; CHECK-NEXT:    [[TMP343:%.*]] = load i32, i32* [[TMP342]], align 4
-; CHECK-NEXT:    [[TMP344:%.*]] = icmp eq i32 [[TMP272]], [[TMP343]]
-; CHECK-NEXT:    br i1 [[TMP344]], label [[BB345:%.*]], label [[BB353]]
-; CHECK:       bb345:
-; CHECK-NEXT:    [[TMP346:%.*]] = icmp eq i32 [[TMP337]], 0
-; CHECK-NEXT:    br i1 [[TMP346]], label [[BB347:%.*]], label [[BB349:%.*]]
-; CHECK:       bb347:
-; CHECK-NEXT:    [[TMP348:%.*]] = trunc i64 [[TMP336]] to i32
-; CHECK-NEXT:    store i32 [[TMP348]], i32* [[TMP260]], align 4
-; CHECK-NEXT:    br label [[BB349]]
-; CHECK:       bb349:
-; CHECK-NEXT:    [[TMP350:%.*]] = icmp eq i32 [[TMP337]], [[TMP271]]
-; CHECK-NEXT:    br i1 [[TMP350]], label [[BB359:%.*]], label [[BB351:%.*]]
-; CHECK:       bb351:
-; CHECK-NEXT:    [[TMP352:%.*]] = add nsw i32 [[TMP337]], 1
-; CHECK-NEXT:    br label [[BB353]]
-; CHECK:       bb353:
-; CHECK-NEXT:    [[TMP354]] = phi i32 [ [[TMP352]], [[BB351]] ], [ [[TMP337]], [[BB335]] ]
-; CHECK-NEXT:    [[TMP355]] = add nuw nsw i64 [[TMP336]], 1
-; CHECK-NEXT:    [[TMP356:%.*]] = load i32, i32* [[TMP329]], align 16
-; CHECK-NEXT:    [[TMP357:%.*]] = sext i32 [[TMP356]] to i64
-; CHECK-NEXT:    [[TMP358:%.*]] = icmp slt i64 [[TMP355]], [[TMP357]]
-; CHECK-NEXT:    br i1 [[TMP358]], label [[BB335]], label [[BB367:%.*]]
-; CHECK:       bb359:
-; CHECK-NEXT:    [[TMP361:%.*]] = load %struct.spam.298**, %struct.spam.298*** [[TMP334]], align 8
-; CHECK-NEXT:    [[TMP362:%.*]] = getelementptr inbounds %struct.spam.298*, %struct.spam.298** [[TMP361]], i64 [[TMP336]]
-; CHECK-NEXT:    [[TMP363:%.*]] = load %struct.spam.298*, %struct.spam.298** [[TMP362]], align 8
-; CHECK-NEXT:    [[TMP364:%.*]] = icmp eq %struct.spam.298* [[TMP363]], null
-; CHECK-NEXT:    br i1 [[TMP364]], label [[BB368]], label [[BB365:%.*]]
-; CHECK:       bb365:
-; CHECK-NEXT:    [[TMP366:%.*]] = call i32 @wombat(%struct.foo* undef, %struct.eggs* [[ARG1]], %struct.spam.298* nonnull [[TMP363]])
-; CHECK-NEXT:    br label [[BB368]]
-; CHECK:       bb367:
-; CHECK-NEXT:    br label [[BB368]]
-; CHECK:       bb368:
-; CHECK-NEXT:    [[TMP369]] = add nuw nsw i32 [[TMP271]], 1
-; CHECK-NEXT:    br label [[BB270]]
-; CHECK:       bb370:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB372:%.*]]
-; CHECK:       bb372:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB374:%.*]]
-; CHECK:       bb374:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB376:%.*]]
-; CHECK:       bb376:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB378:%.*]]
-; CHECK:       bb378:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB380:%.*]]
-; CHECK:       bb380:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB382:%.*]]
-; CHECK:       bb382:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB384:%.*]]
-; CHECK:       bb384:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB386:%.*]]
-; CHECK:       bb386:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB388:%.*]]
-; CHECK:       bb388:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB390:%.*]]
-; CHECK:       bb390:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB392:%.*]]
-; CHECK:       bb392:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB394:%.*]]
-; CHECK:       bb394:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB396:%.*]]
-; CHECK:       bb396:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB398:%.*]]
-; CHECK:       bb398:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB400:%.*]]
-; CHECK:       bb400:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB402:%.*]]
-; CHECK:       bb402:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB404:%.*]]
-; CHECK:       bb404:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB406:%.*]]
-; CHECK:       bb406:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB408:%.*]]
-; CHECK:       bb408:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB410:%.*]]
-; CHECK:       bb410:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB412:%.*]]
-; CHECK:       bb412:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB414:%.*]]
-; CHECK:       bb414:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB416:%.*]]
-; CHECK:       bb416:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB418:%.*]]
-; CHECK:       bb418:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB420:%.*]]
-; CHECK:       bb420:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB422:%.*]]
-; CHECK:       bb422:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB424:%.*]]
-; CHECK:       bb424:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB426:%.*]]
-; CHECK:       bb426:
-; CHECK-NEXT:    br i1 true, label [[BB153]], label [[BB428]]
-; CHECK:       bb428:
-; CHECK-NEXT:    br label [[BB155]]
-;
-bb:
-  %tmp = alloca [32 x i8], align 16
-  %tmp4 = alloca [256 x i8], align 16
-  %tmp5 = alloca { <2 x float>, <2 x float> }, align 16
-  %tmp6 = bitcast { <2 x float>, <2 x float> }* %tmp5 to %struct.bar.0*
-  tail call void @pluto(%struct.eggs* %arg1)
-  %tmp7 = getelementptr inbounds [32 x i8], [32 x i8]* %tmp, i64 0, i64 0
-  call void @llvm.lifetime.start(i64 32, i8* nonnull %tmp7) #4
-  %tmp8 = getelementptr inbounds %struct.spam.298, %struct.spam.298* %arg2, i64 0, i32 0, i32 19
-  %tmp9 = load i8*, i8** %tmp8, align 16
-  br label %bb10
-
-bb10:                                             ; preds = %bb16, %bb
-  %tmp11 = phi i8* [ %tmp9, %bb ], [ %tmp17, %bb16 ]
-  %tmp12 = load i8, i8* %tmp11, align 1
-  %tmp13 = icmp eq i8 %tmp12, 95
-  br i1 %tmp13, label %bb16, label %bb14
-
-bb14:                                             ; preds = %bb10
-  %tmp15 = phi i8* [ %tmp11, %bb10 ]
-  br label %bb20
-
-bb16:                                             ; preds = %bb10
-  %tmp17 = getelementptr inbounds i8, i8* %tmp11, i64 1
-  %tmp18 = load i8, i8* %tmp17, align 1
-  %tmp19 = icmp eq i8 %tmp18, 0
-  br i1 %tmp19, label %bb30, label %bb10
-
-bb20:                                             ; preds = %bb24, %bb14
-  %tmp21 = phi i8* [ %tmp25, %bb24 ], [ %tmp15, %bb14 ]
-  %tmp22 = phi i8* [ %tmp26, %bb24 ], [ %tmp7, %bb14 ]
-  %tmp23 = load i8, i8* %tmp21, align 1
-  switch i8 %tmp23, label %bb24 [
-  i8 95, label %bb27
-  i8 0, label %bb27
-  ]
-
-bb24:                                             ; preds = %bb20
-  %tmp25 = getelementptr inbounds i8, i8* %tmp21, i64 1
-  %tmp26 = getelementptr inbounds i8, i8* %tmp22, i64 1
-  store i8 %tmp23, i8* %tmp22, align 1
-  br label %bb20
-
-bb27:                                             ; preds = %bb20, %bb20
-  %tmp28 = phi i8* [ %tmp21, %bb20 ], [ %tmp21, %bb20 ]
-  %tmp29 = phi i8* [ %tmp22, %bb20 ], [ %tmp22, %bb20 ]
-  br label %bb32
-
-bb30:                                             ; preds = %bb16
-  %tmp31 = phi i8* [ %tmp17, %bb16 ]
-  br label %bb32
-
-bb32:                                             ; preds = %bb30, %bb27
-  %tmp33 = phi i8* [ %tmp29, %bb27 ], [ %tmp7, %bb30 ]
-  %tmp34 = phi i8* [ %tmp28, %bb27 ], [ %tmp31, %bb30 ]
-  store i8 0, i8* %tmp33, align 1
-  %tmp35 = getelementptr inbounds %struct.eggs, %struct.eggs* %arg1, i64 0, i32 5
-  store i32 %arg3, i32* %tmp35, align 4
-  br label %bb36
-
-bb36:                                             ; preds = %bb42, %bb32
-  %tmp37 = phi i8* [ %tmp34, %bb32 ], [ %tmp43, %bb42 ]
-  %tmp38 = load i8, i8* %tmp37, align 1
-  %tmp39 = icmp eq i8 %tmp38, 95
-  br i1 %tmp39, label %bb42, label %bb40
-
-bb40:                                             ; preds = %bb36
-  %tmp41 = phi i8* [ %tmp37, %bb36 ]
-  br label %bb46
-
-bb42:                                             ; preds = %bb36
-  %tmp43 = getelementptr inbounds i8, i8* %tmp37, i64 1
-  %tmp44 = load i8, i8* %tmp43, align 1
-  %tmp45 = icmp eq i8 %tmp44, 0
-  br i1 %tmp45, label %bb56, label %bb36
-
-bb46:                                             ; preds = %bb50, %bb40
-  %tmp47 = phi i8* [ %tmp51, %bb50 ], [ %tmp41, %bb40 ]
-  %tmp48 = phi i8* [ %tmp52, %bb50 ], [ %tmp7, %bb40 ]
-  %tmp49 = load i8, i8* %tmp47, align 1
-  switch i8 %tmp49, label %bb50 [
-  i8 95, label %bb53
-  i8 0, label %bb53
-  ]
-
-bb50:                                             ; preds = %bb46
-  %tmp51 = getelementptr inbounds i8, i8* %tmp47, i64 1
-  %tmp52 = getelementptr inbounds i8, i8* %tmp48, i64 1
-  store i8 %tmp49, i8* %tmp48, align 1
-  br label %bb46
-
-bb53:                                             ; preds = %bb46, %bb46
-  %tmp54 = phi i8* [ %tmp47, %bb46 ], [ %tmp47, %bb46 ]
-  %tmp55 = phi i8* [ %tmp48, %bb46 ], [ %tmp48, %bb46 ]
-  br label %bb58
-
-bb56:                                             ; preds = %bb42
-  %tmp57 = phi i8* [ %tmp43, %bb42 ]
-  br label %bb58
-
-bb58:                                             ; preds = %bb56, %bb53
-  %tmp59 = phi i8* [ %tmp55, %bb53 ], [ %tmp7, %bb56 ]
-  %tmp60 = phi i8* [ %tmp54, %bb53 ], [ %tmp57, %bb56 ]
-  store i8 0, i8* %tmp59, align 1
-  %tmp61 = load i32, i32* %tmp35, align 4
-  %tmp62 = icmp eq i32 %tmp61, 10
-  br i1 %tmp62, label %bb63, label %bb93
-
-bb63:                                             ; preds = %bb58
-  %tmp64 = getelementptr inbounds [256 x i8], [256 x i8]* %tmp4, i64 0, i64 0
-  call void @llvm.lifetime.start(i64 256, i8* nonnull %tmp64) #4
-  %tmp65 = load i8*, i8** %tmp8, align 16
-  %tmp66 = getelementptr inbounds i8, i8* %tmp65, i64 10
-  br label %bb67
-
-bb67:                                             ; preds = %bb73, %bb63
-  %tmp68 = phi i64 [ %tmp77, %bb73 ], [ 1, %bb63 ]
-  %tmp69 = phi i8* [ %tmp75, %bb73 ], [ %tmp66, %bb63 ]
-  %tmp70 = phi i8* [ %tmp74, %bb73 ], [ %tmp64, %bb63 ]
-  %tmp71 = load i8, i8* %tmp69, align 1
-  store i8 %tmp71, i8* %tmp70, align 1
-  %tmp72 = icmp eq i8 %tmp71, 0
-  br i1 %tmp72, label %bb80, label %bb73
-
-bb73:                                             ; preds = %bb67
-  %tmp74 = getelementptr inbounds i8, i8* %tmp70, i64 1
-  %tmp75 = getelementptr inbounds i8, i8* %tmp69, i64 1
-  %tmp76 = icmp ult i64 %tmp68, 255
-  %tmp77 = add nuw nsw i64 %tmp68, 1
-  br i1 %tmp76, label %bb67, label %bb78
-
-bb78:                                             ; preds = %bb73
-  %tmp79 = phi i8* [ %tmp74, %bb73 ]
-  store i8 0, i8* %tmp79, align 1
-  br label %bb81
-
-bb80:                                             ; preds = %bb67
-  br label %bb81
-
-bb81:                                             ; preds = %bb80, %bb78
-  %tmp82 = call i8* @hoge(i8* nonnull %tmp64, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @global.1, i64 0, i64 0))
-  %tmp83 = icmp eq i8* %tmp82, null
-  br i1 %tmp83, label %bb85, label %bb84
-
-bb84:                                             ; preds = %bb81
-  store i8 0, i8* %tmp82, align 1
-  br label %bb85
-
-bb85:                                             ; preds = %bb84, %bb81
-  %tmp86 = load %struct.foo.321*, %struct.foo.321** bitcast (%struct.bar** @global.3 to %struct.foo.321**), align 8
-  %tmp87 = getelementptr inbounds %struct.foo.321, %struct.foo.321* %tmp86, i64 0, i32 131
-  %tmp88 = load %struct.quux.605*, %struct.quux.605** %tmp87, align 16
-  %tmp89 = call i32 @foo(%struct.quux.605* %tmp88, i32 0, i8* nonnull %tmp64)
-  %tmp90 = icmp sgt i32 %tmp89, 0
-  %tmp91 = select i1 %tmp90, i32 %tmp89, i32 0
-  %tmp92 = getelementptr inbounds %struct.eggs, %struct.eggs* %arg1, i64 0, i32 6
-  store i32 %tmp91, i32* %tmp92, align 8
-  call void @llvm.lifetime.end(i64 256, i8* nonnull %tmp64) #4
-  br label %bb97
-
-bb93:                                             ; preds = %bb58
-  %tmp94 = call i64 @ham(i8* nonnull %tmp7, i8** null, i32 10)
-  %tmp95 = trunc i64 %tmp94 to i32
-  %tmp96 = getelementptr inbounds %struct.eggs, %struct.eggs* %arg1, i64 0, i32 6
-  store i32 %tmp95, i32* %tmp96, align 8
-  br label %bb97
-
-bb97:                                             ; preds = %bb93, %bb85
-  %tmp98 = load i8, i8* %tmp60, align 1
-  %tmp99 = icmp eq i8 %tmp98, 0
-  br i1 %tmp99, label %bb155, label %bb100
-
-bb100:                                            ; preds = %bb97
-  br label %bb101
-
-bb101:                                            ; preds = %bb107, %bb100
-  %tmp102 = phi i8* [ %tmp108, %bb107 ], [ %tmp60, %bb100 ]
-  %tmp103 = load i8, i8* %tmp102, align 1
-  %tmp104 = icmp eq i8 %tmp103, 95
-  br i1 %tmp104, label %bb107, label %bb105
-
-bb105:                                            ; preds = %bb101
-  %tmp106 = phi i8* [ %tmp102, %bb101 ]
-  br label %bb111
-
-bb107:                                            ; preds = %bb101
-  %tmp108 = getelementptr inbounds i8, i8* %tmp102, i64 1
-  %tmp109 = load i8, i8* %tmp108, align 1
-  %tmp110 = icmp eq i8 %tmp109, 0
-  br i1 %tmp110, label %bb121, label %bb101
-
-bb111:                                            ; preds = %bb115, %bb105
-  %tmp112 = phi i8* [ %tmp116, %bb115 ], [ %tmp106, %bb105 ]
-  %tmp113 = phi i8* [ %tmp117, %bb115 ], [ %tmp7, %bb105 ]
-  %tmp114 = load i8, i8* %tmp112, align 1
-  switch i8 %tmp114, label %bb115 [
-  i8 95, label %bb118
-  i8 0, label %bb118
-  ]
-
-bb115:                                            ; preds = %bb111
-  %tmp116 = getelementptr inbounds i8, i8* %tmp112, i64 1
-  %tmp117 = getelementptr inbounds i8, i8* %tmp113, i64 1
-  store i8 %tmp114, i8* %tmp113, align 1
-  br label %bb111
-
-bb118:                                            ; preds = %bb111, %bb111
-  %tmp119 = phi i8* [ %tmp112, %bb111 ], [ %tmp112, %bb111 ]
-  %tmp120 = phi i8* [ %tmp113, %bb111 ], [ %tmp113, %bb111 ]
-  br label %bb123
-
-bb121:                                            ; preds = %bb107
-  %tmp122 = phi i8* [ %tmp108, %bb107 ]
-  br label %bb123
-
-bb123:                                            ; preds = %bb121, %bb118
-  %tmp124 = phi i8* [ %tmp120, %bb118 ], [ %tmp7, %bb121 ]
-  %tmp125 = phi i8* [ %tmp119, %bb118 ], [ %tmp122, %bb121 ]
-  store i8 0, i8* %tmp124, align 1
-  %tmp126 = load i8, i8* %tmp125, align 1
-  %tmp127 = icmp ne i8 %tmp126, 95
-  %tmp128 = load i8, i8* %tmp7, align 16
-  %tmp129 = icmp eq i8 %tmp128, 0
-  %tmp130 = or i1 %tmp127, %tmp129
-  br i1 %tmp130, label %bb155, label %bb131
-
-bb131:                                            ; preds = %bb123
-  %tmp132 = call i32 @wibble(i8* nonnull %tmp7, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @global, i64 0, i64 0))
-  %tmp133 = icmp eq i32 %tmp132, 0
-  %tmp134 = getelementptr inbounds %struct.eggs, %struct.eggs* %arg1, i64 0, i32 8, i64 0
-  br i1 %tmp133, label %bb136, label %bb135
-
-bb135:                                            ; preds = %bb131
-  br label %bb137
-
-bb136:                                            ; preds = %bb131
-  br label %bb150
-
-bb137:                                            ; preds = %bb143, %bb135
-  %tmp138 = phi i64 [ %tmp147, %bb143 ], [ 1, %bb135 ]
-  %tmp139 = phi i8* [ %tmp145, %bb143 ], [ %tmp7, %bb135 ]
-  %tmp140 = phi i8* [ %tmp144, %bb143 ], [ %tmp134, %bb135 ]
-  %tmp141 = load i8, i8* %tmp139, align 1
-  store i8 %tmp141, i8* %tmp140, align 1
-  %tmp142 = icmp eq i8 %tmp141, 0
-  br i1 %tmp142, label %bb154, label %bb143
-
-bb143:                                            ; preds = %bb137
-  %tmp144 = getelementptr inbounds i8, i8* %tmp140, i64 1
-  %tmp145 = getelementptr inbounds i8, i8* %tmp139, i64 1
-  %tmp146 = icmp ult i64 %tmp138, 31
-  %tmp147 = add nuw nsw i64 %tmp138, 1
-  br i1 %tmp146, label %bb137, label %bb148
-
-bb148:                                            ; preds = %bb143
-  %tmp149 = phi i8* [ %tmp144, %bb143 ]
-  store i8 0, i8* %tmp149, align 1
-  br label %bb155
-
-bb150:                                            ; preds = %bb136
-  store i8 0, i8* %tmp134, align 1
-  br i1 true, label %bb153, label %bb151
-
-bb151:                                            ; preds = %bb150
-  %tmp152 = getelementptr inbounds i8, i8* %tmp134, i64 1
-  store i8 0, i8* %tmp152, align 1
-  br i1 true, label %bb153, label %bb370
-
-bb153:                                            ; preds = %bb426, %bb424, %bb422, %bb420, %bb418, %bb416, %bb414, %bb412, %bb410, %bb408, %bb406, %bb404, %bb402, %bb400, %bb398, %bb396, %bb394, %bb392, %bb390, %bb388, %bb386, %bb384, %bb382, %bb380, %bb378, %bb376, %bb374, %bb372, %bb370, %bb151, %bb150
-  br label %bb155
-
-bb154:                                            ; preds = %bb137
-  br label %bb155
-
-bb155:                                            ; preds = %bb428, %bb154, %bb153, %bb148, %bb123, %bb97
-  %tmp156 = phi i8* [ %tmp125, %bb123 ], [ %tmp60, %bb97 ], [ %tmp125, %bb148 ], [ %tmp125, %bb428 ], [ %tmp125, %bb153 ], [ %tmp125, %bb154 ]
-  %tmp157 = load i8, i8* %tmp156, align 1
-  %tmp158 = icmp eq i8 %tmp157, 0
-  br i1 %tmp158, label %bb191, label %bb159
-
-bb159:                                            ; preds = %bb155
-  br label %bb160
-
-bb160:                                            ; preds = %bb166, %bb159
-  %tmp161 = phi i8* [ %tmp167, %bb166 ], [ %tmp156, %bb159 ]
-  %tmp162 = load i8, i8* %tmp161, align 1
-  %tmp163 = icmp eq i8 %tmp162, 95
-  br i1 %tmp163, label %bb166, label %bb164
-
-bb164:                                            ; preds = %bb160
-  %tmp165 = phi i8* [ %tmp161, %bb160 ]
-  br label %bb170
-
-bb166:                                            ; preds = %bb160
-  %tmp167 = getelementptr inbounds i8, i8* %tmp161, i64 1
-  %tmp168 = load i8, i8* %tmp167, align 1
-  %tmp169 = icmp eq i8 %tmp168, 0
-  br i1 %tmp169, label %bb180, label %bb160
-
-bb170:                                            ; preds = %bb174, %bb164
-  %tmp171 = phi i8* [ %tmp175, %bb174 ], [ %tmp165, %bb164 ]
-  %tmp172 = phi i8* [ %tmp176, %bb174 ], [ %tmp7, %bb164 ]
-  %tmp173 = load i8, i8* %tmp171, align 1
-  switch i8 %tmp173, label %bb174 [
-  i8 95, label %bb177
-  i8 0, label %bb177
-  ]
-
-bb174:                                            ; preds = %bb170
-  %tmp175 = getelementptr inbounds i8, i8* %tmp171, i64 1
-  %tmp176 = getelementptr inbounds i8, i8* %tmp172, i64 1
-  store i8 %tmp173, i8* %tmp172, align 1
-  br label %bb170
-
-bb177:                                            ; preds = %bb170, %bb170
-  %tmp178 = phi i8* [ %tmp171, %bb170 ], [ %tmp171, %bb170 ]
-  %tmp179 = phi i8* [ %tmp172, %bb170 ], [ %tmp172, %bb170 ]
-  br label %bb182
-
-bb180:                                            ; preds = %bb166
-  %tmp181 = phi i8* [ %tmp167, %bb166 ]
-  br label %bb182
-
-bb182:                                            ; preds = %bb180, %bb177
-  %tmp183 = phi i8* [ %tmp179, %bb177 ], [ %tmp7, %bb180 ]
-  %tmp184 = phi i8* [ %tmp178, %bb177 ], [ %tmp181, %bb180 ]
-  store i8 0, i8* %tmp183, align 1
-  %tmp185 = load i8, i8* %tmp7, align 16
-  %tmp186 = icmp eq i8 %tmp185, 0
-  br i1 %tmp186, label %bb191, label %bb187
-
-bb187:                                            ; preds = %bb182
-  %tmp188 = call i64 @ham(i8* nonnull %tmp7, i8** null, i32 10)
-  %tmp189 = trunc i64 %tmp188 to i32
-  %tmp190 = getelementptr inbounds %struct.eggs, %struct.eggs* %arg1, i64 0, i32 9
-  store i32 %tmp189, i32* %tmp190, align 16
-  br label %bb191
-
-bb191:                                            ; preds = %bb187, %bb182, %bb155
-  %tmp192 = phi i8* [ %tmp184, %bb187 ], [ %tmp184, %bb182 ], [ %tmp156, %bb155 ]
-  %tmp193 = load i8, i8* %tmp192, align 1
-  %tmp194 = icmp eq i8 %tmp193, 0
-  br i1 %tmp194, label %bb224, label %bb195
-
-bb195:                                            ; preds = %bb191
-  br label %bb196
-
-bb196:                                            ; preds = %bb202, %bb195
-  %tmp197 = phi i8* [ %tmp203, %bb202 ], [ %tmp192, %bb195 ]
-  %tmp198 = load i8, i8* %tmp197, align 1
-  %tmp199 = icmp eq i8 %tmp198, 95
-  br i1 %tmp199, label %bb202, label %bb200
-
-bb200:                                            ; preds = %bb196
-  %tmp201 = phi i8* [ %tmp197, %bb196 ]
-  br label %bb206
-
-bb202:                                            ; preds = %bb196
-  %tmp203 = getelementptr inbounds i8, i8* %tmp197, i64 1
-  %tmp204 = load i8, i8* %tmp203, align 1
-  %tmp205 = icmp eq i8 %tmp204, 0
-  br i1 %tmp205, label %bb215, label %bb196
-
-bb206:                                            ; preds = %bb210, %bb200
-  %tmp207 = phi i8* [ %tmp211, %bb210 ], [ %tmp201, %bb200 ]
-  %tmp208 = phi i8* [ %tmp212, %bb210 ], [ %tmp7, %bb200 ]
-  %tmp209 = load i8, i8* %tmp207, align 1
-  switch i8 %tmp209, label %bb210 [
-  i8 95, label %bb213
-  i8 0, label %bb213
-  ]
-
-bb210:                                            ; preds = %bb206
-  %tmp211 = getelementptr inbounds i8, i8* %tmp207, i64 1
-  %tmp212 = getelementptr inbounds i8, i8* %tmp208, i64 1
-  store i8 %tmp209, i8* %tmp208, align 1
-  br label %bb206
-
-bb213:                                            ; preds = %bb206, %bb206
-  %tmp214 = phi i8* [ %tmp208, %bb206 ], [ %tmp208, %bb206 ]
-  br label %bb216
-
-bb215:                                            ; preds = %bb202
-  br label %bb216
-
-bb216:                                            ; preds = %bb215, %bb213
-  %tmp217 = phi i8* [ %tmp214, %bb213 ], [ %tmp7, %bb215 ]
-  store i8 0, i8* %tmp217, align 1
-  %tmp218 = load i8, i8* %tmp7, align 16
-  %tmp219 = icmp eq i8 %tmp218, 0
-  br i1 %tmp219, label %bb224, label %bb220
-
-bb220:                                            ; preds = %bb216
-  %tmp221 = call i64 @ham(i8* nonnull %tmp7, i8** null, i32 10)
-  %tmp222 = trunc i64 %tmp221 to i32
-  %tmp223 = getelementptr inbounds %struct.eggs, %struct.eggs* %arg1, i64 0, i32 11
-  store i32 %tmp222, i32* %tmp223, align 8
-  br label %bb224
-
-bb224:                                            ; preds = %bb220, %bb216, %bb191
-  %tmp225 = getelementptr inbounds %struct.spam.298, %struct.spam.298* %arg2, i64 0, i32 0, i32 3
-  %tmp226 = load %struct.ham*, %struct.ham** %tmp225, align 16
-  %tmp227 = icmp eq %struct.ham* %tmp226, null
-  %tmp228 = select i1 %tmp227, %struct.ham* @global.2, %struct.ham* %tmp226
-  call void @hoge.4(%struct.eggs* %arg1, %struct.ham* nonnull dereferenceable(64) %tmp228)
-  %tmp229 = bitcast { <2 x float>, <2 x float> }* %tmp5 to i8*
-  call void @llvm.lifetime.start(i64 16, i8* nonnull %tmp229) #4
-  %tmp230 = load %struct.ham*, %struct.ham** %tmp225, align 16
-  %tmp231 = icmp eq %struct.ham* %tmp230, null
-  %tmp232 = select i1 %tmp231, %struct.ham* @global.2, %struct.ham* %tmp230
-  %tmp233 = call { <2 x float>, <2 x float> } @quux(%struct.ham* nonnull %tmp232)
-  %tmp234 = getelementptr inbounds { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* %tmp5, i64 0, i32 0
-  %tmp235 = extractvalue { <2 x float>, <2 x float> } %tmp233, 0
-  store <2 x float> %tmp235, <2 x float>* %tmp234, align 16
-  %tmp236 = getelementptr inbounds { <2 x float>, <2 x float> }, { <2 x float>, <2 x float> }* %tmp5, i64 0, i32 1
-  %tmp237 = extractvalue { <2 x float>, <2 x float> } %tmp233, 1
-  store <2 x float> %tmp237, <2 x float>* %tmp236, align 8
-  %tmp238 = getelementptr inbounds %struct.eggs, %struct.eggs* %arg1, i64 0, i32 7
-  store i32 -1, i32* %tmp238, align 4
-  %tmp239 = getelementptr inbounds %struct.foo, %struct.foo* %arg, i64 0, i32 66
-  %tmp240 = load i32, i32* %tmp239, align 16
-  %tmp241 = icmp sgt i32 %tmp240, 0
-  br i1 %tmp241, label %bb242, label %bb258
-
-bb242:                                            ; preds = %bb224
-  br label %bb243
-
-bb243:                                            ; preds = %bb265, %bb242
-  %tmp244 = phi i64 [ 0, %bb242 ], [ %tmp266, %bb265 ]
-  %tmp245 = getelementptr inbounds %struct.foo, %struct.foo* %arg, i64 0, i32 65, i64 %tmp244, i32 5
-  %tmp246 = load i32, i32* %tmp245, align 4
-  %tmp247 = icmp eq i32 %tmp246, 9
-  br i1 %tmp247, label %bb248, label %bb265
-
-bb248:                                            ; preds = %bb243
-  %tmp249 = getelementptr inbounds %struct.foo, %struct.foo* %arg, i64 0, i32 65, i64 %tmp244, i32 12
-  %tmp250 = load %struct.spam*, %struct.spam** %tmp249, align 16
-  %tmp251 = call i32 @baz(%struct.spam* %tmp250, %struct.bar.0* nonnull dereferenceable(16) %tmp6, float 1.000000e+01, %struct.bar.0* null, float* null)
-  %tmp252 = icmp eq i32 %tmp251, 0
-  br i1 %tmp252, label %bb265, label %bb253
-
-bb253:                                            ; preds = %bb248
-  %tmp254 = phi i64 [ %tmp244, %bb248 ]
-  %tmp255 = getelementptr inbounds %struct.foo, %struct.foo* %arg, i64 0, i32 65, i64 %tmp254, i32 6
-  %tmp256 = load i32, i32* %tmp255, align 8
-  store i32 %tmp256, i32* %tmp238, align 4
-  br label %bb258
-
-bb257:                                            ; preds = %bb265
-  br label %bb258
-
-bb258:                                            ; preds = %bb257, %bb253, %bb224
-  %tmp259 = getelementptr inbounds %struct.spam.298, %struct.spam.298* %arg2, i64 0, i32 0, i32 24
-  %tmp260 = getelementptr inbounds %struct.spam.298, %struct.spam.298* %arg2, i64 0, i32 0, i32 25
-  %tmp261 = getelementptr inbounds %struct.spam.298, %struct.spam.298* %arg2, i64 0, i32 0, i32 2
-  %tmp262 = getelementptr inbounds %struct.spam.298, %struct.spam.298* %arg2, i64 0, i32 0, i32 26
-  %tmp263 = getelementptr inbounds %struct.spam.298, %struct.spam.298* %arg2, i64 0, i32 0, i32 25
-  %tmp264 = getelementptr inbounds %struct.spam.298, %struct.spam.298* %arg2, i64 0, i32 0, i32 2
-  br label %bb270
-
-bb265:                                            ; preds = %bb248, %bb243
-  %tmp266 = add nuw i64 %tmp244, 1
-  %tmp267 = load i32, i32* %tmp239, align 16
-  %tmp268 = sext i32 %tmp267 to i64
-  %tmp269 = icmp slt i64 %tmp266, %tmp268
-  br i1 %tmp269, label %bb243, label %bb257
-
-bb270:                                            ; preds = %bb368, %bb258
-  %tmp271 = phi i32 [ %tmp369, %bb368 ], [ 0, %bb258 ]
-  %tmp272 = load i32, i32* %tmp259, align 8
-  %tmp273 = icmp eq i32 %tmp272, -1
-  br i1 %tmp273, label %bb317, label %bb274
-
-bb274:                                            ; preds = %bb270
-  %tmp275 = load i16, i16* %tmp262, align 16
-  %tmp276 = icmp sgt i16 %tmp275, -1
-  br i1 %tmp276, label %bb277, label %bb279
-
-bb277:                                            ; preds = %bb274
-  %tmp278 = sext i16 %tmp275 to i32
-  br label %bb317
-
-bb279:                                            ; preds = %bb274
-  %tmp280 = load i32, i32* %tmp263, align 4
-  %tmp281 = icmp sgt i32 %tmp280, 0
-  %tmp282 = select i1 %tmp281, i32 %tmp280, i32 0
-  %tmp283 = load %struct.quux.28*, %struct.quux.28** %tmp264, align 8
-  %tmp284 = getelementptr inbounds %struct.quux.28, %struct.quux.28* %tmp283, i64 0, i32 16
-  %tmp285 = load i32, i32* %tmp284, align 16
-  %tmp286 = icmp slt i32 %tmp282, %tmp285
-  br i1 %tmp286, label %bb287, label %bb292
-
-bb287:                                            ; preds = %bb279
-  %tmp288 = zext i32 %tmp282 to i64
-  %tmp289 = getelementptr inbounds %struct.quux.28, %struct.quux.28* %tmp283, i64 0, i32 15, i32 0
-  br label %bb295
-
-bb290:                                            ; preds = %bb311
-  %tmp291 = phi i32 [ %tmp312, %bb311 ]
-  br label %bb292
-
-bb292:                                            ; preds = %bb290, %bb279
-  %tmp293 = phi i32 [ 0, %bb279 ], [ %tmp291, %bb290 ]
-  %tmp294 = trunc i32 %tmp293 to i16
-  store i16 %tmp294, i16* %tmp262, align 16
-  br label %bb317
-
-bb295:                                            ; preds = %bb311, %bb287
-  %tmp296 = phi i64 [ %tmp288, %bb287 ], [ %tmp313, %bb311 ]
-  %tmp297 = phi i32 [ 0, %bb287 ], [ %tmp312, %bb311 ]
-  %tmp298 = load %struct.spam.298**, %struct.spam.298*** %tmp289, align 8
-  %tmp299 = getelementptr inbounds %struct.spam.298*, %struct.spam.298** %tmp298, i64 %tmp296
-  %tmp300 = bitcast %struct.spam.298** %tmp299 to %struct.zot.614**
-  %tmp301 = load %struct.zot.614*, %struct.zot.614** %tmp300, align 8
-  %tmp302 = getelementptr inbounds %struct.zot.614, %struct.zot.614* %tmp301, i64 0, i32 23
-  %tmp303 = load i32, i32* %tmp302, align 4
-  %tmp304 = icmp eq i32 %tmp272, %tmp303
-  br i1 %tmp304, label %bb305, label %bb311
-
-bb305:                                            ; preds = %bb295
-  %tmp306 = icmp eq i32 %tmp297, 0
-  br i1 %tmp306, label %bb307, label %bb309
-
-bb307:                                            ; preds = %bb305
-  %tmp308 = trunc i64 %tmp296 to i32
-  store i32 %tmp308, i32* %tmp263, align 4
-  br label %bb309
-
-bb309:                                            ; preds = %bb307, %bb305
-  %tmp310 = add nsw i32 %tmp297, 1
-  br label %bb311
-
-bb311:                                            ; preds = %bb309, %bb295
-  %tmp312 = phi i32 [ %tmp310, %bb309 ], [ %tmp297, %bb295 ]
-  %tmp313 = add nuw nsw i64 %tmp296, 1
-  %tmp314 = load i32, i32* %tmp284, align 16
-  %tmp315 = sext i32 %tmp314 to i64
-  %tmp316 = icmp slt i64 %tmp313, %tmp315
-  br i1 %tmp316, label %bb295, label %bb290
-
-bb317:                                            ; preds = %bb292, %bb277, %bb270
-  %tmp318 = phi i32 [ %tmp278, %bb277 ], [ %tmp293, %bb292 ], [ 0, %bb270 ]
-  %tmp319 = icmp slt i32 %tmp271, %tmp318
-  br i1 %tmp319, label %bb321, label %bb320
-
-bb320:                                            ; preds = %bb317
-  call void @llvm.lifetime.end(i64 16, i8* nonnull %tmp229) #4
-  call void @llvm.lifetime.end(i64 32, i8* nonnull %tmp7) #4
-  ret i32 1
-
-bb321:                                            ; preds = %bb317
-  %tmp322 = load i32, i32* %tmp259, align 8
-  %tmp323 = icmp eq i32 %tmp322, -1
-  br i1 %tmp323, label %bb368, label %bb324
-
-bb324:                                            ; preds = %bb321
-  %tmp325 = load i32, i32* %tmp260, align 4
-  %tmp326 = icmp sgt i32 %tmp325, 0
-  %tmp327 = select i1 %tmp326, i32 %tmp325, i32 0
-  %tmp328 = load %struct.quux.28*, %struct.quux.28** %tmp261, align 8
-  %tmp329 = getelementptr inbounds %struct.quux.28, %struct.quux.28* %tmp328, i64 0, i32 16
-  %tmp330 = load i32, i32* %tmp329, align 16
-  %tmp331 = icmp slt i32 %tmp327, %tmp330
-  br i1 %tmp331, label %bb332, label %bb368
-
-bb332:                                            ; preds = %bb324
-  %tmp333 = zext i32 %tmp327 to i64
-  %tmp334 = getelementptr inbounds %struct.quux.28, %struct.quux.28* %tmp328, i64 0, i32 15, i32 0
-  br label %bb335
-
-bb335:                                            ; preds = %bb353, %bb332
-  %tmp336 = phi i64 [ %tmp333, %bb332 ], [ %tmp355, %bb353 ]
-  %tmp337 = phi i32 [ 0, %bb332 ], [ %tmp354, %bb353 ]
-  %tmp338 = load %struct.spam.298**, %struct.spam.298*** %tmp334, align 8
-  %tmp339 = getelementptr inbounds %struct.spam.298*, %struct.spam.298** %tmp338, i64 %tmp336
-  %tmp340 = bitcast %struct.spam.298** %tmp339 to %struct.zot.614**
-  %tmp341 = load %struct.zot.614*, %struct.zot.614** %tmp340, align 8
-  %tmp342 = getelementptr inbounds %struct.zot.614, %struct.zot.614* %tmp341, i64 0, i32 23
-  %tmp343 = load i32, i32* %tmp342, align 4
-  %tmp344 = icmp eq i32 %tmp322, %tmp343
-  br i1 %tmp344, label %bb345, label %bb353
-
-bb345:                                            ; preds = %bb335
-  %tmp346 = icmp eq i32 %tmp337, 0
-  br i1 %tmp346, label %bb347, label %bb349
-
-bb347:                                            ; preds = %bb345
-  %tmp348 = trunc i64 %tmp336 to i32
-  store i32 %tmp348, i32* %tmp260, align 4
-  br label %bb349
-
-bb349:                                            ; preds = %bb347, %bb345
-  %tmp350 = icmp eq i32 %tmp337, %tmp271
-  br i1 %tmp350, label %bb359, label %bb351
-
-bb351:                                            ; preds = %bb349
-  %tmp352 = add nsw i32 %tmp337, 1
-  br label %bb353
-
-bb353:                                            ; preds = %bb351, %bb335
-  %tmp354 = phi i32 [ %tmp352, %bb351 ], [ %tmp337, %bb335 ]
-  %tmp355 = add nuw nsw i64 %tmp336, 1
-  %tmp356 = load i32, i32* %tmp329, align 16
-  %tmp357 = sext i32 %tmp356 to i64
-  %tmp358 = icmp slt i64 %tmp355, %tmp357
-  br i1 %tmp358, label %bb335, label %bb367
-
-bb359:                                            ; preds = %bb349
-  %tmp360 = phi i64 [ %tmp336, %bb349 ]
-  %tmp361 = load %struct.spam.298**, %struct.spam.298*** %tmp334, align 8
-  %tmp362 = getelementptr inbounds %struct.spam.298*, %struct.spam.298** %tmp361, i64 %tmp360
-  %tmp363 = load %struct.spam.298*, %struct.spam.298** %tmp362, align 8
-  %tmp364 = icmp eq %struct.spam.298* %tmp363, null
-  br i1 %tmp364, label %bb368, label %bb365
-
-bb365:                                            ; preds = %bb359
-  %tmp366 = call i32 @wombat(%struct.foo* undef, %struct.eggs* %arg1, %struct.spam.298* nonnull %tmp363)
-  br label %bb368
-
-bb367:                                            ; preds = %bb353
-  br label %bb368
-
-bb368:                                            ; preds = %bb367, %bb365, %bb359, %bb324, %bb321
-  %tmp369 = add nuw nsw i32 %tmp271, 1
-  br label %bb270
-
-bb370:                                            ; preds = %bb151
-  %tmp371 = getelementptr inbounds i8, i8* %tmp152, i64 1
-  store i8 0, i8* %tmp371, align 1
-  br i1 true, label %bb153, label %bb372
-
-bb372:                                            ; preds = %bb370
-  %tmp373 = getelementptr inbounds i8, i8* %tmp371, i64 1
-  store i8 0, i8* %tmp373, align 1
-  br i1 true, label %bb153, label %bb374
-
-bb374:                                            ; preds = %bb372
-  %tmp375 = getelementptr inbounds i8, i8* %tmp373, i64 1
-  store i8 0, i8* %tmp375, align 1
-  br i1 true, label %bb153, label %bb376
-
-bb376:                                            ; preds = %bb374
-  %tmp377 = getelementptr inbounds i8, i8* %tmp375, i64 1
-  store i8 0, i8* %tmp377, align 1
-  br i1 true, label %bb153, label %bb378
-
-bb378:                                            ; preds = %bb376
-  %tmp379 = getelementptr inbounds i8, i8* %tmp377, i64 1
-  store i8 0, i8* %tmp379, align 1
-  br i1 true, label %bb153, label %bb380
-
-bb380:                                            ; preds = %bb378
-  %tmp381 = getelementptr inbounds i8, i8* %tmp379, i64 1
-  store i8 0, i8* %tmp381, align 1
-  br i1 true, label %bb153, label %bb382
-
-bb382:                                            ; preds = %bb380
-  %tmp383 = getelementptr inbounds i8, i8* %tmp381, i64 1
-  store i8 0, i8* %tmp383, align 1
-  br i1 true, label %bb153, label %bb384
-
-bb384:                                            ; preds = %bb382
-  %tmp385 = getelementptr inbounds i8, i8* %tmp383, i64 1
-  store i8 0, i8* %tmp385, align 1
-  br i1 true, label %bb153, label %bb386
-
-bb386:                                            ; preds = %bb384
-  %tmp387 = getelementptr inbounds i8, i8* %tmp385, i64 1
-  store i8 0, i8* %tmp387, align 1
-  br i1 true, label %bb153, label %bb388
-
-bb388:                                            ; preds = %bb386
-  %tmp389 = getelementptr inbounds i8, i8* %tmp387, i64 1
-  store i8 0, i8* %tmp389, align 1
-  br i1 true, label %bb153, label %bb390
-
-bb390:                                            ; preds = %bb388
-  %tmp391 = getelementptr inbounds i8, i8* %tmp389, i64 1
-  store i8 0, i8* %tmp391, align 1
-  br i1 true, label %bb153, label %bb392
-
-bb392:                                            ; preds = %bb390
-  %tmp393 = getelementptr inbounds i8, i8* %tmp391, i64 1
-  store i8 0, i8* %tmp393, align 1
-  br i1 true, label %bb153, label %bb394
-
-bb394:                                            ; preds = %bb392
-  %tmp395 = getelementptr inbounds i8, i8* %tmp393, i64 1
-  store i8 0, i8* %tmp395, align 1
-  br i1 true, label %bb153, label %bb396
-
-bb396:                                            ; preds = %bb394
-  %tmp397 = getelementptr inbounds i8, i8* %tmp395, i64 1
-  store i8 0, i8* %tmp397, align 1
-  br i1 true, label %bb153, label %bb398
-
-bb398:                                            ; preds = %bb396
-  %tmp399 = getelementptr inbounds i8, i8* %tmp397, i64 1
-  store i8 0, i8* %tmp399, align 1
-  br i1 true, label %bb153, label %bb400
-
-bb400:                                            ; preds = %bb398
-  %tmp401 = getelementptr inbounds i8, i8* %tmp399, i64 1
-  store i8 0, i8* %tmp401, align 1
-  br i1 true, label %bb153, label %bb402
-
-bb402:                                            ; preds = %bb400
-  %tmp403 = getelementptr inbounds i8, i8* %tmp401, i64 1
-  store i8 0, i8* %tmp403, align 1
-  br i1 true, label %bb153, label %bb404
-
-bb404:                                            ; preds = %bb402
-  %tmp405 = getelementptr inbounds i8, i8* %tmp403, i64 1
-  store i8 0, i8* %tmp405, align 1
-  br i1 true, label %bb153, label %bb406
-
-bb406:                                            ; preds = %bb404
-  %tmp407 = getelementptr inbounds i8, i8* %tmp405, i64 1
-  store i8 0, i8* %tmp407, align 1
-  br i1 true, label %bb153, label %bb408
-
-bb408:                                            ; preds = %bb406
-  %tmp409 = getelementptr inbounds i8, i8* %tmp407, i64 1
-  store i8 0, i8* %tmp409, align 1
-  br i1 true, label %bb153, label %bb410
-
-bb410:                                            ; preds = %bb408
-  %tmp411 = getelementptr inbounds i8, i8* %tmp409, i64 1
-  store i8 0, i8* %tmp411, align 1
-  br i1 true, label %bb153, label %bb412
-
-bb412:                                            ; preds = %bb410
-  %tmp413 = getelementptr inbounds i8, i8* %tmp411, i64 1
-  store i8 0, i8* %tmp413, align 1
-  br i1 true, label %bb153, label %bb414
-
-bb414:                                            ; preds = %bb412
-  %tmp415 = getelementptr inbounds i8, i8* %tmp413, i64 1
-  store i8 0, i8* %tmp415, align 1
-  br i1 true, label %bb153, label %bb416
-
-bb416:                                            ; preds = %bb414
-  %tmp417 = getelementptr inbounds i8, i8* %tmp415, i64 1
-  store i8 0, i8* %tmp417, align 1
-  br i1 true, label %bb153, label %bb418
-
-bb418:                                            ; preds = %bb416
-  %tmp419 = getelementptr inbounds i8, i8* %tmp417, i64 1
-  store i8 0, i8* %tmp419, align 1
-  br i1 true, label %bb153, label %bb420
-
-bb420:                                            ; preds = %bb418
-  %tmp421 = getelementptr inbounds i8, i8* %tmp419, i64 1
-  store i8 0, i8* %tmp421, align 1
-  br i1 true, label %bb153, label %bb422
-
-bb422:                                            ; preds = %bb420
-  %tmp423 = getelementptr inbounds i8, i8* %tmp421, i64 1
-  store i8 0, i8* %tmp423, align 1
-  br i1 true, label %bb153, label %bb424
-
-bb424:                                            ; preds = %bb422
-  %tmp425 = getelementptr inbounds i8, i8* %tmp423, i64 1
-  store i8 0, i8* %tmp425, align 1
-  br i1 true, label %bb153, label %bb426
-
-bb426:                                            ; preds = %bb424
-  %tmp427 = getelementptr inbounds i8, i8* %tmp425, i64 1
-  store i8 0, i8* %tmp427, align 1
-  br i1 true, label %bb153, label %bb428
-
-bb428:                                            ; preds = %bb426
-  %tmp429 = getelementptr inbounds i8, i8* %tmp427, i64 1
-  store i8 0, i8* %tmp429, align 1
-  br label %bb155
-}
-
-; Function Attrs: sspstrong uwtable
-declare i32 @wombat(%struct.foo* nocapture readnone, %struct.eggs*, %struct.spam.298*) local_unnamed_addr #3 align 2
-
-declare { <2 x float>, <2 x float> } @quux(%struct.ham*) local_unnamed_addr #2
-
-; Function Attrs: nounwind readonly
-declare i32 @wibble(i8* nocapture, i8* nocapture) local_unnamed_addr #1
-
-declare i32 @foo(%struct.quux.605*, i32, i8*) local_unnamed_addr #2
-
-declare void @hoge.4(%struct.eggs*, %struct.ham* dereferenceable(64)) local_unnamed_addr #2
-
-declare i64 @ham(i8*, i8**, i32) local_unnamed_addr #2
-
-attributes #0 = { argmemonly nounwind }
-attributes #1 = { nounwind readonly "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="btver2" "target-features"="+aes,+avx,+bmi,+cx16,+f16c,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+prfchw,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+sse4a,+ssse3,+x87,+xsave,+xsaveopt" "unsafe-fp-math"="false" "use-soft-float"="false" }
-attributes #2 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="btver2" "target-features"="+aes,+avx,+bmi,+cx16,+f16c,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+prfchw,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+sse4a,+ssse3,+x87,+xsave,+xsaveopt" "unsafe-fp-math"="false" "use-soft-float"="false" }
-attributes #3 = { sspstrong uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="btver2" "target-features"="+aes,+avx,+bmi,+cx16,+f16c,+fxsr,+lzcnt,+mmx,+pclmul,+popcnt,+prfchw,+sse,+sse2,+sse3,+sse4.1,+sse4.2,+sse4a,+ssse3,+x87,+xsave,+xsaveopt" "unsafe-fp-math"="false" "use-soft-float"="false" }
-attributes #4 = { nounwind }
-
-!llvm.module.flags = !{!0}
-!llvm.ident = !{!1}
-
-!0 = !{i32 1, !"PIC Level", i32 2}
-!1 = !{!"clang version 5.0.0 "}




More information about the llvm-commits mailing list