<p dir="auto">The source of the problem is <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="412876962" data-permission-text="Title is private" data-url="https://github.com/JuliaData/DataFrames.jl/issues/1730" data-hovercard-type="issue" data-hovercard-url="/JuliaData/DataFrames.jl/issues/1730/hovercard" href="https://github.com/JuliaData/DataFrames.jl/issues/1730">JuliaData/DataFrames.jl#1730</a>.</p>
<p dir="auto">Here is a MWE:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="julia&gt;     using Statistics

julia&gt;     function get_stats(col::AbstractVector, stats::AbstractVector{Symbol})
               if :q25 in stats || :median in stats || :q75 in stats
                   try quantile(col, [.25, .5, .75]) catch end
               end

               if :min in stats || :max in stats
                   try extrema(col) catch end
               end

               if :mean in stats || :std in stats
                   m = try mean(col) catch end
               end

               if :std in stats
                   try std(col, mean=m) catch end
               end
           end
get_stats (generic function with 1 method)

julia&gt;     get_stats(Int[], [:min])

Unreachable reached at 000000001F2D2ED9"><pre class="notranslate"><code class="notranslate">julia&gt;     using Statistics

julia&gt;     function get_stats(col::AbstractVector, stats::AbstractVector{Symbol})
               if :q25 in stats || :median in stats || :q75 in stats
                   try quantile(col, [.25, .5, .75]) catch end
               end

               if :min in stats || :max in stats
                   try extrema(col) catch end
               end

               if :mean in stats || :std in stats
                   m = try mean(col) catch end
               end

               if :std in stats
                   try std(col, mean=m) catch end
               end
           end
get_stats (generic function with 1 method)

julia&gt;     get_stats(Int[], [:min])

Unreachable reached at 000000001F2D2ED9
</code></pre></div>
<p dir="auto">The problem seems with the use of <code class="notranslate">m</code> in <code class="notranslate">std</code>. If we write <code class="notranslate">try std(col) catch end</code> not to use <code class="notranslate">m</code> the problem stops to be present.</p>
<p dir="auto">Strangely removing other <code class="notranslate">if</code>s also kills the problem. Note that the part of the code that causes the problem is not even executed as we pass <code class="notranslate">[:min]</code> as the second kewyord argument.</p>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JeffBezanson/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JeffBezanson">@JeffBezanson</a> I know that there are many "Unreachable reached" issues, but I could not find one that is exactly the same (but maybe it is a duplicate).</p>
<div class="highlight highlight-source-julia notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="julia&gt; function f()
         try
           g()
         finally
         end
       end
       g() = (_true ? error() : _true ? 0 : false)
       _true = true;

julia&gt; f()
Unreachable reached at 0x7f230c0f6e20

signal (4): Illegal instruction
in expression starting at no file:0
f at ./REPL[1]:3"><pre class="notranslate">julia<span class="pl-k">&gt;</span> <span class="pl-k">function</span> <span class="pl-en">f</span>()
         <span class="pl-k">try</span>
           <span class="pl-c1">g</span>()
         <span class="pl-k">finally</span>
         <span class="pl-k">end</span>
       <span class="pl-k">end</span>
       <span class="pl-en">g</span>() <span class="pl-k">=</span> (_true <span class="pl-k">?</span> <span class="pl-c1">error</span>() <span class="pl-k">:</span> _true <span class="pl-k">?</span> <span class="pl-c1">0</span> <span class="pl-k">:</span> <span class="pl-c1">false</span>)
       _true <span class="pl-k">=</span> <span class="pl-c1">true</span>;

julia<span class="pl-k">&gt;</span> <span class="pl-c1">f</span>()
Unreachable reached at <span class="pl-c1">0x7f230c0f6e20</span>

