---
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 (64)\00", align 1
define private { i1, { i32, i8* }, i64 } @_hl.main.1(double %0) {
alloca_block:
%"0" = alloca { i1, { i32, i8* }, i64 }, align 8
%"2_0" = alloca double, align 8
%"4_0" = alloca { i1, { i32, i8* }, i64 }, 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", 0x43F0000000000000
%within_lower_bound = fcmp ole double 0.000000e+00, %"2_01"
%success = and i1 %within_upper_bound, %within_lower_bound
%trunc_result = fptoui double %"2_01" to i64
%1 = insertvalue { i1, { i32, i8* }, i64 } { i1 true, { i32, i8* } poison, i64 poison }, i64 %trunc_result, 2
%2 = select i1 %success, { i1, { i32, i8* }, i64 } %1, { i1, { i32, i8* }, i64 } { i1 false, { i32, i8* } { i32 2, i8* getelementptr inbounds ([58 x i8], [58 x i8]* @0, i32 0, i32 0) }, i64 poison }
store { i1, { i32, i8* }, i64 } %2, { i1, { i32, i8* }, i64 }* %"4_0", align 8
%"4_02" = load { i1, { i32, i8* }, i64 }, { i1, { i32, i8* }, i64 }* %"4_0", align 8
store { i1, { i32, i8* }, i64 } %"4_02", { i1, { i32, i8* }, i64 }* %"0", align 8
%"03" = load { i1, { i32, i8* }, i64 }, { i1, { i32, i8* }, i64 }* %"0", align 8
ret { i1, { i32, i8* }, i64 } %"03"
}