123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584 |
- ; ModuleID = 'data/projectB.c'
- source_filename = "data/projectB.c"
- target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
- target triple = "x86_64-pc-linux-gnu"
- @cache = internal global [100 x i32] zeroinitializer, align 16
- @__const.projectB_main.str = private unnamed_addr constant [14 x i8] c"Hello, World!\00", align 1
- @__const.projectB_main.arr = private unnamed_addr constant [8 x i32] [i32 10, i32 22, i32 9, i32 33, i32 21, i32 50, i32 41, i32 60], align 16
- @__const.projectB_main.matrix = private unnamed_addr constant <{ <{ i32, i32, i32, [97 x i32] }>, <{ i32, i32, i32, [97 x i32] }>, <{ i32, i32, i32, [97 x i32] }>, [97 x <{ i32, i32, i32, [97 x i32] }>] }> <{ <{ i32, i32, i32, [97 x i32] }> <{ i32 1, i32 2, i32 3, [97 x i32] zeroinitializer }>, <{ i32, i32, i32, [97 x i32] }> <{ i32 4, i32 5, i32 6, [97 x i32] zeroinitializer }>, <{ i32, i32, i32, [97 x i32] }> <{ i32 7, i32 8, i32 9, [97 x i32] zeroinitializer }>, [97 x <{ i32, i32, i32, [97 x i32] }>] zeroinitializer }>, align 16
- ; Function Attrs: noinline nounwind optnone uwtable
- define dso_local void @reverseString(i8* %0) #0 {
- %2 = alloca i8*, align 8
- %3 = alloca i32, align 4
- %4 = alloca i32, align 4
- %5 = alloca i8, align 1
- store i8* %0, i8** %2, align 8
- %6 = load i8*, i8** %2, align 8
- %7 = call i64 @strlen(i8* %6) #3
- %8 = trunc i64 %7 to i32
- store i32 %8, i32* %3, align 4
- store i32 0, i32* %4, align 4
- br label %9
- 9: ; preds = %40, %1
- %10 = load i32, i32* %4, align 4
- %11 = load i32, i32* %3, align 4
- %12 = sdiv i32 %11, 2
- %13 = icmp slt i32 %10, %12
- br i1 %13, label %14, label %43
- 14: ; preds = %9
- %15 = load i8*, i8** %2, align 8
- %16 = load i32, i32* %4, align 4
- %17 = sext i32 %16 to i64
- %18 = getelementptr inbounds i8, i8* %15, i64 %17
- %19 = load i8, i8* %18, align 1
- store i8 %19, i8* %5, align 1
- %20 = load i8*, i8** %2, align 8
- %21 = load i32, i32* %3, align 4
- %22 = sub nsw i32 %21, 1
- %23 = load i32, i32* %4, align 4
- %24 = sub nsw i32 %22, %23
- %25 = sext i32 %24 to i64
- %26 = getelementptr inbounds i8, i8* %20, i64 %25
- %27 = load i8, i8* %26, align 1
- %28 = load i8*, i8** %2, align 8
- %29 = load i32, i32* %4, align 4
- %30 = sext i32 %29 to i64
- %31 = getelementptr inbounds i8, i8* %28, i64 %30
- store i8 %27, i8* %31, align 1
- %32 = load i8, i8* %5, align 1
- %33 = load i8*, i8** %2, align 8
- %34 = load i32, i32* %3, align 4
- %35 = sub nsw i32 %34, 1
- %36 = load i32, i32* %4, align 4
- %37 = sub nsw i32 %35, %36
- %38 = sext i32 %37 to i64
- %39 = getelementptr inbounds i8, i8* %33, i64 %38
- store i8 %32, i8* %39, align 1
- br label %40
- 40: ; preds = %14
- %41 = load i32, i32* %4, align 4
- %42 = add nsw i32 %41, 1
- store i32 %42, i32* %4, align 4
- br label %9
- 43: ; preds = %9
- ret void
- }
- ; Function Attrs: nounwind readonly
- declare dso_local i64 @strlen(i8*) #1
- ; Function Attrs: noinline nounwind optnone uwtable
- define dso_local i32 @longestIncreasingSubsequence(i32* %0, i32 %1) #0 {
- %3 = alloca i32*, align 8
- %4 = alloca i32, align 4
- %5 = alloca [100 x i32], align 16
- %6 = alloca i32, align 4
- %7 = alloca i32, align 4
- %8 = alloca i32, align 4
- %9 = alloca i32, align 4
- %10 = alloca i32, align 4
- store i32* %0, i32** %3, align 8
- store i32 %1, i32* %4, align 4
- store i32 0, i32* %6, align 4
- br label %11
- 11: ; preds = %19, %2
- %12 = load i32, i32* %6, align 4
- %13 = load i32, i32* %4, align 4
- %14 = icmp slt i32 %12, %13
- br i1 %14, label %15, label %22
- 15: ; preds = %11
- %16 = load i32, i32* %6, align 4
- %17 = sext i32 %16 to i64
- %18 = getelementptr inbounds [100 x i32], [100 x i32]* %5, i64 0, i64 %17
- store i32 1, i32* %18, align 4
- br label %19
- 19: ; preds = %15
- %20 = load i32, i32* %6, align 4
- %21 = add nsw i32 %20, 1
- store i32 %21, i32* %6, align 4
- br label %11
- 22: ; preds = %11
- store i32 1, i32* %7, align 4
- br label %23
- 23: ; preds = %69, %22
- %24 = load i32, i32* %7, align 4
- %25 = load i32, i32* %4, align 4
- %26 = icmp slt i32 %24, %25
- br i1 %26, label %27, label %72
- 27: ; preds = %23
- store i32 0, i32* %8, align 4
- br label %28
- 28: ; preds = %65, %27
- %29 = load i32, i32* %8, align 4
- %30 = load i32, i32* %7, align 4
- %31 = icmp slt i32 %29, %30
- br i1 %31, label %32, label %68
- 32: ; preds = %28
- %33 = load i32*, i32** %3, align 8
- %34 = load i32, i32* %7, align 4
- %35 = sext i32 %34 to i64
- %36 = getelementptr inbounds i32, i32* %33, i64 %35
- %37 = load i32, i32* %36, align 4
- %38 = load i32*, i32** %3, align 8
- %39 = load i32, i32* %8, align 4
- %40 = sext i32 %39 to i64
- %41 = getelementptr inbounds i32, i32* %38, i64 %40
- %42 = load i32, i32* %41, align 4
- %43 = icmp sgt i32 %37, %42
- br i1 %43, label %44, label %64
- 44: ; preds = %32
- %45 = load i32, i32* %7, align 4
- %46 = sext i32 %45 to i64
- %47 = getelementptr inbounds [100 x i32], [100 x i32]* %5, i64 0, i64 %46
- %48 = load i32, i32* %47, align 4
- %49 = load i32, i32* %8, align 4
- %50 = sext i32 %49 to i64
- %51 = getelementptr inbounds [100 x i32], [100 x i32]* %5, i64 0, i64 %50
- %52 = load i32, i32* %51, align 4
- %53 = add nsw i32 %52, 1
- %54 = icmp slt i32 %48, %53
- br i1 %54, label %55, label %64
- 55: ; preds = %44
- %56 = load i32, i32* %8, align 4
- %57 = sext i32 %56 to i64
- %58 = getelementptr inbounds [100 x i32], [100 x i32]* %5, i64 0, i64 %57
- %59 = load i32, i32* %58, align 4
- %60 = add nsw i32 %59, 1
- %61 = load i32, i32* %7, align 4
- %62 = sext i32 %61 to i64
- %63 = getelementptr inbounds [100 x i32], [100 x i32]* %5, i64 0, i64 %62
- store i32 %60, i32* %63, align 4
- br label %64
- 64: ; preds = %55, %44, %32
- br label %65
- 65: ; preds = %64
- %66 = load i32, i32* %8, align 4
- %67 = add nsw i32 %66, 1
- store i32 %67, i32* %8, align 4
- br label %28
- 68: ; preds = %28
- br label %69
- 69: ; preds = %68
- %70 = load i32, i32* %7, align 4
- %71 = add nsw i32 %70, 1
- store i32 %71, i32* %7, align 4
- br label %23
- 72: ; preds = %23
- store i32 0, i32* %9, align 4
- store i32 0, i32* %10, align 4
- br label %73
- 73: ; preds = %90, %72
- %74 = load i32, i32* %10, align 4
- %75 = load i32, i32* %4, align 4
- %76 = icmp slt i32 %74, %75
- br i1 %76, label %77, label %93
- 77: ; preds = %73
- %78 = load i32, i32* %9, align 4
- %79 = load i32, i32* %10, align 4
- %80 = sext i32 %79 to i64
- %81 = getelementptr inbounds [100 x i32], [100 x i32]* %5, i64 0, i64 %80
- %82 = load i32, i32* %81, align 4
- %83 = icmp slt i32 %78, %82
- br i1 %83, label %84, label %89
- 84: ; preds = %77
- %85 = load i32, i32* %10, align 4
- %86 = sext i32 %85 to i64
- %87 = getelementptr inbounds [100 x i32], [100 x i32]* %5, i64 0, i64 %86
- %88 = load i32, i32* %87, align 4
- store i32 %88, i32* %9, align 4
- br label %89
- 89: ; preds = %84, %77
- br label %90
- 90: ; preds = %89
- %91 = load i32, i32* %10, align 4
- %92 = add nsw i32 %91, 1
- store i32 %92, i32* %10, align 4
- br label %73
- 93: ; preds = %73
- %94 = load i32, i32* %9, align 4
- ret i32 %94
- }
- ; Function Attrs: noinline nounwind optnone uwtable
- define dso_local i32 @testPoints(i32 %0) #0 {
- %2 = alloca i32, align 4
- %3 = alloca i32, align 4
- %4 = alloca i32, align 4
- %5 = alloca i32, align 4
- store i32 %0, i32* %3, align 4
- store i32 0, i32* %4, align 4
- store i32 1, i32* %5, align 4
- br label %6
- 6: ; preds = %16, %1
- %7 = load i32, i32* %5, align 4
- %8 = icmp slt i32 %7, 5
- br i1 %8, label %9, label %19
- 9: ; preds = %6
- %10 = load i32, i32* %4, align 4
- %11 = add nsw i32 %10, 1
- store i32 %11, i32* %4, align 4
- %12 = load i32, i32* %3, align 4
- %13 = icmp sgt i32 %12, 2
- br i1 %13, label %14, label %15
- 14: ; preds = %9
- store i32 23, i32* %2, align 4
- br label %21
- 15: ; preds = %9
- br label %16
- 16: ; preds = %15
- %17 = load i32, i32* %5, align 4
- %18 = add nsw i32 %17, 1
- store i32 %18, i32* %5, align 4
- br label %6
- 19: ; preds = %6
- %20 = load i32, i32* %4, align 4
- store i32 %20, i32* %2, align 4
- br label %21
- 21: ; preds = %19, %14
- %22 = load i32, i32* %2, align 4
- ret i32 %22
- }
- ; Function Attrs: noinline nounwind optnone uwtable
- define dso_local i32 @countSetBits(i32 %0) #0 {
- %2 = alloca i32, align 4
- %3 = alloca i32, align 4
- store i32 %0, i32* %2, align 4
- store i32 0, i32* %3, align 4
- br label %4
- 4: ; preds = %7, %1
- %5 = load i32, i32* %2, align 4
- %6 = icmp ne i32 %5, 0
- br i1 %6, label %7, label %14
- 7: ; preds = %4
- %8 = load i32, i32* %2, align 4
- %9 = and i32 %8, 1
- %10 = load i32, i32* %3, align 4
- %11 = add nsw i32 %10, %9
- store i32 %11, i32* %3, align 4
- %12 = load i32, i32* %2, align 4
- %13 = ashr i32 %12, 1
- store i32 %13, i32* %2, align 4
- br label %4
- 14: ; preds = %4
- %15 = load i32, i32* %3, align 4
- ret i32 %15
- }
- ; Function Attrs: noinline nounwind optnone uwtable
- define dso_local i32 @memoizedFib(i32 %0) #0 {
- %2 = alloca i32, align 4
- %3 = alloca i32, align 4
- store i32 %0, i32* %3, align 4
- %4 = load i32, i32* %3, align 4
- %5 = sext i32 %4 to i64
- %6 = getelementptr inbounds [100 x i32], [100 x i32]* @cache, i64 0, i64 %5
- %7 = load i32, i32* %6, align 4
- %8 = icmp ne i32 %7, -1
- br i1 %8, label %9, label %14
- 9: ; preds = %1
- %10 = load i32, i32* %3, align 4
- %11 = sext i32 %10 to i64
- %12 = getelementptr inbounds [100 x i32], [100 x i32]* @cache, i64 0, i64 %11
- %13 = load i32, i32* %12, align 4
- store i32 %13, i32* %2, align 4
- br label %34
- 14: ; preds = %1
- %15 = load i32, i32* %3, align 4
- %16 = icmp sle i32 %15, 1
- br i1 %16, label %17, label %19
- 17: ; preds = %14
- %18 = load i32, i32* %3, align 4
- store i32 %18, i32* %2, align 4
- br label %34
- 19: ; preds = %14
- %20 = load i32, i32* %3, align 4
- %21 = sub nsw i32 %20, 1
- %22 = call i32 @memoizedFib(i32 %21)
- %23 = load i32, i32* %3, align 4
- %24 = sub nsw i32 %23, 2
- %25 = call i32 @memoizedFib(i32 %24)
- %26 = add nsw i32 %22, %25
- %27 = load i32, i32* %3, align 4
- %28 = sext i32 %27 to i64
- %29 = getelementptr inbounds [100 x i32], [100 x i32]* @cache, i64 0, i64 %28
- store i32 %26, i32* %29, align 4
- %30 = load i32, i32* %3, align 4
- %31 = sext i32 %30 to i64
- %32 = getelementptr inbounds [100 x i32], [100 x i32]* @cache, i64 0, i64 %31
- %33 = load i32, i32* %32, align 4
- store i32 %33, i32* %2, align 4
- br label %34
- 34: ; preds = %19, %17, %9
- %35 = load i32, i32* %2, align 4
- ret i32 %35
- }
- ; Function Attrs: noinline nounwind optnone uwtable
- define dso_local i32 @processMatrix([100 x i32]* %0, i32 %1) #0 {
- %3 = alloca [100 x i32]*, align 8
- %4 = alloca i32, align 4
- %5 = alloca i32, align 4
- %6 = alloca i32, align 4
- %7 = alloca i32, align 4
- store [100 x i32]* %0, [100 x i32]** %3, align 8
- store i32 %1, i32* %4, align 4
- store i32 0, i32* %5, align 4
- store i32 0, i32* %6, align 4
- br label %8
- 8: ; preds = %77, %2
- %9 = load i32, i32* %6, align 4
- %10 = load i32, i32* %4, align 4
- %11 = icmp slt i32 %9, %10
- br i1 %11, label %12, label %80
- 12: ; preds = %8
- store i32 0, i32* %7, align 4
- br label %13
- 13: ; preds = %73, %12
- %14 = load i32, i32* %7, align 4
- %15 = load i32, i32* %4, align 4
- %16 = icmp slt i32 %14, %15
- br i1 %16, label %17, label %76
- 17: ; preds = %13
- %18 = load i32, i32* %6, align 4
- %19 = load i32, i32* %7, align 4
- %20 = icmp eq i32 %18, %19
- br i1 %20, label %21, label %55
- 21: ; preds = %17
- %22 = load [100 x i32]*, [100 x i32]** %3, align 8
- %23 = load i32, i32* %6, align 4
- %24 = sext i32 %23 to i64
- %25 = getelementptr inbounds [100 x i32], [100 x i32]* %22, i64 %24
- %26 = load i32, i32* %7, align 4
- %27 = sext i32 %26 to i64
- %28 = getelementptr inbounds [100 x i32], [100 x i32]* %25, i64 0, i64 %27
- %29 = load i32, i32* %28, align 4
- %30 = srem i32 %29, 2
- %31 = icmp eq i32 %30, 0
- br i1 %31, label %32, label %43
- 32: ; preds = %21
- %33 = load [100 x i32]*, [100 x i32]** %3, align 8
- %34 = load i32, i32* %6, align 4
- %35 = sext i32 %34 to i64
- %36 = getelementptr inbounds [100 x i32], [100 x i32]* %33, i64 %35
- %37 = load i32, i32* %7, align 4
- %38 = sext i32 %37 to i64
- %39 = getelementptr inbounds [100 x i32], [100 x i32]* %36, i64 0, i64 %38
- %40 = load i32, i32* %39, align 4
- %41 = load i32, i32* %5, align 4
- %42 = add nsw i32 %41, %40
- store i32 %42, i32* %5, align 4
- br label %54
- 43: ; preds = %21
- %44 = load [100 x i32]*, [100 x i32]** %3, align 8
- %45 = load i32, i32* %6, align 4
- %46 = sext i32 %45 to i64
- %47 = getelementptr inbounds [100 x i32], [100 x i32]* %44, i64 %46
- %48 = load i32, i32* %7, align 4
- %49 = sext i32 %48 to i64
- %50 = getelementptr inbounds [100 x i32], [100 x i32]* %47, i64 0, i64 %49
- %51 = load i32, i32* %50, align 4
- %52 = load i32, i32* %5, align 4
- %53 = sub nsw i32 %52, %51
- store i32 %53, i32* %5, align 4
- br label %54
- 54: ; preds = %43, %32
- br label %72
- 55: ; preds = %17
- %56 = load i32, i32* %6, align 4
- %57 = load i32, i32* %7, align 4
- %58 = icmp slt i32 %56, %57
- br i1 %58, label %59, label %71
- 59: ; preds = %55
- %60 = load [100 x i32]*, [100 x i32]** %3, align 8
- %61 = load i32, i32* %6, align 4
- %62 = sext i32 %61 to i64
- %63 = getelementptr inbounds [100 x i32], [100 x i32]* %60, i64 %62
- %64 = load i32, i32* %7, align 4
- %65 = sext i32 %64 to i64
- %66 = getelementptr inbounds [100 x i32], [100 x i32]* %63, i64 0, i64 %65
- %67 = load i32, i32* %66, align 4
- %68 = call i32 @countSetBits(i32 %67)
- %69 = load i32, i32* %5, align 4
- %70 = add nsw i32 %69, %68
- store i32 %70, i32* %5, align 4
- br label %71
- 71: ; preds = %59, %55
- br label %72
- 72: ; preds = %71, %54
- br label %73
- 73: ; preds = %72
- %74 = load i32, i32* %7, align 4
- %75 = add nsw i32 %74, 1
- store i32 %75, i32* %7, align 4
- br label %13
- 76: ; preds = %13
- br label %77
- 77: ; preds = %76
- %78 = load i32, i32* %6, align 4
- %79 = add nsw i32 %78, 1
- store i32 %79, i32* %6, align 4
- br label %8
- 80: ; preds = %8
- %81 = load i32, i32* %5, align 4
- ret i32 %81
- }
- ; Function Attrs: noinline nounwind optnone uwtable
- define dso_local i32 @projectB_main() #0 {
- %1 = alloca [14 x i8], align 1
- %2 = alloca [8 x i32], align 16
- %3 = alloca i32, align 4
- %4 = alloca i32, align 4
- %5 = alloca [100 x [100 x i32]], align 16
- %6 = alloca i32, align 4
- %7 = alloca i32, align 4
- %8 = alloca i32, align 4
- %9 = call i32 @testPoints(i32 5)
- call void @llvm.memset.p0i8.i64(i8* align 16 bitcast ([100 x i32]* @cache to i8*), i8 -1, i64 400, i1 false)
- %10 = bitcast [14 x i8]* %1 to i8*
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %10, i8* align 1 getelementptr inbounds ([14 x i8], [14 x i8]* @__const.projectB_main.str, i32 0, i32 0), i64 14, i1 false)
- %11 = getelementptr inbounds [14 x i8], [14 x i8]* %1, i64 0, i64 0
- call void @reverseString(i8* %11)
- %12 = bitcast [8 x i32]* %2 to i8*
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %12, i8* align 16 bitcast ([8 x i32]* @__const.projectB_main.arr to i8*), i64 32, i1 false)
- store i32 8, i32* %3, align 4
- %13 = getelementptr inbounds [8 x i32], [8 x i32]* %2, i64 0, i64 0
- %14 = load i32, i32* %3, align 4
- %15 = call i32 @longestIncreasingSubsequence(i32* %13, i32 %14)
- store i32 %15, i32* %4, align 4
- %16 = bitcast [100 x [100 x i32]]* %5 to i8*
- call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %16, i8* align 16 bitcast (<{ <{ i32, i32, i32, [97 x i32] }>, <{ i32, i32, i32, [97 x i32] }>, <{ i32, i32, i32, [97 x i32] }>, [97 x <{ i32, i32, i32, [97 x i32] }>] }>* @__const.projectB_main.matrix to i8*), i64 40000, i1 false)
- %17 = getelementptr inbounds [100 x [100 x i32]], [100 x [100 x i32]]* %5, i64 0, i64 0
- %18 = call i32 @processMatrix([100 x i32]* %17, i32 3)
- store i32 %18, i32* %6, align 4
- store i32 0, i32* %7, align 4
- br label %19
- 19: ; preds = %24, %0
- %20 = load i32, i32* %7, align 4
- %21 = call i32 @memoizedFib(i32 %20)
- %22 = load i32, i32* %7, align 4
- %23 = add nsw i32 %22, 1
- store i32 %23, i32* %7, align 4
- br label %24
- 24: ; preds = %19
- %25 = load i32, i32* %7, align 4
- %26 = icmp slt i32 %25, 10
- br i1 %26, label %19, label %27
- 27: ; preds = %24
- %28 = load i32, i32* %4, align 4
- %29 = icmp sgt i32 %28, 5
- br i1 %29, label %30, label %40
- 30: ; preds = %27
- %31 = load i32, i32* %6, align 4
- %32 = icmp sgt i32 %31, 0
- br i1 %32, label %33, label %36
- 33: ; preds = %30
- %34 = load i32, i32* %4, align 4
- %35 = call i32 @memoizedFib(i32 %34)
- store i32 %35, i32* %8, align 4
- br label %39
- 36: ; preds = %30
- %37 = load i32, i32* %6, align 4
- %38 = call i32 @countSetBits(i32 %37)
- store i32 %38, i32* %8, align 4
- br label %39
- 39: ; preds = %36, %33
- br label %47
- 40: ; preds = %27
- %41 = getelementptr inbounds [14 x i8], [14 x i8]* %1, i64 0, i64 0
- %42 = call i64 @strlen(i8* %41) #3
- %43 = load i32, i32* %6, align 4
- %44 = sext i32 %43 to i64
- %45 = add i64 %42, %44
- %46 = trunc i64 %45 to i32
- store i32 %46, i32* %8, align 4
- br label %47
- 47: ; preds = %40, %39
- %48 = load i32, i32* %8, align 4
- ret i32 %48
- }
- ; Function Attrs: argmemonly nounwind willreturn
- declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #2
- ; Function Attrs: argmemonly nounwind willreturn
- declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #2
- attributes #0 = { noinline nounwind optnone uwtable "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
- attributes #1 = { nounwind readonly "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-float"="false" }
- attributes #2 = { argmemonly nounwind willreturn }
- attributes #3 = { nounwind readonly }
- !llvm.module.flags = !{!0}
- !llvm.ident = !{!1}
- !0 = !{i32 1, !"wchar_size", i32 4}
- !1 = !{!"clang version 10.0.0-4ubuntu1 "}
|