---
source: hugr-llvm/src/extension/prelude.rs
expression: mod_str
---
; ModuleID = 'test_context'
source_filename = "test_context"
@0 = private unnamed_addr constant [5 x i8] c"EXIT\00", align 1
@prelude.panic_template = private unnamed_addr constant [34 x i8] c"Program panicked (signal %i): %s\0A\00", align 1
define private { i16, i16 } @_hl.main.1(i16 %0, i16 %1) {
alloca_block:
%"0" = alloca i16, align 2
%"1" = alloca i16, align 2
%"5_0" = alloca { i32, i8* }, align 8
%"2_0" = alloca i16, align 2
%"2_1" = alloca i16, align 2
%"6_0" = alloca i16, align 2
%"6_1" = alloca i16, align 2
br label %entry_block
entry_block: ; preds = %alloca_block
store { i32, i8* } { i32 42, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @0, i32 0, i32 0) }, { i32, i8* }* %"5_0", align 8
store i16 %0, i16* %"2_0", align 2
store i16 %1, i16* %"2_1", align 2
%"5_01" = load { i32, i8* }, { i32, i8* }* %"5_0", align 8
%"2_02" = load i16, i16* %"2_0", align 2
%"2_13" = load i16, i16* %"2_1", align 2
%2 = extractvalue { i32, i8* } %"5_01", 0
%3 = extractvalue { i32, i8* } %"5_01", 1
%4 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([34 x i8], [34 x i8]* @prelude.panic_template, i32 0, i32 0), i32 %2, i8* %3)
call void @abort()
store i16 0, i16* %"6_0", align 2
store i16 0, i16* %"6_1", align 2
%"6_04" = load i16, i16* %"6_0", align 2
%"6_15" = load i16, i16* %"6_1", align 2
store i16 %"6_04", i16* %"0", align 2
store i16 %"6_15", i16* %"1", align 2
%"06" = load i16, i16* %"0", align 2
%"17" = load i16, i16* %"1", align 2
%mrv = insertvalue { i16, i16 } undef, i16 %"06", 0
%mrv8 = insertvalue { i16, i16 } %mrv, i16 %"17", 1
ret { i16, i16 } %mrv8
}
declare i32 @printf(i8*, ...)
declare void @abort()