
; function: $figure-1a

; start LHS (in $figure-1a)
%0:i64 = var
%1:i64 = var
%2 = eq %0, %1
infer %2


; start LHS (in $figure-1a)
%0:i64 = var
%1:i64 = var
%2 = ne %0, %1
infer %2


; start LHS (in $figure-1a)
%0:i64 = var
%1:i64 = var
%2 = eq %0, %1
%3:i32 = zext %2
%4:i64 = var
%5 = ne %0, %4
%6:i32 = zext %5
%7 = and %3, %6
infer %7


; function: $figure-1b

; start LHS (in $figure-1b)
%0:i64 = var
%1:i64 = var
%2 = slt %0, %1
infer %2


; start LHS (in $figure-1b)
%0:i64 = var
%1:i64 = var
%2 = eq %0, %1
%3:i64 = var
%4 = slt %1, %3
pc %4 1:i1
infer %2


; start LHS (in $figure-1b)
%0:i64 = var
%1:i64 = var
%2 = ne %0, %1
%3:i64 = var
%4 = slt %3, %1
pc %4 1:i1
infer %2


; start LHS (in $figure-1b)
%0:i64 = var
%1:i64 = var
%2 = eq %0, %1
%3:i32 = zext %2
%4:i64 = var
%5 = ne %0, %4
%6:i32 = zext %5
%7 = and %3, %6
%8 = slt %1, %4
pc %8 1:i1
infer %7


; function: $figure-3-if

; start LHS (in $figure-3-if)
%0:i32 = var
%1 = and %0, 1:i32
infer %1


; start LHS (in $figure-3-if)
%0:i32 = var
%1 = add %0, 1:i32
%2 = and %0, 1:i32
%3 = ne %2, 0:i32
pc %3 1:i1
infer %1


; start LHS (in $figure-3-if)
%0:i32 = var
%1 = add %0, 2:i32
%2 = and %0, 1:i32
%3 = eq %2, 0:i32
pc %3 1:i1
infer %1


; start LHS (in $figure-3-if)
%0 = block 2
%1:i32 = var
%2 = add %1, 1:i32
%3 = add %1, 2:i32
%4 = phi %0, %2, %3
%5 = and %4, 1:i32
%6 = and %1, 1:i32
%7 = ne %6, 0:i32
blockpc %0 0 %7 1:i1
%8 = eq %6, 0:i32
blockpc %0 1 %8 1:i1
infer %5


; function: $send-i32

; function: $flips

; start LHS (in $flips)
%0 = sle 0:i32, 0:i32
infer %0


; start LHS (in $flips)
%0 = sle 0:i32, 0:i32
%1:i32 = zext %0
%2 = ule 0:i32, %1
infer %2


; start LHS (in $flips)
%0 = sle 0:i32, 0:i32
%1:i32 = zext %0
%2 = ule 0:i32, %1
%3:i32 = zext %2
%4 = slt 0:i32, %3
infer %4


; start LHS (in $flips)
%0 = sle 0:i32, 0:i32
%1:i32 = zext %0
%2 = ule 0:i32, %1
%3:i32 = zext %2
%4 = slt 0:i32, %3
%5:i32 = zext %4
%6 = ult 0:i32, %5
infer %6


; start LHS (in $flips)
%0 = sle 0:i64, 0:i64
infer %0


; start LHS (in $flips)
%0 = ule 0:i64, 0:i64
infer %0


; start LHS (in $flips)
%0 = slt 0:i64, 0:i64
infer %0


; start LHS (in $flips)
%0 = ult 0:i64, 0:i64
infer %0


; function: $various-conditions-1

; start LHS (in $various-conditions-1)
%0:i32 = var
%1 = add %0, 1:i32
%2 = ne %0, 0:i32
pc %2 1:i1
infer %1


; function: $various-conditions-2

; start LHS (in $various-conditions-2)
%0:i32 = var
%1 = slt %0, 0:i32
infer %1


; start LHS (in $various-conditions-2)
%0:i32 = var
%1 = sub %0, 2:i32
%2 = slt %0, 0:i32
pc %2 1:i1
infer %1


; function: $various-conditions-3

; start LHS (in $various-conditions-3)
%0:i32 = var
%1 = sub %0, 4:i32
%2:i32 = var
%3 = ne %2, 0:i32
pc %3 1:i1
infer %1


; function: $various-conditions-4

; function: $unaries

; start LHS (in $unaries)
%0:i32 = var
%1 = eq %0, 0:i32
infer %1


; start LHS (in $unaries)
%0:i32 = var
%1 = cttz %0
%2:i32 = var
%3 = eq %2, 0:i32
pc %3 1:i1
infer %1


; start LHS (in $unaries)
%0:i32 = var
%1 = ctlz %0
%2 = eq %0, 0:i32
pc %2 1:i1
infer %1


; start LHS (in $unaries)
%0:i32 = var
%1 = ctpop %0
%2:i32 = var
%3 = eq %2, 0:i32
pc %3 1:i1
infer %1


; start LHS (in $unaries)
%0:i32 = var
%1 = ctlz %0
%2:i32 = var
%3 = ctpop %2
%4 = sub %1, %3
%5 = eq %0, 0:i32
pc %5 1:i1
infer %4


; start LHS (in $unaries)
%0:i32 = var
%1 = cttz %0
%2:i32 = var
%3 = ctlz %2
%4 = ctpop %0
%5 = sub %3, %4
%6 = add %1, %5
%7 = eq %2, 0:i32
pc %7 1:i1
infer %6


; function: $unary-condition

; start LHS (in $unary-condition)
%0:i32 = var
%1 = ult 1:i32, %0
infer %1


; start LHS (in $unary-condition)
%0:i32 = var
%1 = ult 1:i32, %0
%2:i32 = zext %1
%3 = cttz %2
infer %3


; start LHS (in $unary-condition)
%0:i32 = var
%1 = add %0, 2:i32
%2 = ult 1:i32, %0
%3:i32 = zext %2
%4 = cttz %3
%5 = ne %4, 0:i32
pc %5 1:i1
infer %1


; function: $unary-condition-2

; start LHS (in $unary-condition-2)
%0:i32 = var
%1 = ult 1:i32, %0
infer %1


; start LHS (in $unary-condition-2)
%0:i32 = var
%1 = ult 1:i32, %0
%2:i32 = zext %1
%3 = eq %2, 0:i32
infer %3


; start LHS (in $unary-condition-2)
%0:i32 = var
%1 = add %0, 2:i32
%2 = ult 1:i32, %0
%3:i32 = zext %2
%4 = eq %3, 0:i32
pc %4 1:i1
infer %1


; function: $if-else-cond

; start LHS (in $if-else-cond)
%0:i32 = var
%1 = slt %0, 1:i32
infer %1


; start LHS (in $if-else-cond)
%0:i32 = var
%1 = add %0, 1:i32
%2 = slt %0, 1:i32
pc %2 1:i1
infer %1


; start LHS (in $if-else-cond)
%0:i32 = var
%1 = add %0, 2:i32
%2 = slt %0, 1:i32
%3:i32 = zext %2
%4 = eq %3, 0:i32
pc %4 1:i1
infer %1


; start LHS (in $if-else-cond)
%0 = block 2
%1:i32 = var
%2 = add %1, 1:i32
%3 = add %1, 2:i32
%4 = phi %0, %2, %3
%5 = and %4, 1:i32
%6 = slt %1, 1:i32
blockpc %0 0 %6 1:i1
%7:i32 = zext %6
%8 = eq %7, 0:i32
blockpc %0 1 %8 1:i1
infer %5


; function: $trivial-ret

; start LHS (in $trivial-ret)
%0 = add 0:i32, 1:i32
infer %0


; function: $trivial-const

; function: $trivial-const-block

; function: $bad-phi-value

; function: $bad-phi-value-2

; function: $select

; start LHS (in $select)
%0 = ne 3:i32, 0:i32
infer %0


; start LHS (in $select)
%0 = ne 3:i32, 0:i32
%1 = select %0, 1:i32, 2:i32
infer %1


; function: $select-2

; start LHS (in $select-2)
%0:i32 = var
%1:i32 = var
%2 = add %0, %1
infer %2


; start LHS (in $select-2)
%0:i32 = var
%1 = add %0, 1:i32
infer %1


; start LHS (in $select-2)
%0:i32 = var
%1 = add 2:i32, %0
infer %1


; start LHS (in $select-2)
%0:i32 = var
%1 = add 2:i32, %0
%2 = ne %1, 0:i32
infer %2


; start LHS (in $select-2)
%0:i32 = var
%1 = add 2:i32, %0
%2 = ne %1, 0:i32
%3:i32 = var
%4 = add %3, %0
%5 = add %3, 1:i32
%6 = select %2, %4, %5
infer %6


; function: $block-phi-1

; start LHS (in $block-phi-1)
%0:i32 = var
%1 = add %0, 1:i32
infer %1


; start LHS (in $block-phi-1)
%0:i32 = var
%1 = add %0, 1:i32 (hasExternalUses)
%2 = add %1, 2:i32
infer %2


; start LHS (in $block-phi-1)
%0 = block 2
%1:i32 = var
%2 = add %1, 1:i32
%3 = add %2, 2:i32
%4 = phi %0, %2, %3
%5 = add %4, 3:i32
infer %5


; function: $block-phi-2

; start LHS (in $block-phi-2)
%0 = block 2
%1 = phi %0, 1:i32, 2:i32
%2 = add %1, 3:i32
infer %2


; function: $zero_init-phi-bad_type

; function: $phi-bad-type

; function: $phi-one-side-i1

; start LHS (in $phi-one-side-i1)
%0:i32 = var
%1:i32 = var
%2 = sle %0, %1
infer %2


; start LHS (in $phi-one-side-i1)
%0:i32 = var
%1:i32 = var
%2 = eq %0, %1
%3 = sle %0, %1
pc %3 1:i1
infer %2


