; ModuleID = '/home/hakta/Documents/edge_detection/solution1/.autopilot/db/a.g.1.bc' target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" %"class.hls::stream.0" = type { float } @kernel = internal constant [9 x float] [float 0.000000e+00, float 1.000000e+00, float 0.000000e+00, float 1.000000e+00, float -4.000000e+00, float 1.000000e+00, float 0.000000e+00, float 1.000000e+00, float 0.000000e+00] ; [#uses=2 type=[9 x float]*] @convolve.str = internal unnamed_addr constant [9 x i8] c"convolve\00" ; [#uses=1 type=[9 x i8]*] @.str9 = private unnamed_addr constant [20 x i8] c"iterate_over_pixels\00", align 1 ; [#uses=1 type=[20 x i8]*] @.str8 = private unnamed_addr constant [10 x i8] c"init_crop\00", align 1 ; [#uses=1 type=[10 x i8]*] @.str7 = private unnamed_addr constant [9 x i8] c"COMPLETE\00", align 1 ; [#uses=1 type=[9 x i8]*] @.str6 = private unnamed_addr constant [16 x i8] c"init_temp_array\00", align 1 ; [#uses=1 type=[16 x i8]*] @.str5 = private unnamed_addr constant [6 x i8] c"BLOCK\00", align 1 ; [#uses=1 type=[6 x i8]*] @.str4 = private unnamed_addr constant [19 x i8] c"push_to_temp_array\00", align 1 ; [#uses=1 type=[19 x i8]*] @.str3 = private unnamed_addr constant [20 x i8] c"shift_and_fill_crop\00", align 1 ; [#uses=1 type=[20 x i8]*] @.str2 = private unnamed_addr constant [17 x i8] c"multiply_and_add\00", align 1 ; [#uses=1 type=[17 x i8]*] @.str1 = private unnamed_addr constant [10 x i8] c"s_axilite\00", align 1 ; [#uses=1 type=[10 x i8]*] @.str = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 ; [#uses=1 type=[1 x i8]*] ; [#uses=44] declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone ; [#uses=4] declare void @llvm.dbg.declare(metadata, metadata) nounwind readnone ; [#uses=0] define void @convolve(%"class.hls::stream.0"* %in, %"class.hls::stream.0"* %out) nounwind uwtable { %tmp.30 = alloca float, align 4 ; [#uses=2 type=float*] %tmp.4 = alloca float, align 4 ; [#uses=2 type=float*] call void (...)* @_ssdm_op_SpecTopModule([9 x i8]* @convolve.str) nounwind %temp_array = alloca [1440 x float], align 16 ; [#uses=6 type=[1440 x float]*] %crop = alloca [9 x float], align 16 ; [#uses=7 type=[9 x float]*] call void @llvm.dbg.value(metadata !{%"class.hls::stream.0"* %in}, i64 0, metadata !118), !dbg !119 ; [debug line = 34:37] [debug variable = in] call void @llvm.dbg.value(metadata !{%"class.hls::stream.0"* %out}, i64 0, metadata !120), !dbg !121 ; [debug line = 34:64] [debug variable = out] call void (...)* @_ssdm_op_SpecInterface(i32 0, i8* getelementptr inbounds ([10 x i8]* @.str1, i64 0, i64 0), i32 0, i32 0, i8* getelementptr inbounds ([1 x i8]* @.str, i64 0, i64 0), i32 0, i32 32, i8* getelementptr inbounds ([1 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8]* @.str, i64 0, i64 0), i32 0, i32 0, i32 0, i32 0, i8* getelementptr inbounds ([1 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([1 x i8]* @.str, i64 0, i64 0)) nounwind, !dbg !122 ; [debug line = 35:1] call void @llvm.dbg.declare(metadata !{[1440 x float]* %temp_array}, metadata !124), !dbg !128 ; [debug line = 35:10] [debug variable = temp_array] %temp_array.assign = getelementptr inbounds [1440 x float]* %temp_array, i64 0, i64 0, !dbg !129 ; [#uses=1 type=float*] [debug line = 36:1] call void (...)* @_ssdm_SpecArrayPartition(float* %temp_array.assign, i32 1, i8* getelementptr inbounds ([6 x i8]* @.str5, i64 0, i64 0), i32 2, i8* getelementptr inbounds ([1 x i8]* @.str, i64 0, i64 0)) nounwind, !dbg !129 ; [debug line = 36:1] br label %1, !dbg !130 ; [debug line = 36:32] ;