---
source: hugr-llvm/src/extension/conversions.rs
expression: mod_str
---
; ModuleID = 'test_context'
source_filename = "test_context"
@0 = private unnamed_addr constant [58 x i8] c"Float value too big to convert to int of given width (32)\00", align 1
define private { i1, { i32, i8* }, i32 } @_hl.main.1(double %0) {
alloca_block:
%"0" = alloca { i1, { i32, i8* }, i32 }, align 8
%"2_0" = alloca double, align 8
%"4_0" = alloca { i1, { i32, i8* }, i32 }, align 8
br label %entry_block
entry_block: ; preds = %alloca_block
store double %0, double* %"2_0", align 8
%"2_01" = load double, double* %"2_0", align 8
%within_upper_bound = fcmp olt double %"2_01", 0x41DFFFFFFFC00000
%within_lower_bound = fcmp ole double 0xC1E0000000000000, %"2_01"
%success = and i1 %within_upper_bound, %within_lower_bound
%trunc_result = fptosi double %"2_01" to i32
%1 = insertvalue { i1, { i32, i8* }, i32 } { i1 true, { i32, i8* } poison, i32 poison }, i32 %trunc_result, 2
%2 = select i1 %success, { i1, { i32, i8* }, i32 } %1, { i1, { i32, i8* }, i32 } { i1 false, { i32, i8* } { i32 2, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @0, i32 0, i32 0) }, i32 poison }
store { i1, { i32, i8* }, i32 } %2, { i1, { i32, i8* }, i32 }* %"4_0", align 8
%"4_02" = load { i1, { i32, i8* }, i32 }, { i1, { i32, i8* }, i32 }* %"4_0", align 8
store { i1, { i32, i8* }, i32 } %"4_02", { i1, { i32, i8* }, i32 }* %"0", align 8
%"03" = load { i1, { i32, i8* }, i32 }, { i1, { i32, i8* }, i32 }* %"0", align 8
ret { i1, { i32, i8* }, i32 } %"03"
}