signal (<span class="pl-c1">4</span>)<span class="pl-k">:</span> Illegal instruction
in expression starting at no file<span class="pl-k">:</span><span class="pl-c1">0</span>
f at <span class="pl-k">./</span>REPL[<span class="pl-c1">1</span>]<span class="pl-k">:</span><span class="pl-c1">3</span></pre></div>
<p dir="auto">It looks like we might be trying to look at the type of value before noticing that it is undef. The Julia IR seems OK, so I think the issue is probably with the order of events we're emitting in codegen.</p>
<div class="highlight highlight-source-julia notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="julia&gt; @code_typed f()
CodeInfo(
     @ REPL[1]:2 within `f'
1 ──       $(Expr(:enter, #9))
2 ── %2  = ϒ (false)::Bool
│    %3  = ϒ (#undef)::MaybeUndef(Union{})
│    @ REPL[1]:3 within `f'
│   ┌ @ REPL[1]:7 within `g'
└───│       goto #4 if not Main._true
3 ──│       invoke Main.error()::Union{}
└───│       $(Expr(:unreachable))::Union{}
4 ┄─│       goto #6 if not Main._true
5 ──│       goto #7
6 ──│       goto #7
    ┘
7 ┄─ %10 = φ (#5 =&gt; 0, #6 =&gt; false)::Union{Bool, Int64}
│    %11 = ϒ (true)::Bool
│    %12 = ϒ (%10)::Union{Bool, Int64}
└───       $(Expr(:leave, 1))
8 ──       goto #11
9 ┄─ %15 = φᶜ (%2, %11)::Bool
│    %16 = φᶜ (%3, %12)::MaybeUndef(Union{Bool, Int64})
└───       $(Expr(:leave, 1))
10 ─ %18 = $(Expr(:the_exception))::Any
     @ REPL[1]:5 within `f'
11 ┄ %19 = φ (#8 =&gt; false, #10 =&gt; true)::Bool
│    %20 = φ (#8 =&gt; false, #10 =&gt; true)::Bool
│    %21 = φ (#8 =&gt; #undef, #10 =&gt; %18)::MaybeUndef(Any)
│    %22 = φ (#8 =&gt; true, #10 =&gt; %15)::Bool
│    %23 = φ (#8 =&gt; %10, #10 =&gt; %16)::MaybeUndef(Union{Bool, Int64})
└───       goto #13 if not %19
12 ─       $(Expr(:throw_undef_if_not, Symbol(&quot;#temp#&quot;), :(%20)))::Any
│          $(Expr(:foreigncall, :(:jl_rethrow_other), Union{}, svec(Any), :(:ccall), 1, :(%21)))::Union{}
└───       $(Expr(:unreachable))::Union{}
13 ┄       $(Expr(:throw_undef_if_not, Symbol(&quot;#temp#&quot;), :(%22)))::Any
└───       return %23
) =&gt; Union{Bool, Int64}

julia&gt; code_llvm(f, (), optimize=false, raw=true)"><pre class="notranslate">julia<span class="pl-k">&gt;</span> <span class="pl-c1">@code_typed</span> <span class="pl-c1">f</span>()
<span class="pl-c1">CodeInfo</span>(
     @ REPL[<span class="pl-c1">1</span>]<span class="pl-k">:</span><span class="pl-c1">2</span> within <span class="pl-s"><span class="pl-pds">`</span>f'</span>
<span class="pl-s">1 ──       $(Expr(:enter, #9))</span>
<span class="pl-s">2 ── %2  = ϒ (false)::Bool</span>
<span class="pl-s">│    %3  = ϒ (#undef)::MaybeUndef(Union{})</span>
<span class="pl-s">│    @ REPL[1]:3 within <span class="pl-pds">`</span><span class="pl-c1">f</span></span><span class="pl-s"><span class="pl-pds">'</span></span>
<span class="pl-s">│   ┌ @ REPL[1]:7 within `g<span class="pl-pds">'</span></span>
└───│       goto <span class="pl-c"><span class="pl-c">#</span>4 if not Main._true</span>
<span class="pl-c1">3</span> ──│       invoke Main<span class="pl-k">.</span><span class="pl-c1">error</span>()<span class="pl-k">::</span><span class="pl-c1">Union{}</span>
└───│       <span class="pl-k">$</span>(<span class="pl-c1">Expr</span>(<span class="pl-c1">:unreachable</span>))<span class="pl-k">::</span><span class="pl-c1">Union{}</span>
<span class="pl-c1">4</span> ┄─│       goto <span class="pl-c"><span class="pl-c">#</span>6 if not Main._true</span>
<span class="pl-c1">5</span> ──│       goto <span class="pl-c"><span class="pl-c">#</span>7</span>
<span class="pl-c1">6</span> ──│       goto <span class="pl-c"><span class="pl-c">#</span>7</span>
    ┘
<span class="pl-c1">7</span> ┄─ <span class="pl-k">%</span><span class="pl-c1">10</span> <span class="pl-k">=</span> φ (<span class="pl-c"><span class="pl-c">#</span>5 =&gt; 0, #6 =&gt; false)::Union{Bool, Int64}</span>
│    <span class="pl-k">%</span><span class="pl-c1">11</span> <span class="pl-k">=</span> ϒ (<span class="pl-c1">true</span>)<span class="pl-k">::</span><span class="pl-c1">Bool</span>
│    <span class="pl-k">%</span><span class="pl-c1">12</span> <span class="pl-k">=</span> ϒ (<span class="pl-k">%</span><span class="pl-c1">10</span>)<span class="pl-k">::</span><span class="pl-c1">Union{Bool, Int64}</span>
└───       <span class="pl-k">$</span>(<span class="pl-c1">Expr</span>(<span class="pl-c1">:leave</span>, <span class="pl-c1">1</span>))
<span class="pl-c1">8</span> ──       goto <span class="pl-c"><span class="pl-c">#</span>11</span>
<span class="pl-c1">9</span> ┄─ <span class="pl-k">%</span><span class="pl-c1">15</span> <span class="pl-k">=</span> φᶜ (<span class="pl-k">%</span><span class="pl-c1">2</span>, <span class="pl-k">%</span><span class="pl-c1">11</span>)<span class="pl-k">::</span><span class="pl-c1">Bool</span>
│    <span class="pl-k">%</span><span class="pl-c1">16</span> <span class="pl-k">=</span> φᶜ (<span class="pl-k">%</span><span class="pl-c1">3</span>, <span class="pl-k">%</span><span class="pl-c1">12</span>)<span class="pl-k">::</span><span class="pl-c1">MaybeUndef</span>(Union{Bool, Int64})
└───       <span class="pl-k">$</span>(<span class="pl-c1">Expr</span>(<span class="pl-c1">:leave</span>, <span class="pl-c1">1</span>))
<span class="pl-c1">10</span> ─ <span class="pl-k">%</span><span class="pl-c1">18</span> <span class="pl-k">=</span> <span class="pl-k">$</span>(<span class="pl-c1">Expr</span>(<span class="pl-c1">:the_exception</span>))<span class="pl-k">::</span><span class="pl-c1">Any</span>
     @ REPL[<span class="pl-c1">1</span>]<span class="pl-k">:</span><span class="pl-c1">5</span> within <span class="pl-s"><span class="pl-pds">`</span>f'</span>
<span class="pl-s">11 ┄ %19 = φ (#8 =&gt; false, #10 =&gt; true)::Bool</span>
<span class="pl-s">│    %20 = φ (#8 =&gt; false, #10 =&gt; true)::Bool</span>
<span class="pl-s">│    %21 = φ (#8 =&gt; #undef, #10 =&gt; %18)::MaybeUndef(Any)</span>
<span class="pl-s">│    %22 = φ (#8 =&gt; true, #10 =&gt; %15)::Bool</span>
<span class="pl-s">│    %23 = φ (#8 =&gt; %10, #10 =&gt; %16)::MaybeUndef(Union{Bool, Int64})</span>
<span class="pl-s">└───       goto #13 if not %19</span>
<span class="pl-s">12 ─       $(Expr(:throw_undef_if_not, Symbol("#temp#"), :(%20)))::Any</span>
<span class="pl-s">│          $(Expr(:foreigncall, :(:jl_rethrow_other), Union{}, svec(Any), :(:ccall), 1, :(%21)))::Union{}</span>
<span class="pl-s">└───       $(Expr(:unreachable))::Union{}</span>
<span class="pl-s">13 ┄       $(Expr(:throw_undef_if_not, Symbol("#temp#"), :(%22)))::Any</span>
<span class="pl-s">└───       return %23</span>
<span class="pl-s">) =&gt; Union{Bool, Int64}</span>
<span class="pl-s"></span>
<span class="pl-s">julia&gt; code_llvm(f, (), optimize=false, raw=true)</span></pre></div>
<div class="highlight highlight-source-llvm notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content=";  @ REPL[1]:2 within `f'
; Function Attrs: sspstrong
define { %jl_value_t addrspace(10)*, i8 } @julia_f_-1320222489([8 x i8]* noalias nocapture align 8 dereferenceable(8)) #0 !dbg !5 {
top:
  %phic1 = alloca [8 x i8], align 8
  %1 = alloca i8
  %2 = alloca [8 x i8], align 8
  %3 = alloca [8 x i8], align 8
  %4 = alloca [8 x i8], align 8
  %5 = alloca [8 x i8], align 8
  %6 = alloca i8
  %7 = alloca [8 x i8], align 8
  %8 = call %jl_value_t*** @julia.ptls_states()
  %9 = bitcast %jl_value_t*** %8 to %jl_value_t addrspace(10)**
  %10 = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %9, i64 3
  %11 = bitcast %jl_value_t addrspace(10)** %10 to i64**
  %12 = load i64*, i64** %11, !tbaa !14, !invariant.load !4
  %phic = alloca i8
  br label %L1

L1:                                               ; preds = %top
  %13 = call i32 @julia.except_enter() #2, !dbg !17
  %14 = icmp eq i32 %13, 0, !dbg !17
  br i1 %14, label %try, label %L15, !dbg !17

L2:                                               ; preds = %try
  store volatile i8 0, i8* %phic, !dbg !17, !tbaa !18
;  @ REPL[1]:3 within `f'
; ┌ @ REPL[1]:7 within `g'
   %15 = load %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** getelementptr inbounds (%jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** inttoptr (i64 140078970203504 to %jl_value_t addrspace(10)**), i64 1), !dbg !20, !tbaa !24
   %16 = call %jl_value_t addrspace(10)* @julia.typeof(%jl_value_t addrspace(10)* %15), !dbg !20
   %17 = icmp eq %jl_value_t addrspace(10)* %16, addrspacecast (%jl_value_t* inttoptr (i64 140078954810224 to %jl_value_t*) to %jl_value_t addrspace(10)*), !dbg !20
   br i1 %17, label %pass, label %fail, !dbg !20

L5:                                               ; preds = %pass
   %18 = call cc37 nonnull %jl_value_t addrspace(10)* bitcast (%jl_value_t addrspace(10)* (%jl_value_t addrspace(10)*, %jl_value_t addrspace(10)**, i32)* @japi1_error_-1320222516 to %jl_value_t addrspace(10)* (%jl_value_t addrspace(10)*)*)(%jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 140079083230080 to %jl_value_t*) to %jl_value_t addrspace(10)*)), !dbg !20
   call void @llvm.trap(), !dbg !20
   unreachable, !dbg !20

L7:                                               ; preds = %pass
   %19 = load %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** getelementptr inbounds (%jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** inttoptr (i64 140078970203504 to %jl_value_t addrspace(10)**), i64 1), !dbg !20, !tbaa !24
   %20 = call %jl_value_t addrspace(10)* @julia.typeof(%jl_value_t addrspace(10)* %19), !dbg !20
   %21 = icmp eq %jl_value_t addrspace(10)* %20, addrspacecast (%jl_value_t* inttoptr (i64 140078954810224 to %jl_value_t*) to %jl_value_t addrspace(10)*), !dbg !20
   br i1 %21, label %pass3, label %fail2, !dbg !20

L8:                                               ; preds = %pass3
   %22 = bitcast [8 x i8]* %2 to i8*, !dbg !20
   call void @llvm.lifetime.start.p0i8(i64 -1, i8* %22), !dbg !20
   %23 = bitcast [8 x i8]* %2 to i64*, !dbg !20
   store i64 0, i64* %23, !dbg !20
   br label %L10, !dbg !20

L9:                                               ; preds = %pass3
   %24 = bitcast [8 x i8]* %2 to i8*, !dbg !20
   call void @llvm.lifetime.start.p0i8(i64 -1, i8* %24), !dbg !20
   %25 = bitcast [8 x i8]* %2 to i8*, !dbg !20
   store i8 0, i8* %25, !dbg !20
   br label %L10, !dbg !20

L10:                                              ; preds = %L9, %L8
   %tindex_phi = phi i8 [ 2, %L8 ], [ 1, %L9 ]
   %ptr_phi = phi %jl_value_t addrspace(10)* [ null, %L8 ], [ null, %L9 ]
; ┘
  %26 = and i8 %tindex_phi, -128, !dbg !23
  %27 = icmp ne i8 %26, 0, !dbg !23
  %28 = bitcast [8 x i8]* %3 to i8*, !dbg !23
  %29 = bitcast [8 x i8]* %2 to i8*, !dbg !23
  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %28, i8* %29, i64 8, i32 1, i1 false), !dbg !23
  %30 = bitcast [8 x i8]* %2 to i8*, !dbg !23
  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %30), !dbg !23
  %31 = addrspacecast [8 x i8]* %3 to [8 x i8] addrspace(11)*, !dbg !23
  %32 = bitcast [8 x i8] addrspace(11)* %31 to i8 addrspace(11)*, !dbg !23
  %33 = addrspacecast %jl_value_t addrspace(10)* %ptr_phi to %jl_value_t addrspace(11)*, !dbg !23
  %34 = bitcast %jl_value_t addrspace(11)* %33 to i8 addrspace(11)*, !dbg !23
  %35 = select i1 %27, i8 addrspace(11)* %34, i8 addrspace(11)* %32, !dbg !23
  store volatile i8 1, i8* %phic, !dbg !23, !tbaa !18
  %36 = and i8 %tindex_phi, 127, !dbg !23
  store volatile i8 %36, i8* %1, !dbg !23
  store [8 x i8] undef, [8 x i8]* %phic1, !dbg !23
  %37 = and i8 %tindex_phi, 127, !dbg !23
  %38 = bitcast [8 x i8]* %phic1 to i8*, !dbg !23
  switch i8 %37, label %union_move_skip [
    i8 1, label %union_move
    i8 2, label %union_move4
  ], !dbg !23

L15:                                              ; preds = %L1
  %39 = load volatile i8, i8* %phic, !dbg !23
  store i8 %39, i8* %6, !dbg !23
  %40 = load volatile [8 x i8], [8 x i8]* %phic1, !dbg !23
  store [8 x i8] %40, [8 x i8]* %7, !dbg !23
  %41 = load volatile i8, i8* %1, !dbg !23
  call void @jl_pop_handler(i32 1), !dbg !23
  %42 = bitcast %jl_value_t*** %8 to %jl_value_t addrspace(10)**, !dbg !23
  %jl_exception_in_transit = getelementptr inbounds %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %42, i32 2, !dbg !23
  %43 = load volatile %jl_value_t addrspace(10)*, %jl_value_t addrspace(10)** %jl_exception_in_transit, !dbg !23
  %44 = load i8, i8* %6, !dbg !23, !tbaa !18, !range !27
  %45 = bitcast [8 x i8]* %4 to i8*, !dbg !23
  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %45), !dbg !23
  store [8 x i8] undef, [8 x i8]* %4, !dbg !23
  %46 = and i8 %41, 127, !dbg !23
  %47 = bitcast [8 x i8]* %7 to i8*, !dbg !23
  %48 = bitcast [8 x i8]* %4 to i8*, !dbg !23
  switch i8 %46, label %union_move_skip21 [
    i8 1, label %union_move23
    i8 2, label %union_move24
  ], !dbg !23

L19:                                              ; preds = %post_union_move22, %post_union_move18
  %value_phi = phi i8 [ 0, %post_union_move18 ], [ 1, %post_union_move22 ]
  %value_phi5 = phi i8 [ 0, %post_union_move18 ], [ 1, %post_union_move22 ]
  %value_phi6 = phi %jl_value_t addrspace(10)* [ null, %post_union_move18 ], [ %43, %post_union_move22 ]
  %value_phi7 = phi i8 [ 1, %post_union_move18 ], [ %44, %post_union_move22 ]
  %tindex_phi8 = phi i8 [ %tindex_phi, %post_union_move18 ], [ %41, %post_union_move22 ]
  %ptr_phi9 = phi %jl_value_t addrspace(10)* [ %ptr_phi, %post_union_move18 ], [ null, %post_union_move22 ]
;  @ REPL[1]:5 within `f'
  %49 = and i8 %tindex_phi8, -128, !dbg !28
  %50 = icmp ne i8 %49, 0, !dbg !28
  %51 = bitcast [8 x i8]* %5 to i8*, !dbg !28
  %52 = bitcast [8 x i8]* %4 to i8*, !dbg !28
  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %51, i8* %52, i64 8, i32 1, i1 false), !dbg !28
  %53 = bitcast [8 x i8]* %4 to i8*, !dbg !28
  call void @llvm.lifetime.end.p0i8(i64 -1, i8* %53), !dbg !28
  %54 = addrspacecast [8 x i8]* %5 to [8 x i8] addrspace(11)*, !dbg !28
  %55 = bitcast [8 x i8] addrspace(11)* %54 to i8 addrspace(11)*, !dbg !28
  %56 = addrspacecast %jl_value_t addrspace(10)* %ptr_phi9 to %jl_value_t addrspace(11)*, !dbg !28
  %57 = bitcast %jl_value_t addrspace(11)* %56 to i8 addrspace(11)*, !dbg !28
  %58 = select i1 %50, i8 addrspace(11)* %57, i8 addrspace(11)* %55, !dbg !28
  %59 = trunc i8 %value_phi to i1, !dbg !28
  %60 = xor i1 %59, true, !dbg !28
  br i1 %60, label %L28, label %L25, !dbg !28

L25:                                              ; preds = %L19
  %61 = trunc i8 %value_phi5 to i1, !dbg !28
  br i1 %61, label %ok, label %err, !dbg !28

L28:                                              ; preds = %L19
  %62 = trunc i8 %value_phi7 to i1, !dbg !28
  br i1 %62, label %ok12, label %err11, !dbg !28

try:                                              ; preds = %L1
;  @ REPL[1]:2 within `f'
  br label %L2, !dbg !17

fail:                                             ; preds = %L2
;  @ REPL[1]:3 within `f'
; ┌ @ REPL[1]:7 within `g'
   %63 = addrspacecast %jl_value_t addrspace(10)* %15 to %jl_value_t addrspace(12)*, !dbg !20
   call void @jl_type_error_rt(i8* inttoptr (i64 94024374789440 to i8*), i8* inttoptr (i64 94024373073152 to i8*), %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 140078954810224 to %jl_value_t*) to %jl_value_t addrspace(10)*), %jl_value_t addrspace(12)* %63), !dbg !20
   unreachable, !dbg !20

pass:                                             ; preds = %L2
   %64 = icmp eq %jl_value_t addrspace(10)* %15, addrspacecast (%jl_value_t* inttoptr (i64 140078952779280 to %jl_value_t*) to %jl_value_t addrspace(10)*), !dbg !20
   br i1 %64, label %L7, label %L5, !dbg !20

after_noret:                                      ; No predecessors!
   unreachable, !dbg !20

fail2:                                            ; preds = %L7
   %65 = addrspacecast %jl_value_t addrspace(10)* %19 to %jl_value_t addrspace(12)*, !dbg !20
   call void @jl_type_error_rt(i8* inttoptr (i64 94024374789440 to i8*), i8* inttoptr (i64 94024373073152 to i8*), %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* inttoptr (i64 140078954810224 to %jl_value_t*) to %jl_value_t addrspace(10)*), %jl_value_t addrspace(12)* %65), !dbg !20
   unreachable, !dbg !20

pass3:                                            ; preds = %L7
   %66 = icmp eq %jl_value_t addrspace(10)* %19, addrspacecast (%jl_value_t* inttoptr (i64 140078952779280 to %jl_value_t*) to %jl_value_t addrspace(10)*), !dbg !20
   br i1 %66, label %L9, label %L8, !dbg !20

union_move_skip:                                  ; preds = %L10
; ┘
  br label %post_union_move, !dbg !23

post_union_move:                                  ; preds = %union_move_skip, %union_move4, %union_move
  call void @jl_pop_handler(i32 1), !dbg !23
  %67 = bitcast [8 x i8]* %4 to i8*, !dbg !23
  call void @llvm.lifetime.start.p0i8(i64 -1, i8* %67), !dbg !23
  %68 = and i8 %tindex_phi, -128, !dbg !23
  %69 = icmp ne i8 %68, 0, !dbg !23
  store [8 x i8] undef, [8 x i8]* %4, !dbg !23
  %70 = and i8 %tindex_phi, 127, !dbg !23
  %71 = select i1 %69, i8 0, i8 %70, !dbg !23
  %72 = bitcast [8 x i8]* %4 to i8*, !dbg !23
  switch i8 %71, label %union_move_skip17 [
    i8 1, label %union_move19
    i8 2, label %union_move20
  ], !dbg !23

union_move:                                       ; preds = %L10
  %73 = load volatile i8, i8 addrspace(11)* %35, align 1, !dbg !23, !tbaa !18
  store volatile i8 %73, i8* %38, align 1, !dbg !23, !tbaa !18
  br label %post_union_move, !dbg !23

union_move4:                                      ; preds = %L10
  call void @llvm.memcpy.p0i8.p11i8.i64(i8* %38, i8 addrspace(11)* %35, i64 8, i32 8, i1 true), !dbg !23, !tbaa !18
  br label %post_union_move, !dbg !23

err:                                              ; preds = %L25
;  @ REPL[1]:5 within `f'
  call void @jl_undefined_var_error(%jl_value_t addrspace(12)* addrspacecast (%jl_value_t* inttoptr (i64 140078952786872 to %jl_value_t*) to %jl_value_t addrspace(12)*)), !dbg !28
  unreachable, !dbg !28

ok:                                               ; preds = %L25
  call void inttoptr (i64 140079250202488 to void (%jl_value_t addrspace(10)*)*)(%jl_value_t addrspace(10)* %value_phi6) #4, !dbg !28
  call void @llvm.trap(), !dbg !28
  unreachable, !dbg !28

after_noret10:                                    ; No predecessors!
  unreachable, !dbg !28

err11:                                            ; preds = %L28
  call void @jl_undefined_var_error(%jl_value_t addrspace(12)* addrspacecast (%jl_value_t* inttoptr (i64 140078952786872 to %jl_value_t*) to %jl_value_t addrspace(12)*)), !dbg !28
  unreachable, !dbg !28

ok12:                                             ; preds = %L28
  %74 = and i8 %tindex_phi8, -128, !dbg !28
  %75 = icmp ne i8 %74, 0, !dbg !28
  %76 = select i1 %75, %jl_value_t addrspace(10)* %ptr_phi9, %jl_value_t addrspace(10)* addrspacecast (%jl_value_t* null to %jl_value_t addrspace(10)*), !dbg !28
  %77 = insertvalue { %jl_value_t addrspace(10)*, i8 } undef, %jl_value_t addrspace(10)* %76, 0, !dbg !28
  %78 = insertvalue { %jl_value_t addrspace(10)*, i8 } %77, i8 %tindex_phi8, 1, !dbg !28
  %79 = and i8 %tindex_phi8, 127, !dbg !28
  %80 = select i1 %75, i8 0, i8 %79, !dbg !28
  %81 = bitcast [8 x i8]* %0 to i8*, !dbg !28
  switch i8 %80, label %union_move_skip13 [
    i8 1, label %union_move15
    i8 2, label %union_move16
  ], !dbg !28

union_move_skip13:                                ; preds = %ok12
  br label %post_union_move14, !dbg !28

post_union_move14:                                ; preds = %union_move_skip13, %union_move16, %union_move15
  ret { %jl_value_t addrspace(10)*, i8 } %78, !dbg !28

union_move15:                                     ; preds = %ok12
  %82 = load i8, i8 addrspace(11)* %58, align 1, !dbg !28, !tbaa !18
  store i8 %82, i8* %81, align 1, !dbg !28
  br label %post_union_move14, !dbg !28

union_move16:                                     ; preds = %ok12
  call void @llvm.memcpy.p0i8.p11i8.i64(i8* %81, i8 addrspace(11)* %58, i64 8, i32 8, i1 false), !dbg !28
  br label %post_union_move14, !dbg !28

union_move_skip17:                                ; preds = %post_union_move
;  @ REPL[1]:3 within `f'
  br label %post_union_move18, !dbg !23

post_union_move18:                                ; preds = %union_move_skip17, %union_move20, %union_move19
  br label %L19, !dbg !23

union_move19:                                     ; preds = %post_union_move
  %83 = load i8, i8 addrspace(11)* %35, align 1, !dbg !23, !tbaa !18
  store i8 %83, i8* %72, align 1, !dbg !23, !tbaa !29
  br label %post_union_move18, !dbg !23

union_move20:                                     ; preds = %post_union_move
  call void @llvm.memcpy.p0i8.p11i8.i64(i8* %72, i8 addrspace(11)* %35, i64 8, i32 8, i1 false), !dbg !23
  br label %post_union_move18, !dbg !23

union_move_skip21:                                ; preds = %L15
  call void @llvm.trap(), !dbg !23
  unreachable, !dbg !23

post_union_move22:                                ; preds = %union_move24, %union_move23
  br label %L19, !dbg !23

union_move23:                                     ; preds = %L15
  %84 = load i8, i8* %47, align 1, !dbg !23, !tbaa !18
  store i8 %84, i8* %48, align 1, !dbg !23, !tbaa !29
  br label %post_union_move22, !dbg !23

union_move24:                                     ; preds = %L15
  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %48, i8* %47, i64 8, i32 8, i1 false), !dbg !23
  br label %post_union_move22, !dbg !23
}"><pre class="notranslate"><span class="pl-c">;  @ REPL[1]:2 within `f'</span>
<span class="pl-c">; Function Attrs: sspstrong</span>
<span class="pl-k">define</span> { <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*, <span class="pl-k">i8</span> } <span class="pl-c1">@julia_f_-1320222489</span>([<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-k">noalias</span> <span class="pl-k">nocapture</span> <span class="pl-k">align</span> <span class="pl-c1">8</span> <span class="pl-k">dereferenceable</span>(<span class="pl-c1">8</span>)) #<span class="pl-c1">0</span> <span class="pl-v">!dbg</span> <span class="pl-v">!5</span> {
top:
  <span class="pl-c1">%phic1</span> = <span class="pl-k">alloca</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>], <span class="pl-k">align</span> <span class="pl-c1">8</span>
  <span class="pl-c1">%1</span> = <span class="pl-k">alloca</span> <span class="pl-k">i8</span>
  <span class="pl-c1">%2</span> = <span class="pl-k">alloca</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>], <span class="pl-k">align</span> <span class="pl-c1">8</span>
  <span class="pl-c1">%3</span> = <span class="pl-k">alloca</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>], <span class="pl-k">align</span> <span class="pl-c1">8</span>
  <span class="pl-c1">%4</span> = <span class="pl-k">alloca</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>], <span class="pl-k">align</span> <span class="pl-c1">8</span>
  <span class="pl-c1">%5</span> = <span class="pl-k">alloca</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>], <span class="pl-k">align</span> <span class="pl-c1">8</span>
  <span class="pl-c1">%6</span> = <span class="pl-k">alloca</span> <span class="pl-k">i8</span>
  <span class="pl-c1">%7</span> = <span class="pl-k">alloca</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>], <span class="pl-k">align</span> <span class="pl-c1">8</span>
  <span class="pl-c1">%8</span> = <span class="pl-k">call</span> <span class="pl-k">%jl_value_t***</span> <span class="pl-c1">@julia.ptls_states</span>()
  <span class="pl-c1">%9</span> = <span class="pl-k">bitcast</span> <span class="pl-k">%jl_value_t***</span> <span class="pl-c1">%8</span> <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)**
  <span class="pl-c1">%10</span> = <span class="pl-k">getelementptr</span> <span class="pl-k">inbounds</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*, <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)** <span class="pl-c1">%9</span>, <span class="pl-k">i64</span> <span class="pl-c1">3</span>
  <span class="pl-c1">%11</span> = <span class="pl-k">bitcast</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)** <span class="pl-c1">%10</span> <span class="pl-k">to</span> <span class="pl-k">i64**</span>
  <span class="pl-c1">%12</span> = <span class="pl-k">load</span> <span class="pl-k">i64*</span>, <span class="pl-k">i64**</span> <span class="pl-c1">%11</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!14</span>, <span class="pl-v">!invariant.load</span> <span class="pl-v">!4</span>
  <span class="pl-c1">%phic</span> = <span class="pl-k">alloca</span> <span class="pl-k">i8</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%L1</span>

L1:                                               <span class="pl-c">; preds = %top</span>
  <span class="pl-c1">%13</span> = <span class="pl-k">call</span> <span class="pl-k">i32</span> <span class="pl-c1">@julia.except_enter</span>() #<span class="pl-c1">2</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!17</span>
  <span class="pl-c1">%14</span> = <span class="pl-k">icmp</span> <span class="pl-k">eq</span> <span class="pl-k">i32</span> <span class="pl-c1">%13</span>, <span class="pl-c1">0</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!17</span>
  <span class="pl-k">br</span> <span class="pl-k">i1</span> <span class="pl-c1">%14</span>, <span class="pl-k">label</span> <span class="pl-c1">%try</span>, <span class="pl-k">label</span> <span class="pl-c1">%L15</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!17</span>

L2:                                               <span class="pl-c">; preds = %try</span>
  <span class="pl-k">store</span> <span class="pl-k">volatile</span> <span class="pl-k">i8</span> <span class="pl-c1">0</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%phic</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!17</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!18</span>
<span class="pl-c">;  @ REPL[1]:3 within `f'</span>
<span class="pl-c">; ┌ @ REPL[1]:7 within `g'</span>
   <span class="pl-c1">%15</span> = <span class="pl-k">load</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*, <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)** <span class="pl-k">getelementptr</span> <span class="pl-k">inbounds</span> (<span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*, <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)** <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">140078970203504</span> <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)**), <span class="pl-k">i64</span> <span class="pl-c1">1</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!24</span>
   <span class="pl-c1">%16</span> = <span class="pl-k">call</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">@julia.typeof</span>(<span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">%15</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-c1">%17</span> = <span class="pl-k">icmp</span> <span class="pl-k">eq</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">%16</span>, addrspacecast (<span class="pl-k">%jl_value_t*</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">140078954810224</span> <span class="pl-k">to</span> <span class="pl-k">%jl_value_t*</span>) <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">br</span> <span class="pl-k">i1</span> <span class="pl-c1">%17</span>, <span class="pl-k">label</span> <span class="pl-c1">%pass</span>, <span class="pl-k">label</span> <span class="pl-c1">%fail</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>

L5:                                               <span class="pl-c">; preds = %pass</span>
   <span class="pl-c1">%18</span> = <span class="pl-k">call</span> cc37 <span class="pl-k">nonnull</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-k">bitcast</span> (<span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* (<span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*, <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)**, <span class="pl-k">i32</span>)* <span class="pl-c1">@japi1_error_-1320222516</span> <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* (<span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*)*)(<span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* addrspacecast (<span class="pl-k">%jl_value_t*</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">140079083230080</span> <span class="pl-k">to</span> <span class="pl-k">%jl_value_t*</span>) <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*)), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.trap</span>(), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">unreachable</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>

L7:                                               <span class="pl-c">; preds = %pass</span>
   <span class="pl-c1">%19</span> = <span class="pl-k">load</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*, <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)** <span class="pl-k">getelementptr</span> <span class="pl-k">inbounds</span> (<span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*, <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)** <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">140078970203504</span> <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)**), <span class="pl-k">i64</span> <span class="pl-c1">1</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!24</span>
   <span class="pl-c1">%20</span> = <span class="pl-k">call</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">@julia.typeof</span>(<span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">%19</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-c1">%21</span> = <span class="pl-k">icmp</span> <span class="pl-k">eq</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">%20</span>, addrspacecast (<span class="pl-k">%jl_value_t*</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">140078954810224</span> <span class="pl-k">to</span> <span class="pl-k">%jl_value_t*</span>) <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">br</span> <span class="pl-k">i1</span> <span class="pl-c1">%21</span>, <span class="pl-k">label</span> <span class="pl-c1">%pass3</span>, <span class="pl-k">label</span> <span class="pl-c1">%fail2</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>

L8:                                               <span class="pl-c">; preds = %pass3</span>
   <span class="pl-c1">%22</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%2</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.lifetime.start.p0i8</span>(<span class="pl-k">i64</span> -<span class="pl-c1">1</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%22</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-c1">%23</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%2</span> <span class="pl-k">to</span> <span class="pl-k">i64*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">store</span> <span class="pl-k">i64</span> <span class="pl-c1">0</span>, <span class="pl-k">i64*</span> <span class="pl-c1">%23</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%L10</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>

L9:                                               <span class="pl-c">; preds = %pass3</span>
   <span class="pl-c1">%24</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%2</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.lifetime.start.p0i8</span>(<span class="pl-k">i64</span> -<span class="pl-c1">1</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%24</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-c1">%25</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%2</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">store</span> <span class="pl-k">i8</span> <span class="pl-c1">0</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%25</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%L10</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>

L10:                                              <span class="pl-c">; preds = %L9, %L8</span>
   <span class="pl-c1">%tindex_phi</span> = <span class="pl-k">phi</span> <span class="pl-k">i8</span> [ <span class="pl-c1">2</span>, <span class="pl-c1">%L8</span> ], [ <span class="pl-c1">1</span>, <span class="pl-c1">%L9</span> ]
   <span class="pl-c1">%ptr_phi</span> = <span class="pl-k">phi</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* [ <span class="pl-k">null</span>, <span class="pl-c1">%L8</span> ], [ <span class="pl-k">null</span>, <span class="pl-c1">%L9</span> ]
<span class="pl-c">; ┘</span>
  <span class="pl-c1">%26</span> = <span class="pl-k">and</span> <span class="pl-k">i8</span> <span class="pl-c1">%tindex_phi</span>, -<span class="pl-c1">128</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%27</span> = <span class="pl-k">icmp</span> <span class="pl-k">ne</span> <span class="pl-k">i8</span> <span class="pl-c1">%26</span>, <span class="pl-c1">0</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%28</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%3</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%29</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%2</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.memcpy.p0i8.p0i8.i64</span>(<span class="pl-k">i8*</span> <span class="pl-c1">%28</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%29</span>, <span class="pl-k">i64</span> <span class="pl-c1">8</span>, <span class="pl-k">i32</span> <span class="pl-c1">1</span>, <span class="pl-k">i1</span> <span class="pl-k">false</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%30</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%2</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.lifetime.end.p0i8</span>(<span class="pl-k">i64</span> -<span class="pl-c1">1</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%30</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%31</span> = addrspacecast [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%3</span> <span class="pl-k">to</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>] <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)*, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%32</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>] <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%31</span> <span class="pl-k">to</span> <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)*, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%33</span> = addrspacecast <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">%ptr_phi</span> <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)*, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%34</span> = <span class="pl-k">bitcast</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%33</span> <span class="pl-k">to</span> <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)*, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%35</span> = <span class="pl-k">select</span> <span class="pl-k">i1</span> <span class="pl-c1">%27</span>, <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%34</span>, <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%32</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">store</span> <span class="pl-k">volatile</span> <span class="pl-k">i8</span> <span class="pl-c1">1</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%phic</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!18</span>
  <span class="pl-c1">%36</span> = <span class="pl-k">and</span> <span class="pl-k">i8</span> <span class="pl-c1">%tindex_phi</span>, <span class="pl-c1">127</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">store</span> <span class="pl-k">volatile</span> <span class="pl-k">i8</span> <span class="pl-c1">%36</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">store</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>] <span class="pl-k">undef</span>, [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%phic1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%37</span> = <span class="pl-k">and</span> <span class="pl-k">i8</span> <span class="pl-c1">%tindex_phi</span>, <span class="pl-c1">127</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%38</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%phic1</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">switch</span> <span class="pl-k">i8</span> <span class="pl-c1">%37</span>, <span class="pl-k">label</span> <span class="pl-c1">%union_move_skip</span> [
    <span class="pl-k">i8</span> <span class="pl-c1">1</span>, <span class="pl-k">label</span> <span class="pl-c1">%union_move</span>
    <span class="pl-k">i8</span> <span class="pl-c1">2</span>, <span class="pl-k">label</span> <span class="pl-c1">%union_move4</span>
  ], <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>

L15:                                              <span class="pl-c">; preds = %L1</span>
  <span class="pl-c1">%39</span> = <span class="pl-k">load</span> <span class="pl-k">volatile</span> <span class="pl-k">i8</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%phic</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">store</span> <span class="pl-k">i8</span> <span class="pl-c1">%39</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%6</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%40</span> = <span class="pl-k">load</span> <span class="pl-k">volatile</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>], [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%phic1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">store</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>] <span class="pl-c1">%40</span>, [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%7</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%41</span> = <span class="pl-k">load</span> <span class="pl-k">volatile</span> <span class="pl-k">i8</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@jl_pop_handler</span>(<span class="pl-k">i32</span> <span class="pl-c1">1</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%42</span> = <span class="pl-k">bitcast</span> <span class="pl-k">%jl_value_t***</span> <span class="pl-c1">%8</span> <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)**, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%jl_exception_in_transit</span> = <span class="pl-k">getelementptr</span> <span class="pl-k">inbounds</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*, <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)** <span class="pl-c1">%42</span>, <span class="pl-k">i32</span> <span class="pl-c1">2</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%43</span> = <span class="pl-k">load</span> <span class="pl-k">volatile</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*, <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)** <span class="pl-c1">%jl_exception_in_transit</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%44</span> = <span class="pl-k">load</span> <span class="pl-k">i8</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%6</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!18</span>, <span class="pl-v">!range</span> <span class="pl-v">!27</span>
  <span class="pl-c1">%45</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%4</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.lifetime.start.p0i8</span>(<span class="pl-k">i64</span> -<span class="pl-c1">1</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%45</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">store</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>] <span class="pl-k">undef</span>, [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%4</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%46</span> = <span class="pl-k">and</span> <span class="pl-k">i8</span> <span class="pl-c1">%41</span>, <span class="pl-c1">127</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%47</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%7</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%48</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%4</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">switch</span> <span class="pl-k">i8</span> <span class="pl-c1">%46</span>, <span class="pl-k">label</span> <span class="pl-c1">%union_move_skip21</span> [
    <span class="pl-k">i8</span> <span class="pl-c1">1</span>, <span class="pl-k">label</span> <span class="pl-c1">%union_move23</span>
    <span class="pl-k">i8</span> <span class="pl-c1">2</span>, <span class="pl-k">label</span> <span class="pl-c1">%union_move24</span>
  ], <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>

L19:                                              <span class="pl-c">; preds = %post_union_move22, %post_union_move18</span>
  <span class="pl-c1">%value_phi</span> = <span class="pl-k">phi</span> <span class="pl-k">i8</span> [ <span class="pl-c1">0</span>, <span class="pl-c1">%post_union_move18</span> ], [ <span class="pl-c1">1</span>, <span class="pl-c1">%post_union_move22</span> ]
  <span class="pl-c1">%value_phi5</span> = <span class="pl-k">phi</span> <span class="pl-k">i8</span> [ <span class="pl-c1">0</span>, <span class="pl-c1">%post_union_move18</span> ], [ <span class="pl-c1">1</span>, <span class="pl-c1">%post_union_move22</span> ]
  <span class="pl-c1">%value_phi6</span> = <span class="pl-k">phi</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* [ <span class="pl-k">null</span>, <span class="pl-c1">%post_union_move18</span> ], [ <span class="pl-c1">%43</span>, <span class="pl-c1">%post_union_move22</span> ]
  <span class="pl-c1">%value_phi7</span> = <span class="pl-k">phi</span> <span class="pl-k">i8</span> [ <span class="pl-c1">1</span>, <span class="pl-c1">%post_union_move18</span> ], [ <span class="pl-c1">%44</span>, <span class="pl-c1">%post_union_move22</span> ]
  <span class="pl-c1">%tindex_phi8</span> = <span class="pl-k">phi</span> <span class="pl-k">i8</span> [ <span class="pl-c1">%tindex_phi</span>, <span class="pl-c1">%post_union_move18</span> ], [ <span class="pl-c1">%41</span>, <span class="pl-c1">%post_union_move22</span> ]
  <span class="pl-c1">%ptr_phi9</span> = <span class="pl-k">phi</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* [ <span class="pl-c1">%ptr_phi</span>, <span class="pl-c1">%post_union_move18</span> ], [ <span class="pl-k">null</span>, <span class="pl-c1">%post_union_move22</span> ]
<span class="pl-c">;  @ REPL[1]:5 within `f'</span>
  <span class="pl-c1">%49</span> = <span class="pl-k">and</span> <span class="pl-k">i8</span> <span class="pl-c1">%tindex_phi8</span>, -<span class="pl-c1">128</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%50</span> = <span class="pl-k">icmp</span> <span class="pl-k">ne</span> <span class="pl-k">i8</span> <span class="pl-c1">%49</span>, <span class="pl-c1">0</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%51</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%5</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%52</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%4</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.memcpy.p0i8.p0i8.i64</span>(<span class="pl-k">i8*</span> <span class="pl-c1">%51</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%52</span>, <span class="pl-k">i64</span> <span class="pl-c1">8</span>, <span class="pl-k">i32</span> <span class="pl-c1">1</span>, <span class="pl-k">i1</span> <span class="pl-k">false</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%53</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%4</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.lifetime.end.p0i8</span>(<span class="pl-k">i64</span> -<span class="pl-c1">1</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%53</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%54</span> = addrspacecast [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%5</span> <span class="pl-k">to</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>] <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)*, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%55</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>] <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%54</span> <span class="pl-k">to</span> <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)*, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%56</span> = addrspacecast <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">%ptr_phi9</span> <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)*, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%57</span> = <span class="pl-k">bitcast</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%56</span> <span class="pl-k">to</span> <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)*, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%58</span> = <span class="pl-k">select</span> <span class="pl-k">i1</span> <span class="pl-c1">%50</span>, <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%57</span>, <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%55</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%59</span> = <span class="pl-k">trunc</span> <span class="pl-k">i8</span> <span class="pl-c1">%value_phi</span> <span class="pl-k">to</span> <span class="pl-k">i1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%60</span> = <span class="pl-k">xor</span> <span class="pl-k">i1</span> <span class="pl-c1">%59</span>, <span class="pl-k">true</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-k">br</span> <span class="pl-k">i1</span> <span class="pl-c1">%60</span>, <span class="pl-k">label</span> <span class="pl-c1">%L28</span>, <span class="pl-k">label</span> <span class="pl-c1">%L25</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>

L25:                                              <span class="pl-c">; preds = %L19</span>
  <span class="pl-c1">%61</span> = <span class="pl-k">trunc</span> <span class="pl-k">i8</span> <span class="pl-c1">%value_phi5</span> <span class="pl-k">to</span> <span class="pl-k">i1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-k">br</span> <span class="pl-k">i1</span> <span class="pl-c1">%61</span>, <span class="pl-k">label</span> <span class="pl-c1">%ok</span>, <span class="pl-k">label</span> <span class="pl-c1">%err</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>

L28:                                              <span class="pl-c">; preds = %L19</span>
  <span class="pl-c1">%62</span> = <span class="pl-k">trunc</span> <span class="pl-k">i8</span> <span class="pl-c1">%value_phi7</span> <span class="pl-k">to</span> <span class="pl-k">i1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-k">br</span> <span class="pl-k">i1</span> <span class="pl-c1">%62</span>, <span class="pl-k">label</span> <span class="pl-c1">%ok12</span>, <span class="pl-k">label</span> <span class="pl-c1">%err11</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>

try:                                              <span class="pl-c">; preds = %L1</span>
<span class="pl-c">;  @ REPL[1]:2 within `f'</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%L2</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!17</span>

fail:                                             <span class="pl-c">; preds = %L2</span>
<span class="pl-c">;  @ REPL[1]:3 within `f'</span>
<span class="pl-c">; ┌ @ REPL[1]:7 within `g'</span>
   <span class="pl-c1">%63</span> = addrspacecast <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">%15</span> <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">12</span>)*, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@jl_type_error_rt</span>(<span class="pl-k">i8*</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">94024374789440</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>), <span class="pl-k">i8*</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">94024373073152</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>), <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* addrspacecast (<span class="pl-k">%jl_value_t*</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">140078954810224</span> <span class="pl-k">to</span> <span class="pl-k">%jl_value_t*</span>) <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*), <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">12</span>)* <span class="pl-c1">%63</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">unreachable</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>

pass:                                             <span class="pl-c">; preds = %L2</span>
   <span class="pl-c1">%64</span> = <span class="pl-k">icmp</span> <span class="pl-k">eq</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">%15</span>, addrspacecast (<span class="pl-k">%jl_value_t*</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">140078952779280</span> <span class="pl-k">to</span> <span class="pl-k">%jl_value_t*</span>) <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">br</span> <span class="pl-k">i1</span> <span class="pl-c1">%64</span>, <span class="pl-k">label</span> <span class="pl-c1">%L7</span>, <span class="pl-k">label</span> <span class="pl-c1">%L5</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>

after_noret:                                      <span class="pl-c">; No predecessors!</span>
   <span class="pl-k">unreachable</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>

fail2:                                            <span class="pl-c">; preds = %L7</span>
   <span class="pl-c1">%65</span> = addrspacecast <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">%19</span> <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">12</span>)*, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@jl_type_error_rt</span>(<span class="pl-k">i8*</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">94024374789440</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>), <span class="pl-k">i8*</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">94024373073152</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>), <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* addrspacecast (<span class="pl-k">%jl_value_t*</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">140078954810224</span> <span class="pl-k">to</span> <span class="pl-k">%jl_value_t*</span>) <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*), <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">12</span>)* <span class="pl-c1">%65</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">unreachable</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>

pass3:                                            <span class="pl-c">; preds = %L7</span>
   <span class="pl-c1">%66</span> = <span class="pl-k">icmp</span> <span class="pl-k">eq</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">%19</span>, addrspacecast (<span class="pl-k">%jl_value_t*</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">140078952779280</span> <span class="pl-k">to</span> <span class="pl-k">%jl_value_t*</span>) <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*), <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>
   <span class="pl-k">br</span> <span class="pl-k">i1</span> <span class="pl-c1">%66</span>, <span class="pl-k">label</span> <span class="pl-c1">%L9</span>, <span class="pl-k">label</span> <span class="pl-c1">%L8</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!20</span>

