; ModuleID = 'sockex1_kern.bc' source_filename = "sockex1_kern.bc" target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-pc-linux-gnu" %struct.bpf_map_def = type { i32, i32, i32, i32, i32 } %struct.bpf_flow_keys = type { i64 } %struct.__sk_buff = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [5 x i32], i32, i32, i32, i32 } @my_map = global %struct.bpf_map_def { i32 2, i32 4, i32 8, i32 256, i32 0 }, section "maps", align 4, !dbg !0 @bpf_prog1.flow_mask_array = private unnamed_addr constant [2 x %struct.bpf_flow_keys] [%struct.bpf_flow_keys { i64 57005 }, %struct.bpf_flow_keys { i64 4444 }], align 16 @_license = global [4 x i8] c"GPL\00", section "license", align 1, !dbg !30 @llvm.used = appending global [3 x i8*] [i8* getelementptr inbounds ([4 x i8], [4 x i8]* @_license, i32 0, i32 0), i8* bitcast (i32 (%struct.__sk_buff*)* @bpf_prog1 to i8*), i8* bitcast (%struct.bpf_map_def* @my_map to i8*)], section "llvm.metadata" ; Function Attrs: nounwind uwtable define i32 @bpf_prog1(%struct.__sk_buff* %skb) #0 section "socket1" !dbg !34 { %index = alloca i32, align 4 %flow_mask_array = alloca [2 x %struct.bpf_flow_keys], align 16 tail call void @llvm.dbg.value(metadata %struct.__sk_buff* %skb, i64 0, metadata !64, metadata !76), !dbg !77 %1 = bitcast i32* %index to i8*, !dbg !78 call void @llvm.lifetime.start(i64 4, i8* %1) #4, !dbg !78 %2 = bitcast %struct.__sk_buff* %skb to i8*, !dbg !79 %3 = tail call i64 @llvm.bpf.load.byte(i8* %2, i64 23), !dbg !80 %4 = trunc i64 %3 to i32, !dbg !82 tail call void @llvm.dbg.value(metadata i32 %4, i64 0, metadata !65, metadata !76), !dbg !83 store i32 %4, i32* %index, align 4, !dbg !83, !tbaa !84 %5 = bitcast [2 x %struct.bpf_flow_keys]* %flow_mask_array to i8*, !dbg !88 call void @llvm.lifetime.start(i64 16, i8* %5) #4, !dbg !88 tail call void @llvm.dbg.declare(metadata [2 x %struct.bpf_flow_keys]* %flow_mask_array, metadata !69, metadata !76), !dbg !89 call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* bitcast ([2 x %struct.bpf_flow_keys]* @bpf_prog1.flow_mask_array to i8*), i64 16, i32 16, i1 false), !dbg !90 %6 = getelementptr inbounds %struct.__sk_buff, %struct.__sk_buff* %skb, i64 0, i32 1, !dbg !91 %7 = load i32, i32* %6, align 4, !dbg !91, !tbaa !93 %8 = icmp eq i32 %7, 4, !dbg !95 br i1 %8, label %9, label %13, !dbg !96 ;