---
source: hugr-llvm/src/extension/int.rs
expression: mod_str
---
; ModuleID = 'test_context'
source_filename = "test_context"
define internal i8 @_hl.main.1(i8 %0, i8 %1) !dbg !3 {
alloca_block:
br label %entry_block
entry_block: ; preds = %alloca_block
%acc_ptr = alloca i8, align 1, !dbg !8
%exp_ptr = alloca i8, align 1, !dbg !8
store i8 %0, ptr %acc_ptr, align 1, !dbg !8
store i8 %1, ptr %exp_ptr, align 1, !dbg !8
br label %pow, !dbg !8
pow: ; preds = %pow_body, %entry_block
%acc = load i8, ptr %acc_ptr, align 1, !dbg !8
%exp = load i8, ptr %exp_ptr, align 1, !dbg !8
switch i8 %exp, label %pow_body [
i8 1, label %done
i8 0, label %power_of_zero
], !dbg !8
power_of_zero: ; preds = %pow
store i8 1, ptr %acc_ptr, align 1, !dbg !8
br label %done, !dbg !8
pow_body: ; preds = %pow
%new_acc = mul i8 %acc, %0, !dbg !8
%new_exp = sub i8 %exp, 1, !dbg !8
store i8 %new_acc, ptr %acc_ptr, align 1, !dbg !8
store i8 %new_exp, ptr %exp_ptr, align 1, !dbg !8
br label %pow, !dbg !8
done: ; preds = %pow, %power_of_zero
%result = load i8, ptr %acc_ptr, align 1, !dbg !8
ret i8 %result
}
!llvm.module.flags = !{!0}
!llvm.dbg.cu = !{!1}
!0 = !{i32 2, !"Debug Info Version", i32 3}
!1 = distinct !DICompileUnit(language: DW_LANG_Python, file: !2, producer: "hugr_llvm_test", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug)
!2 = !DIFile(filename: "/cmJrSnVYeXFf/zCkHdtWCCnkJhPKiWSKICgZuRNRvR/mbrfVq.gpy.py", directory: "/lPNzlV/ClAphFG/yrhvZs/eDgUn/eIVwAutKJHaZEPSZwPXPeycUvnujGxZ")
!3 = distinct !DISubprogram(name: "_hl.main.1", linkageName: "_hl.main.1", scope: null, file: !4, line: 25254, type: !5, scopeLine: 25255, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !1)
!4 = !DIFile(filename: "/cmJrSnVYeXFf/zCkHdtWCCnkJhPKiWSKICgZuRNRvR/mbrfVq.gpy.py", directory: "")
!5 = !DISubroutineType(types: !6)
!6 = !{!7, !7, !7}
!7 = !DIBasicType(name: "i8", size: 8, encoding: DW_ATE_unsigned)
!8 = !DILocation(line: 27062, column: 402, scope: !3)