--- source: tests/guppy.rs expression: module_string --- ; ModuleID = 'test_context' source_filename = "test_context" define { i32, {}, {} } @_hl.is_even.29(i64 %0) { alloca_block: br label %entry_block entry_block: ; preds = %alloca_block br label %6 1: ; preds = %cond_exit_35 %2 = extractvalue { i32, { i64 }, {} } %"07.0", 1 %3 = extractvalue { i64 } %2, 0 br label %17 4: ; preds = %cond_exit_35 %5 = extractvalue { i32, { i64 }, {} } %"07.0", 2 br label %14 6: ; preds = %entry_block %7 = icmp eq i64 %0, 0 %8 = select i1 %7, { i32, {}, {} } { i32 1, {} poison, {} undef }, { i32, {}, {} } { i32 0, {} undef, {} poison } %9 = extractvalue { i32, {}, {} } %8, 0 %10 = extractvalue { i32, {}, {} } %8, 1 %11 = extractvalue { i32, {}, {} } %8, 2 switch i32 %9, label %cond_35_case_0 [ i32 1, label %cond_35_case_1 ] 12: ; preds = %14 %13 = extractvalue { {} } undef, 0 br label %20 14: ; preds = %4 switch i32 0, label %12 [ ] 15: ; preds = %17 %16 = extractvalue { {} } undef, 0 br label %20 17: ; preds = %1 %18 = sub i64 %3, 1 %19 = call { i32, {}, {} } @_hl.is_odd.30(i64 %18) switch i32 0, label %15 [ ] 20: ; preds = %15, %12 %"02.0" = phi { i32, {}, {} } [ %19, %15 ], [ { i32 1, {} poison, {} undef }, %12 ] ret { i32, {}, {} } %"02.0" cond_35_case_0: ; preds = %6 %21 = insertvalue { i64 } undef, i64 %0, 0 %22 = insertvalue { i32, { i64 }, {} } { i32 0, { i64 } poison, {} poison }, { i64 } %21, 1 br label %cond_exit_35 cond_35_case_1: ; preds = %6 br label %cond_exit_35 cond_exit_35: ; preds = %cond_35_case_1, %cond_35_case_0 %"07.0" = phi { i32, { i64 }, {} } [ %22, %cond_35_case_0 ], [ { i32 1, { i64 } poison, {} undef }, %cond_35_case_1 ] %23 = extractvalue { i32, { i64 }, {} } %"07.0", 0 switch i32 %23, label %1 [ i32 1, label %4 ] } define { i32, {}, {} } @_hl.is_odd.30(i64 %0) { alloca_block: br label %entry_block entry_block: ; preds = %alloca_block br label %6 1: ; preds = %cond_exit_54 %2 = extractvalue { i32, { i64 }, {} } %"07.0", 1 %3 = extractvalue { i64 } %2, 0 br label %17 4: ; preds = %cond_exit_54 %5 = extractvalue { i32, { i64 }, {} } %"07.0", 2 br label %14 6: ; preds = %entry_block %7 = icmp eq i64 %0, 0 %8 = select i1 %7, { i32, {}, {} } { i32 1, {} poison, {} undef }, { i32, {}, {} } { i32 0, {} undef, {} poison } %9 = extractvalue { i32, {}, {} } %8, 0 %10 = extractvalue { i32, {}, {} } %8, 1 %11 = extractvalue { i32, {}, {} } %8, 2 switch i32 %9, label %cond_54_case_0 [ i32 1, label %cond_54_case_1 ] 12: ; preds = %14 %13 = extractvalue { {} } undef, 0 br label %20 14: ; preds = %4 switch i32 0, label %12 [ ] 15: ; preds = %17 %16 = extractvalue { {} } undef, 0 br label %20 17: ; preds = %1 %18 = sub i64 %3, 1 %19 = call { i32, {}, {} } @_hl.is_even.29(i64 %18) switch i32 0, label %15 [ ] 20: ; preds = %15, %12 %"02.0" = phi { i32, {}, {} } [ %19, %15 ], [ { i32 0, {} undef, {} poison }, %12 ] ret { i32, {}, {} } %"02.0" cond_54_case_0: ; preds = %6 %21 = insertvalue { i64 } undef, i64 %0, 0 %22 = insertvalue { i32, { i64 }, {} } { i32 0, { i64 } poison, {} poison }, { i64 } %21, 1 br label %cond_exit_54 cond_54_case_1: ; preds = %6 br label %cond_exit_54 cond_exit_54: ; preds = %cond_54_case_1, %cond_54_case_0 %"07.0" = phi { i32, { i64 }, {} } [ %22, %cond_54_case_0 ], [ { i32 1, { i64 } poison, {} undef }, %cond_54_case_1 ] %23 = extractvalue { i32, { i64 }, {} } %"07.0", 0 switch i32 %23, label %1 [ i32 1, label %4 ] }