--- source: tests/guppy.rs expression: module_string --- ; ModuleID = 'test_context' source_filename = "test_context" define { i32, {}, {} } @_hl.is_even.21(i64 %0) { alloca_block: br label %entry_block entry_block: ; preds = %alloca_block br label %3 1: ; preds = %3 %2 = extractvalue { {} } undef, 0 br label %9 3: ; preds = %entry_block %4 = call i16 @QAlloc() %5 = call i16 @H(i16 %4) %6 = call { i16, { i32, {}, {} } } @Measure(i16 %5) %7 = extractvalue { i16, { i32, {}, {} } } %6, 0 %8 = extractvalue { i16, { i32, {}, {} } } %6, 1 call void @QFree(i16 %7) switch i32 0, label %1 [ ] 9: ; preds = %1 ret { i32, {}, {} } %8 } declare i16 @QAlloc() declare i16 @H(i16) declare { i16, { i32, {}, {} } } @Measure(i16) declare void @QFree(i16) define { i32, {}, {} } @_hl.is_odd.22(i64 %0) { alloca_block: br label %entry_block entry_block: ; preds = %alloca_block br label %6 1: ; preds = %cond_exit_33 %2 = extractvalue { i32, { i64 }, {} } %"07.0", 1 %3 = extractvalue { i64 } %2, 0 br label %17 4: ; preds = %cond_exit_33 %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_33_case_0 [ i32 1, label %cond_33_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.21(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_33_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_33 cond_33_case_1: ; preds = %6 br label %cond_exit_33 cond_exit_33: ; preds = %cond_33_case_1, %cond_33_case_0 %"07.0" = phi { i32, { i64 }, {} } [ %22, %cond_33_case_0 ], [ { i32 1, { i64 } poison, {} undef }, %cond_33_case_1 ] %23 = extractvalue { i32, { i64 }, {} } %"07.0", 0 switch i32 %23, label %1 [ i32 1, label %4 ] }