union_move_skip:                                  <span class="pl-c">; preds = %L10</span>
<span class="pl-c">; ┘</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%post_union_move</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>

post_union_move:                                  <span class="pl-c">; preds = %union_move_skip, %union_move4, %union_move</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@jl_pop_handler</span>(<span class="pl-k">i32</span> <span class="pl-c1">1</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%67</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%4</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.lifetime.start.p0i8</span>(<span class="pl-k">i64</span> -<span class="pl-c1">1</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%67</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%68</span> = <span class="pl-k">and</span> <span class="pl-k">i8</span> <span class="pl-c1">%tindex_phi</span>, -<span class="pl-c1">128</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%69</span> = <span class="pl-k">icmp</span> <span class="pl-k">ne</span> <span class="pl-k">i8</span> <span class="pl-c1">%68</span>, <span class="pl-c1">0</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">store</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>] <span class="pl-k">undef</span>, [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%4</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%70</span> = <span class="pl-k">and</span> <span class="pl-k">i8</span> <span class="pl-c1">%tindex_phi</span>, <span class="pl-c1">127</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%71</span> = <span class="pl-k">select</span> <span class="pl-k">i1</span> <span class="pl-c1">%69</span>, <span class="pl-k">i8</span> <span class="pl-c1">0</span>, <span class="pl-k">i8</span> <span class="pl-c1">%70</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-c1">%72</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%4</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">switch</span> <span class="pl-k">i8</span> <span class="pl-c1">%71</span>, <span class="pl-k">label</span> <span class="pl-c1">%union_move_skip17</span> [
    <span class="pl-k">i8</span> <span class="pl-c1">1</span>, <span class="pl-k">label</span> <span class="pl-c1">%union_move19</span>
    <span class="pl-k">i8</span> <span class="pl-c1">2</span>, <span class="pl-k">label</span> <span class="pl-c1">%union_move20</span>
  ], <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>

union_move:                                       <span class="pl-c">; preds = %L10</span>
  <span class="pl-c1">%73</span> = <span class="pl-k">load</span> <span class="pl-k">volatile</span> <span class="pl-k">i8</span>, <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%35</span>, <span class="pl-k">align</span> <span class="pl-c1">1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!18</span>
  <span class="pl-k">store</span> <span class="pl-k">volatile</span> <span class="pl-k">i8</span> <span class="pl-c1">%73</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%38</span>, <span class="pl-k">align</span> <span class="pl-c1">1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!18</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%post_union_move</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>

union_move4:                                      <span class="pl-c">; preds = %L10</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.memcpy.p0i8.p11i8.i64</span>(<span class="pl-k">i8*</span> <span class="pl-c1">%38</span>, <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%35</span>, <span class="pl-k">i64</span> <span class="pl-c1">8</span>, <span class="pl-k">i32</span> <span class="pl-c1">8</span>, <span class="pl-k">i1</span> <span class="pl-k">true</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!18</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%post_union_move</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>

err:                                              <span class="pl-c">; preds = %L25</span>
<span class="pl-c">;  @ REPL[1]:5 within `f'</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@jl_undefined_var_error</span>(<span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">12</span>)* addrspacecast (<span class="pl-k">%jl_value_t*</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">140078952786872</span> <span class="pl-k">to</span> <span class="pl-k">%jl_value_t*</span>) <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">12</span>)*)), <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-k">unreachable</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>

ok:                                               <span class="pl-c">; preds = %L25</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">140079250202488</span> <span class="pl-k">to</span> <span class="pl-k">void</span> (<span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*)*)(<span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">%value_phi6</span>) #<span class="pl-c1">4</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.trap</span>(), <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-k">unreachable</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>

after_noret10:                                    <span class="pl-c">; No predecessors!</span>
  <span class="pl-k">unreachable</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>

err11:                                            <span class="pl-c">; preds = %L28</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@jl_undefined_var_error</span>(<span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">12</span>)* addrspacecast (<span class="pl-k">%jl_value_t*</span> <span class="pl-k">inttoptr</span> (<span class="pl-k">i64</span> <span class="pl-c1">140078952786872</span> <span class="pl-k">to</span> <span class="pl-k">%jl_value_t*</span>) <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">12</span>)*)), <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-k">unreachable</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>

ok12:                                             <span class="pl-c">; preds = %L28</span>
  <span class="pl-c1">%74</span> = <span class="pl-k">and</span> <span class="pl-k">i8</span> <span class="pl-c1">%tindex_phi8</span>, -<span class="pl-c1">128</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%75</span> = <span class="pl-k">icmp</span> <span class="pl-k">ne</span> <span class="pl-k">i8</span> <span class="pl-c1">%74</span>, <span class="pl-c1">0</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%76</span> = <span class="pl-k">select</span> <span class="pl-k">i1</span> <span class="pl-c1">%75</span>, <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">%ptr_phi9</span>, <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* addrspacecast (<span class="pl-k">%jl_value_t*</span> <span class="pl-k">null</span> <span class="pl-k">to</span> <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*), <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%77</span> = <span class="pl-k">insertvalue</span> { <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*, <span class="pl-k">i8</span> } <span class="pl-k">undef</span>, <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)* <span class="pl-c1">%76</span>, <span class="pl-c1">0</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%78</span> = <span class="pl-k">insertvalue</span> { <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*, <span class="pl-k">i8</span> } <span class="pl-c1">%77</span>, <span class="pl-k">i8</span> <span class="pl-c1">%tindex_phi8</span>, <span class="pl-c1">1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%79</span> = <span class="pl-k">and</span> <span class="pl-k">i8</span> <span class="pl-c1">%tindex_phi8</span>, <span class="pl-c1">127</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%80</span> = <span class="pl-k">select</span> <span class="pl-k">i1</span> <span class="pl-c1">%75</span>, <span class="pl-k">i8</span> <span class="pl-c1">0</span>, <span class="pl-k">i8</span> <span class="pl-c1">%79</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-c1">%81</span> = <span class="pl-k">bitcast</span> [<span class="pl-c1">8</span> x <span class="pl-k">i8</span>]* <span class="pl-c1">%0</span> <span class="pl-k">to</span> <span class="pl-k">i8*</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-k">switch</span> <span class="pl-k">i8</span> <span class="pl-c1">%80</span>, <span class="pl-k">label</span> <span class="pl-c1">%union_move_skip13</span> [
    <span class="pl-k">i8</span> <span class="pl-c1">1</span>, <span class="pl-k">label</span> <span class="pl-c1">%union_move15</span>
    <span class="pl-k">i8</span> <span class="pl-c1">2</span>, <span class="pl-k">label</span> <span class="pl-c1">%union_move16</span>
  ], <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>

union_move_skip13:                                <span class="pl-c">; preds = %ok12</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%post_union_move14</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>

post_union_move14:                                <span class="pl-c">; preds = %union_move_skip13, %union_move16, %union_move15</span>
  <span class="pl-k">ret</span> { <span class="pl-c1">%jl_value_t</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">10</span>)*, <span class="pl-k">i8</span> } <span class="pl-c1">%78</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>

union_move15:                                     <span class="pl-c">; preds = %ok12</span>
  <span class="pl-c1">%82</span> = <span class="pl-k">load</span> <span class="pl-k">i8</span>, <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%58</span>, <span class="pl-k">align</span> <span class="pl-c1">1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!18</span>
  <span class="pl-k">store</span> <span class="pl-k">i8</span> <span class="pl-c1">%82</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%81</span>, <span class="pl-k">align</span> <span class="pl-c1">1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%post_union_move14</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>

union_move16:                                     <span class="pl-c">; preds = %ok12</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.memcpy.p0i8.p11i8.i64</span>(<span class="pl-k">i8*</span> <span class="pl-c1">%81</span>, <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%58</span>, <span class="pl-k">i64</span> <span class="pl-c1">8</span>, <span class="pl-k">i32</span> <span class="pl-c1">8</span>, <span class="pl-k">i1</span> <span class="pl-k">false</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%post_union_move14</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!28</span>

union_move_skip17:                                <span class="pl-c">; preds = %post_union_move</span>
<span class="pl-c">;  @ REPL[1]:3 within `f'</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%post_union_move18</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>

post_union_move18:                                <span class="pl-c">; preds = %union_move_skip17, %union_move20, %union_move19</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%L19</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>

union_move19:                                     <span class="pl-c">; preds = %post_union_move</span>
  <span class="pl-c1">%83</span> = <span class="pl-k">load</span> <span class="pl-k">i8</span>, <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%35</span>, <span class="pl-k">align</span> <span class="pl-c1">1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!18</span>
  <span class="pl-k">store</span> <span class="pl-k">i8</span> <span class="pl-c1">%83</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%72</span>, <span class="pl-k">align</span> <span class="pl-c1">1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!29</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%post_union_move18</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>

union_move20:                                     <span class="pl-c">; preds = %post_union_move</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.memcpy.p0i8.p11i8.i64</span>(<span class="pl-k">i8*</span> <span class="pl-c1">%72</span>, <span class="pl-k">i8</span> <span class="pl-k">addrspace</span>(<span class="pl-c1">11</span>)* <span class="pl-c1">%35</span>, <span class="pl-k">i64</span> <span class="pl-c1">8</span>, <span class="pl-k">i32</span> <span class="pl-c1">8</span>, <span class="pl-k">i1</span> <span class="pl-k">false</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%post_union_move18</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>

union_move_skip21:                                <span class="pl-c">; preds = %L15</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.trap</span>(), <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">unreachable</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>

post_union_move22:                                <span class="pl-c">; preds = %union_move24, %union_move23</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%L19</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>

union_move23:                                     <span class="pl-c">; preds = %L15</span>
  <span class="pl-c1">%84</span> = <span class="pl-k">load</span> <span class="pl-k">i8</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%47</span>, <span class="pl-k">align</span> <span class="pl-c1">1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!18</span>
  <span class="pl-k">store</span> <span class="pl-k">i8</span> <span class="pl-c1">%84</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%48</span>, <span class="pl-k">align</span> <span class="pl-c1">1</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>, <span class="pl-v">!tbaa</span> <span class="pl-v">!29</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%post_union_move22</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>

union_move24:                                     <span class="pl-c">; preds = %L15</span>
  <span class="pl-k">call</span> <span class="pl-k">void</span> <span class="pl-c1">@llvm.memcpy.p0i8.p0i8.i64</span>(<span class="pl-k">i8*</span> <span class="pl-c1">%48</span>, <span class="pl-k">i8*</span> <span class="pl-c1">%47</span>, <span class="pl-k">i64</span> <span class="pl-c1">8</span>, <span class="pl-k">i32</span> <span class="pl-c1">8</span>, <span class="pl-k">i1</span> <span class="pl-k">false</span>), <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
  <span class="pl-k">br</span> <span class="pl-k">label</span> <span class="pl-c1">%post_union_move22</span>, <span class="pl-v">!dbg</span> <span class="pl-v">!23</span>
}</pre></div>