; start LHS (in $phi-one-side-i1)
%0:i32 = var
%1:i32 = var
%2 = add %0, %1
%3 = sle %0, %1
%4:i32 = zext %3
%5 = eq %4, 0:i32
pc %5 1:i1
infer %2


; function: $call

; start LHS (in $call)
%0:i32 = var
%1:i32 = var
%2 = add %0, %1
infer %2


; start LHS (in $call)
%0:i32 = var
%1 = add 10:i32, %0
infer %1


; start LHS (in $call)
%0:i32 = var
%1:i32 = var
%2 = add %0, %1
%3:i32 = var
%4 = add 10:i32, %3
%5 = mul %2, %4
infer %5


; function: $in-unreachable-1

; function: $in-unreachable-2

; function: $in-unreachable-3

; function: $in-unreachable-4

; function: $in-unreachable-br_if

; function: $in-unreachable-big

; function: $in-unreachable-operations

; function: $merge-with-one-less

; function: $deep

; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
infer %1


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
infer %2


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
infer %3


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
infer %4


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
%5 = xor %4, 1234:i32
infer %5


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
%5 = xor %4, 1234:i32
%6 = mul %5, 1234:i32
infer %6


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
%5 = xor %4, 1234:i32
%6 = mul %5, 1234:i32
%7 = xor %6, 1234:i32
infer %7


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
%5 = xor %4, 1234:i32
%6 = mul %5, 1234:i32
%7 = xor %6, 1234:i32
%8 = mul %7, 1234:i32
infer %8


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
%5 = xor %4, 1234:i32
%6 = mul %5, 1234:i32
%7 = xor %6, 1234:i32
%8 = mul %7, 1234:i32
%9 = xor %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = mul %0, 1234:i32
%2 = xor %1, 1234:i32
%3 = mul %2, 1234:i32
%4 = xor %3, 1234:i32
%5 = mul %4, 1234:i32
%6 = xor %5, 1234:i32
%7 = mul %6, 1234:i32
%8 = xor %7, 1234:i32
%9 = mul %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
%5 = xor %4, 1234:i32
%6 = mul %5, 1234:i32
%7 = xor %6, 1234:i32
%8 = mul %7, 1234:i32
%9 = xor %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = mul %0, 1234:i32
%2 = xor %1, 1234:i32
%3 = mul %2, 1234:i32
%4 = xor %3, 1234:i32
%5 = mul %4, 1234:i32
%6 = xor %5, 1234:i32
%7 = mul %6, 1234:i32
%8 = xor %7, 1234:i32
%9 = mul %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
%5 = xor %4, 1234:i32
%6 = mul %5, 1234:i32
%7 = xor %6, 1234:i32
%8 = mul %7, 1234:i32
%9 = xor %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = mul %0, 1234:i32
%2 = xor %1, 1234:i32
%3 = mul %2, 1234:i32
%4 = xor %3, 1234:i32
%5 = mul %4, 1234:i32
%6 = xor %5, 1234:i32
%7 = mul %6, 1234:i32
%8 = xor %7, 1234:i32
%9 = mul %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
%5 = xor %4, 1234:i32
%6 = mul %5, 1234:i32
%7 = xor %6, 1234:i32
%8 = mul %7, 1234:i32
%9 = xor %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = mul %0, 1234:i32
%2 = xor %1, 1234:i32
%3 = mul %2, 1234:i32
%4 = xor %3, 1234:i32
%5 = mul %4, 1234:i32
%6 = xor %5, 1234:i32
%7 = mul %6, 1234:i32
%8 = xor %7, 1234:i32
%9 = mul %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
%5 = xor %4, 1234:i32
%6 = mul %5, 1234:i32
%7 = xor %6, 1234:i32
%8 = mul %7, 1234:i32
%9 = xor %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = mul %0, 1234:i32
%2 = xor %1, 1234:i32
%3 = mul %2, 1234:i32
%4 = xor %3, 1234:i32
%5 = mul %4, 1234:i32
%6 = xor %5, 1234:i32
%7 = mul %6, 1234:i32
%8 = xor %7, 1234:i32
%9 = mul %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
%5 = xor %4, 1234:i32
%6 = mul %5, 1234:i32
%7 = xor %6, 1234:i32
%8 = mul %7, 1234:i32
%9 = xor %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = mul %0, 1234:i32
%2 = xor %1, 1234:i32
%3 = mul %2, 1234:i32
%4 = xor %3, 1234:i32
%5 = mul %4, 1234:i32
%6 = xor %5, 1234:i32
%7 = mul %6, 1234:i32
%8 = xor %7, 1234:i32
%9 = mul %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
%5 = xor %4, 1234:i32
%6 = mul %5, 1234:i32
%7 = xor %6, 1234:i32
%8 = mul %7, 1234:i32
%9 = xor %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = mul %0, 1234:i32
%2 = xor %1, 1234:i32
%3 = mul %2, 1234:i32
%4 = xor %3, 1234:i32
%5 = mul %4, 1234:i32
%6 = xor %5, 1234:i32
%7 = mul %6, 1234:i32
%8 = xor %7, 1234:i32
%9 = mul %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
%5 = xor %4, 1234:i32
%6 = mul %5, 1234:i32
%7 = xor %6, 1234:i32
%8 = mul %7, 1234:i32
%9 = xor %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = mul %0, 1234:i32
%2 = xor %1, 1234:i32
%3 = mul %2, 1234:i32
%4 = xor %3, 1234:i32
%5 = mul %4, 1234:i32
%6 = xor %5, 1234:i32
%7 = mul %6, 1234:i32
%8 = xor %7, 1234:i32
%9 = mul %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = xor %0, 1234:i32
%2 = mul %1, 1234:i32
%3 = xor %2, 1234:i32
%4 = mul %3, 1234:i32
%5 = xor %4, 1234:i32
%6 = mul %5, 1234:i32
%7 = xor %6, 1234:i32
%8 = mul %7, 1234:i32
%9 = xor %8, 1234:i32
infer %9


; start LHS (in $deep)
%0:i32 = var
%1 = mul %0, 1234:i32
%2 = xor %1, 1234:i32
%3 = mul %2, 1234:i32
%4 = xor %3, 1234:i32
%5 = mul %4, 1234:i32
%6 = xor %5, 1234:i32
%7 = mul %6, 1234:i32
%8 = xor %7, 1234:i32
%9 = mul %8, 1234:i32
infer %9


; function: $two-pcs

; start LHS (in $two-pcs)
%0:i64 = var
%1:i64 = var
%2 = slt %0, %1
infer %2


; start LHS (in $two-pcs)
%0:i64 = var
%1 = eq %0, 0:i64
%2:i64 = var
%3 = slt %0, %2
pc %3 1:i1
infer %1


; start LHS (in $two-pcs)
%0:i64 = var
%1:i64 = var
%2 = add %0, %1
%3 = eq %0, 0:i64
%4 = slt %0, %1
pc %3 1:i1
pc %4 1:i1
infer %2


; start LHS (in $two-pcs)
%0:i64 = var
%1:i64 = var
%2 = sub %0, %1
%3 = eq %0, 0:i64
%4:i32 = zext %3
%5 = eq %4, 0:i32
%6 = slt %0, %1
pc %5 1:i1
pc %6 1:i1
infer %2


; start LHS (in $two-pcs)
%0:i64 = var
%1 = eq %0, 0:i64
%2:i64 = var
%3 = slt %2, %0
%4:i32 = zext %3
%5 = eq %4, 0:i32
pc %5 1:i1
infer %1


; start LHS (in $two-pcs)
%0:i64 = var
%1:i64 = var
%2 = mul %0, %1
%3 = eq %1, 0:i64
%4 = slt %0, %1
%5:i32 = zext %4
%6 = eq %5, 0:i32
pc %3 1:i1
pc %6 1:i1
infer %2


; start LHS (in $two-pcs)
%0:i64 = var
%1:i64 = var
%2 = sdiv %0, %1
%3 = eq %1, 0:i64
%4:i32 = zext %3
%5 = eq %4, 0:i32
%6 = slt %0, %1
%7:i32 = zext %6
%8 = eq %7, 0:i32
pc %5 1:i1
pc %8 1:i1
infer %2


; function: $loop-1

; start LHS (in $loop-1)
%0 = add 1:i32, 2:i32
infer %0


; function: $loop-2

; start LHS (in $loop-2)
%0 = add 1:i32, 3:i32
infer %0


; start LHS (in $loop-2)
%0 = add 2:i32, 4:i32
infer %0


; start LHS (in $loop-2)
%0 = add 1:i32, 3:i32
%1 = add 2:i32, 4:i32
%2 = add %0, %1
infer %2


; function: $loop-3

; start LHS (in $loop-3)
%0:i32 = var
%1 = add %0, 3:i32
infer %1


; start LHS (in $loop-3)
%0:i32 = var
%1 = add %0, 4:i32
infer %1


; start LHS (in $loop-3)
%0:i32 = var
%1 = add %0, 3:i32
%2:i32 = var
%3 = add %2, 4:i32 (hasExternalUses)
%4 = add %1, %3
infer %4


; function: $loop-4

; start LHS (in $loop-4)
%0:i32 = var
%1 = add %0, 3:i32
infer %1


; start LHS (in $loop-4)
%0:i32 = var
%1 = add %0, 3:i32
%2 = add %1, 2:i32
infer %2


; function: $loop-5

; start LHS (in $loop-5)
%0:i32 = var
%1 = add %0, 3:i32
infer %1


; start LHS (in $loop-5)
%0:i32 = var
%1 = add %0, 3:i32
%2 = add %1, 2:i32
infer %2


; function: $loop-6

; start LHS (in $loop-6)
%0:i32 = var
%1 = add %0, 3:i32
infer %1


; start LHS (in $loop-6)
%0:i32 = var
%1 = add %0, 3:i32
%2 = add %1, 2:i32
infer %2


; function: $loop-7

; start LHS (in $loop-7)
%0:i32 = var
%1 = add %0, 3:i32
infer %1


