; LLVM IR from erwincoumans/tiny-differentiable-simulator :: third_party/zeromq/src/options.ll (ZNK3zmq9options_t10getsockoptEiPvPm)

; 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.zmq::options_t" = type <{ i32, i32, i64, i8, [256 x i8], [3 x i8], i32, i32, i32, i32, i32, i32, i32, i8, [3 x i8], %"struct.zmq::atomic_value_t", i32, i32, i32, i32, i32, [4 x i8], i64, i32, i32, i8, [3 x i8], i32, i8, i8, i8, i8, i8, [3 x i8], %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, i32, i32, %"class.std::vector", i32, i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", [32 x i8], [32 x i8], [32 x i8], %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, i32, i8, [3 x i8], i32, i8, [3 x i8], i32, i8, i8, i16, i32, i32, i32, %"class.std::__cxx11::basic_string", i8, i8, i8, i8, i32, i32, i8, [3 x i8], i32, [4 x i8], %"class.std::map", i32, [4 x i8] }>
%"struct.zmq::atomic_value_t" = type { %"struct.std::atomic" }
%"struct.std::atomic" = type { %"struct.std::__atomic_base" }
%"struct.std::__atomic_base" = type { i32 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<zmq::tcp_address_mask_t, std::allocator<zmq::tcp_address_mask_t>>::_Vector_impl" }
%"struct.std::_Vector_base<zmq::tcp_address_mask_t, std::allocator<zmq::tcp_address_mask_t>>::_Vector_impl" = type { %"struct.std::_Vector_base<zmq::tcp_address_mask_t, std::allocator<zmq::tcp_address_mask_t>>::_Vector_impl_data" }
%"struct.std::_Vector_base<zmq::tcp_address_mask_t, std::allocator<zmq::tcp_address_mask_t>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>, std::_Select1st<std::pair<const std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char>>>, std::less<std::__cxx11::basic_string<char>>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN3zmq13do_getsockoptEPvPmPKvm(ptr noundef, ptr noundef, ptr noundef, i64 noundef) #0

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

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

; Function Attrs: nounwind willreturn memory(none)
declare ptr @__errno_location() #2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZNK3zmq9options_t10getsockoptEiPvPm(ptr noundef nonnull align 8 dereferenceable(916) %0, i32 noundef %1, ptr noundef %2, ptr noundef %3) #0 align 2 {
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i8, align 1
  %11 = alloca ptr, align 8
  %12 = alloca i32, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store i32 %1, ptr %7, align 4, !tbaa !9
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  %13 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %10) #4
  %14 = load ptr, ptr %9, align 8, !tbaa !5
  %15 = load i64, ptr %14, align 8, !tbaa !11
  %16 = icmp eq i64 %15, 4
  %17 = zext i1 %16 to i8
  store i8 %17, ptr %10, align 1, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #4
  %18 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %18, ptr %11, align 8, !tbaa !5
  %19 = load i32, ptr %7, align 4, !tbaa !9
  switch i32 %19, label %405 [
    i32 23, label %20
    i32 24, label %28
    i32 4, label %36
    i32 5, label %45
    i32 8, label %54
    i32 9, label %62
    i32 11, label %70
    i32 12, label %78
    i32 57, label %86
    i32 16, label %94
    i32 17, label %103
    i32 79, label %111
    i32 80, label %119
    i32 18, label %127
    i32 21, label %135
    i32 19, label %143
    i32 22, label %151
    i32 25, label %161
    i32 84, label %169
    i32 27, label %177
    i32 28, label %185
    i32 31, label %193
    i32 42, label %204
    i32 39, label %214
    i32 68, label %222
    i32 99, label %227
    i32 100, label %232
    i32 34, label %237
    i32 35, label %245
    i32 36, label %253
    i32 37, label %261
    i32 43, label %269
    i32 44, label %277
    i32 45, label %293
    i32 46, label %298
    i32 55, label %303
    i32 54, label %308
    i32 66, label %318
    i32 74, label %326
    i32 75, label %336
    i32 76, label %344
    i32 77, label %354
    i32 89, label %362
    i32 92, label %370
    i32 93, label %375
    i32 94, label %385
    i32 96, label %395
  ]

20:                                               ; preds = %4
  %21 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %22 = trunc i8 %21 to i1
  br i1 %22, label %23, label %27

23:                                               ; preds = %20
  %24 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 0
  %25 = load i32, ptr %24, align 8, !tbaa !17
  %26 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %25, ptr %26, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

27:                                               ; preds = %20
  br label %406

28:                                               ; preds = %4
  %29 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %30 = trunc i8 %29 to i1
  br i1 %30, label %31, label %35

31:                                               ; preds = %28
  %32 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 1
  %33 = load i32, ptr %32, align 4, !tbaa !37
  %34 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %33, ptr %34, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

35:                                               ; preds = %28
  br label %406

36:                                               ; preds = %4
  %37 = load ptr, ptr %9, align 8, !tbaa !5
  %38 = load i64, ptr %37, align 8, !tbaa !11
  %39 = icmp eq i64 %38, 8
  br i1 %39, label %40, label %44

40:                                               ; preds = %36
  %41 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 2
  %42 = load i64, ptr %41, align 8, !tbaa !38
  %43 = load ptr, ptr %8, align 8, !tbaa !5
  store i64 %42, ptr %43, align 8, !tbaa !11
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

44:                                               ; preds = %36
  br label %406

45:                                               ; preds = %4
  %46 = load ptr, ptr %8, align 8, !tbaa !5
  %47 = load ptr, ptr %9, align 8, !tbaa !5
  %48 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 4
  %49 = getelementptr inbounds [256 x i8], ptr %48, i64 0, i64 0
  %50 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 3
  %51 = load i8, ptr %50, align 8, !tbaa !39
  %52 = zext i8 %51 to i64
  %53 = call noundef i32 @_ZN3zmq13do_getsockoptEPvPmPKvm(ptr noundef %46, ptr noundef %47, ptr noundef %49, i64 noundef %52)
  store i32 %53, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

54:                                               ; preds = %4
  %55 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %56 = trunc i8 %55 to i1
  br i1 %56, label %57, label %61

57:                                               ; preds = %54
  %58 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 6
  %59 = load i32, ptr %58, align 4, !tbaa !40
  %60 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %59, ptr %60, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

61:                                               ; preds = %54
  br label %406

62:                                               ; preds = %4
  %63 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %64 = trunc i8 %63 to i1
  br i1 %64, label %65, label %69

65:                                               ; preds = %62
  %66 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 7
  %67 = load i32, ptr %66, align 8, !tbaa !41
  %68 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %67, ptr %68, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

69:                                               ; preds = %62
  br label %406

70:                                               ; preds = %4
  %71 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %72 = trunc i8 %71 to i1
  br i1 %72, label %73, label %77

73:                                               ; preds = %70
  %74 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 10
  %75 = load i32, ptr %74, align 4, !tbaa !42
  %76 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %75, ptr %76, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

77:                                               ; preds = %70
  br label %406

78:                                               ; preds = %4
  %79 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %80 = trunc i8 %79 to i1
  br i1 %80, label %81, label %85

81:                                               ; preds = %78
  %82 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 11
  %83 = load i32, ptr %82, align 8, !tbaa !43
  %84 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %83, ptr %84, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

85:                                               ; preds = %78
  br label %406

86:                                               ; preds = %4
  %87 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %88 = trunc i8 %87 to i1
  br i1 %88, label %89, label %93

89:                                               ; preds = %86
  %90 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 12
  %91 = load i32, ptr %90, align 4, !tbaa !44
  %92 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %91, ptr %92, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

93:                                               ; preds = %86
  br label %406

94:                                               ; preds = %4
  %95 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %96 = trunc i8 %95 to i1
  br i1 %96, label %97, label %102

97:                                               ; preds = %94
  %98 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 13
  %99 = load i8, ptr %98, align 8, !tbaa !45
  %100 = sext i8 %99 to i32
  %101 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %100, ptr %101, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

102:                                              ; preds = %94
  br label %406

103:                                              ; preds = %4
  %104 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %105 = trunc i8 %104 to i1
  br i1 %105, label %106, label %110

106:                                              ; preds = %103
  %107 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 15
  %108 = call noundef i32 @_ZNK3zmq14atomic_value_t4loadEv(ptr noundef nonnull align 4 dereferenceable(4) %107)
  %109 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %108, ptr %109, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

110:                                              ; preds = %103
  br label %406

111:                                              ; preds = %4
  %112 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %113 = trunc i8 %112 to i1
  br i1 %113, label %114, label %118

114:                                              ; preds = %111
  %115 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 16
  %116 = load i32, ptr %115, align 8, !tbaa !46
  %117 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %116, ptr %117, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

118:                                              ; preds = %111
  br label %406

119:                                              ; preds = %4
  %120 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %121 = trunc i8 %120 to i1
  br i1 %121, label %122, label %126

122:                                              ; preds = %119
  %123 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 17
  %124 = load i32, ptr %123, align 4, !tbaa !47
  %125 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %124, ptr %125, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

126:                                              ; preds = %119
  br label %406

127:                                              ; preds = %4
  %128 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %129 = trunc i8 %128 to i1
  br i1 %129, label %130, label %134

130:                                              ; preds = %127
  %131 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 18
  %132 = load i32, ptr %131, align 8, !tbaa !48
  %133 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %132, ptr %133, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

134:                                              ; preds = %127
  br label %406

135:                                              ; preds = %4
  %136 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %137 = trunc i8 %136 to i1
  br i1 %137, label %138, label %142

138:                                              ; preds = %135
  %139 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 19
  %140 = load i32, ptr %139, align 4, !tbaa !49
  %141 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %140, ptr %141, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

142:                                              ; preds = %135
  br label %406

143:                                              ; preds = %4
  %144 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %145 = trunc i8 %144 to i1
  br i1 %145, label %146, label %150

146:                                              ; preds = %143
  %147 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 20
  %148 = load i32, ptr %147, align 8, !tbaa !50
  %149 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %148, ptr %149, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

150:                                              ; preds = %143
  br label %406

151:                                              ; preds = %4
  %152 = load ptr, ptr %9, align 8, !tbaa !5
  %153 = load i64, ptr %152, align 8, !tbaa !11
  %154 = icmp eq i64 %153, 8
  br i1 %154, label %155, label %160

155:                                              ; preds = %151
  %156 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 22
  %157 = load i64, ptr %156, align 8, !tbaa !51
  %158 = load ptr, ptr %8, align 8, !tbaa !5
  store i64 %157, ptr %158, align 8, !tbaa !11
  %159 = load ptr, ptr %9, align 8, !tbaa !5
  store i64 8, ptr %159, align 8, !tbaa !11
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

160:                                              ; preds = %151
  br label %406

161:                                              ; preds = %4
  %162 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %163 = trunc i8 %162 to i1
  br i1 %163, label %164, label %168

164:                                              ; preds = %161
  %165 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 8
  %166 = load i32, ptr %165, align 4, !tbaa !52
  %167 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %166, ptr %167, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

168:                                              ; preds = %161
  br label %406

169:                                              ; preds = %4
  %170 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %171 = trunc i8 %170 to i1
  br i1 %171, label %172, label %176

172:                                              ; preds = %169
  %173 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 9
  %174 = load i32, ptr %173, align 8, !tbaa !53
  %175 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %174, ptr %175, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

176:                                              ; preds = %169
  br label %406

177:                                              ; preds = %4
  %178 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %179 = trunc i8 %178 to i1
  br i1 %179, label %180, label %184

180:                                              ; preds = %177
  %181 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 23
  %182 = load i32, ptr %181, align 8, !tbaa !54
  %183 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %182, ptr %183, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

184:                                              ; preds = %177
  br label %406

185:                                              ; preds = %4
  %186 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %187 = trunc i8 %186 to i1
  br i1 %187, label %188, label %192

188:                                              ; preds = %185
  %189 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 24
  %190 = load i32, ptr %189, align 4, !tbaa !55
  %191 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %190, ptr %191, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

192:                                              ; preds = %185
  br label %406

193:                                              ; preds = %4
  %194 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %195 = trunc i8 %194 to i1
  br i1 %195, label %196, label %203

196:                                              ; preds = %193
  %197 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 25
  %198 = load i8, ptr %197, align 8, !tbaa !56, !range !15, !noundef !16
  %199 = trunc i8 %198 to i1
  %200 = zext i1 %199 to i32
  %201 = sub nsw i32 1, %200
  %202 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %201, ptr %202, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

203:                                              ; preds = %193
  br label %406

204:                                              ; preds = %4
  %205 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %206 = trunc i8 %205 to i1
  br i1 %206, label %207, label %213

207:                                              ; preds = %204
  %208 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 25
  %209 = load i8, ptr %208, align 8, !tbaa !56, !range !15, !noundef !16
  %210 = trunc i8 %209 to i1
  %211 = zext i1 %210 to i32
  %212 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %211, ptr %212, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

213:                                              ; preds = %204
  br label %406

214:                                              ; preds = %4
  %215 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %216 = trunc i8 %215 to i1
  br i1 %216, label %217, label %221

217:                                              ; preds = %214
  %218 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 27
  %219 = load i32, ptr %218, align 4, !tbaa !57
  %220 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %219, ptr %220, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

221:                                              ; preds = %214
  br label %406

222:                                              ; preds = %4
  %223 = load ptr, ptr %8, align 8, !tbaa !5
  %224 = load ptr, ptr %9, align 8, !tbaa !5
  %225 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 34
  %226 = call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %223, ptr noundef %224, ptr noundef nonnull align 8 dereferenceable(32) %225)
  store i32 %226, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

227:                                              ; preds = %4
  %228 = load ptr, ptr %8, align 8, !tbaa !5
  %229 = load ptr, ptr %9, align 8, !tbaa !5
  %230 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 35
  %231 = call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %228, ptr noundef %229, ptr noundef nonnull align 8 dereferenceable(32) %230)
  store i32 %231, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

232:                                              ; preds = %4
  %233 = load ptr, ptr %8, align 8, !tbaa !5
  %234 = load ptr, ptr %9, align 8, !tbaa !5
  %235 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 36
  %236 = call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %233, ptr noundef %234, ptr noundef nonnull align 8 dereferenceable(32) %235)
  store i32 %236, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

237:                                              ; preds = %4
  %238 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %239 = trunc i8 %238 to i1
  br i1 %239, label %240, label %244

240:                                              ; preds = %237
  %241 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 37
  %242 = load i32, ptr %241, align 8, !tbaa !58
  %243 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %242, ptr %243, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

244:                                              ; preds = %237
  br label %406

245:                                              ; preds = %4
  %246 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %247 = trunc i8 %246 to i1
  br i1 %247, label %248, label %252

248:                                              ; preds = %245
  %249 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 38
  %250 = load i32, ptr %249, align 4, !tbaa !59
  %251 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %250, ptr %251, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

252:                                              ; preds = %245
  br label %406

253:                                              ; preds = %4
  %254 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %255 = trunc i8 %254 to i1
  br i1 %255, label %256, label %260

256:                                              ; preds = %253
  %257 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 39
  %258 = load i32, ptr %257, align 8, !tbaa !60
  %259 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %258, ptr %259, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

260:                                              ; preds = %253
  br label %406

261:                                              ; preds = %4
  %262 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %263 = trunc i8 %262 to i1
  br i1 %263, label %264, label %268

264:                                              ; preds = %261
  %265 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 40
  %266 = load i32, ptr %265, align 4, !tbaa !61
  %267 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %266, ptr %267, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

268:                                              ; preds = %261
  br label %406

269:                                              ; preds = %4
  %270 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %271 = trunc i8 %270 to i1
  br i1 %271, label %272, label %276

272:                                              ; preds = %269
  %273 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 42
  %274 = load i32, ptr %273, align 8, !tbaa !62
  %275 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %274, ptr %275, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

276:                                              ; preds = %269
  br label %406

277:                                              ; preds = %4
  %278 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %279 = trunc i8 %278 to i1
  br i1 %279, label %280, label %292

280:                                              ; preds = %277
  %281 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 43
  %282 = load i32, ptr %281, align 4, !tbaa !63
  %283 = icmp ne i32 %282, 0
  br i1 %283, label %284, label %288

284:                                              ; preds = %280
  %285 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 42
  %286 = load i32, ptr %285, align 8, !tbaa !62
  %287 = icmp eq i32 %286, 1
  br label %288

288:                                              ; preds = %284, %280
  %289 = phi i1 [ false, %280 ], [ %287, %284 ]
  %290 = zext i1 %289 to i32
  %291 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %290, ptr %291, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

292:                                              ; preds = %277
  br label %406

293:                                              ; preds = %4
  %294 = load ptr, ptr %8, align 8, !tbaa !5
  %295 = load ptr, ptr %9, align 8, !tbaa !5
  %296 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 45
  %297 = call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %294, ptr noundef %295, ptr noundef nonnull align 8 dereferenceable(32) %296)
  store i32 %297, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

298:                                              ; preds = %4
  %299 = load ptr, ptr %8, align 8, !tbaa !5
  %300 = load ptr, ptr %9, align 8, !tbaa !5
  %301 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 46
  %302 = call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %299, ptr noundef %300, ptr noundef nonnull align 8 dereferenceable(32) %301)
  store i32 %302, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

303:                                              ; preds = %4
  %304 = load ptr, ptr %8, align 8, !tbaa !5
  %305 = load ptr, ptr %9, align 8, !tbaa !5
  %306 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 44
  %307 = call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %304, ptr noundef %305, ptr noundef nonnull align 8 dereferenceable(32) %306)
  store i32 %307, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

308:                                              ; preds = %4
  %309 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %310 = trunc i8 %309 to i1
  br i1 %310, label %311, label %317

311:                                              ; preds = %308
  %312 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 57
  %313 = load i8, ptr %312, align 8, !tbaa !64, !range !15, !noundef !16
  %314 = trunc i8 %313 to i1
  %315 = zext i1 %314 to i32
  %316 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %315, ptr %316, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

317:                                              ; preds = %308
  br label %406

318:                                              ; preds = %4
  %319 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %320 = trunc i8 %319 to i1
  br i1 %320, label %321, label %325

321:                                              ; preds = %318
  %322 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 59
  %323 = load i32, ptr %322, align 4, !tbaa !65
  %324 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %323, ptr %324, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

325:                                              ; preds = %318
  br label %406

326:                                              ; preds = %4
  %327 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %328 = trunc i8 %327 to i1
  br i1 %328, label %329, label %335

329:                                              ; preds = %326
  %330 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 29
  %331 = load i8, ptr %330, align 1, !tbaa !66, !range !15, !noundef !16
  %332 = trunc i8 %331 to i1
  %333 = zext i1 %332 to i32
  %334 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %333, ptr %334, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

335:                                              ; preds = %326
  br label %406

336:                                              ; preds = %4
  %337 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %338 = trunc i8 %337 to i1
  br i1 %338, label %339, label %343

339:                                              ; preds = %336
  %340 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 63
  %341 = load i32, ptr %340, align 4, !tbaa !67
  %342 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %341, ptr %342, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

343:                                              ; preds = %336
  br label %406

344:                                              ; preds = %4
  %345 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %346 = trunc i8 %345 to i1
  br i1 %346, label %347, label %353

347:                                              ; preds = %344
  %348 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 62
  %349 = load i16, ptr %348, align 2, !tbaa !68
  %350 = zext i16 %349 to i32
  %351 = mul nsw i32 %350, 100
  %352 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %351, ptr %352, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

353:                                              ; preds = %344
  br label %406

354:                                              ; preds = %4
  %355 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %356 = trunc i8 %355 to i1
  br i1 %356, label %357, label %361

357:                                              ; preds = %354
  %358 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 64
  %359 = load i32, ptr %358, align 8, !tbaa !69
  %360 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %359, ptr %360, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

361:                                              ; preds = %354
  br label %406

362:                                              ; preds = %4
  %363 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %364 = trunc i8 %363 to i1
  br i1 %364, label %365, label %369

365:                                              ; preds = %362
  %366 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 65
  %367 = load i32, ptr %366, align 4, !tbaa !70
  %368 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %367, ptr %368, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

369:                                              ; preds = %362
  br label %406

370:                                              ; preds = %4
  %371 = load ptr, ptr %8, align 8, !tbaa !5
  %372 = load ptr, ptr %9, align 8, !tbaa !5
  %373 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 66
  %374 = call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %371, ptr noundef %372, ptr noundef nonnull align 8 dereferenceable(32) %373)
  store i32 %374, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

375:                                              ; preds = %4
  %376 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %377 = trunc i8 %376 to i1
  br i1 %377, label %378, label %384

378:                                              ; preds = %375
  %379 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 67
  %380 = load i8, ptr %379, align 8, !tbaa !71, !range !15, !noundef !16
  %381 = trunc i8 %380 to i1
  %382 = zext i1 %381 to i32
  %383 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %382, ptr %383, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

384:                                              ; preds = %375
  br label %406

385:                                              ; preds = %4
  %386 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %387 = trunc i8 %386 to i1
  br i1 %387, label %388, label %394

388:                                              ; preds = %385
  %389 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 68
  %390 = load i8, ptr %389, align 1, !tbaa !72, !range !15, !noundef !16
  %391 = trunc i8 %390 to i1
  %392 = zext i1 %391 to i32
  %393 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %392, ptr %393, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

394:                                              ; preds = %385
  br label %406

395:                                              ; preds = %4
  %396 = load i8, ptr %10, align 1, !tbaa !13, !range !15, !noundef !16
  %397 = trunc i8 %396 to i1
  br i1 %397, label %398, label %404

398:                                              ; preds = %395
  %399 = getelementptr inbounds %"struct.zmq::options_t", ptr %13, i32 0, i32 69
  %400 = load i8, ptr %399, align 2, !tbaa !73, !range !15, !noundef !16
  %401 = trunc i8 %400 to i1
  %402 = zext i1 %401 to i32
  %403 = load ptr, ptr %11, align 8, !tbaa !5
  store i32 %402, ptr %403, align 4, !tbaa !9
  store i32 0, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

404:                                              ; preds = %395
  br label %406

405:                                              ; preds = %4
  br label %406

406:                                              ; preds = %405, %404, %394, %384, %369, %361, %353, %343, %335, %325, %317, %292, %276, %268, %260, %252, %244, %221, %213, %203, %192, %184, %176, %168, %160, %150, %142, %134, %126, %118, %110, %102, %93, %85, %77, %69, %61, %44, %35, %27
  %407 = call ptr @__errno_location() #5
  store i32 22, ptr %407, align 4, !tbaa !9
  store i32 -1, ptr %5, align 4
  store i32 1, ptr %12, align 4
  br label %408

408:                                              ; preds = %406, %398, %388, %378, %370, %365, %357, %347, %339, %329, %321, %311, %303, %298, %293, %288, %272, %264, %256, %248, %240, %232, %227, %222, %217, %207, %196, %188, %180, %172, %164, %155, %146, %138, %130, %122, %114, %106, %97, %89, %81, %73, %65, %57, %45, %40, %31, %23
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #4
  call void @llvm.lifetime.end.p0(i64 1, ptr %10) #4
  %409 = load i32, ptr %5, align 4
  ret i32 %409
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK3zmq14atomic_value_t4loadEv(ptr noundef nonnull align 4 dereferenceable(4)) #3 align 2

attributes #0 = { mustprogress 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 = { nounwind willreturn memory(none) "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 = { mustprogress 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 #4 = { nounwind }
attributes #5 = { nounwind willreturn memory(none) }

!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, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"long", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{i8 0, i8 2}
!16 = !{}
!17 = !{!18, !10, i64 0}
!18 = !{!"_ZTSN3zmq9options_tE", !10, i64 0, !10, i64 4, !12, i64 8, !7, i64 16, !7, i64 17, !10, i64 276, !10, i64 280, !10, i64 284, !10, i64 288, !10, i64 292, !10, i64 296, !10, i64 300, !7, i64 304, !19, i64 308, !10, i64 312, !10, i64 316, !10, i64 320, !10, i64 324, !10, i64 328, !12, i64 336, !10, i64 344, !10, i64 348, !14, i64 352, !10, i64 356, !14, i64 360, !14, i64 361, !14, i64 362, !14, i64 363, !14, i64 364, !22, i64 368, !22, i64 400, !22, i64 432, !10, i64 464, !10, i64 468, !10, i64 472, !10, i64 476, !24, i64 480, !10, i64 504, !10, i64 508, !22, i64 512, !22, i64 544, !22, i64 576, !7, i64 608, !7, i64 640, !7, i64 672, !22, i64 704, !22, i64 736, !10, i64 768, !10, i64 772, !14, i64 776, !10, i64 780, !14, i64 784, !10, i64 788, !14, i64 792, !28, i64 794, !10, i64 796, !10, i64 800, !10, i64 804, !22, i64 808, !14, i64 840, !14, i64 841, !14, i64 842, !10, i64 844, !10, i64 848, !14, i64 852, !10, i64 856, !29, i64 864, !10, i64 912}
!19 = !{!"_ZTSN3zmq14atomic_value_tE", !20, i64 0}
!20 = !{!"_ZTSSt6atomicIiE", !21, i64 0}
!21 = !{!"_ZTSSt13__atomic_baseIiE", !10, i64 0}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !23, i64 0, !12, i64 8, !7, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!24 = !{!"_ZTSSt6vectorIN3zmq18tcp_address_mask_tESaIS1_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseIN3zmq18tcp_address_mask_tESaIS1_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIN3zmq18tcp_address_mask_tESaIS1_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseIN3zmq18tcp_address_mask_tESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!28 = !{!"short", !7, i64 0}
!29 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !30, i64 0}
!30 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !31, i64 0}
!31 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !32, i64 0, !34, i64 8}
!32 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !33, i64 0}
!33 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!34 = !{!"_ZTSSt15_Rb_tree_header", !35, i64 0, !12, i64 32}
!35 = !{!"_ZTSSt18_Rb_tree_node_base", !36, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!36 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!37 = !{!18, !10, i64 4}
!38 = !{!18, !12, i64 8}
!39 = !{!18, !7, i64 16}
!40 = !{!18, !10, i64 276}
!41 = !{!18, !10, i64 280}
!42 = !{!18, !10, i64 292}
!43 = !{!18, !10, i64 296}
!44 = !{!18, !10, i64 300}
!45 = !{!18, !7, i64 304}
!46 = !{!18, !10, i64 312}
!47 = !{!18, !10, i64 316}
!48 = !{!18, !10, i64 320}
!49 = !{!18, !10, i64 324}
!50 = !{!18, !10, i64 328}
!51 = !{!18, !12, i64 336}
!52 = !{!18, !10, i64 284}
!53 = !{!18, !10, i64 288}
!54 = !{!18, !10, i64 344}
!55 = !{!18, !10, i64 348}
!56 = !{!18, !14, i64 352}
!57 = !{!18, !10, i64 356}
!58 = !{!18, !10, i64 464}
!59 = !{!18, !10, i64 468}
!60 = !{!18, !10, i64 472}
!61 = !{!18, !10, i64 476}
!62 = !{!18, !10, i64 504}
!63 = !{!18, !10, i64 508}
!64 = !{!18, !14, i64 784}
!65 = !{!18, !10, i64 788}
!66 = !{!18, !14, i64 361}
!67 = !{!18, !10, i64 796}
!68 = !{!18, !28, i64 794}
!69 = !{!18, !10, i64 800}
!70 = !{!18, !10, i64 804}
!71 = !{!18, !14, i64 840}
!72 = !{!18, !14, i64 841}
!73 = !{!18, !14, i64 842}


; 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"

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #0

; Function Attrs: mustprogress uwtable
declare dso_local noundef i32 @_ZN3zmq13do_getsockoptEPvPmPKvm(ptr noundef, ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_ZNK3zmq9options_t10getsockoptEiPvPm(ptr noundef nonnull align 8 dereferenceable(916) %0, i32 noundef %1, ptr noundef %2, ptr noundef %3) local_unnamed_addr #0 align 2 {
  %5 = load i64, ptr %3, align 8, !tbaa !5
  %6 = icmp eq i64 %5, 4
  switch i32 %1, label %206 [
    i32 23, label %7
    i32 24, label %10
    i32 4, label %14
    i32 5, label %19
    i32 8, label %25
    i32 9, label %29
    i32 11, label %33
    i32 12, label %37
    i32 57, label %41
    i32 16, label %45
    i32 17, label %50
    i32 79, label %54
    i32 80, label %58
    i32 18, label %62
    i32 21, label %66
    i32 19, label %70
    i32 22, label %74
    i32 25, label %79
    i32 84, label %83
    i32 27, label %87
    i32 28, label %91
    i32 31, label %95
    i32 42, label %101
    i32 39, label %106
    i32 68, label %110
    i32 99, label %113
    i32 100, label %116
    i32 34, label %119
    i32 35, label %123
    i32 36, label %127
    i32 37, label %131
    i32 43, label %135
    i32 44, label %139
    i32 45, label %147
    i32 46, label %150
    i32 55, label %153
    i32 54, label %156
    i32 66, label %161
    i32 74, label %165
    i32 75, label %170
    i32 76, label %174
    i32 77, label %180
    i32 89, label %184
    i32 92, label %188
    i32 93, label %191
    i32 94, label %196
    i32 96, label %201
  ]

7:                                                ; preds = %4
  br i1 %6, label %8, label %206

8:                                                ; preds = %7
  %9 = load i32, ptr %0, align 8, !tbaa !9
  store i32 %9, ptr %2, align 4, !tbaa !32
  br label %208

10:                                               ; preds = %4
  br i1 %6, label %11, label %206

11:                                               ; preds = %10
  %12 = getelementptr inbounds i8, ptr %0, i64 4
  %13 = load i32, ptr %12, align 4, !tbaa !33
  store i32 %13, ptr %2, align 4, !tbaa !32
  br label %208

14:                                               ; preds = %4
  %15 = icmp eq i64 %5, 8
  br i1 %15, label %16, label %206

16:                                               ; preds = %14
  %17 = getelementptr inbounds i8, ptr %0, i64 8
  %18 = load i64, ptr %17, align 8, !tbaa !34
  store i64 %18, ptr %2, align 8, !tbaa !5
  br label %208

19:                                               ; preds = %4
  %20 = getelementptr inbounds i8, ptr %0, i64 17
  %21 = getelementptr inbounds i8, ptr %0, i64 16
  %22 = load i8, ptr %21, align 8, !tbaa !35
  %23 = zext i8 %22 to i64
  %24 = tail call noundef i32 @_ZN3zmq13do_getsockoptEPvPmPKvm(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull %20, i64 noundef %23)
  br label %208

25:                                               ; preds = %4
  br i1 %6, label %26, label %206

26:                                               ; preds = %25
  %27 = getelementptr inbounds i8, ptr %0, i64 276
  %28 = load i32, ptr %27, align 4, !tbaa !36
  store i32 %28, ptr %2, align 4, !tbaa !32
  br label %208

29:                                               ; preds = %4
  br i1 %6, label %30, label %206

30:                                               ; preds = %29
  %31 = getelementptr inbounds i8, ptr %0, i64 280
  %32 = load i32, ptr %31, align 8, !tbaa !37
  store i32 %32, ptr %2, align 4, !tbaa !32
  br label %208

33:                                               ; preds = %4
  br i1 %6, label %34, label %206

34:                                               ; preds = %33
  %35 = getelementptr inbounds i8, ptr %0, i64 292
  %36 = load i32, ptr %35, align 4, !tbaa !38
  store i32 %36, ptr %2, align 4, !tbaa !32
  br label %208

37:                                               ; preds = %4
  br i1 %6, label %38, label %206

38:                                               ; preds = %37
  %39 = getelementptr inbounds i8, ptr %0, i64 296
  %40 = load i32, ptr %39, align 8, !tbaa !39
  store i32 %40, ptr %2, align 4, !tbaa !32
  br label %208

41:                                               ; preds = %4
  br i1 %6, label %42, label %206

42:                                               ; preds = %41
  %43 = getelementptr inbounds i8, ptr %0, i64 300
  %44 = load i32, ptr %43, align 4, !tbaa !40
  store i32 %44, ptr %2, align 4, !tbaa !32
  br label %208

45:                                               ; preds = %4
  br i1 %6, label %46, label %206

46:                                               ; preds = %45
  %47 = getelementptr inbounds i8, ptr %0, i64 304
  %48 = load i8, ptr %47, align 8, !tbaa !41
  %49 = sext i8 %48 to i32
  store i32 %49, ptr %2, align 4, !tbaa !32
  br label %208

50:                                               ; preds = %4
  br i1 %6, label %51, label %206

51:                                               ; preds = %50
  %52 = getelementptr inbounds i8, ptr %0, i64 308
  %53 = tail call noundef i32 @_ZNK3zmq14atomic_value_t4loadEv(ptr noundef nonnull align 4 dereferenceable(4) %52)
  store i32 %53, ptr %2, align 4, !tbaa !32
  br label %208

54:                                               ; preds = %4
  br i1 %6, label %55, label %206

55:                                               ; preds = %54
  %56 = getelementptr inbounds i8, ptr %0, i64 312
  %57 = load i32, ptr %56, align 8, !tbaa !42
  store i32 %57, ptr %2, align 4, !tbaa !32
  br label %208

58:                                               ; preds = %4
  br i1 %6, label %59, label %206

59:                                               ; preds = %58
  %60 = getelementptr inbounds i8, ptr %0, i64 316
  %61 = load i32, ptr %60, align 4, !tbaa !43
  store i32 %61, ptr %2, align 4, !tbaa !32
  br label %208

62:                                               ; preds = %4
  br i1 %6, label %63, label %206

63:                                               ; preds = %62
  %64 = getelementptr inbounds i8, ptr %0, i64 320
  %65 = load i32, ptr %64, align 8, !tbaa !44
  store i32 %65, ptr %2, align 4, !tbaa !32
  br label %208

66:                                               ; preds = %4
  br i1 %6, label %67, label %206

67:                                               ; preds = %66
  %68 = getelementptr inbounds i8, ptr %0, i64 324
  %69 = load i32, ptr %68, align 4, !tbaa !45
  store i32 %69, ptr %2, align 4, !tbaa !32
  br label %208

70:                                               ; preds = %4
  br i1 %6, label %71, label %206

71:                                               ; preds = %70
  %72 = getelementptr inbounds i8, ptr %0, i64 328
  %73 = load i32, ptr %72, align 8, !tbaa !46
  store i32 %73, ptr %2, align 4, !tbaa !32
  br label %208

74:                                               ; preds = %4
  %75 = icmp eq i64 %5, 8
  br i1 %75, label %76, label %206

76:                                               ; preds = %74
  %77 = getelementptr inbounds i8, ptr %0, i64 336
  %78 = load i64, ptr %77, align 8, !tbaa !47
  store i64 %78, ptr %2, align 8, !tbaa !5
  store i64 8, ptr %3, align 8, !tbaa !5
  br label %208

79:                                               ; preds = %4
  br i1 %6, label %80, label %206

80:                                               ; preds = %79
  %81 = getelementptr inbounds i8, ptr %0, i64 284
  %82 = load i32, ptr %81, align 4, !tbaa !48
  store i32 %82, ptr %2, align 4, !tbaa !32
  br label %208

83:                                               ; preds = %4
  br i1 %6, label %84, label %206

84:                                               ; preds = %83
  %85 = getelementptr inbounds i8, ptr %0, i64 288
  %86 = load i32, ptr %85, align 8, !tbaa !49
  store i32 %86, ptr %2, align 4, !tbaa !32
  br label %208

87:                                               ; preds = %4
  br i1 %6, label %88, label %206

88:                                               ; preds = %87
  %89 = getelementptr inbounds i8, ptr %0, i64 344
  %90 = load i32, ptr %89, align 8, !tbaa !50
  store i32 %90, ptr %2, align 4, !tbaa !32
  br label %208

91:                                               ; preds = %4
  br i1 %6, label %92, label %206

92:                                               ; preds = %91
  %93 = getelementptr inbounds i8, ptr %0, i64 348
  %94 = load i32, ptr %93, align 4, !tbaa !51
  store i32 %94, ptr %2, align 4, !tbaa !32
  br label %208

95:                                               ; preds = %4
  br i1 %6, label %96, label %206

96:                                               ; preds = %95
  %97 = getelementptr inbounds i8, ptr %0, i64 352
  %98 = load i8, ptr %97, align 8, !tbaa !52, !range !53, !noundef !54
  %99 = xor i8 %98, 1
  %100 = zext nneg i8 %99 to i32
  store i32 %100, ptr %2, align 4, !tbaa !32
  br label %208

101:                                              ; preds = %4
  br i1 %6, label %102, label %206

102:                                              ; preds = %101
  %103 = getelementptr inbounds i8, ptr %0, i64 352
  %104 = load i8, ptr %103, align 8, !tbaa !52, !range !53, !noundef !54
  %105 = zext nneg i8 %104 to i32
  store i32 %105, ptr %2, align 4, !tbaa !32
  br label %208

106:                                              ; preds = %4
  br i1 %6, label %107, label %206

107:                                              ; preds = %106
  %108 = getelementptr inbounds i8, ptr %0, i64 356
  %109 = load i32, ptr %108, align 4, !tbaa !55
  store i32 %109, ptr %2, align 4, !tbaa !32
  br label %208

110:                                              ; preds = %4
  %111 = getelementptr inbounds i8, ptr %0, i64 368
  %112 = tail call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull align 8 dereferenceable(32) %111)
  br label %208

113:                                              ; preds = %4
  %114 = getelementptr inbounds i8, ptr %0, i64 400
  %115 = tail call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull align 8 dereferenceable(32) %114)
  br label %208

116:                                              ; preds = %4
  %117 = getelementptr inbounds i8, ptr %0, i64 432
  %118 = tail call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull align 8 dereferenceable(32) %117)
  br label %208

119:                                              ; preds = %4
  br i1 %6, label %120, label %206

120:                                              ; preds = %119
  %121 = getelementptr inbounds i8, ptr %0, i64 464
  %122 = load i32, ptr %121, align 8, !tbaa !56
  store i32 %122, ptr %2, align 4, !tbaa !32
  br label %208

123:                                              ; preds = %4
  br i1 %6, label %124, label %206

124:                                              ; preds = %123
  %125 = getelementptr inbounds i8, ptr %0, i64 468
  %126 = load i32, ptr %125, align 4, !tbaa !57
  store i32 %126, ptr %2, align 4, !tbaa !32
  br label %208

127:                                              ; preds = %4
  br i1 %6, label %128, label %206

128:                                              ; preds = %127
  %129 = getelementptr inbounds i8, ptr %0, i64 472
  %130 = load i32, ptr %129, align 8, !tbaa !58
  store i32 %130, ptr %2, align 4, !tbaa !32
  br label %208

131:                                              ; preds = %4
  br i1 %6, label %132, label %206

132:                                              ; preds = %131
  %133 = getelementptr inbounds i8, ptr %0, i64 476
  %134 = load i32, ptr %133, align 4, !tbaa !59
  store i32 %134, ptr %2, align 4, !tbaa !32
  br label %208

135:                                              ; preds = %4
  br i1 %6, label %136, label %206

136:                                              ; preds = %135
  %137 = getelementptr inbounds i8, ptr %0, i64 504
  %138 = load i32, ptr %137, align 8, !tbaa !60
  store i32 %138, ptr %2, align 4, !tbaa !32
  br label %208

139:                                              ; preds = %4
  br i1 %6, label %140, label %206

140:                                              ; preds = %139
  %141 = getelementptr inbounds i8, ptr %0, i64 508
  %142 = load i32, ptr %141, align 4, !tbaa !61
  %.not = icmp ne i32 %142, 0
  %143 = getelementptr inbounds i8, ptr %0, i64 504
  %144 = load i32, ptr %143, align 8
  %145 = icmp eq i32 %144, 1
  %narrow = select i1 %.not, i1 %145, i1 false
  %146 = zext i1 %narrow to i32
  store i32 %146, ptr %2, align 4, !tbaa !32
  br label %208

147:                                              ; preds = %4
  %148 = getelementptr inbounds i8, ptr %0, i64 544
  %149 = tail call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull align 8 dereferenceable(32) %148)
  br label %208

150:                                              ; preds = %4
  %151 = getelementptr inbounds i8, ptr %0, i64 576
  %152 = tail call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull align 8 dereferenceable(32) %151)
  br label %208

153:                                              ; preds = %4
  %154 = getelementptr inbounds i8, ptr %0, i64 512
  %155 = tail call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull align 8 dereferenceable(32) %154)
  br label %208

156:                                              ; preds = %4
  br i1 %6, label %157, label %206

157:                                              ; preds = %156
  %158 = getelementptr inbounds i8, ptr %0, i64 784
  %159 = load i8, ptr %158, align 8, !tbaa !62, !range !53, !noundef !54
  %160 = zext nneg i8 %159 to i32
  store i32 %160, ptr %2, align 4, !tbaa !32
  br label %208

161:                                              ; preds = %4
  br i1 %6, label %162, label %206

162:                                              ; preds = %161
  %163 = getelementptr inbounds i8, ptr %0, i64 788
  %164 = load i32, ptr %163, align 4, !tbaa !63
  store i32 %164, ptr %2, align 4, !tbaa !32
  br label %208

165:                                              ; preds = %4
  br i1 %6, label %166, label %206

166:                                              ; preds = %165
  %167 = getelementptr inbounds i8, ptr %0, i64 361
  %168 = load i8, ptr %167, align 1, !tbaa !64, !range !53, !noundef !54
  %169 = zext nneg i8 %168 to i32
  store i32 %169, ptr %2, align 4, !tbaa !32
  br label %208

170:                                              ; preds = %4
  br i1 %6, label %171, label %206

171:                                              ; preds = %170
  %172 = getelementptr inbounds i8, ptr %0, i64 796
  %173 = load i32, ptr %172, align 4, !tbaa !65
  store i32 %173, ptr %2, align 4, !tbaa !32
  br label %208

174:                                              ; preds = %4
  br i1 %6, label %175, label %206

175:                                              ; preds = %174
  %176 = getelementptr inbounds i8, ptr %0, i64 794
  %177 = load i16, ptr %176, align 2, !tbaa !66
  %178 = zext i16 %177 to i32
  %179 = mul nuw nsw i32 %178, 100
  store i32 %179, ptr %2, align 4, !tbaa !32
  br label %208

180:                                              ; preds = %4
  br i1 %6, label %181, label %206

181:                                              ; preds = %180
  %182 = getelementptr inbounds i8, ptr %0, i64 800
  %183 = load i32, ptr %182, align 8, !tbaa !67
  store i32 %183, ptr %2, align 4, !tbaa !32
  br label %208

184:                                              ; preds = %4
  br i1 %6, label %185, label %206

185:                                              ; preds = %184
  %186 = getelementptr inbounds i8, ptr %0, i64 804
  %187 = load i32, ptr %186, align 4, !tbaa !68
  store i32 %187, ptr %2, align 4, !tbaa !32
  br label %208

188:                                              ; preds = %4
  %189 = getelementptr inbounds i8, ptr %0, i64 808
  %190 = tail call noundef i32 @_ZN3zmq13do_getsockoptEPvPmRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull align 8 dereferenceable(32) %189)
  br label %208

191:                                              ; preds = %4
  br i1 %6, label %192, label %206

192:                                              ; preds = %191
  %193 = getelementptr inbounds i8, ptr %0, i64 840
  %194 = load i8, ptr %193, align 8, !tbaa !69, !range !53, !noundef !54
  %195 = zext nneg i8 %194 to i32
  store i32 %195, ptr %2, align 4, !tbaa !32
  br label %208

196:                                              ; preds = %4
  br i1 %6, label %197, label %206

197:                                              ; preds = %196
  %198 = getelementptr inbounds i8, ptr %0, i64 841
  %199 = load i8, ptr %198, align 1, !tbaa !70, !range !53, !noundef !54
  %200 = zext nneg i8 %199 to i32
  store i32 %200, ptr %2, align 4, !tbaa !32
  br label %208

201:                                              ; preds = %4
  br i1 %6, label %202, label %206

202:                                              ; preds = %201
  %203 = getelementptr inbounds i8, ptr %0, i64 842
  %204 = load i8, ptr %203, align 2, !tbaa !71, !range !53, !noundef !54
  %205 = zext nneg i8 %204 to i32
  store i32 %205, ptr %2, align 4, !tbaa !32
  br label %208

206:                                              ; preds = %4, %201, %196, %191, %184, %180, %174, %170, %165, %161, %156, %139, %135, %131, %127, %123, %119, %106, %101, %95, %91, %87, %83, %79, %74, %70, %66, %62, %58, %54, %50, %45, %41, %37, %33, %29, %25, %14, %10, %7
  %207 = tail call ptr @__errno_location() #3
  store i32 22, ptr %207, align 4, !tbaa !32
  br label %208

208:                                              ; preds = %206, %202, %197, %192, %188, %185, %181, %175, %171, %166, %162, %157, %153, %150, %147, %140, %136, %132, %128, %124, %120, %116, %113, %110, %107, %102, %96, %92, %88, %84, %80, %76, %71, %67, %63, %59, %55, %51, %46, %42, %38, %34, %30, %26, %19, %16, %11, %8
  %.0 = phi i32 [ -1, %206 ], [ 0, %202 ], [ 0, %197 ], [ 0, %192 ], [ %190, %188 ], [ 0, %185 ], [ 0, %181 ], [ 0, %175 ], [ 0, %171 ], [ 0, %166 ], [ 0, %162 ], [ 0, %157 ], [ %155, %153 ], [ %152, %150 ], [ %149, %147 ], [ 0, %140 ], [ 0, %136 ], [ 0, %132 ], [ 0, %128 ], [ 0, %124 ], [ 0, %120 ], [ %118, %116 ], [ %115, %113 ], [ %112, %110 ], [ 0, %107 ], [ 0, %102 ], [ 0, %96 ], [ 0, %92 ], [ 0, %88 ], [ 0, %84 ], [ 0, %80 ], [ 0, %76 ], [ 0, %71 ], [ 0, %67 ], [ 0, %63 ], [ 0, %59 ], [ 0, %55 ], [ 0, %51 ], [ 0, %46 ], [ 0, %42 ], [ 0, %38 ], [ 0, %34 ], [ 0, %30 ], [ 0, %26 ], [ %24, %19 ], [ 0, %16 ], [ 0, %11 ], [ 0, %8 ]
  ret i32 %.0
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK3zmq14atomic_value_t4loadEv(ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #2 align 2

attributes #0 = { mustprogress 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 nofree nosync nounwind willreturn memory(none) "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 #2 = { mustprogress 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 #3 = { nounwind willreturn memory(none) }

!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, !6, i64 0}
!6 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"_ZTSN3zmq9options_tE", !11, i64 0, !11, i64 4, !6, i64 8, !7, i64 16, !7, i64 17, !11, i64 276, !11, i64 280, !11, i64 284, !11, i64 288, !11, i64 292, !11, i64 296, !11, i64 300, !7, i64 304, !12, i64 308, !11, i64 312, !11, i64 316, !11, i64 320, !11, i64 324, !11, i64 328, !6, i64 336, !11, i64 344, !11, i64 348, !15, i64 352, !11, i64 356, !15, i64 360, !15, i64 361, !15, i64 362, !15, i64 363, !15, i64 364, !16, i64 368, !16, i64 400, !16, i64 432, !11, i64 464, !11, i64 468, !11, i64 472, !11, i64 476, !19, i64 480, !11, i64 504, !11, i64 508, !16, i64 512, !16, i64 544, !16, i64 576, !7, i64 608, !7, i64 640, !7, i64 672, !16, i64 704, !16, i64 736, !11, i64 768, !11, i64 772, !15, i64 776, !11, i64 780, !15, i64 784, !11, i64 788, !15, i64 792, !23, i64 794, !11, i64 796, !11, i64 800, !11, i64 804, !16, i64 808, !15, i64 840, !15, i64 841, !15, i64 842, !11, i64 844, !11, i64 848, !15, i64 852, !11, i64 856, !24, i64 864, !11, i64 912}
!11 = !{!"int", !7, i64 0}
!12 = !{!"_ZTSN3zmq14atomic_value_tE", !13, i64 0}
!13 = !{!"_ZTSSt6atomicIiE", !14, i64 0}
!14 = !{!"_ZTSSt13__atomic_baseIiE", !11, i64 0}
!15 = !{!"bool", !7, i64 0}
!16 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !17, i64 0, !6, i64 8, !7, i64 16}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !18, i64 0}
!18 = !{!"any pointer", !7, i64 0}
!19 = !{!"_ZTSSt6vectorIN3zmq18tcp_address_mask_tESaIS1_EE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIN3zmq18tcp_address_mask_tESaIS1_EE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIN3zmq18tcp_address_mask_tESaIS1_EE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIN3zmq18tcp_address_mask_tESaIS1_EE17_Vector_impl_dataE", !18, i64 0, !18, i64 8, !18, i64 16}
!23 = !{!"short", !7, i64 0}
!24 = !{!"_ZTSSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE", !25, i64 0}
!25 = !{!"_ZTSSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE", !26, i64 0}
!26 = !{!"_ZTSNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE13_Rb_tree_implISC_Lb1EEE", !27, i64 0, !29, i64 8}
!27 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEE", !28, i64 0}
!28 = !{!"_ZTSSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE"}
!29 = !{!"_ZTSSt15_Rb_tree_header", !30, i64 0, !6, i64 32}
!30 = !{!"_ZTSSt18_Rb_tree_node_base", !31, i64 0, !18, i64 8, !18, i64 16, !18, i64 24}
!31 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!32 = !{!11, !11, i64 0}
!33 = !{!10, !11, i64 4}
!34 = !{!10, !6, i64 8}
!35 = !{!10, !7, i64 16}
!36 = !{!10, !11, i64 276}
!37 = !{!10, !11, i64 280}
!38 = !{!10, !11, i64 292}
!39 = !{!10, !11, i64 296}
!40 = !{!10, !11, i64 300}
!41 = !{!10, !7, i64 304}
!42 = !{!10, !11, i64 312}
!43 = !{!10, !11, i64 316}
!44 = !{!10, !11, i64 320}
!45 = !{!10, !11, i64 324}
!46 = !{!10, !11, i64 328}
!47 = !{!10, !6, i64 336}
!48 = !{!10, !11, i64 284}
!49 = !{!10, !11, i64 288}
!50 = !{!10, !11, i64 344}
!51 = !{!10, !11, i64 348}
!52 = !{!10, !15, i64 352}
!53 = !{i8 0, i8 2}
!54 = !{}
!55 = !{!10, !11, i64 356}
!56 = !{!10, !11, i64 464}
!57 = !{!10, !11, i64 468}
!58 = !{!10, !11, i64 472}
!59 = !{!10, !11, i64 476}
!60 = !{!10, !11, i64 504}
!61 = !{!10, !11, i64 508}
!62 = !{!10, !15, i64 784}
!63 = !{!10, !11, i64 788}
!64 = !{!10, !15, i64 361}
!65 = !{!10, !11, i64 796}
!66 = !{!10, !23, i64 794}
!67 = !{!10, !11, i64 800}
!68 = !{!10, !11, i64 804}
!69 = !{!10, !15, i64 840}
!70 = !{!10, !15, i64 841}
!71 = !{!10, !15, i64 842}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,SROAPass,SimplifyCFGPass,TailCallElimPass