; LLVM IR from tezc/sc :: buffer (buf_test)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.sc_buf = type { ptr, i64, i64, i64, i64, i32, i8 }

@.str = external hidden unnamed_addr constant [16 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [59 x i8], align 1
@__PRETTY_FUNCTION__.test1 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [35 x i8], align 1
@__const.test1.tmp = external hidden unnamed_addr constant [113 x i8], align 16
@.str.49 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [47 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @test1() #0 {
  %1 = alloca ptr, align 8
  %2 = alloca %struct.sc_buf, align 8
  %3 = alloca %struct.sc_buf, align 8
  %4 = alloca double, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca [113 x i8], align 16
  %8 = alloca [128 x i8], align 16
  %9 = alloca %struct.sc_buf, align 8
  %10 = alloca %struct.sc_buf, align 8
  %11 = alloca %struct.sc_buf, align 8
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca [128 x i8], align 16
  %15 = alloca i32, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %1) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %2) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %3) #8
  %16 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  %17 = getelementptr inbounds %struct.sc_buf, ptr %2, i32 0, i32 0
  %18 = load ptr, ptr %17, align 8, !tbaa !5
  %19 = icmp ne ptr %18, null
  br i1 %19, label %20, label %21

20:                                               ; preds = %0
  br label %22

