Aboudek/ASM_TO_LLVM_V2
0
1; ModuleID = 'tg/extr_loop.c_write_dc.c'2source_filename = "tg/extr_loop.c_write_dc.c"3target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"4target triple = "x86_64-unknown-linux-gnu"5 6%struct.tgl_dc = type { i32, i32, ptr, ptr }7%struct.TYPE_2__ = type { i32, ptr }8 9@TGLDCF_LOGGED_IN = dso_local global i32 0, align 410 11; Function Attrs: noinline nounwind optnone uwtable12define dso_local void @write_dc(ptr noundef %0, ptr noundef %1) #0 {13 %3 = alloca ptr, align 814 %4 = alloca ptr, align 815 %5 = alloca i32, align 416 %6 = alloca i32, align 417 %7 = alloca i32, align 418 %8 = alloca i32, align 419 store ptr %0, ptr %3, align 820 store ptr %1, ptr %4, align 821 %9 = load ptr, ptr %4, align 822 %10 = load i32, ptr %9, align 423 store i32 %10, ptr %5, align 424 %11 = load ptr, ptr %3, align 825 %12 = icmp ne ptr %11, null26 br i1 %12, label %19, label %1327 2813: ; preds = %229 store i32 0, ptr %6, align 430 %14 = load i32, ptr %5, align 431 %15 = call i32 @write(i32 noundef %14, ptr noundef %6, i32 noundef 4)32 %16 = icmp eq i32 %15, 433 %17 = zext i1 %16 to i3234 %18 = call i32 @assert(i32 noundef %17)35 br label %8536 3719: ; preds = %238 store i32 1, ptr %7, align 439 %20 = load i32, ptr %5, align 440 %21 = call i32 @write(i32 noundef %20, ptr noundef %7, i32 noundef 4)41 %22 = icmp eq i32 %21, 442 %23 = zext i1 %22 to i3243 %24 = call i32 @assert(i32 noundef %23)44 br label %2545 4625: ; preds = %1947 %26 = load ptr, ptr %3, align 848 %27 = getelementptr inbounds %struct.tgl_dc, ptr %26, i32 0, i32 049 %28 = load i32, ptr %27, align 850 %29 = load i32, ptr @TGLDCF_LOGGED_IN, align 451 %30 = and i32 %28, %2952 %31 = call i32 @assert(i32 noundef %30)53 %32 = load i32, ptr %5, align 454 %33 = load ptr, ptr %3, align 855 %34 = getelementptr inbounds %struct.tgl_dc, ptr %33, i32 0, i32 356 %35 = load ptr, ptr %34, align 857 %36 = getelementptr inbounds ptr, ptr %35, i64 058 %37 = load ptr, ptr %36, align 859 %38 = getelementptr inbounds %struct.TYPE_2__, ptr %37, i32 0, i32 060 %39 = call i32 @write(i32 noundef %32, ptr noundef %38, i32 noundef 4)61 %40 = icmp eq i32 %39, 462 %41 = zext i1 %40 to i3263 %42 = call i32 @assert(i32 noundef %41)64 %43 = load ptr, ptr %3, align 865 %44 = getelementptr inbounds %struct.tgl_dc, ptr %43, i32 0, i32 366 %45 = load ptr, ptr %44, align 867 %46 = getelementptr inbounds ptr, ptr %45, i64 068 %47 = load ptr, ptr %46, align 869 %48 = getelementptr inbounds %struct.TYPE_2__, ptr %47, i32 0, i32 170 %49 = load ptr, ptr %48, align 871 %50 = call i32 @strlen(ptr noundef %49)72 store i32 %50, ptr %8, align 473 %51 = load i32, ptr %5, align 474 %52 = call i32 @write(i32 noundef %51, ptr noundef %8, i32 noundef 4)75 %53 = icmp eq i32 %52, 476 %54 = zext i1 %53 to i3277 %55 = call i32 @assert(i32 noundef %54)78 %56 = load i32, ptr %5, align 479 %57 = load ptr, ptr %3, align 880 %58 = getelementptr inbounds %struct.tgl_dc, ptr %57, i32 0, i32 381 %59 = load ptr, ptr %58, align 882 %60 = getelementptr inbounds ptr, ptr %59, i64 083 %61 = load ptr, ptr %60, align 884 %62 = getelementptr inbounds %struct.TYPE_2__, ptr %61, i32 0, i32 185 %63 = load ptr, ptr %62, align 886 %64 = load i32, ptr %8, align 487 %65 = call i32 @write(i32 noundef %56, ptr noundef %63, i32 noundef %64)88 %66 = load i32, ptr %8, align 489 %67 = icmp eq i32 %65, %6690 %68 = zext i1 %67 to i3291 %69 = call i32 @assert(i32 noundef %68)92 %70 = load i32, ptr %5, align 493 %71 = load ptr, ptr %3, align 894 %72 = getelementptr inbounds %struct.tgl_dc, ptr %71, i32 0, i32 195 %73 = call i32 @write(i32 noundef %70, ptr noundef %72, i32 noundef 8)96 %74 = icmp eq i32 %73, 897 %75 = zext i1 %74 to i3298 %76 = call i32 @assert(i32 noundef %75)99 %77 = load i32, ptr %5, align 4100 %78 = load ptr, ptr %3, align 8101 %79 = getelementptr inbounds %struct.tgl_dc, ptr %78, i32 0, i32 2102 %80 = load ptr, ptr %79, align 8103 %81 = call i32 @write(i32 noundef %77, ptr noundef %80, i32 noundef 256)104 %82 = icmp eq i32 %81, 256105 %83 = zext i1 %82 to i32106 %84 = call i32 @assert(i32 noundef %83)107 br label %85108 10985: ; preds = %25, %13110 ret void111}112 113declare i32 @assert(i32 noundef) #1114 115declare i32 @write(i32 noundef, ptr noundef, i32 noundef) #1116 117declare i32 @strlen(ptr noundef) #1118 119attributes #0 = { noinline nounwind optnone uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }120attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }121 122!llvm.module.flags = !{!0, !1, !2, !3, !4}123!llvm.ident = !{!5}124 125!0 = !{i32 1, !"wchar_size", i32 4}126!1 = !{i32 7, !"PIC Level", i32 2}127!2 = !{i32 7, !"PIE Level", i32 2}128!3 = !{i32 7, !"uwtable", i32 2}129!4 = !{i32 7, !"frame-pointer", i32 2}130!5 = !{!"clang version 15.0.3"}131 