; start LHS (in $loop-7)
%0:i32 = var
%1 = add %0, 3:i32
%2 = add %1, 5:i32
infer %2


; function: $loop-8

; start LHS (in $loop-8)
%0 = add 1:i32, 4:i32
infer %0


; start LHS (in $loop-8)
%0:i32 = var
%1 = sub 1:i32, %0
infer %1


; start LHS (in $loop-8)
%0 = add 1:i32, 4:i32
%1:i32 = var
%2 = sub 1:i32, %1
%3 = mul %0, %2
infer %3


; function: $loop-9

; start LHS (in $loop-9)
%0:i32 = var
%1:i32 = var
%2 = add %0, %1
infer %2


; function: $loop-10

; start LHS (in $loop-10)
%0:i32 = var
%1:i32 = var
%2 = add %0, %1
infer %2


; function: $loop-multicond-1

; start LHS (in $loop-multicond-1)
%0 = ne 6:i32, 0:i32
infer %0


; start LHS (in $loop-multicond-1)
%0 = ne 6:i32, 0:i32
%1 = select %0, 4:i32, 5:i32
infer %1


; function: $loop-multicond-2

; start LHS (in $loop-multicond-2)
%0:i32 = var
%1 = add %0, 4:i32
infer %1


; start LHS (in $loop-multicond-2)
%0:i32 = var
%1 = add %0, 5:i32
infer %1


; start LHS (in $loop-multicond-2)
%0 = add 3:i32, 6:i32
infer %0


; start LHS (in $loop-multicond-2)
%0 = add 3:i32, 6:i32
%1 = ne %0, 0:i32
infer %1


; start LHS (in $loop-multicond-2)
%0 = add 3:i32, 6:i32
%1 = ne %0, 0:i32
%2:i32 = var
%3 = add %2, 4:i32
%4:i32 = var
%5 = add %4, 5:i32
%6 = select %1, %3, %5
infer %6


; function: $loop-block-1

; start LHS (in $loop-block-1)
%0:i32 = var
%1 = add %0, 4:i32
infer %1


; start LHS (in $loop-block-1)
%0:i32 = var
%1 = add %0, 5:i32
infer %1


; start LHS (in $loop-block-1)
%0:i32 = var
%1 = add %0, 6:i32
infer %1


; start LHS (in $loop-block-1)
%0:i32 = var
%1 = ne %0, 0:i32
infer %1


; start LHS (in $loop-block-1)
%0:i32 = var
%1 = ne %0, 0:i32
%2:i32 = var
%3 = add %2, 4:i32
%4 = block 2
%5:i32 = var
%6 = add %5, 5:i32
%7 = phi %4, %5, %6
%8 = select %1, %3, %7
infer %8


; function: $loop-block-2

; start LHS (in $loop-block-2)
%0:i32 = var
%1 = add %0, 4:i32
infer %1


; start LHS (in $loop-block-2)
%0:i32 = var
%1 = add %0, 5:i32
infer %1


; start LHS (in $loop-block-2)
%0:i32 = var
%1 = add %0, 6:i32
infer %1


; start LHS (in $loop-block-2)
%0:i32 = var
%1 = ne %0, 0:i32
infer %1


; start LHS (in $loop-block-2)
%0:i32 = var
%1 = ne %0, 0:i32
%2:i32 = var
%3 = add %2, 4:i32
%4 = block 2
%5:i32 = var
%6 = add %5, 5:i32
%7 = phi %4, %5, %6
%8 = select %1, %3, %7
infer %8


; function: $bad-phi-type

; function: $loop-unreachable

; function: $phi-value-turns-bad

; start LHS (in $phi-value-turns-bad)
%0:i32 = var
%1 = ctlz %0
%2 = eq %0, 0:i32
pc %2 1:i1
infer %1


; function: $multi-use

; start LHS (in $multi-use)
%0:i32 = var
%1 = add %0, 1:i32
infer %1


; start LHS (in $multi-use)
%0:i32 = var
%1 = add %0, 1:i32
%2 = add %1, %1
infer %2


; function: $multi-use-2

; start LHS (in $multi-use-2)
%0:i32 = var
%1 = add %0, 1:i32
infer %1


; start LHS (in $multi-use-2)
%0:i32 = var
%1 = add %0, 1:i32 (hasExternalUses)
%2 = mul %1, 2:i32
infer %2


; start LHS (in $multi-use-2)
%0:i32 = var
%1 = add %0, 1:i32
%2 = mul %1, 2:i32
%3 = sub %2, %1
infer %3


; function: $many-single-uses-with-param

; start LHS (in $many-single-uses-with-param)
%0:i32 = var
%1 = mul 10:i32, %0
infer %1


; start LHS (in $many-single-uses-with-param)
%0:i32 = var
%1 = cttz %0
infer %1


; start LHS (in $many-single-uses-with-param)
%0:i32 = var
%1 = cttz %0
%2 = sub %1, 20:i32
infer %2


; start LHS (in $many-single-uses-with-param)
%0:i32 = var
%1 = mul 10:i32, %0
%2 = cttz %0
%3 = sub %2, 20:i32
%4 = add %1, %3
infer %4


; start LHS (in $many-single-uses-with-param)
%0:i32 = var
%1 = mul 10:i32, %0
%2 = cttz %0
%3 = sub %2, 20:i32
%4 = add %1, %3
%5 = eq %4, 0:i32
infer %5


; function: $56

; start LHS (in $56)
%0:i32 = var
%1 = add %0, -7:i32
infer %1


; start LHS (in $56)
%0:i32 = var
%1 = add %0, -7:i32 (hasExternalUses)
%2 = eq %1, 0:i32
%3 = ne %1, 0:i32
pc %3 1:i1
infer %2


; start LHS (in $56)
%0:i32 = var
%1:i32 = var
%2 = add %1, -7:i32 (hasExternalUses)
%3 = ne %0, %2
%4 = ne %2, 0:i32
pc %4 1:i1
infer %3


; function: $multiple-uses-to-non-expression

; start LHS (in $multiple-uses-to-non-expression)
%0:i32 = var
%1 = add %0, 10:i32
infer %1


; start LHS (in $multiple-uses-to-non-expression)
%0:i32 = var
%1 = add %0, 10:i32 (hasExternalUses)
%2 = add %1, 20:i32
infer %2


; function: $nested-phi-forwarding

; start LHS (in $nested-phi-forwarding)
%0 = block 2
%1:i32 = var
%2 = block 2
%3 = block 2
%4 = phi %3, %1, 1:i32
%5 = phi %2, %1, %4
%6 = phi %0, %1, %5
%7 = or 1:i32, %6
infer %7


; function: $zext-numGets

; start LHS (in $zext-numGets)
%0:i32 = var
%1 = eq %0, 0:i32
infer %1


; start LHS (in $zext-numGets)
%0 = block 2
%1:i32 = var
%2 = eq %1, 0:i32
%3:i32 = zext %2
%4 = phi %0, 1:i32, %3
%5 = cttz %4
infer %5


; function: $zext-numGets-hasAnotherUse

; start LHS (in $zext-numGets-hasAnotherUse)
%0:i32 = var
%1 = eq %0, 0:i32
infer %1


; start LHS (in $zext-numGets-hasAnotherUse)
%0 = block 2
%1:i32 = var
%2 = eq %1, 0:i32
%3:i32 = zext %2
%4 = phi %0, 1:i32, %3
%5 = cttz %4
infer %5


; function: $flipped-needs-right-origin

; start LHS (in $flipped-needs-right-origin)
%0 = block 2
%1 = phi %0, 0:i32, 2:i32
%2 = add %1, 4:i32
infer %2


; start LHS (in $flipped-needs-right-origin)
%0 = block 2
%1 = phi %0, 0:i32, 2:i32
%2 = add %1, 4:i32
%3 = slt %2, 3:i32
infer %3


; function: $non-expr-nodes-may-have-multiple-uses-too-its-the-ORIGIN

; start LHS (in $non-expr-nodes-may-have-multiple-uses-too-its-the-ORIGIN)
%0:i32 = var
%1 = ult 1:i32, %0
infer %1


; start LHS (in $non-expr-nodes-may-have-multiple-uses-too-its-the-ORIGIN)
%0:i32 = var
%1 = ult 1:i32, %0 (hasExternalUses)
%2:i32 = zext %1
%3 = sub 4:i32, %2
infer %3


; function: $loop-of-set-connections

; start LHS (in $loop-of-set-connections)
%0 = add 0:i32, 1:i32
%1 = ne 0:i32, 0:i32
pc %1 1:i1
infer %0


; function: $conditions-in-conditions

; start LHS (in $conditions-in-conditions)
%0 = sub 0:i32, 1:i32
%1 = ne 0:i32, 0:i32
pc %1 1:i1
infer %0


; start LHS (in $conditions-in-conditions)
%0 = block 2
%1 = block 2
%2 = phi %1, 0:i32, 1:i32
%3 = phi %0, %2, 1:i32
%4 = add %3, 16:i32
%5 = ne 0:i32, 0:i32
blockpc %1 0 %5 1:i1
%6 = eq 0:i32, 0:i32
blockpc %1 1 %6 1:i1
%7 = sub 0:i32, 1:i32
%8 = phi %1, 1:i32, %7
%9 = ne %8, 0:i32
blockpc %0 0 %9 1:i1
%10 = eq %8, 0:i32
blockpc %0 1 %10 1:i1
infer %4

(module
 (type $0 (func (param i64 i64 i64) (result i32)))
 (type $1 (func (param i32) (result i32)))
 (type $2 (func (param i32)))
 (type $3 (func))
 (type $4 (func (param i32 i32)))
 (type $5 (func (result i32)))
 (type $6 (func (param i32 i32) (result i32)))
 (type $7 (func (result f64)))
 (type $8 (func (param i32 i32 i32 i32)))
 (type $9 (func (param i64 i64 i64) (result i64)))
 (type $10 (func (param i32 i32 i32) (result i32)))
 (type $11 (func (param i64 i64 i32 f32)))
 (type $12 (func (param i32 i32 i32 i32 i32) (result i32)))
 (memory $0 (shared 1 1))
 (export "replaced-print-internal" (func $56))
 (func $figure-1a (; 0 ;) (type $0) (param $a i64) (param $x i64) (param $y i64) (result i32)
  (local $i i32)
  (local $j i32)
  (local $r i32)
  (local $6 i64)
  (local $7 i64)
  (local $8 i32)
  (local $9 i64)
  (local $10 i64)
  (local $11 i32)
  (local $12 i32)
  (local $13 i32)
  (local $14 i32)
  (local $15 i32)
  (local $16 i32)
  (local $17 i32)
  (block
   (nop)
   (nop)
   (nop)
   (nop)
   (nop)
   (nop)
   (nop)
   (nop)
   (nop)
   (nop)
   (local.set $12
    (i64.eq
     (local.get $a)
     (local.get $x)
    )
   )
   (local.set $13
    (i64.ne
     (local.get $a)
     (local.get $y)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $15
    (i32.and
     (local.get $12)
     (local.get $13)
    )
   )
   (return
    (local.get $15)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $16)
  )
 )
 (func $figure-1b (; 1 ;) (type $0) (param $a i64) (param $x i64) (param $y i64) (result i32)
  (local $i i32)
  (local $j i32)
  (local $r i32)
  (local $6 i64)
  (local $7 i64)
  (local $8 i32)
  (local $9 i64)
  (local $10 i64)
  (local $11 i32)
  (local $12 i64)
  (local $13 i64)
  (local $14 i32)
  (local $15 i32)
  (local $16 i32)
  (local $17 i32)
  (local $18 i32)
  (block
   (nop)
   (nop)
   (local.set $8
    (i64.lt_s
     (local.get $x)
     (local.get $y)
    )
   )
   (if
    (local.get $8)
    (block
     (block $block
      (nop)
      (nop)
      (nop)
      (nop)
      (nop)
      (nop)
      (nop)
      (nop)
      (nop)
      (nop)
      (local.set $15
       (i64.eq
        (local.get $a)
        (local.get $x)
       )
      )
      (local.set $16
       (i64.ne
        (local.get $a)
        (local.get $y)
       )
      )
      (nop)
      (nop)
      (nop)
      (local.set $18
       (i32.and
        (local.get $15)
        (local.get $16)
       )
      )
      (return
       (local.get $18)
      )
      (unreachable)
     )
     (unreachable)
    )
    (block
     (unreachable)
     (unreachable)
    )
   )
  )
  (unreachable)
 )
 (func $figure-3-if (; 2 ;) (type $1) (param $x i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (block
   (block
    (nop)
    (local.set $2
     (i32.and
      (local.get $x)
      (i32.const 1)
     )
    )
    (if
     (local.get $2)
     (block
      (nop)
      (nop)
      (local.set $x
       (i32.add
        (local.get $x)
        (i32.const 1)
       )
      )
      (nop)
     )
     (block
      (nop)
      (nop)
      (local.set $x
       (i32.add
        (local.get $x)
        (i32.const 2)
       )
      )
      (nop)
     )
    )
   )
   (nop)
   (nop)
   (local.set $8
    (i32.and
     (local.get $x)
     (i32.const 1)
    )
   )
   (return
    (local.get $8)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $9)
  )
 )
 (func $send-i32 (; 3 ;) (type $2) (param $0 i32)
  (nop)
 )
 (func $flips (; 4 ;) (type $3)
  (local $x i32)
  (local $y i32)
  (local $z i64)
  (local $w i64)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (local $12 i32)
  (local $13 i32)
  (local $14 i32)
  (local $15 i32)
  (local $16 i64)
  (local $17 i64)
  (local $18 i32)
  (local $19 i64)
  (local $20 i64)
  (local $21 i32)
  (local $22 i64)
  (local $23 i64)
  (local $24 i32)
  (local $25 i64)
  (local $26 i64)
  (local $27 i32)
  (block
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.ge_s
     (local.get $x)
     (local.get $y)
    )
   )
   (nop)
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.ge_u
     (local.get $x)
     (local.get $y)
    )
   )
   (nop)
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.gt_s
     (local.get $x)
     (local.get $y)
    )
   )
   (nop)
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.gt_u
     (local.get $x)
     (local.get $y)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $18
    (i64.ge_s
     (local.get $z)
     (local.get $w)
    )
   )
   (call $send-i32
    (local.get $18)
   )
   (nop)
   (nop)
   (nop)
   (local.set $21
    (i64.ge_u
     (local.get $z)
     (local.get $w)
    )
   )
   (call $send-i32
    (local.get $21)
   )
   (nop)
   (nop)
   (nop)
   (local.set $24
    (i64.gt_s
     (local.get $z)
     (local.get $w)
    )
   )
   (call $send-i32
    (local.get $24)
   )
   (nop)
   (nop)
   (nop)
   (local.set $27
    (i64.gt_u
     (local.get $z)
     (local.get $w)
    )
   )
   (call $send-i32
    (local.get $27)
   )
   (nop)
  )
  (nop)
 )
 (func $various-conditions-1 (; 5 ;) (type $2) (param $x i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (block
   (nop)
   (if
    (local.get $x)
    (block
     (nop)
     (nop)
     (local.set $x
      (i32.add
       (local.get $x)
       (i32.const 1)
      )
     )
     (nop)
    )
   )
  )
  (nop)
 )
 (func $various-conditions-2 (; 6 ;) (type $2) (param $x i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (block
   (nop)
   (local.set $2
    (i32.lt_s
     (local.get $x)
     (i32.const 0)
    )
   )
   (if
    (local.get $2)
    (block
     (nop)
     (nop)
     (local.set $x
      (i32.sub
       (local.get $x)
       (i32.const 2)
      )
     )
     (nop)
    )
   )
  )
  (nop)
 )
 (func $various-conditions-3 (; 7 ;) (type $2) (param $x i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (block
   (local.set $1
    (i32.reinterpret_f32
     (f32.const 0)
    )
   )
   (if
    (local.get $1)
    (block
     (nop)
     (nop)
     (local.set $x
      (i32.sub
       (local.get $x)
       (i32.const 4)
      )
     )
     (nop)
    )
   )
  )
  (nop)
 )
 (func $various-conditions-4 (; 8 ;) (type $2) (param $x i32)
  (local $1 i32)
  (local $2 i32)
  (block
   (unreachable)
   (if
    (unreachable)
    (block
     (nop)
     (nop)
     (local.set $x
      (i32.add
       (local.get $x)
       (i32.const 3)
      )
     )
     (nop)
    )
   )
  )
  (unreachable)
 )
 (func $unaries (; 9 ;) (type $4) (param $x i32) (param $y i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (block
   (nop)
   (local.set $3
    (i32.eqz
     (local.get $x)
    )
   )
   (if
    (local.get $3)
    (block
     (nop)
     (local.set $5
      (i32.ctz
       (local.get $y)
      )
     )
     (nop)
     (local.set $7
      (i32.clz
       (local.get $x)
      )
     )
     (nop)
     (local.set $9
      (i32.popcnt
       (local.get $y)
      )
     )
     (local.set $10
      (i32.sub
       (local.get $7)
       (local.get $9)
      )
     )
     (nop)
     (local.set $x
      (i32.add
       (local.get $5)
       (local.get $10)
      )
     )
     (nop)
    )
   )
  )
  (nop)
 )
 (func $unary-condition (; 10 ;) (type $2) (param $x i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (block
   (nop)
   (local.set $2
    (i32.gt_u
     (local.get $x)
     (i32.const 1)
    )
   )
   (local.set $3
    (i32.ctz
     (local.get $2)
    )
   )
   (if
    (local.get $3)
    (block
     (nop)
     (nop)
     (local.set $x
      (i32.add
       (local.get $x)
       (i32.const 2)
      )
     )
     (nop)
    )
   )
  )
  (nop)
 )
 (func $unary-condition-2 (; 11 ;) (type $2) (param $x i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (block
   (nop)
   (local.set $2
    (i32.gt_u
     (local.get $x)
     (i32.const 1)
    )
   )
   (local.set $3
    (i32.eqz
     (local.get $2)
    )
   )
   (if
    (local.get $3)
    (block
     (nop)
     (nop)
     (local.set $x
      (i32.add
       (local.get $x)
       (i32.const 2)
      )
     )
     (nop)
    )
   )
  )
  (nop)
 )
 (func $if-else-cond (; 12 ;) (type $1) (param $x i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (block
   (block
    (nop)
    (local.set $2
     (i32.lt_s
      (local.get $x)
      (i32.const 1)
     )
    )
    (if
     (local.get $2)
     (block
      (nop)
      (nop)
      (local.set $x
       (i32.add
        (local.get $x)
        (i32.const 1)
       )
      )
      (nop)
     )
     (block
      (nop)
      (nop)
      (local.set $x
       (i32.add
        (local.get $x)
        (i32.const 2)
       )
      )
      (nop)
     )
    )
   )
   (nop)
   (nop)
   (local.set $8
    (i32.and
     (local.get $x)
     (i32.const 1)
    )
   )
   (return
    (local.get $8)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $9)
  )
 )
 (func $trivial-ret (; 13 ;) (type $5) (result i32)
  (local $0 i32)
  (local.set $0
   (i32.add
    (i32.const 0)
    (i32.const 1)
   )
  )
  (return
   (local.get $0)
  )
 )
 (func $trivial-const (; 14 ;) (type $5) (result i32)
  (return
   (i32.const 0)
  )
 )
 (func $trivial-const-block (; 15 ;) (type $5) (result i32)
  (local $0 i32)
  (local $1 i32)
  (block
   (nop)
   (nop)
  )
  (local.set $1
   (i32.const 0)
  )
  (return
   (local.get $1)
  )
 )
 (func $bad-phi-value (; 16 ;) (type $5) (result i32)
  (local $0 i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (block
   (if
    (i32.const 1)
    (block
     (nop)
     (local.set $1
      (i32.load
       (i32.const 0)
      )
     )
    )
    (local.set $1
     (i32.const 0)
    )
   )
   (nop)
   (if
    (local.get $1)
    (local.set $3
     (i32.const 0)
    )
    (local.set $3
     (i32.const 1)
    )
   )
  )
  (nop)
  (return
   (local.get $3)
  )
 )
 (func $bad-phi-value-2 (; 17 ;) (type $1) (param $x i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (block
   (block
    (if
     (i32.const 1)
     (block
      (nop)
      (local.set $2
       (i32.load
        (i32.const 0)
       )
      )
     )
     (local.set $2
      (i32.const 0)
     )
    )
    (nop)
    (if
     (local.get $2)
     (block
      (local.set $x
       (i32.const 1)
      )
      (nop)
     )
     (block
      (local.set $x
       (i32.const 2)
      )
      (nop)
     )
    )
   )
   (nop)
   (nop)
   (nop)
  )
  (nop)
  (return
   (local.get $x)
  )
 )
 (func $select (; 18 ;) (type $1) (param $x i32) (result i32)
  (local $1 i32)
  (local.set $1
   (select
    (i32.const 1)
    (i32.const 2)
    (i32.const 3)
   )
  )
  (return
   (local.get $1)
  )
  (unreachable)
 )
 (func $select-2 (; 19 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (nop)
  (nop)
  (local.set $4
   (i32.add
    (local.get $x)
    (local.get $y)
   )
  )
  (nop)
  (local.set $6
   (i32.add
    (local.get $x)
    (i32.const 1)
   )
  )
  (nop)
  (local.set $8
   (i32.add
    (i32.const 2)
    (local.get $y)
   )
  )
  (local.set $9
   (select
    (local.get $4)
    (local.get $6)
    (local.get $8)
   )
  )
  (return
   (local.get $9)
  )
  (unreachable)
 )
 (func $block-phi-1 (; 20 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (block
   (block $out
    (nop)
    (nop)
    (local.set $x
     (i32.add
      (local.get $x)
      (i32.const 1)
     )
    )
    (nop)
    (nop)
    (br_if $out
     (local.get $y)
    )
    (nop)
    (nop)
    (nop)
    (local.set $x
     (i32.add
      (local.get $x)
      (i32.const 2)
     )
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (nop)
  )
  (local.set $10
   (i32.add
    (local.get $x)
    (i32.const 3)
   )
  )
  (return
   (local.get $10)
  )
 )
 (func $block-phi-2 (; 21 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (block
   (block $out
    (local.set $x
     (i32.const 1)
    )
    (nop)
    (nop)
    (br_if $out
     (local.get $y)
    )
    (nop)
    (local.set $x
     (i32.const 2)
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (nop)
  )
  (local.set $6
   (i32.add
    (local.get $x)
    (i32.const 3)
   )
  )
  (return
   (local.get $6)
  )
 )
 (func $zero_init-phi-bad_type (; 22 ;) (type $7) (result f64)
  (local $x f64)
  (local $1 f64)
  (local $2 f64)
  (local $3 f64)
  (block
   (if
    (i32.const 0)
    (block
     (local.set $x
      (f64.const 1)
     )
     (nop)
    )
   )
   (nop)
   (nop)
   (nop)
  )
  (nop)
  (return
   (local.get $x)
  )
 )
 (func $phi-bad-type (; 23 ;) (type $7) (result f64)
  (local $0 f64)
  (local $1 f64)
  (local $2 f64)
  (local $3 f64)
  (block $label$1
   (if
    (i32.const 0)
    (local.set $0
     (f64.const 0)
    )
    (local.set $0
     (f64.const 1)
    )
   )
   (nop)
   (nop)
  )
  (nop)
  (return
   (local.get $0)
  )
 )
 (func $phi-one-side-i1 (; 24 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $i i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (local $12 i32)
  (local $13 i32)
  (local $14 i32)
  (block
   (block
    (nop)
    (nop)
    (local.set $5
     (i32.le_s
      (local.get $x)
      (local.get $y)
     )
    )
    (if
     (local.get $5)
     (block
      (nop)
      (nop)
      (nop)
      (local.set $i
       (i32.eq
        (local.get $x)
        (local.get $y)
       )
      )
      (nop)
     )
     (block
      (nop)
      (nop)
      (nop)
      (local.set $i
       (i32.add
        (local.get $x)
        (local.get $y)
       )
      )
      (nop)
     )
    )
   )
   (nop)
   (nop)
   (nop)
  )
  (nop)
  (return
   (local.get $i)
  )
 )
 (func $call (; 25 ;) (type $5) (result i32)
  (local $0 i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local.set $0
   (call $call)
  )
  (local.set $1
   (call $call)
  )
  (local.set $2
   (i32.add
    (local.get $0)
    (local.get $1)
   )
  )
  (local.set $3
   (call $call)
  )
  (local.set $4
   (i32.add
    (i32.const 10)
    (local.get $3)
   )
  )
  (local.set $5
   (i32.mul
    (local.get $2)
    (local.get $4)
   )
  )
  (return
   (local.get $5)
  )
  (unreachable)
 )
 (func $in-unreachable-1 (; 26 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (block
   (block
    (nop)
    (if
     (local.get $x)
     (block
      (block $block
       (local.set $x
        (i32.const 1)
       )
       (nop)
       (nop)
       (return
        (local.get $x)
       )
       (unreachable)
      )
      (unreachable)
     )
     (block
      (local.set $x
       (i32.const 2)
      )
      (nop)
     )
    )
   )
   (nop)
   (nop)
   (return
    (local.get $x)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $5)
  )
 )
 (func $in-unreachable-2 (; 27 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (block
   (block
    (nop)
    (if
     (local.get $x)
     (block
      (block $block
       (local.set $x
        (i32.const 1)
       )
       (nop)
       (unreachable)
       (unreachable)
      )
      (unreachable)
     )
     (block
      (local.set $x
       (i32.const 2)
      )
      (nop)
     )
    )
   )
   (nop)
   (nop)
   (return
    (local.get $x)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $4)
  )
 )
 (func $in-unreachable-3 (; 28 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (block
   (block $out
    (block
     (nop)
     (if
      (local.get $x)
      (block
       (block $block
        (local.set $x
         (i32.const 1)
        )
        (nop)
        (br $out)
        (unreachable)
       )
       (unreachable)
      )
      (block
       (local.set $x
        (i32.const 2)
       )
       (nop)
      )
     )
    )
    (nop)
    (nop)
    (return
     (local.get $x)
    )
    (unreachable)
   )
   (nop)
   (nop)
   (return
    (local.get $x)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $5)
  )
 )
 (func $in-unreachable-4 (; 29 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (block
   (block $out
    (block
     (nop)
     (if
      (local.get $x)
      (block
       (block $block
        (local.set $x
         (i32.const 1)
        )
        (nop)
        (br_table $out $out $out
         (i32.const 1)
        )
        (unreachable)
       )
       (unreachable)
      )
      (block
       (local.set $x
        (i32.const 2)
       )
       (nop)
      )
     )
    )
    (nop)
    (nop)
    (return
     (local.get $x)
    )
    (unreachable)
   )
   (nop)
   (nop)
   (return
    (local.get $x)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $5)
  )
 )
 (func $in-unreachable-br_if (; 30 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (block
   (block $out
    (block
     (nop)
     (if
      (local.get $x)
      (block
       (block $block
        (local.set $x
         (i32.const 1)
        )
        (nop)
        (nop)
        (br_if $out
         (local.get $x)
        )
        (nop)
       )
       (nop)
      )
      (block
       (local.set $x
        (i32.const 2)
       )
       (nop)
      )
     )
    )
    (nop)
    (nop)
    (return
     (local.get $x)
    )
    (unreachable)
   )
   (nop)
   (nop)
   (return
    (local.get $x)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $6)
  )
 )
 (func $in-unreachable-big (; 31 ;) (type $8) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (block
   (block $label$1
    (block $label$2
     (block $label$3
      (block
       (nop)
       (if
        (local.get $2)
        (block
         (block
          (nop)
          (if
           (local.get $0)
           (block
            (block $block
             (local.set $1
              (i32.const -8531)
             )
             (nop)
             (br $label$3)
             (unreachable)
            )
            (unreachable)
           )
           (block
            (block $block3
             (local.set $1
              (i32.const -8531)
             )
             (nop)
             (br $label$1)
             (unreachable)
            )
            (unreachable)
           )
          )
         )
         (unreachable)
        )
       )
      )
      (nop)
      (br $label$2)
      (unreachable)
     )
     (nop)
     (local.set $6
      (i32.load
       (i32.const 0)
      )
     )
     (drop
      (local.get $6)
     )
     (nop)
     (br $label$1)
     (unreachable)
    )
    (nop)
    (nop)
    (i32.store16
     (i32.const 1)
     (local.get $1)
    )
    (nop)
    (unreachable)
    (unreachable)
   )
   (nop)
   (i32.store16
    (i32.const 0)
    (i32.const -8531)
   )
   (nop)
  )
  (nop)
 )
 (func $in-unreachable-operations (; 32 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (block $block
   (unreachable)
   (unreachable)
   (block
    (nop)
    (if
     (local.get $x)
     (block
      (local.set $x
       (i32.const 1)
      )
      (nop)
     )
     (block
      (local.set $x
       (i32.const 2)
      )
      (nop)
     )
    )
   )
   (nop)
   (nop)
   (return
    (local.get $x)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $merge-with-one-less (; 33 ;) (type $1) (param $var$0 i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (block
   (block $label$1
    (block $label$2
     (block $label$3
      (block $label$4
       (block $label$5
        (local.set $1
         (i32.load
          (i32.const 1)
         )
        )
        (br_table $label$5 $label$4 $label$3 $label$2
         (local.get $1)
        )
        (unreachable)
       )
       (nop)
       (unreachable)
       (unreachable)
      )
      (nop)
      (br $label$1)
      (unreachable)
     )
     (nop)
     (local.set $var$0
      (i32.const 8)
     )
     (nop)
     (local.set $3
      (i32.load
       (local.get $var$0)
      )
     )
     (f64.store
      (local.get $3)
      (f64.const 0)
     )
     (nop)
     (br $label$1)
     (unreachable)
    )
    (nop)
    (unreachable)
    (unreachable)
   )
   (nop)
   (nop)
   (i32.store
    (local.get $var$0)
    (i32.const 16)
   )
   (nop)
   (nop)
  )
  (local.set $6
   (i32.const 1)
  )
  (return
   (local.get $6)
  )
 )
 (func $deep (; 34 ;) (type $1) (param $x i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (local $12 i32)
  (local $13 i32)
  (local $14 i32)
  (local $15 i32)
  (local $16 i32)
  (local $17 i32)
  (local $18 i32)
  (local $19 i32)
  (local $20 i32)
  (local $21 i32)
  (local $22 i32)
  (local $23 i32)
  (local $24 i32)
  (local $25 i32)
  (local $26 i32)
  (local $27 i32)
  (local $28 i32)
  (local $29 i32)
  (local $30 i32)
  (local $31 i32)
  (local $32 i32)
  (local $33 i32)
  (local $34 i32)
  (local $35 i32)
  (local $36 i32)
  (local $37 i32)
  (local $38 i32)
  (local $39 i32)
  (local $40 i32)
  (local $41 i32)
  (local $42 i32)
  (local $43 i32)
  (local $44 i32)
  (local $45 i32)
  (local $46 i32)
  (local $47 i32)
  (local $48 i32)
  (local $49 i32)
  (local $50 i32)
  (local $51 i32)
  (local $52 i32)
  (local $53 i32)
  (local $54 i32)
  (local $55 i32)
  (block
   (nop)
   (nop)
   (local.set $x
    (i32.xor
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.xor
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.xor
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.xor
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.xor
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.xor
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.xor
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.xor
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.xor
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.xor
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.xor
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.xor
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.xor
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $x)
     (i32.const 1234)
    )
   )
   (nop)
   (nop)
   (nop)
  )
  (nop)
  (return
   (local.get $x)
  )
 )
 (func $two-pcs (; 35 ;) (type $9) (param $x i64) (param $y i64) (param $t i64) (result i64)
  (local $3 i64)
  (local $4 i64)
  (local $5 i32)
  (local $6 i64)
  (local $7 i32)
  (local $8 i64)
  (local $9 i64)
  (local $10 i64)
  (local $11 i64)
  (local $12 i64)
  (local $13 i64)
  (local $14 i64)
  (local $15 i32)
  (local $16 i64)
  (local $17 i64)
  (local $18 i64)
  (local $19 i64)
  (local $20 i64)
  (local $21 i64)
  (local $22 i64)
  (local $23 i64)
  (local $24 i64)
  (block
   (block
    (nop)
    (nop)
    (local.set $5
     (i64.lt_s
      (local.get $x)
      (local.get $y)
     )
    )
    (if
     (local.get $5)
     (block
      (block
       (nop)
       (local.set $7
        (i64.eqz
         (local.get $x)
        )
       )
       (if
        (local.get $7)
        (block
         (nop)
         (nop)
         (nop)
         (local.set $t
          (i64.add
           (local.get $x)
           (local.get $y)
          )
         )
         (nop)
        )
        (block
         (nop)
         (nop)
         (nop)
         (local.set $t
          (i64.sub
           (local.get $x)
           (local.get $y)
          )
         )
         (nop)
        )
       )
      )
      (nop)
     )
     (block
      (block
       (nop)
       (local.set $15
        (i64.eqz
         (local.get $y)
        )
       )
       (if
        (local.get $15)
        (block
         (nop)
         (nop)
         (nop)
         (local.set $t
          (i64.mul
           (local.get $x)
           (local.get $y)
          )
         )
         (nop)
        )
        (block
         (nop)
         (nop)
         (nop)
         (local.set $t
          (i64.div_s
           (local.get $x)
           (local.get $y)
          )
         )
         (nop)
        )
       )
      )
      (nop)
     )
    )
   )
   (nop)
   (nop)
   (return
    (local.get $t)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $23)
  )
 )
 (func $loop-1 (; 36 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 2)
   )
   (nop)
   (loop $loopy
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (local.set $4
    (i32.add
     (local.get $x)
     (local.get $y)
    )
   )
   (return
    (local.get $4)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $5)
  )
 )
 (func $loop-2 (; 37 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 2)
   )
   (nop)
   (loop $loopy
    (block
     (nop)
     (nop)
     (local.set $x
      (i32.add
       (local.get $x)
       (i32.const 3)
      )
     )
     (nop)
     (nop)
     (nop)
     (local.set $y
      (i32.add
       (local.get $y)
       (i32.const 4)
      )
     )
     (nop)
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (local.set $8
    (i32.add
     (local.get $x)
     (local.get $y)
    )
   )
   (return
    (local.get $8)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $9)
  )
 )
 (func $loop-3 (; 38 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 2)
   )
   (nop)
   (loop $loopy
    (block
     (nop)
     (nop)
     (local.set $x
      (i32.add
       (local.get $x)
       (i32.const 3)
      )
     )
     (nop)
     (nop)
     (nop)
     (local.set $y
      (i32.add
       (local.get $y)
       (i32.const 4)
      )
     )
     (nop)
     (nop)
     (br_if $loopy
      (local.get $y)
     )
     (nop)
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (local.set $9
    (i32.add
     (local.get $x)
     (local.get $y)
    )
   )
   (return
    (local.get $9)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $10)
  )
 )
 (func $loop-4 (; 39 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 2)
   )
   (nop)
   (loop $loopy
    (block
     (nop)
     (nop)
     (local.set $x
      (i32.add
       (local.get $x)
       (i32.const 3)
      )
     )
     (nop)
     (nop)
     (br_if $loopy
      (local.get $y)
     )
     (nop)
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (local.set $7
    (i32.add
     (local.get $x)
     (local.get $y)
    )
   )
   (return
    (local.get $7)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $8)
  )
 )
 (func $loop-5 (; 40 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 2)
   )
   (nop)
   (loop $loopy
    (block
     (nop)
     (nop)
     (local.set $x
      (i32.add
       (local.get $x)
       (i32.const 3)
      )
     )
     (nop)
     (local.set $y
      (i32.const 2)
     )
     (nop)
     (nop)
     (br_if $loopy
      (local.get $y)
     )
     (nop)
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (local.set $7
    (i32.add
     (local.get $x)
     (local.get $y)
    )
   )
   (return
    (local.get $7)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $8)
  )
 )
 (func $loop-6 (; 41 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 2)
   )
   (nop)
   (loop $loopy
    (block
     (nop)
     (nop)
     (local.set $x
      (i32.add
       (local.get $x)
       (i32.const 3)
      )
     )
     (nop)
     (nop)
     (local.set $y
      (local.get $y)
     )
     (nop)
     (nop)
     (br_if $loopy
      (local.get $y)
     )
     (nop)
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (local.set $8
    (i32.add
     (local.get $x)
     (local.get $y)
    )
   )
   (return
    (local.get $8)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $9)
  )
 )
 (func $loop-7 (; 42 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 2)
   )
   (nop)
   (loop $loopy
    (block
     (nop)
     (nop)
     (local.set $x
      (i32.add
       (local.get $x)
       (i32.const 3)
      )
     )
     (nop)
     (local.set $y
      (i32.const 5)
     )
     (nop)
     (nop)
     (br_if $loopy
      (local.get $y)
     )
     (nop)
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (local.set $7
    (i32.add
     (local.get $x)
     (local.get $y)
    )
   )
   (return
    (local.get $7)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $8)
  )
 )
 (func $loop-8 (; 43 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $z i32)
  (local $w i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (local $12 i32)
  (local $13 i32)
  (local $14 i32)
  (local $15 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 2)
   )
   (nop)
   (loop $loopy
    (block
     (nop)
     (local.set $z
      (local.get $x)
     )
     (nop)
     (nop)
     (local.set $w
      (local.get $y)
     )
     (nop)
     (local.set $x
      (i32.const 1)
     )
     (nop)
     (local.set $y
      (i32.const 4)
     )
     (nop)
     (nop)
     (br_if $loopy
      (local.get $y)
     )
     (nop)
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (local.set $9
    (i32.add
     (local.get $x)
     (local.get $y)
    )
   )
   (nop)
   (nop)
   (local.set $12
    (i32.sub
     (local.get $z)
     (local.get $w)
    )
   )
   (local.set $13
    (i32.mul
     (local.get $9)
     (local.get $12)
    )
   )
   (return
    (local.get $13)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $14)
  )
 )
 (func $loop-9 (; 44 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $t i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 2)
   )
   (nop)
   (loop $loopy
    (block
     (nop)
     (local.set $t
      (local.get $x)
     )
     (nop)
     (nop)
     (local.set $x
      (local.get $y)
     )
     (nop)
     (nop)
     (local.set $y
      (local.get $t)
     )
     (nop)
     (nop)
     (br_if $loopy
      (local.get $y)
     )
     (nop)
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (local.set $9
    (i32.add
     (local.get $x)
     (local.get $y)
    )
   )
   (return
    (local.get $9)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $10)
  )
 )
 (func $loop-10 (; 45 ;) (type $6) (param $x i32) (param $y i32) (result i32)
  (local $t i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 1)
   )
   (nop)
   (loop $loopy
    (block
     (nop)
     (local.set $t
      (local.get $x)
     )
     (nop)
     (nop)
     (local.set $x
      (local.get $y)
     )
     (nop)
     (nop)
     (local.set $y
      (local.get $t)
     )
     (nop)
     (nop)
     (br_if $loopy
      (local.get $y)
     )
     (nop)
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (local.set $9
    (i32.add
     (local.get $x)
     (local.get $y)
    )
   )
   (return
    (local.get $9)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $10)
  )
 )
 (func $loop-multicond-1 (; 46 ;) (type $10) (param $x i32) (param $y i32) (param $z i32) (result i32)
  (local $t i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 2)
   )
   (nop)
   (local.set $z
    (i32.const 3)
   )
   (nop)
   (loop $loopy
    (block
     (local.set $x
      (i32.const 4)
     )
     (nop)
     (nop)
     (br_if $loopy
      (local.get $t)
     )
     (nop)
     (local.set $y
      (i32.const 5)
     )
     (nop)
     (nop)
     (br_if $loopy
      (local.get $t)
     )
     (nop)
     (local.set $z
      (i32.const 6)
     )
     (nop)
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (nop)
   (local.set $9
    (select
     (local.get $x)
     (local.get $y)
     (local.get $z)
    )
   )
   (return
    (local.get $9)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $10)
  )
 )
 (func $loop-multicond-2 (; 47 ;) (type $10) (param $x i32) (param $y i32) (param $z i32) (result i32)
  (local $t i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (local $12 i32)
  (local $13 i32)
  (local $14 i32)
  (local $15 i32)
  (local $16 i32)
  (local $17 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 2)
   )
   (nop)
   (local.set $z
    (i32.const 3)
   )
   (nop)
   (loop $loopy
    (block
     (nop)
     (nop)
     (local.set $x
      (i32.add
       (local.get $x)
       (i32.const 4)
      )
     )
     (nop)
     (nop)
     (br_if $loopy
      (local.get $t)
     )
     (nop)
     (nop)
     (nop)
     (local.set $y
      (i32.add
       (local.get $y)
       (i32.const 5)
      )
     )
     (nop)
     (nop)
     (br_if $loopy
      (local.get $t)
     )
     (nop)
     (nop)
     (nop)
     (local.set $z
      (i32.add
       (local.get $z)
       (i32.const 6)
      )
     )
     (nop)
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (nop)
   (local.set $15
    (select
     (local.get $x)
     (local.get $y)
     (local.get $z)
    )
   )
   (return
    (local.get $15)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $16)
  )
 )
 (func $loop-block-1 (; 48 ;) (type $10) (param $x i32) (param $y i32) (param $z i32) (result i32)
  (local $t i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (local $12 i32)
  (local $13 i32)
  (local $14 i32)
  (local $15 i32)
  (local $16 i32)
  (local $17 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 2)
   )
   (nop)
   (local.set $z
    (i32.const 3)
   )
   (nop)
   (loop $loopy
    (block $out
     (nop)
     (nop)
     (local.set $x
      (i32.add
       (local.get $x)
       (i32.const 4)
      )
     )
     (nop)
     (nop)
     (br_if $out
      (local.get $t)
     )
     (nop)
     (nop)
     (nop)
     (local.set $y
      (i32.add
       (local.get $y)
       (i32.const 5)
      )
     )
     (nop)
     (nop)
     (br_if $out
      (local.get $t)
     )
     (nop)
     (nop)
     (nop)
     (local.set $z
      (i32.add
       (local.get $z)
       (i32.const 6)
      )
     )
     (nop)
     (br $loopy)
     (unreachable)
    )
    (nop)
   )
   (nop)
   (nop)
   (nop)
   (nop)
   (local.set $15
    (select
     (local.get $x)
     (local.get $y)
     (local.get $z)
    )
   )
   (return
    (local.get $15)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $16)
  )
 )
 (func $loop-block-2 (; 49 ;) (type $10) (param $x i32) (param $y i32) (param $z i32) (result i32)
  (local $t i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (local $12 i32)
  (local $13 i32)
  (local $14 i32)
  (local $15 i32)
  (local $16 i32)
  (local $17 i32)
  (block
   (local.set $x
    (i32.const 1)
   )
   (nop)
   (local.set $y
    (i32.const 2)
   )
   (nop)
   (local.set $z
    (i32.const 3)
   )
   (nop)
   (block $out
    (loop $loopy
     (block
      (nop)
      (nop)
      (local.set $x
       (i32.add
        (local.get $x)
        (i32.const 4)
       )
      )
      (nop)
      (nop)
      (br_if $out
       (local.get $t)
      )
      (nop)
      (nop)
      (nop)
      (local.set $y
       (i32.add
        (local.get $y)
        (i32.const 5)
       )
      )
      (nop)
      (nop)
      (br_if $out
       (local.get $t)
      )
      (nop)
      (nop)
      (nop)
      (local.set $z
       (i32.add
        (local.get $z)
        (i32.const 6)
       )
      )
      (nop)
      (br $loopy)
      (unreachable)
     )
     (unreachable)
    )
    (unreachable)
   )
   (nop)
   (nop)
   (nop)
   (nop)
   (local.set $15
    (select
     (local.get $x)
     (local.get $y)
     (local.get $z)
    )
   )
   (return
    (local.get $15)
   )
   (unreachable)
  )
  (nop)
  (return
   (local.get $16)
  )
 )
 (func $bad-phi-type (; 50 ;) (type $11) (param $var$0 i64) (param $var$1 i64) (param $var$2 i32) (param $var$3 f32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 f64)
  (local $9 f64)
  (local $10 f64)
  (local $11 f64)
  (block
   (nop)
   (if
    (local.get $var$2)
    (block
     (loop $label$2
      (block
       (block
        (block $label$3
         (if
          (i32.const 0)
          (block
           (unreachable)
           (unreachable)
          )
         )
         (nop)
         (nop)
         (nop)
        )
        (local.set $6
         (i32.const 0)
        )
        (if
         (local.get $6)
         (block
          (unreachable)
          (unreachable)
         )
        )
       )
       (nop)
       (nop)
       (br_if $label$2
        (local.get $var$2)
       )
       (nop)
       (nop)
      )
      (nop)
      (local.set $10
       (f64.const 0)
      )
     )
     (nop)
     (drop
      (local.get $10)
     )
     (nop)
    )
   )
  )
  (nop)
 )
 (func $loop-unreachable (; 51 ;) (type $3)
  (local $var$0 i32)
  (local $var$1 f64)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 f64)
  (local $12 f64)
  (local $13 f64)
  (loop $label$1
   (block
    (block $label$2
     (block $label$3
      (block $label$4
       (if
        (i32.const 1337)
        (block
         (unreachable)
         (unreachable)
        )
       )
       (nop)
       (nop)
       (nop)
      )
      (nop)
      (local.set $var$0
       (local.get $var$0)
      )
      (nop)
      (loop $label$6
       (block $label$7
        (nop)
        (local.set $6
         (local.get $var$0)
        )
        (br_if $label$7
         (i32.const 65535)
        )
        (nop)
        (drop
         (local.get $6)
        )
        (nop)
        (nop)
        (local.set $6
         (local.get $var$0)
        )
        (br_if $label$7
         (i32.const 0)
        )
        (nop)
        (drop
         (local.get $6)
        )
        (nop)
        (unreachable)
        (unreachable)
       )
       (nop)
       (br_if $label$6
        (local.get $6)
       )
       (nop)
      )
      (nop)
     )
     (nop)
     (nop)
     (nop)
    )
    (nop)
    (local.set $var$1
     (local.get $var$1)
    )
    (nop)
    (br $label$1)
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $phi-value-turns-bad (; 52 ;) (type $7) (result f64)
  (local $var$0 i32)
  (local $var$1 i32)
  (local $var$2 f32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (local $12 f32)
  (local $13 f32)
  (local $14 f32)
  (local $15 f32)
  (local $16 f64)
  (local $17 f64)
  (block
   (block
    (nop)
    (local.set $var$0
     (i32.atomic.rmw16.sub_u offset=22
      (i32.const 0)
      (i32.const 0)
     )
    )
    (nop)
    (if
     (local.get $var$0)
     (block
      (unreachable)
      (unreachable)
     )
     (block
      (block $block
       (block
        (loop $label$3
         (block $label$4
          (nop)
          (local.set $6
           (local.get $var$0)
          )
          (br_if $label$4
           (i32.const 1)
          )
          (nop)
          (nop)
          (local.set $6
           (i32.clz
            (local.get $6)
           )
          )
         )
         (nop)
         (drop
          (local.get $6)
         )
        )
        (nop)
        (if
         (local.get $6)
         (nop)
        )
       )
       (nop)
       (nop)
      )
      (nop)
      (local.set $14
       (f32.const 1)
      )
     )
    )
   )
   (nop)
   (drop
    (local.get $14)
   )
   (nop)
   (unreachable)
   (unreachable)
  )
  (nop)
  (return
   (local.get $16)
  )
 )
 (func $multi-use (; 53 ;) (type $1) (param $x i32) (result i32)
  (local $temp i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (block
   (nop)
   (nop)
   (local.set $temp
    (i32.add
     (local.get $x)
     (i32.const 1)
    )
   )
   (nop)
   (nop)
   (nop)
   (nop)
   (nop)
  )
  (local.set $8
   (i32.add
    (local.get $temp)
    (local.get $temp)
   )
  )
  (return
   (local.get $8)
  )
 )
 (func $multi-use-2 (; 54 ;) (type $1) (param $x i32) (result i32)
  (local $temp i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (block
   (nop)
   (nop)
   (local.set $temp
    (i32.add
     (local.get $x)
     (i32.const 1)
    )
   )
   (nop)
   (nop)
   (nop)
   (local.set $x
    (i32.mul
     (local.get $temp)
     (i32.const 2)
    )
   )
   (nop)
   (nop)
   (nop)
   (nop)
   (nop)
  )
  (local.set $10
   (i32.sub
    (local.get $x)
    (local.get $temp)
   )
  )
  (return
   (local.get $10)
  )
 )
 (func $many-single-uses-with-param (; 55 ;) (type $1) (param $x i32) (result i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (nop)
  (local.set $2
   (i32.mul
    (i32.const 10)
    (local.get $x)
   )
  )
  (nop)
  (local.set $4
   (i32.ctz
    (local.get $x)
   )
  )
  (local.set $5
   (i32.sub
    (local.get $4)
    (i32.const 20)
   )
  )
  (local.set $6
   (i32.add
    (local.get $2)
    (local.get $5)
   )
  )
  (local.set $7
   (i32.eqz
    (local.get $6)
   )
  )
  (return
   (local.get $7)
  )
  (unreachable)
 )
 (func $56 (; 56 ;) (type $2) (param $var$0 i32)
  (local $var$1 i32)
  (local $var$2 i32)
  (local $var$3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (local $12 i32)
  (local $13 i32)
  (block
   (nop)
   (nop)
   (local.set $var$0
    (i32.add
     (local.get $var$0)
     (i32.const -7)
    )
   )
   (nop)
   (if
    (local.get $var$0)
    (block
     (block $label$2
      (block $label$3
       (nop)
       (local.set $var$1
        (local.get $var$0)
       )
       (nop)
       (nop)
       (local.set $8
        (i32.const 12)
       )
       (br_if $label$3
        (local.get $8)
       )
       (nop)
       (unreachable)
       (unreachable)
      )
      (nop)
      (nop)
      (local.set $10
       (i32.eqz
        (local.get $var$1)
       )
      )
      (br_if $label$2
       (local.get $10)
      )
      (nop)
      (block
       (local.set $11
        (i32.load
         (i32.const 0)
        )
       )
       (nop)
       (local.set $13
        (i32.ne
         (local.get $11)
         (local.get $var$0)
        )
       )
       (if
        (local.get $13)
        (block
         (unreachable)
         (unreachable)
        )
       )
      )
      (nop)
      (unreachable)
      (unreachable)
     )
     (nop)
    )
   )
  )
  (nop)
 )
 (func $multiple-uses-to-non-expression (; 57 ;) (type $2) (param $x i32)
  (local $temp i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (block
   (nop)
   (nop)
   (local.set $x
    (i32.add
     (local.get $x)
     (i32.const 10)
    )
   )
   (nop)
   (nop)
   (i32.store
    (i32.const 1)
    (local.get $x)
   )
   (nop)
   (nop)
   (local.set $6
    (i32.add
     (local.get $x)
     (i32.const 20)
    )
   )
   (i32.store
    (i32.const 2)
    (local.get $6)
   )
   (nop)
  )
  (nop)
 )
 (func $nested-phi-forwarding (; 58 ;) (type $1) (param $var$0 i32) (result i32)
  (local $var$1 i32)
  (local $var$2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (block
   (block $label$1
    (block $label$2
     (loop $label$3
      (block
       (block $label$4
        (block $label$5
         (block $label$6
          (block $label$7
           (block $label$8
            (nop)
            (br_table $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$8 $label$2 $label$2 $label$2 $label$6 $label$2 $label$2 $label$7 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$2 $label$5 $label$4
             (local.get $var$0)
            )
            (unreachable)
           )
           (nop)
           (local.set $var$1
            (i32.const 1)
           )
           (nop)
          )
          (nop)
          (br $label$4)
          (unreachable)
         )
         (nop)
         (unreachable)
         (unreachable)
        )
        (nop)
        (br $label$1)
        (unreachable)
       )
       (nop)
       (local.set $var$2
        (i32.const 1)
       )
       (nop)
       (br_if $label$3
        (local.get $var$2)
       )
       (nop)
      )
      (nop)
     )
     (nop)
    )
    (nop)
    (block $label$9
     (nop)
     (local.set $6
      (i32.or
       (i32.const 1)
       (local.get $var$1)
      )
     )
     (br_if $label$9
      (local.get $6)
     )
     (nop)
    )
    (nop)
    (unreachable)
    (unreachable)
   )
   (nop)
   (nop)
   (i32.store offset=176
    (i32.const 0)
    (local.get $var$2)
   )
   (nop)
   (nop)
  )
  (local.set $9
   (i32.const 0)
  )
  (return
   (local.get $9)
  )
 )
 (func $zext-numGets (; 59 ;) (type $4) (param $var$0 i32) (param $var$1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (block
   (block $label$1
    (local.set $2
     (i32.load
      (i32.const -8)
     )
    )
    (local.set $3
     (i32.const 1)
    )
    (br_if $label$1
     (local.get $2)
    )
    (nop)
    (drop
     (local.get $3)
    )
    (nop)
    (local.set $5
     (i32.load
      (i32.const -16)
     )
    )
    (nop)
    (local.set $3
     (i32.eqz
      (local.get $5)
     )
    )
   )
   (nop)
   (local.set $8
    (i32.ctz
     (local.get $3)
    )
   )
   (if
    (local.get $8)
    (block
     (unreachable)
     (unreachable)
    )
   )
  )
  (nop)
 )
 (func $zext-numGets-hasAnotherUse (; 60 ;) (type $4) (param $var$0 i32) (param $var$1 i32)
  (local $temp i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (block
   (block $label$1
    (local.set $3
     (i32.load
      (i32.const -8)
     )
    )
    (local.set $4
     (i32.const 1)
    )
    (br_if $label$1
     (local.get $3)
    )
    (nop)
    (drop
     (local.get $4)
    )
    (nop)
    (local.set $6
     (i32.load
      (i32.const -16)
     )
    )
    (nop)
    (local.set $temp
     (i32.eqz
      (local.get $6)
     )
    )
    (nop)
    (nop)
    (drop
     (local.get $temp)
    )
    (nop)
    (nop)
    (local.set $4
     (local.get $temp)
    )
   )
   (nop)
   (local.set $11
    (i32.ctz
     (local.get $4)
    )
   )
   (if
    (local.get $11)
    (block
     (unreachable)
     (unreachable)
    )
   )
  )
  (nop)
 )
 (func $flipped-needs-right-origin (; 61 ;) (type $1) (param $var$0 i32) (result i32)
  (local $var$1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (block
   (block $label$1
    (local.set $2
     (i32.load
      (i32.const 1)
     )
    )
    (br_if $label$1
     (local.get $2)
    )
    (nop)
    (local.set $var$1
     (i32.const 2)
    )
    (nop)
   )
   (nop)
   (block
    (nop)
    (local.set $4
     (i32.add
      (local.get $var$1)
      (i32.const 4)
     )
    )
    (local.set $5
     (i32.gt_s
      (i32.const 3)
      (local.get $4)
     )
    )
    (if
     (local.get $5)
     (block
      (unreachable)
      (unreachable)
     )
    )
   )
   (nop)
   (nop)
  )
  (local.set $7
   (i32.const 5)
  )
  (return
   (local.get $7)
  )
 )
 (func $non-expr-nodes-may-have-multiple-uses-too-its-the-ORIGIN (; 62 ;) (type $10) (param $var$0 i32) (param $var$1 i32) (param $var$2 i32) (result i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (block
   (nop)
   (nop)
   (local.set $var$1
    (i32.gt_u
     (local.get $var$1)
     (i32.const 1)
    )
   )
   (nop)
   (i32.store
    (local.get $var$1)
    (i32.const 2)
   )
   (nop)
   (nop)
   (local.set $7
    (i32.sub
     (i32.const 4)
     (local.get $var$1)
    )
   )
   (i32.store offset=8
    (i32.const 3)
    (local.get $7)
   )
   (nop)
   (unreachable)
   (unreachable)
  )
  (nop)
  (return
   (local.get $8)
  )
 )
 (func $loop-of-set-connections (; 63 ;) (type $12) (param $var$0 i32) (param $var$1 i32) (param $var$2 i32) (param $var$3 i32) (param $var$4 i32) (result i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (loop $label$1
   (block
    (if
     (i32.const 0)
     (block
      (block $block
       (nop)
       (local.set $var$2
        (i32.add
         (i32.const 0)
         (i32.const 1)
        )
       )
       (nop)
       (br $label$1)
       (unreachable)
      )
      (unreachable)
     )
    )
    (nop)
    (nop)
    (nop)
    (nop)
    (nop)
    (local.set $var$2
     (local.get $var$2)
    )
    (nop)
    (br $label$1)
    (unreachable)
   )
   (unreachable)
  )
  (unreachable)
 )
 (func $conditions-in-conditions (; 64 ;) (type $10) (param $var$0 i32) (param $var$1 i32) (param $var$2 i32) (result i32)
  (local $var$3 i32)
  (local $var$4 i32)
  (local $var$5 i32)
  (local $var$6 i32)
  (local $var$7 i32)
  (local $var$8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (local $12 i32)
  (local $13 i32)
  (local $14 i32)
  (local $15 i32)
  (local $16 i32)
  (block
   (local.set $var$1
    (i32.const 1)
   )
   (nop)
   (if
    (i32.const 0)
    (block
     (loop $label$2
      (block
       (block
        (nop)
        (if
         (local.get $var$1)
         (nop)
        )
       )
       (nop)
       (local.set $var$3
        (i32.const 1)
       )
       (nop)
       (nop)
       (local.set $var$1
        (i32.sub
         (i32.const 0)
         (local.get $var$3)
        )
       )
       (nop)
       (br_if $label$2
        (i32.const 0)
       )
       (nop)
      )
      (nop)
     )
     (nop)
    )
   )
   (nop)
   (block
    (nop)
    (if
     (local.get $var$1)
     (block
      (local.set $var$3
       (i32.const 1)
      )
      (nop)
     )
    )
   )
   (nop)
   (nop)
   (local.set $14
    (i32.add
     (local.get $var$3)
     (i32.const 16)
    )
   )
   (i32.store
    (i32.const 8)
    (local.get $14)
   )
   (nop)
   (i32.store
    (i32.const 8)
    (i32.const 64)
   )
   (nop)
   (unreachable)
   (unreachable)
  )
  (nop)
  (return
   (local.get $15)
  )
 )
)