21:                                               ; preds = %0
  call void @__assert_fail(ptr noundef @.str, ptr noundef @.str.1, i32 noundef 13, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

22:                                               ; preds = %20
  call void @sc_buf_term(ptr noundef %2)
  %23 = call zeroext i1 @sc_buf_init(ptr noundef %3, i64 noundef 0)
  %24 = getelementptr inbounds %struct.sc_buf, ptr %2, i32 0, i32 0
  %25 = load ptr, ptr %24, align 8, !tbaa !5
  %26 = getelementptr inbounds %struct.sc_buf, ptr %3, i32 0, i32 0
  %27 = load ptr, ptr %26, align 8, !tbaa !5
  %28 = icmp eq ptr %25, %27
  br i1 %28, label %29, label %30

29:                                               ; preds = %22
  br label %31

30:                                               ; preds = %22
  call void @__assert_fail(ptr noundef @.str.2, ptr noundef @.str.1, i32 noundef 17, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

31:                                               ; preds = %29
  %32 = getelementptr inbounds %struct.sc_buf, ptr %2, i32 0, i32 2
  %33 = load i64, ptr %32, align 8, !tbaa !13
  %34 = getelementptr inbounds %struct.sc_buf, ptr %3, i32 0, i32 2
  %35 = load i64, ptr %34, align 8, !tbaa !13
  %36 = icmp eq i64 %33, %35
  br i1 %36, label %37, label %38

37:                                               ; preds = %31
  br label %39

38:                                               ; preds = %31
  call void @__assert_fail(ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 18, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

39:                                               ; preds = %37
  %40 = getelementptr inbounds %struct.sc_buf, ptr %2, i32 0, i32 4
  %41 = load i64, ptr %40, align 8, !tbaa !14
  %42 = getelementptr inbounds %struct.sc_buf, ptr %3, i32 0, i32 4
  %43 = load i64, ptr %42, align 8, !tbaa !14
  %44 = icmp eq i64 %41, %43
  br i1 %44, label %45, label %46

45:                                               ; preds = %39
  br label %47

46:                                               ; preds = %39
  call void @__assert_fail(ptr noundef @.str.4, ptr noundef @.str.1, i32 noundef 19, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

47:                                               ; preds = %45
  %48 = getelementptr inbounds %struct.sc_buf, ptr %2, i32 0, i32 3
  %49 = load i64, ptr %48, align 8, !tbaa !15
  %50 = getelementptr inbounds %struct.sc_buf, ptr %3, i32 0, i32 3
  %51 = load i64, ptr %50, align 8, !tbaa !15
  %52 = icmp eq i64 %49, %51
  br i1 %52, label %53, label %54

53:                                               ; preds = %47
  br label %55

54:                                               ; preds = %47
  call void @__assert_fail(ptr noundef @.str.5, ptr noundef @.str.1, i32 noundef 20, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

55:                                               ; preds = %53
  %56 = getelementptr inbounds %struct.sc_buf, ptr %2, i32 0, i32 6
  %57 = load i8, ptr %56, align 4, !tbaa !16, !range !17, !noundef !18
  %58 = trunc i8 %57 to i1
  %59 = zext i1 %58 to i32
  %60 = getelementptr inbounds %struct.sc_buf, ptr %3, i32 0, i32 6
  %61 = load i8, ptr %60, align 4, !tbaa !16, !range !17, !noundef !18
  %62 = trunc i8 %61 to i1
  %63 = zext i1 %62 to i32
  %64 = icmp eq i32 %59, %63
  br i1 %64, label %65, label %66

65:                                               ; preds = %55
  br label %67

66:                                               ; preds = %55
  call void @__assert_fail(ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 21, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

67:                                               ; preds = %65
  %68 = getelementptr inbounds %struct.sc_buf, ptr %2, i32 0, i32 1
  %69 = load i64, ptr %68, align 8, !tbaa !19
  %70 = getelementptr inbounds %struct.sc_buf, ptr %3, i32 0, i32 1
  %71 = load i64, ptr %70, align 8, !tbaa !19
  %72 = icmp eq i64 %69, %71
  br i1 %72, label %73, label %74

73:                                               ; preds = %67
  br label %75

74:                                               ; preds = %67
  call void @__assert_fail(ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 22, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

75:                                               ; preds = %73
  %76 = getelementptr inbounds %struct.sc_buf, ptr %2, i32 0, i32 5
  %77 = load i32, ptr %76, align 8, !tbaa !20
  %78 = getelementptr inbounds %struct.sc_buf, ptr %3, i32 0, i32 5
  %79 = load i32, ptr %78, align 8, !tbaa !20
  %80 = icmp eq i32 %77, %79
  br i1 %80, label %81, label %82

81:                                               ; preds = %75
  br label %83

82:                                               ; preds = %75
  call void @__assert_fail(ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 23, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

83:                                               ; preds = %81
  call void @sc_buf_term(ptr noundef %3)
  call void @sc_buf_put_64(ptr noundef %2, i64 noundef 100)
  %84 = call i64 @sc_buf_get_64(ptr noundef %2)
  %85 = icmp eq i64 %84, 100
  br i1 %85, label %86, label %87

86:                                               ; preds = %83
  br label %88

87:                                               ; preds = %83
  call void @__assert_fail(ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 27, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

88:                                               ; preds = %86
  call void @sc_buf_put_raw(ptr noundef %2, ptr noundef null, i64 noundef 0)
  %89 = call i64 @sc_buf_size(ptr noundef %2)
  %90 = icmp eq i64 %89, 0
  br i1 %90, label %91, label %92

91:                                               ; preds = %88
  br label %93

92:                                               ; preds = %88
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 29, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

93:                                               ; preds = %91
  call void @sc_buf_term(ptr noundef %2)
  %94 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  call void @sc_buf_set_rpos(ptr noundef %2, i64 noundef 1)
  %95 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  %96 = zext i1 %95 to i32
  %97 = icmp eq i32 %96, 0
  br i1 %97, label %98, label %99

98:                                               ; preds = %93
  br label %100

99:                                               ; preds = %93
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 34, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

100:                                              ; preds = %98
  call void @sc_buf_clear(ptr noundef %2)
  %101 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  %102 = zext i1 %101 to i32
  %103 = icmp eq i32 %102, 1
  br i1 %103, label %104, label %105

104:                                              ; preds = %100
  br label %106

105:                                              ; preds = %100
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 36, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

106:                                              ; preds = %104
  call void @sc_buf_set_wpos(ptr noundef %2, i64 noundef 101)
  %107 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  %108 = zext i1 %107 to i32
  %109 = icmp eq i32 %108, 0
  br i1 %109, label %110, label %111

110:                                              ; preds = %106
  br label %112

111:                                              ; preds = %106
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 38, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

112:                                              ; preds = %110
  call void @sc_buf_term(ptr noundef %2)
  %113 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  call void @sc_buf_put_32(ptr noundef %2, i32 noundef 1000)
  %114 = call ptr @sc_buf_get_str(ptr noundef %2)
  %115 = icmp eq ptr %114, null
  br i1 %115, label %116, label %117

116:                                              ; preds = %112
  br label %118

117:                                              ; preds = %112
  call void @__assert_fail(ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 43, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

118:                                              ; preds = %116
  %119 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  %120 = zext i1 %119 to i32
  %121 = icmp eq i32 %120, 0
  br i1 %121, label %122, label %123

122:                                              ; preds = %118
  br label %124

123:                                              ; preds = %118
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 44, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

124:                                              ; preds = %122
  call void @sc_buf_term(ptr noundef %2)
  %125 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  %126 = call zeroext i1 @sc_buf_init(ptr noundef %3, i64 noundef 100)
  call void @sc_buf_put_str(ptr noundef %2, ptr noundef @.str.14)
  call void @sc_buf_move(ptr noundef %3, ptr noundef %2)
  %127 = call i64 @sc_buf_size(ptr noundef %2)
  %128 = icmp eq i64 %127, 0
  br i1 %128, label %129, label %130

129:                                              ; preds = %124
  br label %131

130:                                              ; preds = %124
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 51, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

131:                                              ; preds = %129
  call void @sc_buf_term(ptr noundef %2)
  call void @sc_buf_term(ptr noundef %3)
  %132 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  %133 = call zeroext i1 @sc_buf_init(ptr noundef %3, i64 noundef 3)
  call void @sc_buf_put_str(ptr noundef %2, ptr noundef @.str.14)
  call void @sc_buf_move(ptr noundef %3, ptr noundef %2)
  %134 = call i64 @sc_buf_size(ptr noundef %2)
  %135 = icmp ne i64 %134, 0
  br i1 %135, label %136, label %137

136:                                              ; preds = %131
  br label %138

137:                                              ; preds = %131
  call void @__assert_fail(ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 59, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

138:                                              ; preds = %136
  call void @sc_buf_term(ptr noundef %2)
  call void @sc_buf_term(ptr noundef %3)
  %139 = call zeroext i1 @sc_buf_init(ptr noundef %3, i64 noundef 100)
  %140 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  %141 = call i64 @sc_buf_bool_len(i1 noundef zeroext true)
  %142 = icmp eq i64 %141, 1
  br i1 %142, label %143, label %144

143:                                              ; preds = %138
  br label %145

144:                                              ; preds = %138
  call void @__assert_fail(ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 66, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

145:                                              ; preds = %143
  %146 = call i64 @sc_buf_8_len(i8 noundef zeroext 1)
  %147 = icmp eq i64 %146, 1
  br i1 %147, label %148, label %149

148:                                              ; preds = %145
  br label %150

149:                                              ; preds = %145
  call void @__assert_fail(ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 67, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

150:                                              ; preds = %148
  %151 = call i64 @sc_buf_16_len(i16 noundef zeroext 1)
  %152 = icmp eq i64 %151, 2
  br i1 %152, label %153, label %154

153:                                              ; preds = %150
  br label %155

154:                                              ; preds = %150
  call void @__assert_fail(ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 68, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

155:                                              ; preds = %153
  %156 = call i64 @sc_buf_32_len(i32 noundef 1)
  %157 = icmp eq i64 %156, 4
  br i1 %157, label %158, label %159

158:                                              ; preds = %155
  br label %160

159:                                              ; preds = %155
  call void @__assert_fail(ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 69, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

160:                                              ; preds = %158
  %161 = call i64 @sc_buf_64_len(i64 noundef 1)
  %162 = icmp eq i64 %161, 8
  br i1 %162, label %163, label %164

163:                                              ; preds = %160
  br label %165

164:                                              ; preds = %160
  call void @__assert_fail(ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 70, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

165:                                              ; preds = %163
  %166 = call i64 @sc_buf_double_len(double noundef 1.000000e+00)
  %167 = icmp eq i64 %166, 8
  br i1 %167, label %168, label %169

168:                                              ; preds = %165
  br label %170

169:                                              ; preds = %165
  call void @__assert_fail(ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 71, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

170:                                              ; preds = %168
  %171 = call i64 @sc_buf_str_len(ptr noundef @.str.22)
  %172 = icmp eq i64 %171, 13
  br i1 %172, label %173, label %174

173:                                              ; preds = %170
  br label %175

174:                                              ; preds = %170
  call void @__assert_fail(ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 72, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

175:                                              ; preds = %173
  %176 = call i64 @sc_buf_str_len(ptr noundef null)
  %177 = icmp eq i64 %176, 8
  br i1 %177, label %178, label %179

178:                                              ; preds = %175
  br label %180

179:                                              ; preds = %175
  call void @__assert_fail(ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 73, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

180:                                              ; preds = %178
  %181 = call i64 @sc_buf_blob_len(ptr noundef @.str.22, i64 noundef 4)
  %182 = icmp eq i64 %181, 12
  br i1 %182, label %183, label %184

183:                                              ; preds = %180
  br label %185

184:                                              ; preds = %180
  call void @__assert_fail(ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 74, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

185:                                              ; preds = %183
  call void @sc_buf_put_8(ptr noundef %2, i8 noundef zeroext 8)
  %186 = call zeroext i8 @sc_buf_get_8(ptr noundef %2)
  %187 = zext i8 %186 to i32
  %188 = icmp eq i32 %187, 8
  br i1 %188, label %189, label %190

189:                                              ; preds = %185
  br label %191

190:                                              ; preds = %185
  call void @__assert_fail(ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 77, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

191:                                              ; preds = %189
  call void @sc_buf_put_16(ptr noundef %2, i16 noundef zeroext -425)
  %192 = call zeroext i16 @sc_buf_get_16(ptr noundef %2)
  %193 = zext i16 %192 to i32
  %194 = icmp eq i32 %193, 65111
  br i1 %194, label %195, label %196

195:                                              ; preds = %191
  br label %197

196:                                              ; preds = %191
  call void @__assert_fail(ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 79, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

197:                                              ; preds = %195
  call void @sc_buf_put_32(ptr noundef %2, i32 noundef 2132132131)
  %198 = call i32 @sc_buf_get_32(ptr noundef %2)
  %199 = icmp eq i32 %198, 2132132131
  br i1 %199, label %200, label %201

200:                                              ; preds = %197
  br label %202

201:                                              ; preds = %197
  call void @__assert_fail(ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 81, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

202:                                              ; preds = %200
  call void @sc_buf_put_64(ptr noundef %2, i64 noundef 2132132213122131)
  %203 = call i64 @sc_buf_get_64(ptr noundef %2)
  %204 = icmp eq i64 %203, 2132132213122131
  br i1 %204, label %205, label %206

205:                                              ; preds = %202
  br label %207

206:                                              ; preds = %202
  call void @__assert_fail(ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 83, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

207:                                              ; preds = %205
  call void @sc_buf_put_double(ptr noundef %2, double noundef 0x40FE14B52C52A412)
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #8
  %208 = call double @sc_buf_get_double(ptr noundef %2)
  store double %208, ptr %4, align 8, !tbaa !21
  %209 = load double, ptr %4, align 8, !tbaa !21
  %210 = fcmp oeq double %209, 0x40FE14B52C52A412
  br i1 %210, label %211, label %212

211:                                              ; preds = %207
  br label %213

212:                                              ; preds = %207
  call void @__assert_fail(ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 86, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

213:                                              ; preds = %211
  call void @sc_buf_put_str(ptr noundef %2, ptr noundef @.str.22)
  %214 = call ptr @sc_buf_get_str(ptr noundef %2)
  %215 = call i32 @strcmp(ptr noundef @.str.22, ptr noundef %214) #10
  %216 = icmp eq i32 %215, 0
  br i1 %216, label %217, label %218

217:                                              ; preds = %213
  br label %219

218:                                              ; preds = %213
  call void @__assert_fail(ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 88, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

219:                                              ; preds = %217
  call void @sc_buf_put_str(ptr noundef %2, ptr noundef null)
  %220 = call ptr @sc_buf_get_str(ptr noundef %2)
  %221 = icmp eq ptr %220, null
  br i1 %221, label %222, label %223

222:                                              ; preds = %219
  br label %224

223:                                              ; preds = %219
  call void @__assert_fail(ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 90, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

224:                                              ; preds = %222
  call void @sc_buf_clear(ptr noundef %2)
  %225 = call i64 @sc_buf_size(ptr noundef %2)
  %226 = icmp eq i64 %225, 0
  br i1 %226, label %227, label %228

227:                                              ; preds = %224
  br label %229

228:                                              ; preds = %224
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 92, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

229:                                              ; preds = %227
  %230 = call i64 @sc_buf_cap(ptr noundef %2)
  %231 = icmp eq i64 %230, 100
  br i1 %231, label %232, label %233

232:                                              ; preds = %229
  br label %234

233:                                              ; preds = %229
  call void @__assert_fail(ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 93, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

234:                                              ; preds = %232
  call void @sc_buf_compact(ptr noundef %2)
  call void (ptr, ptr, ...) @sc_buf_put_fmt(ptr noundef %2, ptr noundef @.str.33, i32 noundef 3)
  %235 = call ptr @sc_buf_get_str(ptr noundef %2)
  %236 = call i32 @strcmp(ptr noundef @.str.34, ptr noundef %235) #10
  %237 = icmp eq i32 %236, 0
  br i1 %237, label %238, label %239

238:                                              ; preds = %234
  br label %240

239:                                              ; preds = %234
  call void @__assert_fail(ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 96, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

240:                                              ; preds = %238
  call void @sc_buf_put_bool(ptr noundef %2, i1 noundef zeroext true)
  %241 = call zeroext i1 @sc_buf_get_bool(ptr noundef %2)
  %242 = zext i1 %241 to i32
  %243 = icmp eq i32 %242, 1
  br i1 %243, label %244, label %245

244:                                              ; preds = %240
  br label %246

245:                                              ; preds = %240
  call void @__assert_fail(ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 98, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

246:                                              ; preds = %244
  call void @sc_buf_put_bool(ptr noundef %2, i1 noundef zeroext false)
  %247 = call zeroext i1 @sc_buf_get_bool(ptr noundef %2)
  %248 = zext i1 %247 to i32
  %249 = icmp eq i32 %248, 0
  br i1 %249, label %250, label %251

250:                                              ; preds = %246
  br label %252

251:                                              ; preds = %246
  call void @__assert_fail(ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 100, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

252:                                              ; preds = %250
  call void @sc_buf_put_blob(ptr noundef %2, ptr noundef @.str.22, i64 noundef 5)
  %253 = call i64 @sc_buf_get_64(ptr noundef %2)
  %254 = call ptr @sc_buf_get_blob(ptr noundef %2, i64 noundef %253)
  %255 = call i32 @strcmp(ptr noundef @.str.22, ptr noundef %254) #10
  %256 = icmp eq i32 %255, 0
  br i1 %256, label %257, label %258

257:                                              ; preds = %252
  br label %259

258:                                              ; preds = %252
  call void @__assert_fail(ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 102, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

259:                                              ; preds = %257
  call void @sc_buf_clear(ptr noundef %2)
  call void @sc_buf_put_64(ptr noundef %2, i64 noundef 122)
  call void @sc_buf_put_64(ptr noundef %2, i64 noundef 133)
  %260 = call i64 @sc_buf_get_64(ptr noundef %2)
  %261 = call i64 @sc_buf_get_64(ptr noundef %2)
  %262 = icmp eq i64 %261, 133
  br i1 %262, label %263, label %264

263:                                              ; preds = %259
  br label %265

264:                                              ; preds = %259
  call void @__assert_fail(ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 108, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

265:                                              ; preds = %263
  call void @sc_buf_clear(ptr noundef %2)
  call void @sc_buf_put_32(ptr noundef %2, i32 noundef 122)
  call void @sc_buf_put_32(ptr noundef %2, i32 noundef 144)
  %266 = call i32 @sc_buf_get_32(ptr noundef %2)
  %267 = call i32 @sc_buf_get_32(ptr noundef %2)
  %268 = icmp eq i32 %267, 144
  br i1 %268, label %269, label %270

269:                                              ; preds = %265
  br label %271

270:                                              ; preds = %265
  call void @__assert_fail(ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 114, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

271:                                              ; preds = %269
  call void @sc_buf_clear(ptr noundef %2)
  call void @sc_buf_put_64(ptr noundef %2, i64 noundef 222)
  call void @sc_buf_mark_read(ptr noundef %2, i64 noundef 8)
  %272 = call i64 @sc_buf_size(ptr noundef %2)
  %273 = icmp eq i64 %272, 0
  br i1 %273, label %274, label %275

274:                                              ; preds = %271
  br label %276

275:                                              ; preds = %271
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 118, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

276:                                              ; preds = %274
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #8
  %277 = call ptr @sc_buf_wbuf(ptr noundef %2)
  store ptr %277, ptr %5, align 8, !tbaa !23
  %278 = load ptr, ptr %5, align 8, !tbaa !23
  store i8 99, ptr %278, align 1, !tbaa !24
  call void @sc_buf_mark_write(ptr noundef %2, i64 noundef 1)
  %279 = call zeroext i8 @sc_buf_get_8(ptr noundef %2)
  %280 = zext i8 %279 to i32
  %281 = icmp eq i32 %280, 99
  br i1 %281, label %282, label %283

282:                                              ; preds = %276
  br label %284

283:                                              ; preds = %276
  call void @__assert_fail(ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 122, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

284:                                              ; preds = %282
  call void @sc_buf_clear(ptr noundef %2)
  call void @sc_buf_clear(ptr noundef %2)
  call void @sc_buf_put_32(ptr noundef %2, i32 noundef 2323)
  call void @sc_buf_put_32(ptr noundef %2, i32 noundef 3311)
  call void @sc_buf_set_wpos(ptr noundef %2, i64 noundef 8)
  call void @sc_buf_set_rpos(ptr noundef %2, i64 noundef 4)
  %285 = call i32 @sc_buf_get_32(ptr noundef %2)
  %286 = icmp eq i32 %285, 3311
  br i1 %286, label %287, label %288

287:                                              ; preds = %284
  br label %289

288:                                              ; preds = %284
  call void @__assert_fail(ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 130, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

289:                                              ; preds = %287
  call void @sc_buf_clear(ptr noundef %2)
  call void @sc_buf_put_64(ptr noundef %2, i64 noundef -1)
  %290 = call i64 @sc_buf_get_64(ptr noundef %2)
  %291 = icmp eq i64 %290, -1
  br i1 %291, label %292, label %293

292:                                              ; preds = %289
  br label %294

293:                                              ; preds = %289
  call void @__assert_fail(ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 133, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

294:                                              ; preds = %292
  call void @sc_buf_put_64(ptr noundef %2, i64 noundef -1)
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #8
  %295 = call ptr @sc_buf_rbuf(ptr noundef %2)
  store ptr %295, ptr %6, align 8, !tbaa !23
  %296 = load ptr, ptr %6, align 8, !tbaa !23
  %297 = load i8, ptr %296, align 1, !tbaa !24
  %298 = zext i8 %297 to i32
  %299 = icmp eq i32 %298, 255
  br i1 %299, label %300, label %301

300:                                              ; preds = %294
  br label %302

301:                                              ; preds = %294
  call void @__assert_fail(ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 137, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

302:                                              ; preds = %300
  %303 = call i64 @sc_buf_wpos(ptr noundef %2)
  %304 = icmp eq i64 %303, 16
  br i1 %304, label %305, label %306

305:                                              ; preds = %302
  br label %307

306:                                              ; preds = %302
  call void @__assert_fail(ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 138, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

307:                                              ; preds = %305
  %308 = call i64 @sc_buf_quota(ptr noundef %2)
  %309 = icmp eq i64 %308, 84
  br i1 %309, label %310, label %311

310:                                              ; preds = %307
  br label %312

311:                                              ; preds = %307
  call void @__assert_fail(ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 139, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

312:                                              ; preds = %310
  %313 = call ptr @sc_buf_get_blob(ptr noundef %2, i64 noundef 0)
  %314 = icmp eq ptr %313, null
  br i1 %314, label %315, label %316

315:                                              ; preds = %312
  br label %317

316:                                              ; preds = %312
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 140, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

317:                                              ; preds = %315
  call void @sc_buf_move(ptr noundef %3, ptr noundef %2)
  %318 = call i64 @sc_buf_get_64(ptr noundef %3)
  %319 = icmp eq i64 %318, -1
  br i1 %319, label %320, label %321

320:                                              ; preds = %317
  br label %322

321:                                              ; preds = %317
  call void @__assert_fail(ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 143, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

322:                                              ; preds = %320
  %323 = call i64 @sc_buf_size(ptr noundef %2)
  %324 = icmp eq i64 %323, 0
  br i1 %324, label %325, label %326

325:                                              ; preds = %322
  br label %327

326:                                              ; preds = %322
  call void @__assert_fail(ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 144, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

327:                                              ; preds = %325
  call void @llvm.lifetime.start.p0(i64 113, ptr %7) #8
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %7, ptr align 16 @__const.test1.tmp, i64 113, i1 false)
  %328 = getelementptr inbounds [113 x i8], ptr %7, i64 0, i64 0
  call void @sc_buf_put_str(ptr noundef %2, ptr noundef %328)
  %329 = call ptr @sc_buf_get_str(ptr noundef %2)
  %330 = getelementptr inbounds [113 x i8], ptr %7, i64 0, i64 0
  %331 = call i32 @strcmp(ptr noundef %329, ptr noundef %330) #10
  %332 = icmp eq i32 %331, 0
  br i1 %332, label %333, label %334

333:                                              ; preds = %327
  br label %335

334:                                              ; preds = %327
  call void @__assert_fail(ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 149, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

335:                                              ; preds = %333
  call void @sc_buf_clear(ptr noundef %2)
  call void @sc_buf_put_8(ptr noundef %2, i8 noundef zeroext 120)
  call void @sc_buf_put_8(ptr noundef %2, i8 noundef zeroext 121)
  %336 = call ptr @sc_buf_at(ptr noundef %2, i64 noundef 1)
  %337 = load i8, ptr %336, align 1, !tbaa !24
  %338 = sext i8 %337 to i32
  %339 = icmp eq i32 %338, 121
  br i1 %339, label %340, label %341

340:                                              ; preds = %335
  br label %342

341:                                              ; preds = %335
  call void @__assert_fail(ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 153, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

342:                                              ; preds = %340
  call void @sc_buf_clear(ptr noundef %2)
  call void @sc_buf_put_64(ptr noundef %2, i64 noundef 444)
  call void @sc_buf_put_64(ptr noundef %2, i64 noundef 43)
  call void @sc_buf_mark_read(ptr noundef %2, i64 noundef 8)
  call void @sc_buf_compact(ptr noundef %2)
  %343 = call i64 @sc_buf_rpos(ptr noundef %2)
  %344 = icmp eq i64 %343, 0
  br i1 %344, label %345, label %346

345:                                              ; preds = %342
  br label %347

346:                                              ; preds = %342
  call void @__assert_fail(ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 160, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

347:                                              ; preds = %345
  %348 = call i64 @sc_buf_wpos(ptr noundef %2)
  %349 = icmp eq i64 %348, 8
  br i1 %349, label %350, label %351

350:                                              ; preds = %347
  br label %352

351:                                              ; preds = %347
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 161, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

352:                                              ; preds = %350
  %353 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  br i1 %353, label %354, label %355

354:                                              ; preds = %352
  br label %356

355:                                              ; preds = %352
  call void @__assert_fail(ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 162, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

356:                                              ; preds = %354
  call void @sc_buf_term(ptr noundef %2)
  %357 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  call void @sc_buf_limit(ptr noundef %2, i64 noundef 128)
  %358 = getelementptr inbounds [113 x i8], ptr %7, i64 0, i64 0
  call void @sc_buf_put_str(ptr noundef %2, ptr noundef %358)
  %359 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  %360 = zext i1 %359 to i32
  %361 = icmp eq i32 %360, 0
  br i1 %361, label %362, label %363

362:                                              ; preds = %356
  br label %364

363:                                              ; preds = %356
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 168, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

364:                                              ; preds = %362
  %365 = call i64 @sc_buf_get_64(ptr noundef %2)
  %366 = icmp eq i64 %365, 0
  br i1 %366, label %367, label %368

367:                                              ; preds = %364
  br label %369

368:                                              ; preds = %364
  call void @__assert_fail(ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 169, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

369:                                              ; preds = %367
  call void @sc_buf_term(ptr noundef %2)
  %370 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  call void @sc_buf_limit(ptr noundef %2, i64 noundef 128)
  %371 = getelementptr inbounds [113 x i8], ptr %7, i64 0, i64 0
  call void @sc_buf_put_str(ptr noundef %2, ptr noundef %371)
  %372 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  %373 = zext i1 %372 to i32
  %374 = icmp eq i32 %373, 0
  br i1 %374, label %375, label %376

375:                                              ; preds = %369
  br label %377

376:                                              ; preds = %369
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 175, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

377:                                              ; preds = %375
  %378 = call i32 @sc_buf_get_32(ptr noundef %2)
  %379 = icmp eq i32 %378, 0
  br i1 %379, label %380, label %381

380:                                              ; preds = %377
  br label %382

381:                                              ; preds = %377
  call void @__assert_fail(ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 176, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

382:                                              ; preds = %380
  call void @sc_buf_term(ptr noundef %2)
  %383 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  call void @sc_buf_limit(ptr noundef %2, i64 noundef 128)
  %384 = getelementptr inbounds [113 x i8], ptr %7, i64 0, i64 0
  call void @sc_buf_put_str(ptr noundef %2, ptr noundef %384)
  %385 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  %386 = zext i1 %385 to i32
  %387 = icmp eq i32 %386, 0
  br i1 %387, label %388, label %389

388:                                              ; preds = %382
  br label %390

389:                                              ; preds = %382
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 182, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

390:                                              ; preds = %388
  %391 = call zeroext i16 @sc_buf_get_16(ptr noundef %2)
  %392 = zext i16 %391 to i32
  %393 = icmp eq i32 %392, 0
  br i1 %393, label %394, label %395

394:                                              ; preds = %390
  br label %396

395:                                              ; preds = %390
  call void @__assert_fail(ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 183, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

396:                                              ; preds = %394
  call void @sc_buf_term(ptr noundef %2)
  %397 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  call void @sc_buf_put_64(ptr noundef %2, i64 noundef 1000)
  %398 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  %399 = zext i1 %398 to i32
  %400 = icmp eq i32 %399, 1
  br i1 %400, label %401, label %402

401:                                              ; preds = %396
  br label %403

402:                                              ; preds = %396
  call void @__assert_fail(ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 188, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

403:                                              ; preds = %401
  %404 = call ptr @sc_buf_get_str(ptr noundef %2)
  %405 = icmp eq ptr %404, null
  br i1 %405, label %406, label %407

406:                                              ; preds = %403
  br label %408

407:                                              ; preds = %403
  call void @__assert_fail(ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 189, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

408:                                              ; preds = %406
  call void @sc_buf_term(ptr noundef %2)
  %409 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  call void @sc_buf_limit(ptr noundef %2, i64 noundef 128)
  %410 = getelementptr inbounds [113 x i8], ptr %7, i64 0, i64 0
  call void @sc_buf_put_str(ptr noundef %2, ptr noundef %410)
  %411 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  %412 = zext i1 %411 to i32
  %413 = icmp eq i32 %412, 0
  br i1 %413, label %414, label %415

414:                                              ; preds = %408
  br label %416

415:                                              ; preds = %408
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 195, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

416:                                              ; preds = %414
  %417 = call zeroext i8 @sc_buf_get_8(ptr noundef %2)
  %418 = zext i8 %417 to i32
  %419 = icmp eq i32 %418, 0
  br i1 %419, label %420, label %421

420:                                              ; preds = %416
  br label %422

421:                                              ; preds = %416
  call void @__assert_fail(ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 196, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

422:                                              ; preds = %420
  call void @sc_buf_term(ptr noundef %2)
  %423 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  call void @sc_buf_limit(ptr noundef %2, i64 noundef 128)
  %424 = getelementptr inbounds [113 x i8], ptr %7, i64 0, i64 0
  call void @sc_buf_put_str(ptr noundef %2, ptr noundef %424)
  %425 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  %426 = zext i1 %425 to i32
  %427 = icmp eq i32 %426, 0
  br i1 %427, label %428, label %429

428:                                              ; preds = %422
  br label %430

429:                                              ; preds = %422
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 202, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

430:                                              ; preds = %428
  %431 = call double @sc_buf_get_double(ptr noundef %2)
  %432 = fcmp oeq double %431, 0.000000e+00
  br i1 %432, label %433, label %434

433:                                              ; preds = %430
  br label %435

434:                                              ; preds = %430
  call void @__assert_fail(ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 203, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

435:                                              ; preds = %433
  call void @sc_buf_term(ptr noundef %2)
  %436 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  call void @sc_buf_limit(ptr noundef %2, i64 noundef 128)
  %437 = getelementptr inbounds [113 x i8], ptr %7, i64 0, i64 0
  call void (ptr, ptr, ...) @sc_buf_put_fmt(ptr noundef %2, ptr noundef %437)
  %438 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  %439 = zext i1 %438 to i32
  %440 = icmp eq i32 %439, 0
  br i1 %440, label %441, label %442

441:                                              ; preds = %435
  br label %443

442:                                              ; preds = %435
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 209, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

443:                                              ; preds = %441
  %444 = call i64 @sc_buf_get_64(ptr noundef %2)
  %445 = icmp eq i64 %444, 0
  br i1 %445, label %446, label %447

446:                                              ; preds = %443
  br label %448

447:                                              ; preds = %443
  call void @__assert_fail(ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 210, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

448:                                              ; preds = %446
  call void @sc_buf_term(ptr noundef %2)
  call void @sc_buf_term(ptr noundef %3)
  call void @llvm.lifetime.start.p0(i64 128, ptr %8) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr %9) #8
  %449 = getelementptr inbounds [128 x i8], ptr %8, i64 0, i64 0
  call void @sc_buf_wrap(ptr dead_on_unwind writable sret(%struct.sc_buf) align 8 %9, ptr noundef %449, i64 noundef 128, i32 noundef 8)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2, ptr align 8 %9, i64 48, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 48, ptr %9) #8
  call void (ptr, ptr, ...) @sc_buf_put_text(ptr noundef %2, ptr noundef @.str.60, i32 noundef 1, ptr noundef @.str.22)
  %450 = call ptr @sc_buf_rbuf(ptr noundef %2)
  %451 = call i32 @strcmp(ptr noundef %450, ptr noundef @.str.61) #10
  %452 = icmp eq i32 %451, 0
  br i1 %452, label %453, label %454

453:                                              ; preds = %448
  br label %455

454:                                              ; preds = %448
  call void @__assert_fail(ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 217, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

455:                                              ; preds = %453
  call void @sc_buf_term(ptr noundef %2)
  call void @llvm.lifetime.start.p0(i64 48, ptr %10) #8
  %456 = getelementptr inbounds [128 x i8], ptr %8, i64 0, i64 0
  call void @sc_buf_wrap(ptr dead_on_unwind writable sret(%struct.sc_buf) align 8 %10, ptr noundef %456, i64 noundef 128, i32 noundef 8)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %2, ptr align 8 %10, i64 48, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 48, ptr %10) #8
  call void @sc_buf_put_str(ptr noundef %2, ptr noundef @.str.63)
  call void @sc_buf_put_str(ptr noundef %2, ptr noundef @.str.64)
  call void @llvm.lifetime.start.p0(i64 48, ptr %11) #8
  %457 = call ptr @sc_buf_rbuf(ptr noundef %2)
  %458 = call i64 @sc_buf_size(ptr noundef %2)
  call void @sc_buf_wrap(ptr dead_on_unwind writable sret(%struct.sc_buf) align 8 %11, ptr noundef %457, i64 noundef %458, i32 noundef 24)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %3, ptr align 8 %11, i64 48, i1 false), !tbaa.struct !25
  call void @llvm.lifetime.end.p0(i64 48, ptr %11) #8
  %459 = call i64 @sc_buf_size(ptr noundef %3)
  %460 = call i64 @sc_buf_size(ptr noundef %2)
  %461 = icmp eq i64 %459, %460
  br i1 %461, label %462, label %463

462:                                              ; preds = %455
  br label %464

463:                                              ; preds = %455
  call void @__assert_fail(ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 225, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

464:                                              ; preds = %462
  %465 = call ptr @sc_buf_get_str(ptr noundef %3)
  %466 = call i32 @strcmp(ptr noundef %465, ptr noundef @.str.63) #10
  %467 = icmp eq i32 %466, 0
  br i1 %467, label %468, label %469

468:                                              ; preds = %464
  br label %470

469:                                              ; preds = %464
  call void @__assert_fail(ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 226, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

470:                                              ; preds = %468
  %471 = call ptr @sc_buf_get_str(ptr noundef %3)
  %472 = call i32 @strcmp(ptr noundef %471, ptr noundef @.str.64) #10
  %473 = icmp eq i32 %472, 0
  br i1 %473, label %474, label %475

474:                                              ; preds = %470
  br label %476

475:                                              ; preds = %470
  call void @__assert_fail(ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 227, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

476:                                              ; preds = %474
  call void @sc_buf_term(ptr noundef %2)
  call void @sc_buf_term(ptr noundef %3)
  %477 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 1)
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  store i32 0, ptr %12, align 4, !tbaa !27
  br label %478

478:                                              ; preds = %484, %476
  %479 = load i32, ptr %12, align 4, !tbaa !27
  %480 = icmp slt i32 %479, 1000
  br i1 %480, label %482, label %481

481:                                              ; preds = %478
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %487

482:                                              ; preds = %478
  %483 = load i32, ptr %12, align 4, !tbaa !27
  call void (ptr, ptr, ...) @sc_buf_put_fmt(ptr noundef %2, ptr noundef @.str.68, i32 noundef %483)
  br label %484

484:                                              ; preds = %482
  %485 = load i32, ptr %12, align 4, !tbaa !27
  %486 = add nsw i32 %485, 1
  store i32 %486, ptr %12, align 4, !tbaa !27
  br label %478, !llvm.loop !29

487:                                              ; preds = %481
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  store i32 0, ptr %13, align 4, !tbaa !27
  br label %488

488:                                              ; preds = %504, %487
  %489 = load i32, ptr %13, align 4, !tbaa !27
  %490 = icmp slt i32 %489, 1000
  br i1 %490, label %492, label %491

491:                                              ; preds = %488
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %507

492:                                              ; preds = %488
  call void @llvm.lifetime.start.p0(i64 128, ptr %14) #8
  %493 = getelementptr inbounds [128 x i8], ptr %14, i64 0, i64 0
  %494 = load i32, ptr %13, align 4, !tbaa !27
  %495 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %493, i64 noundef 128, ptr noundef @.str.68, i32 noundef %494) #8
  %496 = call ptr @sc_buf_get_str(ptr noundef %2)
  store ptr %496, ptr %1, align 8, !tbaa !23
  %497 = load ptr, ptr %1, align 8, !tbaa !23
  %498 = getelementptr inbounds [128 x i8], ptr %14, i64 0, i64 0
  %499 = call i32 @strcmp(ptr noundef %497, ptr noundef %498) #10
  %500 = icmp eq i32 %499, 0
  br i1 %500, label %501, label %502

501:                                              ; preds = %492
  br label %503

502:                                              ; preds = %492
  call void @__assert_fail(ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 242, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

503:                                              ; preds = %501
  call void @llvm.lifetime.end.p0(i64 128, ptr %14) #8
  br label %504

504:                                              ; preds = %503
  %505 = load i32, ptr %13, align 4, !tbaa !27
  %506 = add nsw i32 %505, 1
  store i32 %506, ptr %13, align 4, !tbaa !27
  br label %488, !llvm.loop !31

507:                                              ; preds = %491
  %508 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  br i1 %508, label %509, label %510

509:                                              ; preds = %507
  br label %511

510:                                              ; preds = %507
  call void @__assert_fail(ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 245, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

511:                                              ; preds = %509
  call void @sc_buf_term(ptr noundef %2)
  %512 = call zeroext i1 @sc_buf_init(ptr noundef %2, i64 noundef 100)
  call void @sc_buf_limit(ptr noundef %2, i64 noundef 100000000)
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  store i32 0, ptr %15, align 4, !tbaa !27
  br label %513

513:                                              ; preds = %518, %511
  %514 = load i32, ptr %15, align 4, !tbaa !27
  %515 = icmp slt i32 %514, 1000000
  br i1 %515, label %517, label %516

516:                                              ; preds = %513
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %521

517:                                              ; preds = %513
  call void @sc_buf_put_str(ptr noundef %2, ptr noundef @.str.70)
  br label %518

518:                                              ; preds = %517
  %519 = load i32, ptr %15, align 4, !tbaa !27
  %520 = add nsw i32 %519, 1
  store i32 %520, ptr %15, align 4, !tbaa !27
  br label %513, !llvm.loop !32

521:                                              ; preds = %516
  %522 = call zeroext i1 @sc_buf_valid(ptr noundef %2)
  %523 = zext i1 %522 to i32
  %524 = icmp eq i32 %523, 0
  br i1 %524, label %525, label %526

525:                                              ; preds = %521
  br label %527

526:                                              ; preds = %521
  call void @__assert_fail(ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 256, ptr noundef @__PRETTY_FUNCTION__.test1) #9
  unreachable

527:                                              ; preds = %525
  call void @sc_buf_term(ptr noundef %2)
  call void @llvm.lifetime.end.p0(i64 128, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 113, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %3) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %2) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %1) #8
  ret void
}

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

declare zeroext i1 @sc_buf_init(ptr noundef, i64 noundef) #2

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #3

declare void @sc_buf_term(ptr noundef) #2

declare void @sc_buf_put_64(ptr noundef, i64 noundef) #2

declare i64 @sc_buf_get_64(ptr noundef) #2

declare void @sc_buf_put_raw(ptr noundef, ptr noundef, i64 noundef) #2

declare i64 @sc_buf_size(ptr noundef) #2

declare void @sc_buf_set_rpos(ptr noundef, i64 noundef) #2

declare zeroext i1 @sc_buf_valid(ptr noundef) #2

declare void @sc_buf_clear(ptr noundef) #2

declare void @sc_buf_set_wpos(ptr noundef, i64 noundef) #2

declare void @sc_buf_put_32(ptr noundef, i32 noundef) #2

declare ptr @sc_buf_get_str(ptr noundef) #2

declare void @sc_buf_put_str(ptr noundef, ptr noundef) #2

declare void @sc_buf_move(ptr noundef, ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_bool_len(i1 noundef zeroext) #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_8_len(i8 noundef zeroext) #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_16_len(i16 noundef zeroext) #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_32_len(i32 noundef) #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_64_len(i64 noundef) #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_double_len(double noundef) #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_str_len(ptr noundef) #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_blob_len(ptr noundef, i64 noundef) #4

declare void @sc_buf_put_8(ptr noundef, i8 noundef zeroext) #2

declare zeroext i8 @sc_buf_get_8(ptr noundef) #2

declare void @sc_buf_put_16(ptr noundef, i16 noundef zeroext) #2

declare zeroext i16 @sc_buf_get_16(ptr noundef) #2

declare i32 @sc_buf_get_32(ptr noundef) #2

declare void @sc_buf_put_double(ptr noundef, double noundef) #2

declare double @sc_buf_get_double(ptr noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @strcmp(ptr noundef, ptr noundef) #5

declare i64 @sc_buf_cap(ptr noundef) #2

declare void @sc_buf_compact(ptr noundef) #2

declare void @sc_buf_put_fmt(ptr noundef, ptr noundef, ...) #2

declare void @sc_buf_put_bool(ptr noundef, i1 noundef zeroext) #2

declare zeroext i1 @sc_buf_get_bool(ptr noundef) #2

declare void @sc_buf_put_blob(ptr noundef, ptr noundef, i64 noundef) #2

declare ptr @sc_buf_get_blob(ptr noundef, i64 noundef) #2

declare void @sc_buf_mark_read(ptr noundef, i64 noundef) #2

declare ptr @sc_buf_wbuf(ptr noundef) #2

declare void @sc_buf_mark_write(ptr noundef, i64 noundef) #2

declare ptr @sc_buf_rbuf(ptr noundef) #2

declare i64 @sc_buf_wpos(ptr noundef) #2

declare i64 @sc_buf_quota(ptr noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #6

declare ptr @sc_buf_at(ptr noundef, i64 noundef) #2

declare i64 @sc_buf_rpos(ptr noundef) #2

declare void @sc_buf_limit(ptr noundef, i64 noundef) #2

declare void @sc_buf_wrap(ptr dead_on_unwind writable sret(%struct.sc_buf) align 8, ptr noundef, i64 noundef, i32 noundef) #2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

declare void @sc_buf_put_text(ptr noundef, ptr noundef, ...) #2

; Function Attrs: nounwind
declare i32 @snprintf(ptr noundef, i64 noundef, ptr noundef, ...) #7

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn nounwind }
attributes #10 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"sc_buf", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !11, i64 40, !12, i64 44}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"long", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!"_Bool", !8, i64 0}
!13 = !{!6, !10, i64 16}
!14 = !{!6, !10, i64 32}
!15 = !{!6, !10, i64 24}
!16 = !{!6, !12, i64 44}
!17 = !{i8 0, i8 2}
!18 = !{}
!19 = !{!6, !10, i64 8}
!20 = !{!6, !11, i64 40}
!21 = !{!22, !22, i64 0}
!22 = !{!"double", !8, i64 0}
!23 = !{!7, !7, i64 0}
!24 = !{!8, !8, i64 0}
!25 = !{i64 0, i64 8, !23, i64 8, i64 8, !26, i64 16, i64 8, !26, i64 24, i64 8, !26, i64 32, i64 8, !26, i64 40, i64 4, !27, i64 44, i64 1, !28}
!26 = !{!10, !10, i64 0}
!27 = !{!11, !11, i64 0}
!28 = !{!12, !12, i64 0}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = distinct !{!31, !30}
!32 = distinct !{!32, !30}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.sc_buf = type { ptr, i64, i64, i64, i64, i32, i8 }

@.str = external hidden unnamed_addr constant [16 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [59 x i8], align 1
@__PRETTY_FUNCTION__.test1 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [22 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [27 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [35 x i8], align 1
@__const.test1.tmp = external hidden unnamed_addr constant [113 x i8], align 16
@.str.49 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [24 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [47 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local void @test1() local_unnamed_addr #0 {
  %1 = alloca %struct.sc_buf, align 8
  %2 = alloca %struct.sc_buf, align 8
  %3 = alloca [113 x i8], align 16
  %4 = alloca [128 x i8], align 16
  %5 = alloca %struct.sc_buf, align 8
  %6 = alloca %struct.sc_buf, align 8
  %7 = alloca %struct.sc_buf, align 8
  %8 = alloca [128 x i8], align 16
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %1) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %2) #8
  %9 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  %10 = load ptr, ptr %1, align 8, !tbaa !5
  %.not = icmp eq ptr %10, null
  br i1 %.not, label %11, label %12

11:                                               ; preds = %0
  call void @__assert_fail(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 13, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

12:                                               ; preds = %0
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  %13 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %2, i64 noundef 0) #8
  %14 = load ptr, ptr %1, align 8, !tbaa !5
  %15 = load ptr, ptr %2, align 8, !tbaa !5
  %16 = icmp eq ptr %14, %15
  br i1 %16, label %18, label %17

17:                                               ; preds = %12
  call void @__assert_fail(ptr noundef nonnull @.str.2, ptr noundef nonnull @.str.1, i32 noundef 17, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

18:                                               ; preds = %12
  %19 = getelementptr inbounds i8, ptr %1, i64 16
  %20 = load i64, ptr %19, align 8, !tbaa !13
  %21 = getelementptr inbounds i8, ptr %2, i64 16
  %22 = load i64, ptr %21, align 8, !tbaa !13
  %23 = icmp eq i64 %20, %22
  br i1 %23, label %25, label %24

24:                                               ; preds = %18
  call void @__assert_fail(ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 18, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

25:                                               ; preds = %18
  %26 = getelementptr inbounds i8, ptr %1, i64 32
  %27 = load i64, ptr %26, align 8, !tbaa !14
  %28 = getelementptr inbounds i8, ptr %2, i64 32
  %29 = load i64, ptr %28, align 8, !tbaa !14
  %30 = icmp eq i64 %27, %29
  br i1 %30, label %32, label %31

31:                                               ; preds = %25
  call void @__assert_fail(ptr noundef nonnull @.str.4, ptr noundef nonnull @.str.1, i32 noundef 19, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

32:                                               ; preds = %25
  %33 = getelementptr inbounds i8, ptr %1, i64 24
  %34 = load i64, ptr %33, align 8, !tbaa !15
  %35 = getelementptr inbounds i8, ptr %2, i64 24
  %36 = load i64, ptr %35, align 8, !tbaa !15
  %37 = icmp eq i64 %34, %36
  br i1 %37, label %39, label %38

38:                                               ; preds = %32
  call void @__assert_fail(ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.1, i32 noundef 20, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

39:                                               ; preds = %32
  %40 = getelementptr inbounds i8, ptr %1, i64 44
  %41 = load i8, ptr %40, align 4, !tbaa !16, !range !17, !noundef !18
  %42 = getelementptr inbounds i8, ptr %2, i64 44
  %43 = load i8, ptr %42, align 4, !tbaa !16, !range !17, !noundef !18
  %44 = icmp eq i8 %41, %43
  br i1 %44, label %46, label %45

45:                                               ; preds = %39
  call void @__assert_fail(ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 21, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

46:                                               ; preds = %39
  %47 = getelementptr inbounds i8, ptr %1, i64 8
  %48 = load i64, ptr %47, align 8, !tbaa !19
  %49 = getelementptr inbounds i8, ptr %2, i64 8
  %50 = load i64, ptr %49, align 8, !tbaa !19
  %51 = icmp eq i64 %48, %50
  br i1 %51, label %53, label %52

52:                                               ; preds = %46
  call void @__assert_fail(ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 22, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

53:                                               ; preds = %46
  %54 = getelementptr inbounds i8, ptr %1, i64 40
  %55 = load i32, ptr %54, align 8, !tbaa !20
  %56 = getelementptr inbounds i8, ptr %2, i64 40
  %57 = load i32, ptr %56, align 8, !tbaa !20
  %58 = icmp eq i32 %55, %57
  br i1 %58, label %60, label %59

59:                                               ; preds = %53
  call void @__assert_fail(ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 23, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

60:                                               ; preds = %53
  call void @sc_buf_term(ptr noundef nonnull %2) #8
  call void @sc_buf_put_64(ptr noundef nonnull %1, i64 noundef 100) #8
  %61 = call i64 @sc_buf_get_64(ptr noundef nonnull %1) #8
  %62 = icmp eq i64 %61, 100
  br i1 %62, label %64, label %63

63:                                               ; preds = %60
  call void @__assert_fail(ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 27, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

64:                                               ; preds = %60
  call void @sc_buf_put_raw(ptr noundef nonnull %1, ptr noundef null, i64 noundef 0) #8
  %65 = call i64 @sc_buf_size(ptr noundef nonnull %1) #8
  %66 = icmp eq i64 %65, 0
  br i1 %66, label %68, label %67

67:                                               ; preds = %64
  call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 29, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

68:                                               ; preds = %64
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  %69 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  call void @sc_buf_set_rpos(ptr noundef nonnull %1, i64 noundef 1) #8
  %70 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %70, label %71, label %72

71:                                               ; preds = %68
  call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 34, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

72:                                               ; preds = %68
  call void @sc_buf_clear(ptr noundef nonnull %1) #8
  %73 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %73, label %75, label %74

74:                                               ; preds = %72
  call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 36, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

75:                                               ; preds = %72
  call void @sc_buf_set_wpos(ptr noundef nonnull %1, i64 noundef 101) #8
  %76 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %76, label %77, label %78

77:                                               ; preds = %75
  call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

78:                                               ; preds = %75
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  %79 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  call void @sc_buf_put_32(ptr noundef nonnull %1, i32 noundef 1000) #8
  %80 = call ptr @sc_buf_get_str(ptr noundef nonnull %1) #8
  %81 = icmp eq ptr %80, null
  br i1 %81, label %83, label %82

82:                                               ; preds = %78
  call void @__assert_fail(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

83:                                               ; preds = %78
  %84 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %84, label %85, label %86

85:                                               ; preds = %83
  call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

86:                                               ; preds = %83
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  %87 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  %88 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %2, i64 noundef 100) #8
  call void @sc_buf_put_str(ptr noundef nonnull %1, ptr noundef nonnull @.str.14) #8
  call void @sc_buf_move(ptr noundef nonnull %2, ptr noundef nonnull %1) #8
  %89 = call i64 @sc_buf_size(ptr noundef nonnull %1) #8
  %90 = icmp eq i64 %89, 0
  br i1 %90, label %92, label %91

91:                                               ; preds = %86
  call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

92:                                               ; preds = %86
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  call void @sc_buf_term(ptr noundef nonnull %2) #8
  %93 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  %94 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %2, i64 noundef 3) #8
  call void @sc_buf_put_str(ptr noundef nonnull %1, ptr noundef nonnull @.str.14) #8
  call void @sc_buf_move(ptr noundef nonnull %2, ptr noundef nonnull %1) #8
  %95 = call i64 @sc_buf_size(ptr noundef nonnull %1) #8
  %.not13 = icmp eq i64 %95, 0
  br i1 %.not13, label %96, label %97

96:                                               ; preds = %92
  call void @__assert_fail(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

97:                                               ; preds = %92
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  call void @sc_buf_term(ptr noundef nonnull %2) #8
  %98 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %2, i64 noundef 100) #8
  %99 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  %100 = call i64 @sc_buf_bool_len(i1 noundef zeroext true)
  %101 = icmp eq i64 %100, 1
  br i1 %101, label %103, label %102

102:                                              ; preds = %97
  call void @__assert_fail(ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

103:                                              ; preds = %97
  %104 = call i64 @sc_buf_8_len(i8 noundef zeroext 1)
  %105 = icmp eq i64 %104, 1
  br i1 %105, label %107, label %106

106:                                              ; preds = %103
  call void @__assert_fail(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

107:                                              ; preds = %103
  %108 = call i64 @sc_buf_16_len(i16 noundef zeroext 1)
  %109 = icmp eq i64 %108, 2
  br i1 %109, label %111, label %110

110:                                              ; preds = %107
  call void @__assert_fail(ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

111:                                              ; preds = %107
  %112 = call i64 @sc_buf_32_len(i32 noundef 1)
  %113 = icmp eq i64 %112, 4
  br i1 %113, label %115, label %114

114:                                              ; preds = %111
  call void @__assert_fail(ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

115:                                              ; preds = %111
  %116 = call i64 @sc_buf_64_len(i64 noundef 1)
  %117 = icmp eq i64 %116, 8
  br i1 %117, label %119, label %118

118:                                              ; preds = %115
  call void @__assert_fail(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

119:                                              ; preds = %115
  %120 = call i64 @sc_buf_double_len(double noundef 1.000000e+00)
  %121 = icmp eq i64 %120, 8
  br i1 %121, label %123, label %122

122:                                              ; preds = %119
  call void @__assert_fail(ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

123:                                              ; preds = %119
  %124 = call i64 @sc_buf_str_len(ptr noundef nonnull @.str.22)
  %125 = icmp eq i64 %124, 13
  br i1 %125, label %127, label %126

126:                                              ; preds = %123
  call void @__assert_fail(ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 72, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

127:                                              ; preds = %123
  %128 = call i64 @sc_buf_str_len(ptr noundef null)
  %129 = icmp eq i64 %128, 8
  br i1 %129, label %131, label %130

130:                                              ; preds = %127
  call void @__assert_fail(ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

131:                                              ; preds = %127
  %132 = call i64 @sc_buf_blob_len(ptr noundef nonnull @.str.22, i64 noundef 4)
  %133 = icmp eq i64 %132, 12
  br i1 %133, label %135, label %134

134:                                              ; preds = %131
  call void @__assert_fail(ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

135:                                              ; preds = %131
  call void @sc_buf_put_8(ptr noundef nonnull %1, i8 noundef zeroext 8) #8
  %136 = call zeroext i8 @sc_buf_get_8(ptr noundef nonnull %1) #8
  %137 = icmp eq i8 %136, 8
  br i1 %137, label %139, label %138

138:                                              ; preds = %135
  call void @__assert_fail(ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

139:                                              ; preds = %135
  call void @sc_buf_put_16(ptr noundef nonnull %1, i16 noundef zeroext -425) #8
  %140 = call zeroext i16 @sc_buf_get_16(ptr noundef nonnull %1) #8
  %141 = icmp eq i16 %140, -425
  br i1 %141, label %143, label %142

142:                                              ; preds = %139
  call void @__assert_fail(ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

143:                                              ; preds = %139
  call void @sc_buf_put_32(ptr noundef nonnull %1, i32 noundef 2132132131) #8
  %144 = call i32 @sc_buf_get_32(ptr noundef nonnull %1) #8
  %145 = icmp eq i32 %144, 2132132131
  br i1 %145, label %147, label %146

146:                                              ; preds = %143
  call void @__assert_fail(ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

147:                                              ; preds = %143
  call void @sc_buf_put_64(ptr noundef nonnull %1, i64 noundef 2132132213122131) #8
  %148 = call i64 @sc_buf_get_64(ptr noundef nonnull %1) #8
  %149 = icmp eq i64 %148, 2132132213122131
  br i1 %149, label %151, label %150

150:                                              ; preds = %147
  call void @__assert_fail(ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

151:                                              ; preds = %147
  call void @sc_buf_put_double(ptr noundef nonnull %1, double noundef 0x40FE14B52C52A412) #8
  %152 = call double @sc_buf_get_double(ptr noundef nonnull %1) #8
  %153 = fcmp oeq double %152, 0x40FE14B52C52A412
  br i1 %153, label %155, label %154

154:                                              ; preds = %151
  call void @__assert_fail(ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

155:                                              ; preds = %151
  call void @sc_buf_put_str(ptr noundef nonnull %1, ptr noundef nonnull @.str.22) #8
  %156 = call ptr @sc_buf_get_str(ptr noundef nonnull %1) #8
  %157 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) @.str.22, ptr noundef nonnull dereferenceable(1) %156) #10
  %158 = icmp eq i32 %157, 0
  br i1 %158, label %160, label %159

159:                                              ; preds = %155
  call void @__assert_fail(ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

160:                                              ; preds = %155
  call void @sc_buf_put_str(ptr noundef nonnull %1, ptr noundef null) #8
  %161 = call ptr @sc_buf_get_str(ptr noundef nonnull %1) #8
  %162 = icmp eq ptr %161, null
  br i1 %162, label %164, label %163

163:                                              ; preds = %160
  call void @__assert_fail(ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

164:                                              ; preds = %160
  call void @sc_buf_clear(ptr noundef nonnull %1) #8
  %165 = call i64 @sc_buf_size(ptr noundef nonnull %1) #8
  %166 = icmp eq i64 %165, 0
  br i1 %166, label %168, label %167

167:                                              ; preds = %164
  call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

168:                                              ; preds = %164
  %169 = call i64 @sc_buf_cap(ptr noundef nonnull %1) #8
  %170 = icmp eq i64 %169, 100
  br i1 %170, label %172, label %171

171:                                              ; preds = %168
  call void @__assert_fail(ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

172:                                              ; preds = %168
  call void @sc_buf_compact(ptr noundef nonnull %1) #8
  call void (ptr, ptr, ...) @sc_buf_put_fmt(ptr noundef nonnull %1, ptr noundef nonnull @.str.33, i32 noundef 3) #8
  %173 = call ptr @sc_buf_get_str(ptr noundef nonnull %1) #8
  %174 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) @.str.34, ptr noundef nonnull dereferenceable(1) %173) #10
  %175 = icmp eq i32 %174, 0
  br i1 %175, label %177, label %176

176:                                              ; preds = %172
  call void @__assert_fail(ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

177:                                              ; preds = %172
  call void @sc_buf_put_bool(ptr noundef nonnull %1, i1 noundef zeroext true) #8
  %178 = call zeroext i1 @sc_buf_get_bool(ptr noundef nonnull %1) #8
  br i1 %178, label %180, label %179

179:                                              ; preds = %177
  call void @__assert_fail(ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 98, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

180:                                              ; preds = %177
  call void @sc_buf_put_bool(ptr noundef nonnull %1, i1 noundef zeroext false) #8
  %181 = call zeroext i1 @sc_buf_get_bool(ptr noundef nonnull %1) #8
  br i1 %181, label %182, label %183

182:                                              ; preds = %180
  call void @__assert_fail(ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

183:                                              ; preds = %180
  call void @sc_buf_put_blob(ptr noundef nonnull %1, ptr noundef nonnull @.str.22, i64 noundef 5) #8
  %184 = call i64 @sc_buf_get_64(ptr noundef nonnull %1) #8
  %185 = call ptr @sc_buf_get_blob(ptr noundef nonnull %1, i64 noundef %184) #8
  %186 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) @.str.22, ptr noundef nonnull dereferenceable(1) %185) #10
  %187 = icmp eq i32 %186, 0
  br i1 %187, label %189, label %188

188:                                              ; preds = %183
  call void @__assert_fail(ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

189:                                              ; preds = %183
  call void @sc_buf_clear(ptr noundef nonnull %1) #8
  call void @sc_buf_put_64(ptr noundef nonnull %1, i64 noundef 122) #8
  call void @sc_buf_put_64(ptr noundef nonnull %1, i64 noundef 133) #8
  %190 = call i64 @sc_buf_get_64(ptr noundef nonnull %1) #8
  %191 = call i64 @sc_buf_get_64(ptr noundef nonnull %1) #8
  %192 = icmp eq i64 %191, 133
  br i1 %192, label %194, label %193

193:                                              ; preds = %189
  call void @__assert_fail(ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

194:                                              ; preds = %189
  call void @sc_buf_clear(ptr noundef nonnull %1) #8
  call void @sc_buf_put_32(ptr noundef nonnull %1, i32 noundef 122) #8
  call void @sc_buf_put_32(ptr noundef nonnull %1, i32 noundef 144) #8
  %195 = call i32 @sc_buf_get_32(ptr noundef nonnull %1) #8
  %196 = call i32 @sc_buf_get_32(ptr noundef nonnull %1) #8
  %197 = icmp eq i32 %196, 144
  br i1 %197, label %199, label %198

198:                                              ; preds = %194
  call void @__assert_fail(ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

199:                                              ; preds = %194
  call void @sc_buf_clear(ptr noundef nonnull %1) #8
  call void @sc_buf_put_64(ptr noundef nonnull %1, i64 noundef 222) #8
  call void @sc_buf_mark_read(ptr noundef nonnull %1, i64 noundef 8) #8
  %200 = call i64 @sc_buf_size(ptr noundef nonnull %1) #8
  %201 = icmp eq i64 %200, 0
  br i1 %201, label %203, label %202

202:                                              ; preds = %199
  call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

203:                                              ; preds = %199
  %204 = call ptr @sc_buf_wbuf(ptr noundef nonnull %1) #8
  store i8 99, ptr %204, align 1, !tbaa !21
  call void @sc_buf_mark_write(ptr noundef nonnull %1, i64 noundef 1) #8
  %205 = call zeroext i8 @sc_buf_get_8(ptr noundef nonnull %1) #8
  %206 = icmp eq i8 %205, 99
  br i1 %206, label %208, label %207

207:                                              ; preds = %203
  call void @__assert_fail(ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

208:                                              ; preds = %203
  call void @sc_buf_clear(ptr noundef nonnull %1) #8
  call void @sc_buf_clear(ptr noundef nonnull %1) #8
  call void @sc_buf_put_32(ptr noundef nonnull %1, i32 noundef 2323) #8
  call void @sc_buf_put_32(ptr noundef nonnull %1, i32 noundef 3311) #8
  call void @sc_buf_set_wpos(ptr noundef nonnull %1, i64 noundef 8) #8
  call void @sc_buf_set_rpos(ptr noundef nonnull %1, i64 noundef 4) #8
  %209 = call i32 @sc_buf_get_32(ptr noundef nonnull %1) #8
  %210 = icmp eq i32 %209, 3311
  br i1 %210, label %212, label %211

211:                                              ; preds = %208
  call void @__assert_fail(ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

212:                                              ; preds = %208
  call void @sc_buf_clear(ptr noundef nonnull %1) #8
  call void @sc_buf_put_64(ptr noundef nonnull %1, i64 noundef -1) #8
  %213 = call i64 @sc_buf_get_64(ptr noundef nonnull %1) #8
  %214 = icmp eq i64 %213, -1
  br i1 %214, label %216, label %215

215:                                              ; preds = %212
  call void @__assert_fail(ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

216:                                              ; preds = %212
  call void @sc_buf_put_64(ptr noundef nonnull %1, i64 noundef -1) #8
  %217 = call ptr @sc_buf_rbuf(ptr noundef nonnull %1) #8
  %218 = load i8, ptr %217, align 1, !tbaa !21
  %219 = icmp eq i8 %218, -1
  br i1 %219, label %221, label %220

220:                                              ; preds = %216
  call void @__assert_fail(ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

221:                                              ; preds = %216
  %222 = call i64 @sc_buf_wpos(ptr noundef nonnull %1) #8
  %223 = icmp eq i64 %222, 16
  br i1 %223, label %225, label %224

224:                                              ; preds = %221
  call void @__assert_fail(ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

225:                                              ; preds = %221
  %226 = call i64 @sc_buf_quota(ptr noundef nonnull %1) #8
  %227 = icmp eq i64 %226, 84
  br i1 %227, label %229, label %228

228:                                              ; preds = %225
  call void @__assert_fail(ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

229:                                              ; preds = %225
  %230 = call ptr @sc_buf_get_blob(ptr noundef nonnull %1, i64 noundef 0) #8
  %231 = icmp eq ptr %230, null
  br i1 %231, label %233, label %232

232:                                              ; preds = %229
  call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

233:                                              ; preds = %229
  call void @sc_buf_move(ptr noundef nonnull %2, ptr noundef nonnull %1) #8
  %234 = call i64 @sc_buf_get_64(ptr noundef nonnull %2) #8
  %235 = icmp eq i64 %234, -1
  br i1 %235, label %237, label %236

236:                                              ; preds = %233
  call void @__assert_fail(ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

237:                                              ; preds = %233
  %238 = call i64 @sc_buf_size(ptr noundef nonnull %1) #8
  %239 = icmp eq i64 %238, 0
  br i1 %239, label %241, label %240

240:                                              ; preds = %237
  call void @__assert_fail(ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 144, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

241:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 113, ptr nonnull %3) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(113) %3, ptr noundef nonnull align 16 dereferenceable(113) @__const.test1.tmp, i64 113, i1 false)
  call void @sc_buf_put_str(ptr noundef nonnull %1, ptr noundef nonnull %3) #8
  %242 = call ptr @sc_buf_get_str(ptr noundef nonnull %1) #8
  %243 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %242, ptr noundef nonnull dereferenceable(1) %3) #10
  %244 = icmp eq i32 %243, 0
  br i1 %244, label %246, label %245

245:                                              ; preds = %241
  call void @__assert_fail(ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

246:                                              ; preds = %241
  call void @sc_buf_clear(ptr noundef nonnull %1) #8
  call void @sc_buf_put_8(ptr noundef nonnull %1, i8 noundef zeroext 120) #8
  call void @sc_buf_put_8(ptr noundef nonnull %1, i8 noundef zeroext 121) #8
  %247 = call ptr @sc_buf_at(ptr noundef nonnull %1, i64 noundef 1) #8
  %248 = load i8, ptr %247, align 1, !tbaa !21
  %249 = icmp eq i8 %248, 121
  br i1 %249, label %251, label %250

250:                                              ; preds = %246
  call void @__assert_fail(ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

251:                                              ; preds = %246
  call void @sc_buf_clear(ptr noundef nonnull %1) #8
  call void @sc_buf_put_64(ptr noundef nonnull %1, i64 noundef 444) #8
  call void @sc_buf_put_64(ptr noundef nonnull %1, i64 noundef 43) #8
  call void @sc_buf_mark_read(ptr noundef nonnull %1, i64 noundef 8) #8
  call void @sc_buf_compact(ptr noundef nonnull %1) #8
  %252 = call i64 @sc_buf_rpos(ptr noundef nonnull %1) #8
  %253 = icmp eq i64 %252, 0
  br i1 %253, label %255, label %254

254:                                              ; preds = %251
  call void @__assert_fail(ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

255:                                              ; preds = %251
  %256 = call i64 @sc_buf_wpos(ptr noundef nonnull %1) #8
  %257 = icmp eq i64 %256, 8
  br i1 %257, label %259, label %258

258:                                              ; preds = %255
  call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

259:                                              ; preds = %255
  %260 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %260, label %262, label %261

261:                                              ; preds = %259
  call void @__assert_fail(ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

262:                                              ; preds = %259
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  %263 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  call void @sc_buf_limit(ptr noundef nonnull %1, i64 noundef 128) #8
  call void @sc_buf_put_str(ptr noundef nonnull %1, ptr noundef nonnull %3) #8
  %264 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %264, label %265, label %266

265:                                              ; preds = %262
  call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

266:                                              ; preds = %262
  %267 = call i64 @sc_buf_get_64(ptr noundef nonnull %1) #8
  %268 = icmp eq i64 %267, 0
  br i1 %268, label %270, label %269

269:                                              ; preds = %266
  call void @__assert_fail(ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

270:                                              ; preds = %266
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  %271 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  call void @sc_buf_limit(ptr noundef nonnull %1, i64 noundef 128) #8
  call void @sc_buf_put_str(ptr noundef nonnull %1, ptr noundef nonnull %3) #8
  %272 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %272, label %273, label %274

273:                                              ; preds = %270
  call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

274:                                              ; preds = %270
  %275 = call i32 @sc_buf_get_32(ptr noundef nonnull %1) #8
  %276 = icmp eq i32 %275, 0
  br i1 %276, label %278, label %277

277:                                              ; preds = %274
  call void @__assert_fail(ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

278:                                              ; preds = %274
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  %279 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  call void @sc_buf_limit(ptr noundef nonnull %1, i64 noundef 128) #8
  call void @sc_buf_put_str(ptr noundef nonnull %1, ptr noundef nonnull %3) #8
  %280 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %280, label %281, label %282

281:                                              ; preds = %278
  call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

282:                                              ; preds = %278
  %283 = call zeroext i16 @sc_buf_get_16(ptr noundef nonnull %1) #8
  %284 = icmp eq i16 %283, 0
  br i1 %284, label %286, label %285

285:                                              ; preds = %282
  call void @__assert_fail(ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

286:                                              ; preds = %282
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  %287 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  call void @sc_buf_put_64(ptr noundef nonnull %1, i64 noundef 1000) #8
  %288 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %288, label %290, label %289

289:                                              ; preds = %286
  call void @__assert_fail(ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

290:                                              ; preds = %286
  %291 = call ptr @sc_buf_get_str(ptr noundef nonnull %1) #8
  %292 = icmp eq ptr %291, null
  br i1 %292, label %294, label %293

293:                                              ; preds = %290
  call void @__assert_fail(ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

294:                                              ; preds = %290
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  %295 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  call void @sc_buf_limit(ptr noundef nonnull %1, i64 noundef 128) #8
  call void @sc_buf_put_str(ptr noundef nonnull %1, ptr noundef nonnull %3) #8
  %296 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %296, label %297, label %298

297:                                              ; preds = %294
  call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

298:                                              ; preds = %294
  %299 = call zeroext i8 @sc_buf_get_8(ptr noundef nonnull %1) #8
  %300 = icmp eq i8 %299, 0
  br i1 %300, label %302, label %301

301:                                              ; preds = %298
  call void @__assert_fail(ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

302:                                              ; preds = %298
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  %303 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  call void @sc_buf_limit(ptr noundef nonnull %1, i64 noundef 128) #8
  call void @sc_buf_put_str(ptr noundef nonnull %1, ptr noundef nonnull %3) #8
  %304 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %304, label %305, label %306

305:                                              ; preds = %302
  call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

306:                                              ; preds = %302
  %307 = call double @sc_buf_get_double(ptr noundef nonnull %1) #8
  %308 = fcmp oeq double %307, 0.000000e+00
  br i1 %308, label %310, label %309

309:                                              ; preds = %306
  call void @__assert_fail(ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

310:                                              ; preds = %306
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  %311 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  call void @sc_buf_limit(ptr noundef nonnull %1, i64 noundef 128) #8
  call void (ptr, ptr, ...) @sc_buf_put_fmt(ptr noundef nonnull %1, ptr noundef nonnull %3) #8
  %312 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %312, label %313, label %314

313:                                              ; preds = %310
  call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

314:                                              ; preds = %310
  %315 = call i64 @sc_buf_get_64(ptr noundef nonnull %1) #8
  %316 = icmp eq i64 %315, 0
  br i1 %316, label %318, label %317

317:                                              ; preds = %314
  call void @__assert_fail(ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

318:                                              ; preds = %314
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  call void @sc_buf_term(ptr noundef nonnull %2) #8
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %4) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %5) #8
  call void @sc_buf_wrap(ptr dead_on_unwind nonnull writable sret(%struct.sc_buf) align 8 %5, ptr noundef nonnull %4, i64 noundef 128, i32 noundef 8) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(48) %5, i64 48, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) #8
  call void (ptr, ptr, ...) @sc_buf_put_text(ptr noundef nonnull %1, ptr noundef nonnull @.str.60, i32 noundef 1, ptr noundef nonnull @.str.22) #8
  %319 = call ptr @sc_buf_rbuf(ptr noundef nonnull %1) #8
  %320 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %319, ptr noundef nonnull dereferenceable(1) @.str.61) #10
  %321 = icmp eq i32 %320, 0
  br i1 %321, label %323, label %322

322:                                              ; preds = %318
  call void @__assert_fail(ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

323:                                              ; preds = %318
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6) #8
  call void @sc_buf_wrap(ptr dead_on_unwind nonnull writable sret(%struct.sc_buf) align 8 %6, ptr noundef nonnull %4, i64 noundef 128, i32 noundef 8) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %1, ptr noundef nonnull align 8 dereferenceable(48) %6, i64 48, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) #8
  call void @sc_buf_put_str(ptr noundef nonnull %1, ptr noundef nonnull @.str.63) #8
  call void @sc_buf_put_str(ptr noundef nonnull %1, ptr noundef nonnull @.str.64) #8
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %7) #8
  %324 = call ptr @sc_buf_rbuf(ptr noundef nonnull %1) #8
  %325 = call i64 @sc_buf_size(ptr noundef nonnull %1) #8
  call void @sc_buf_wrap(ptr dead_on_unwind nonnull writable sret(%struct.sc_buf) align 8 %7, ptr noundef %324, i64 noundef %325, i32 noundef 24) #8
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(48) %7, i64 48, i1 false), !tbaa.struct !22
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %7) #8
  %326 = call i64 @sc_buf_size(ptr noundef nonnull %2) #8
  %327 = call i64 @sc_buf_size(ptr noundef nonnull %1) #8
  %328 = icmp eq i64 %326, %327
  br i1 %328, label %330, label %329

329:                                              ; preds = %323
  call void @__assert_fail(ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

330:                                              ; preds = %323
  %331 = call ptr @sc_buf_get_str(ptr noundef nonnull %2) #8
  %332 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %331, ptr noundef nonnull dereferenceable(1) @.str.63) #10
  %333 = icmp eq i32 %332, 0
  br i1 %333, label %335, label %334

334:                                              ; preds = %330
  call void @__assert_fail(ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 226, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

335:                                              ; preds = %330
  %336 = call ptr @sc_buf_get_str(ptr noundef nonnull %2) #8
  %337 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %336, ptr noundef nonnull dereferenceable(1) @.str.64) #10
  %338 = icmp eq i32 %337, 0
  br i1 %338, label %340, label %339

339:                                              ; preds = %335
  call void @__assert_fail(ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

340:                                              ; preds = %335
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  call void @sc_buf_term(ptr noundef nonnull %2) #8
  %341 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 1) #8
  br label %342

342:                                              ; preds = %340, %342
  %.01214 = phi i32 [ 0, %340 ], [ %343, %342 ]
  call void (ptr, ptr, ...) @sc_buf_put_fmt(ptr noundef nonnull %1, ptr noundef nonnull @.str.68, i32 noundef %.01214) #8
  %343 = add nuw nsw i32 %.01214, 1
  %exitcond.not = icmp eq i32 %343, 1000
  br i1 %exitcond.not, label %.preheader, label %342, !llvm.loop !27

344:                                              ; preds = %351
  %345 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %345, label %354, label %353

.preheader:                                       ; preds = %342, %351
  %.01115 = phi i32 [ %352, %351 ], [ 0, %342 ]
  call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %8) #8
  %346 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %8, i64 noundef 128, ptr noundef nonnull @.str.68, i32 noundef %.01115) #8
  %347 = call ptr @sc_buf_get_str(ptr noundef nonnull %1) #8
  %348 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %347, ptr noundef nonnull dereferenceable(1) %8) #10
  %349 = icmp eq i32 %348, 0
  br i1 %349, label %351, label %350

350:                                              ; preds = %.preheader
  call void @__assert_fail(ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

351:                                              ; preds = %.preheader
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %8) #8
  %352 = add nuw nsw i32 %.01115, 1
  %exitcond17.not = icmp eq i32 %352, 1000
  br i1 %exitcond17.not, label %344, label %.preheader, !llvm.loop !29

353:                                              ; preds = %344
  call void @__assert_fail(ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

354:                                              ; preds = %344
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  %355 = call zeroext i1 @sc_buf_init(ptr noundef nonnull %1, i64 noundef 100) #8
  call void @sc_buf_limit(ptr noundef nonnull %1, i64 noundef 100000000) #8
  br label %358

356:                                              ; preds = %358
  %357 = call zeroext i1 @sc_buf_valid(ptr noundef nonnull %1) #8
  br i1 %357, label %360, label %361

358:                                              ; preds = %354, %358
  %.016 = phi i32 [ 0, %354 ], [ %359, %358 ]
  call void @sc_buf_put_str(ptr noundef nonnull %1, ptr noundef nonnull @.str.70) #8
  %359 = add nuw nsw i32 %.016, 1
  %exitcond18.not = icmp eq i32 %359, 1000000
  br i1 %exitcond18.not, label %356, label %358, !llvm.loop !30

360:                                              ; preds = %356
  call void @__assert_fail(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef nonnull @__PRETTY_FUNCTION__.test1) #9
  unreachable

361:                                              ; preds = %356
  call void @sc_buf_term(ptr noundef nonnull %1) #8
  call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %4) #8
  call void @llvm.lifetime.end.p0(i64 113, ptr nonnull %3) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %2) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %1) #8
  ret void
}

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #1

declare zeroext i1 @sc_buf_init(ptr noundef, i64 noundef) local_unnamed_addr #2

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #3

declare void @sc_buf_term(ptr noundef) local_unnamed_addr #2

declare void @sc_buf_put_64(ptr noundef, i64 noundef) local_unnamed_addr #2

declare i64 @sc_buf_get_64(ptr noundef) local_unnamed_addr #2

declare void @sc_buf_put_raw(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

declare i64 @sc_buf_size(ptr noundef) local_unnamed_addr #2

declare void @sc_buf_set_rpos(ptr noundef, i64 noundef) local_unnamed_addr #2

declare zeroext i1 @sc_buf_valid(ptr noundef) local_unnamed_addr #2

declare void @sc_buf_clear(ptr noundef) local_unnamed_addr #2

declare void @sc_buf_set_wpos(ptr noundef, i64 noundef) local_unnamed_addr #2

declare void @sc_buf_put_32(ptr noundef, i32 noundef) local_unnamed_addr #2

declare ptr @sc_buf_get_str(ptr noundef) local_unnamed_addr #2

declare void @sc_buf_put_str(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @sc_buf_move(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_bool_len(i1 noundef zeroext) local_unnamed_addr #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_8_len(i8 noundef zeroext) local_unnamed_addr #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_16_len(i16 noundef zeroext) local_unnamed_addr #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_32_len(i32 noundef) local_unnamed_addr #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_64_len(i64 noundef) local_unnamed_addr #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_double_len(double noundef) local_unnamed_addr #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_str_len(ptr noundef) local_unnamed_addr #4

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @sc_buf_blob_len(ptr noundef, i64 noundef) local_unnamed_addr #4

declare void @sc_buf_put_8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare zeroext i8 @sc_buf_get_8(ptr noundef) local_unnamed_addr #2

declare void @sc_buf_put_16(ptr noundef, i16 noundef zeroext) local_unnamed_addr #2

declare zeroext i16 @sc_buf_get_16(ptr noundef) local_unnamed_addr #2

declare i32 @sc_buf_get_32(ptr noundef) local_unnamed_addr #2

declare void @sc_buf_put_double(ptr noundef, double noundef) local_unnamed_addr #2

declare double @sc_buf_get_double(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i32 @strcmp(ptr nocapture noundef, ptr nocapture noundef) local_unnamed_addr #5

declare i64 @sc_buf_cap(ptr noundef) local_unnamed_addr #2

declare void @sc_buf_compact(ptr noundef) local_unnamed_addr #2

declare void @sc_buf_put_fmt(ptr noundef, ptr noundef, ...) local_unnamed_addr #2

declare void @sc_buf_put_bool(ptr noundef, i1 noundef zeroext) local_unnamed_addr #2

declare zeroext i1 @sc_buf_get_bool(ptr noundef) local_unnamed_addr #2

declare void @sc_buf_put_blob(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

declare ptr @sc_buf_get_blob(ptr noundef, i64 noundef) local_unnamed_addr #2

declare void @sc_buf_mark_read(ptr noundef, i64 noundef) local_unnamed_addr #2

declare ptr @sc_buf_wbuf(ptr noundef) local_unnamed_addr #2

declare void @sc_buf_mark_write(ptr noundef, i64 noundef) local_unnamed_addr #2

declare ptr @sc_buf_rbuf(ptr noundef) local_unnamed_addr #2

declare i64 @sc_buf_wpos(ptr noundef) local_unnamed_addr #2

declare i64 @sc_buf_quota(ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #6

declare ptr @sc_buf_at(ptr noundef, i64 noundef) local_unnamed_addr #2

declare i64 @sc_buf_rpos(ptr noundef) local_unnamed_addr #2

declare void @sc_buf_limit(ptr noundef, i64 noundef) local_unnamed_addr #2

declare void @sc_buf_wrap(ptr dead_on_unwind writable sret(%struct.sc_buf) align 8, ptr noundef, i64 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #1

declare void @sc_buf_put_text(ptr noundef, ptr noundef, ...) local_unnamed_addr #2

; Function Attrs: nofree nounwind
declare noundef i32 @snprintf(ptr noalias nocapture noundef writeonly, i64 noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #7

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #7 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn nounwind }
attributes #10 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"sc_buf", !7, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !11, i64 40, !12, i64 44}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"long", !8, i64 0}
!11 = !{!"int", !8, i64 0}
!12 = !{!"_Bool", !8, i64 0}
!13 = !{!6, !10, i64 16}
!14 = !{!6, !10, i64 32}
!15 = !{!6, !10, i64 24}
!16 = !{!6, !12, i64 44}
!17 = !{i8 0, i8 2}
!18 = !{}
!19 = !{!6, !10, i64 8}
!20 = !{!6, !11, i64 40}
!21 = !{!8, !8, i64 0}
!22 = !{i64 0, i64 8, !23, i64 8, i64 8, !24, i64 16, i64 8, !24, i64 24, i64 8, !24, i64 32, i64 8, !24, i64 40, i64 4, !25, i64 44, i64 1, !26}
!23 = !{!7, !7, i64 0}
!24 = !{!10, !10, i64 0}
!25 = !{!11, !11, i64 0}
!26 = !{!12, !12, i64 0}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = distinct !{!29, !28}
!30 = distinct !{!30, !28}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass