; 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: 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 ; 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, 2:i32 infer %1 ; start LHS (in block-phi-1) %0 = block 2 %1:i32 = var %2 = add %1, 2:i32 %3 = phi %0, %1, %2 %4 = add %3, 3:i32 infer %4 ; 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:i32 = var %2 = add %0, %1 infer %2 ; 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, 2:i32 infer %1 ; 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, 2:i32 infer %1 ; 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, 2:i32 infer %1 ; 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, 5:i32 infer %1 ; 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:i32 = var %4 = select %1, %2, %3 infer %4 ; 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 = block 2 %4:i32 = var %5:i32 = var %6 = phi %3, %4, %5 %7 = select %1, %2, %6 infer %7 ; 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 = block 2 %4:i32 = var %5:i32 = var %6 = phi %3, %4, %5 %7 = select %1, %2, %6 infer %7 ; 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, %0 infer %1 ; 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 = mul %0, 2:i32 infer %1 ; start LHS (in multi-use-2) %0:i32 = var %1 = mul %0, 2:i32 %2 = sub %1, %0 infer %2 ; 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: 55 ; start LHS (in 55) %0:i32 = var %1 = add %0, -7:i32 infer %1 ; start LHS (in 55) %0:i32 = var %1 = eq %0, 0:i32 %2 = ne %0, 0:i32 pc %2 1:i1 infer %1 ; start LHS (in 55) %0:i32 = var %1:i32 = var %2 = ne %0, %1 %3 = ne %1, 0:i32 pc %3 1:i1 infer %2 ; 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, 20:i32 infer %1 ; 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:i32 = zext %0 %2 = sub 4:i32, %1 infer %2 ; 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:i32 = var %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 $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $none_=>_i32 (func (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_f64 (func (result f64))) (type $none_=>_none (func)) (type $i64_i64_i64_=>_i32 (func (param i64 i64 i64) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i64_i64_i32_f32_=>_none (func (param i64 i64 i32 f32))) (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) (type $i64_i64_i64_=>_i64 (func (param i64 i64 i64) (result i64))) (memory $0 (shared 1 1)) (export "replaced-print-internal" (func $55)) (func $figure-1a (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) (local.set $12 (i64.eq (local.get $a) (local.get $x) ) ) (local.set $13 (i64.ne (local.get $a) (local.get $y) ) ) (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 (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) (local.set $15 (i64.eq (local.get $a) (local.get $x) ) ) (local.set $16 (i64.ne (local.get $a) (local.get $y) ) ) (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 (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) ) ) ) (block (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 2) ) ) ) ) ) (nop) (local.set $8 (i32.and (local.get $x) (i32.const 1) ) ) (return (local.get $8) ) (unreachable) ) (nop) (return (local.get $9) ) ) (func $flips (local $x i32) (local $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) (local $12 i32) (local $13 i32) (nop) (nop) (nop) (local.set $x (i32.ge_s (local.get $x) (local.get $y) ) ) (nop) (nop) (nop) (local.set $x (i32.ge_u (local.get $x) (local.get $y) ) ) (nop) (nop) (nop) (local.set $x (i32.gt_s (local.get $x) (local.get $y) ) ) (nop) (nop) (nop) (local.set $x (i32.gt_u (local.get $x) (local.get $y) ) ) ) (func $various-conditions-1 (param $x i32) (local $1 i32) (local $2 i32) (local $3 i32) (nop) (if (local.get $x) (block (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 1) ) ) ) ) ) (func $various-conditions-2 (param $x i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (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) ) ) ) ) ) (func $various-conditions-3 (param $x i32) (local $1 i32) (local $2 i32) (local $3 i32) (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) ) ) ) ) ) (func $various-conditions-4 (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) ) ) ) ) ) (unreachable) ) (func $unaries (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) (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) ) ) ) ) ) (func $unary-condition (param $x i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (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) ) ) ) ) ) (func $unary-condition-2 (param $x i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (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) ) ) ) ) ) (func $if-else-cond (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) ) ) ) (block (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 2) ) ) ) ) ) (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 (result i32) (local $0 i32) (local.set $0 (i32.add (i32.const 0) (i32.const 1) ) ) (return (local.get $0) ) ) (func $trivial-const (result i32) (return (i32.const 0) ) ) (func $trivial-const-block (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 (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 (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) (local.set $x (i32.const 1) ) (local.set $x (i32.const 2) ) ) ) (nop) (nop) ) (nop) (return (local.get $x) ) ) (func $select (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 (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 (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) (br_if $out (local.get $y) ) (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 2) ) ) ) (nop) (nop) (nop) ) (local.set $10 (i32.add (local.get $x) (i32.const 3) ) ) (return (local.get $10) ) ) (func $block-phi-2 (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) (br_if $out (local.get $y) ) (local.set $x (i32.const 2) ) ) (nop) (nop) (nop) ) (local.set $6 (i32.add (local.get $x) (i32.const 3) ) ) (return (local.get $6) ) ) (func $zero_init-phi-bad_type (result f64) (local $x f64) (local $1 f64) (local $2 f64) (local $3 f64) (block (if (i32.const 0) (local.set $x (f64.const 1) ) ) (nop) (nop) ) (nop) (return (local.get $x) ) ) (func $phi-bad-type (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 (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) ) ) ) (block (nop) (nop) (nop) (local.set $i (i32.add (local.get $x) (local.get $y) ) ) ) ) ) (nop) (nop) ) (nop) (return (local.get $i) ) ) (func $call (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 (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) (return (local.get $x) ) (unreachable) ) (unreachable) ) (local.set $x (i32.const 2) ) ) ) (nop) (return (local.get $x) ) (unreachable) ) (nop) (return (local.get $5) ) ) (func $in-unreachable-2 (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) ) (unreachable) (unreachable) ) (unreachable) ) (local.set $x (i32.const 2) ) ) ) (nop) (return (local.get $x) ) (unreachable) ) (nop) (return (local.get $4) ) ) (func $in-unreachable-3 (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) ) (br $out) (unreachable) ) (unreachable) ) (local.set $x (i32.const 2) ) ) ) (nop) (return (local.get $x) ) (unreachable) ) (nop) (return (local.get $x) ) (unreachable) ) (nop) (return (local.get $5) ) ) (func $in-unreachable-4 (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) ) (br_table $out $out $out (i32.const 1) ) (unreachable) ) (unreachable) ) (local.set $x (i32.const 2) ) ) ) (nop) (return (local.get $x) ) (unreachable) ) (nop) (return (local.get $x) ) (unreachable) ) (nop) (return (local.get $5) ) ) (func $in-unreachable-br_if (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 (local.set $x (i32.const 1) ) (nop) (br_if $out (local.get $x) ) ) (local.set $x (i32.const 2) ) ) ) (nop) (return (local.get $x) ) (unreachable) ) (nop) (return (local.get $x) ) (unreachable) ) (nop) (return (local.get $6) ) ) (func $in-unreachable-big (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 $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) ) (br $label$3) (unreachable) ) (unreachable) ) (block (block $block3 (local.set $1 (i32.const -8531) ) (br $label$1) (unreachable) ) (unreachable) ) ) ) (unreachable) ) ) ) (br $label$2) (unreachable) ) (local.set $6 (i32.load (i32.const 0) ) ) (drop (local.get $6) ) (br $label$1) (unreachable) ) (nop) (i32.store16 (i32.const 1) (local.get $1) ) (unreachable) (unreachable) ) (i32.store16 (i32.const 0) (i32.const -8531) ) ) (func $in-unreachable-operations (param $x i32) (param $y i32) (result i32) (local $2 i32) (local $3 i32) (block $block (unreachable) (unreachable) (block (nop) (if (local.get $x) (local.set $x (i32.const 1) ) (local.set $x (i32.const 2) ) ) ) (nop) (return (local.get $x) ) (unreachable) ) (unreachable) ) (func $merge-with-one-less (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) ) (unreachable) (unreachable) ) (br $label$1) (unreachable) ) (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) ) (br $label$1) (unreachable) ) (unreachable) (unreachable) ) (nop) (i32.store (local.get $var$0) (i32.const 16) ) (nop) ) (local.set $6 (i32.const 1) ) (return (local.get $6) ) ) (func $deep (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) (local.set $x (i32.mul (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.xor (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.mul (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.xor (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.mul (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.xor (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.mul (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.xor (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.mul (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.xor (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.mul (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.xor (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.mul (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.xor (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.mul (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.xor (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.mul (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.xor (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.mul (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.xor (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.mul (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.xor (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.mul (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.xor (local.get $x) (i32.const 1234) ) ) (nop) (nop) (local.set $x (i32.mul (local.get $x) (i32.const 1234) ) ) (nop) (nop) ) (nop) (return (local.get $x) ) ) (func $two-pcs (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 (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) ) ) ) (block (nop) (nop) (nop) (local.set $t (i64.sub (local.get $x) (local.get $y) ) ) ) ) ) (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) ) ) ) (block (nop) (nop) (nop) (local.set $t (i64.div_s (local.get $x) (local.get $y) ) ) ) ) ) ) ) (nop) (return (local.get $t) ) (unreachable) ) (nop) (return (local.get $23) ) ) (func $loop-1 (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) ) (local.set $y (i32.const 2) ) (loop $loopy (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 (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) ) (local.set $y (i32.const 2) ) (loop $loopy (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 3) ) ) (nop) (nop) (local.set $y (i32.add (local.get $y) (i32.const 4) ) ) ) (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 (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) ) (local.set $y (i32.const 2) ) (loop $loopy (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 3) ) ) (nop) (nop) (local.set $y (i32.add (local.get $y) (i32.const 4) ) ) (nop) (br_if $loopy (local.get $y) ) ) (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 (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) ) (local.set $y (i32.const 2) ) (loop $loopy (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 3) ) ) (nop) (br_if $loopy (local.get $y) ) ) (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 (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) ) (local.set $y (i32.const 2) ) (loop $loopy (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 3) ) ) (local.set $y (i32.const 2) ) (nop) (br_if $loopy (local.get $y) ) ) (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 (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) ) (local.set $y (i32.const 2) ) (loop $loopy (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 3) ) ) (nop) (nop) (nop) (br_if $loopy (local.get $y) ) ) (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 (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) ) (local.set $y (i32.const 2) ) (loop $loopy (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 3) ) ) (local.set $y (i32.const 5) ) (nop) (br_if $loopy (local.get $y) ) ) (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 (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) ) (local.set $y (i32.const 2) ) (loop $loopy (nop) (local.set $z (local.get $x) ) (nop) (local.set $w (local.get $y) ) (local.set $x (i32.const 1) ) (local.set $y (i32.const 4) ) (nop) (br_if $loopy (local.get $y) ) ) (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 (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) ) (local.set $y (i32.const 2) ) (loop $loopy (nop) (local.set $t (local.get $x) ) (nop) (local.set $x (local.get $y) ) (nop) (local.set $y (local.get $t) ) (nop) (br_if $loopy (local.get $y) ) ) (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 (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) ) (local.set $y (i32.const 1) ) (loop $loopy (nop) (local.set $t (local.get $x) ) (nop) (local.set $x (local.get $y) ) (nop) (local.set $y (local.get $t) ) (nop) (br_if $loopy (local.get $y) ) ) (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 (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) ) (local.set $y (i32.const 2) ) (local.set $z (i32.const 3) ) (loop $loopy (local.set $x (i32.const 4) ) (nop) (br_if $loopy (local.get $t) ) (local.set $y (i32.const 5) ) (nop) (br_if $loopy (local.get $t) ) (local.set $z (i32.const 6) ) ) (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 (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) ) (local.set $y (i32.const 2) ) (local.set $z (i32.const 3) ) (loop $loopy (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 4) ) ) (nop) (br_if $loopy (local.get $t) ) (nop) (nop) (local.set $y (i32.add (local.get $y) (i32.const 5) ) ) (nop) (br_if $loopy (local.get $t) ) (nop) (nop) (local.set $z (i32.add (local.get $z) (i32.const 6) ) ) ) (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 (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) ) (local.set $y (i32.const 2) ) (local.set $z (i32.const 3) ) (loop $loopy (block $out (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 4) ) ) (nop) (br_if $out (local.get $t) ) (nop) (nop) (local.set $y (i32.add (local.get $y) (i32.const 5) ) ) (nop) (br_if $out (local.get $t) ) (nop) (nop) (local.set $z (i32.add (local.get $z) (i32.const 6) ) ) (br $loopy) (unreachable) ) ) (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 (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) ) (local.set $y (i32.const 2) ) (local.set $z (i32.const 3) ) (block $out (loop $loopy (block (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 4) ) ) (nop) (br_if $out (local.get $t) ) (nop) (nop) (local.set $y (i32.add (local.get $y) (i32.const 5) ) ) (nop) (br_if $out (local.get $t) ) (nop) (nop) (local.set $z (i32.add (local.get $z) (i32.const 6) ) ) (br $loopy) (unreachable) ) (unreachable) ) (unreachable) ) (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 (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) (nop) (if (local.get $var$2) (block (loop $label$2 (block (block (block $label$3 (if (i32.const 0) (block (unreachable) (unreachable) ) ) (nop) (nop) ) (local.set $6 (i32.const 0) ) (if (local.get $6) (block (unreachable) (unreachable) ) ) ) (nop) (br_if $label$2 (local.get $var$2) ) (nop) ) (nop) (local.set $10 (f64.const 0) ) ) (nop) (drop (local.get $10) ) ) ) ) (func $loop-unreachable (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) (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) (local.set $6 (local.get $var$0) ) (br_if $label$7 (i32.const 0) ) (nop) (drop (local.get $6) ) (unreachable) (unreachable) ) (nop) (br_if $label$6 (local.get $6) ) ) ) (nop) (nop) ) (nop) (nop) (br $label$1) (unreachable) ) (unreachable) ) (unreachable) ) (func $phi-value-turns-bad (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) (nop) ) (nop) (if (local.get $6) (nop) ) ) (nop) ) (nop) (local.set $14 (f32.const 1) ) ) ) ) (nop) (nop) (unreachable) (unreachable) ) (nop) (return (local.get $16) ) ) (func $multi-use (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) ) (local.set $8 (i32.add (local.get $temp) (local.get $temp) ) ) (return (local.get $8) ) ) (func $multi-use-2 (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) (local.set $x (i32.mul (local.get $temp) (i32.const 2) ) ) (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 (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 $55 (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) (nop) (nop) (local.set $var$0 (i32.add (local.get $var$0) (i32.const -7) ) ) (nop) (if (local.get $var$0) (block $label$2 (block $label$3 (nop) (local.set $var$1 (local.get $var$0) ) (nop) (local.set $8 (i32.const 12) ) (br_if $label$3 (local.get $8) ) (unreachable) (unreachable) ) (nop) (local.set $10 (i32.eqz (local.get $var$1) ) ) (br_if $label$2 (local.get $10) ) (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) ) ) ) (unreachable) (unreachable) ) ) ) (func $multiple-uses-to-non-expression (param $x i32) (local $temp i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (nop) (nop) (local.set $x (i32.add (local.get $x) (i32.const 10) ) ) (nop) (i32.store (i32.const 1) (local.get $x) ) (nop) (local.set $6 (i32.add (local.get $x) (i32.const 20) ) ) (i32.store (i32.const 2) (local.get $6) ) ) (func $nested-phi-forwarding (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 $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) ) (local.set $var$1 (i32.const 1) ) ) (br $label$4) (unreachable) ) (unreachable) (unreachable) ) (br $label$1) (unreachable) ) (local.set $var$2 (i32.const 1) ) (nop) (br_if $label$3 (local.get $var$2) ) ) ) (block $label$9 (nop) (local.set $6 (i32.or (i32.const 1) (local.get $var$1) ) ) (br_if $label$9 (local.get $6) ) ) (unreachable) (unreachable) ) (nop) (i32.store offset=176 (i32.const 0) (local.get $var$2) ) (nop) ) (local.set $9 (i32.const 0) ) (return (local.get $9) ) ) (func $zext-numGets (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 $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) ) (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) ) ) ) (func $zext-numGets-hasAnotherUse (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 $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) ) (local.set $6 (i32.load (i32.const -16) ) ) (nop) (local.set $temp (i32.eqz (local.get $6) ) ) (nop) (drop (local.get $temp) ) (nop) (local.set $4 (local.get $temp) ) ) (nop) (local.set $11 (i32.ctz (local.get $4) ) ) (if (local.get $11) (block (unreachable) (unreachable) ) ) ) (func $flipped-needs-right-origin (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) ) (local.set $var$1 (i32.const 2) ) ) (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) ) (local.set $7 (i32.const 5) ) (return (local.get $7) ) ) (func $non-expr-nodes-may-have-multiple-uses-too-its-the-ORIGIN (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) (local.set $7 (i32.sub (i32.const 4) (local.get $var$1) ) ) (i32.store offset=8 (i32.const 3) (local.get $7) ) (unreachable) (unreachable) ) (nop) (return (local.get $8) ) ) (func $loop-of-set-connections (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) ) ) (br $label$1) (unreachable) ) (unreachable) ) ) (nop) (nop) (nop) (nop) (br $label$1) (unreachable) ) (unreachable) ) (unreachable) ) (func $conditions-in-conditions (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) ) (if (i32.const 0) (loop $label$2 (block (nop) (if (local.get $var$1) (nop) ) ) (local.set $var$3 (i32.const 1) ) (nop) (nop) (local.set $var$1 (i32.sub (i32.const 0) (local.get $var$3) ) ) (br_if $label$2 (i32.const 0) ) ) ) (block (nop) (if (local.get $var$1) (local.set $var$3 (i32.const 1) ) ) ) (nop) (local.set $14 (i32.add (local.get $var$3) (i32.const 16) ) ) (i32.store (i32.const 8) (local.get $14) ) (i32.store (i32.const 8) (i32.const 64) ) (unreachable) (unreachable) ) (nop) (return (local.get $15) ) ) )