; LLVM IR from sympiler/nasoq :: nasoq_driver/ZN6format27find_inequalities_by_boundsEPNS_5DenseES1_PNS_3CSCES3_PNS_82d77205 (6IEFormE)

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

%"class.std::vector.65" = type { %"struct.std::_Vector_base.66" }
%"struct.std::_Vector_base.66" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.70" = type { %"struct.std::_Vector_base.71" }
%"struct.std::_Vector_base.71" = type { %"struct.std::_Vector_base<format::constraint *, std::allocator<format::constraint *>>::_Vector_impl" }
%"struct.std::_Vector_base<format::constraint *, std::allocator<format::constraint *>>::_Vector_impl" = type { %"struct.std::_Vector_base<format::constraint *, std::allocator<format::constraint *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<format::constraint *, std::allocator<format::constraint *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.format::IEForm" = type { %"struct.format::Description", ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, double, double }
%"struct.format::Description" = type { %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string" }
%"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] }
%"struct.format::CSC" = type { i64, i64, i64, i32, i8, i8, ptr, ptr, ptr }
%"struct.format::Dense" = type { i64, i64, i64, ptr }
%"struct.format::constraint" = type { i32, double }

@.str.129 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [81 x i8], align 1
@__PRETTY_FUNCTION__._ZN6format27find_inequalities_by_boundsEPNS_5DenseES1_PNS_3CSCES3_PNS_6IEFormE = external hidden unnamed_addr constant [83 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [27 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #2

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) #3

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #4

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) #5

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #3

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6format5DenseC2Emmm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef, i64 noundef) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN7sym_lib17transpose_generalEPN6format3CSCE(ptr noundef) #6

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN6format27find_inequalities_by_boundsEPNS_5DenseES1_PNS_3CSCES3_PNS_6IEFormE(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4) #6 personality ptr @__gxx_personality_v0 {
  %6 = alloca i1, align 1
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i8, align 1
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca %"class.std::vector.65", align 8
  %22 = alloca %"class.std::vector.70", align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca i64, align 8
  %31 = alloca i1, align 1
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca i64, align 8
  %35 = alloca i1, align 1
  %36 = alloca double, align 8
  %37 = alloca double, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca ptr, align 8
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca double, align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  store ptr %0, ptr %7, align 8, !tbaa !5
  store ptr %1, ptr %8, align 8, !tbaa !5
  store ptr %2, ptr %9, align 8, !tbaa !5
  store ptr %3, ptr %10, align 8, !tbaa !5
  store ptr %4, ptr %11, align 8, !tbaa !5
  %53 = load ptr, ptr %9, align 8, !tbaa !5
  %54 = icmp ne ptr %53, null
  br i1 %54, label %68, label %55

55:                                               ; preds = %5
  %56 = load ptr, ptr %11, align 8, !tbaa !5
  %57 = getelementptr inbounds %"struct.format::IEForm", ptr %56, i32 0, i32 6
  store ptr null, ptr %57, align 8, !tbaa !9
  %58 = load ptr, ptr %11, align 8, !tbaa !5
  %59 = getelementptr inbounds %"struct.format::IEForm", ptr %58, i32 0, i32 5
  store ptr null, ptr %59, align 8, !tbaa !16
  %60 = load ptr, ptr %11, align 8, !tbaa !5
  %61 = getelementptr inbounds %"struct.format::IEForm", ptr %60, i32 0, i32 4
  store ptr null, ptr %61, align 8, !tbaa !17
  %62 = load ptr, ptr %11, align 8, !tbaa !5
  %63 = getelementptr inbounds %"struct.format::IEForm", ptr %62, i32 0, i32 2
  store ptr null, ptr %63, align 8, !tbaa !18
  %64 = load ptr, ptr %11, align 8, !tbaa !5
  %65 = getelementptr inbounds %"struct.format::IEForm", ptr %64, i32 0, i32 3
  store ptr null, ptr %65, align 8, !tbaa !19
  %66 = load ptr, ptr %11, align 8, !tbaa !5
  %67 = getelementptr inbounds %"struct.format::IEForm", ptr %66, i32 0, i32 1
  store ptr null, ptr %67, align 8, !tbaa !20
  store i1 true, ptr %6, align 1
  br label %941

68:                                               ; preds = %5
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #10
  store i8 0, ptr %12, align 1, !tbaa !21
  %69 = load ptr, ptr %10, align 8, !tbaa !5
  %70 = icmp ne ptr %69, null
  br i1 %70, label %74, label %71

71:                                               ; preds = %68
  %72 = load ptr, ptr %9, align 8, !tbaa !5
  %73 = call noundef ptr @_ZN7sym_lib17transpose_generalEPN6format3CSCE(ptr noundef %72)
  store ptr %73, ptr %10, align 8, !tbaa !5
  store i8 1, ptr %12, align 1, !tbaa !21
  br label %74

74:                                               ; preds = %71, %68
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #10
  store i32 0, ptr %13, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  store i32 0, ptr %14, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  store i32 0, ptr %15, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  store i32 0, ptr %16, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #10
  %75 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #11
  invoke void @_ZN6format3CSCC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %75)
          to label %76 unwind label %144

76:                                               ; preds = %74
  store ptr %75, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #10
  %77 = call noalias noundef nonnull ptr @_Znwm(i64 noundef 56) #11
  invoke void @_ZN6format3CSCC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %77)
          to label %78 unwind label %148

78:                                               ; preds = %76
  store ptr %77, ptr %20, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr %21) #10
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr %22) #10
  call void @_ZNSt6vectorIPN6format10constraintESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #10
  %79 = load ptr, ptr %9, align 8, !tbaa !5
  %80 = getelementptr inbounds %"struct.format::CSC", ptr %79, i32 0, i32 1
  %81 = load i64, ptr %80, align 8, !tbaa !25
  %82 = trunc i64 %81 to i32
  store i32 %82, ptr %23, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  %83 = load ptr, ptr %9, align 8, !tbaa !5
  %84 = getelementptr inbounds %"struct.format::CSC", ptr %83, i32 0, i32 0
  %85 = load i64, ptr %84, align 8, !tbaa !27
  %86 = trunc i64 %85 to i32
  store i32 %86, ptr %24, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #10
  %87 = load i32, ptr %23, align 4, !tbaa !23
  %88 = sext i32 %87 to i64
  %89 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %88, i64 4)
  %90 = extractvalue { i64, i1 } %89, 1
  %91 = extractvalue { i64, i1 } %89, 0
  %92 = select i1 %90, i64 -1, i64 %91
  %93 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %92) #11
          to label %94 unwind label %152

94:                                               ; preds = %78
  call void @llvm.memset.p0.i64(ptr align 4 %93, i8 0, i64 %92, i1 false)
  store ptr %93, ptr %25, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #10
  %95 = load i32, ptr %23, align 4, !tbaa !23
  %96 = sext i32 %95 to i64
  %97 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %96, i64 4)
  %98 = extractvalue { i64, i1 } %97, 1
  %99 = extractvalue { i64, i1 } %97, 0
  %100 = select i1 %98, i64 -1, i64 %99
  %101 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %100) #11
          to label %102 unwind label %156

102:                                              ; preds = %94
  call void @llvm.memset.p0.i64(ptr align 4 %101, i8 0, i64 %100, i1 false)
  store ptr %101, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  %103 = load ptr, ptr %7, align 8, !tbaa !5
  %104 = icmp ne ptr %103, null
  store i1 false, ptr %31, align 1
  br i1 %104, label %105, label %109

105:                                              ; preds = %102
  %106 = load ptr, ptr %7, align 8, !tbaa !5
  %107 = getelementptr inbounds %"struct.format::Dense", ptr %106, i32 0, i32 3
  %108 = load ptr, ptr %107, align 8, !tbaa !28
  br label %118

109:                                              ; preds = %102
  %110 = load i32, ptr %24, align 4, !tbaa !23
  %111 = sext i32 %110 to i64
  %112 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %111, i64 8)
  %113 = extractvalue { i64, i1 } %112, 1
  %114 = extractvalue { i64, i1 } %112, 0
  %115 = select i1 %113, i64 -1, i64 %114
  %116 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %115) #11
          to label %117 unwind label %160

117:                                              ; preds = %109
  store ptr %116, ptr %29, align 8
  store i64 %115, ptr %30, align 8
  store i1 true, ptr %31, align 1
  br label %118

118:                                              ; preds = %117, %105
  %119 = phi ptr [ %108, %105 ], [ %116, %117 ]
  store ptr %119, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #10
  %120 = load ptr, ptr %8, align 8, !tbaa !5
  %121 = icmp ne ptr %120, null
  store i1 false, ptr %35, align 1
  br i1 %121, label %122, label %126

122:                                              ; preds = %118
  %123 = load ptr, ptr %8, align 8, !tbaa !5
  %124 = getelementptr inbounds %"struct.format::Dense", ptr %123, i32 0, i32 3
  %125 = load ptr, ptr %124, align 8, !tbaa !28
  br label %135

126:                                              ; preds = %118
  %127 = load i32, ptr %24, align 4, !tbaa !23
  %128 = sext i32 %127 to i64
  %129 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %128, i64 8)
  %130 = extractvalue { i64, i1 } %129, 1
  %131 = extractvalue { i64, i1 } %129, 0
  %132 = select i1 %130, i64 -1, i64 %131
  %133 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %132) #11
          to label %134 unwind label %164

134:                                              ; preds = %126
  store ptr %133, ptr %33, align 8
  store i64 %132, ptr %34, align 8
  store i1 true, ptr %35, align 1
  br label %135

135:                                              ; preds = %134, %122
  %136 = phi ptr [ %125, %122 ], [ %133, %134 ]
  store ptr %136, ptr %32, align 8, !tbaa !5
  %137 = load ptr, ptr %7, align 8, !tbaa !5
  %138 = icmp ne ptr %137, null
  br i1 %138, label %172, label %139

139:                                              ; preds = %135
  %140 = load ptr, ptr %28, align 8, !tbaa !5
  %141 = load i32, ptr %24, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #10
  store double -1.000000e+20, ptr %36, align 8, !tbaa !30
  %142 = invoke noundef ptr @_ZSt6fill_nIPdidET_S1_T0_RKT1_(ptr noundef %140, i32 noundef %141, ptr noundef nonnull align 8 dereferenceable(8) %36)
          to label %143 unwind label %168

143:                                              ; preds = %139
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  br label %172

144:                                              ; preds = %74
  %145 = landingpad { ptr, i32 }
          cleanup
  %146 = extractvalue { ptr, i32 } %145, 0
  store ptr %146, ptr %18, align 8
  %147 = extractvalue { ptr, i32 } %145, 1
  store i32 %147, ptr %19, align 4
  call void @_ZdlPvm(ptr noundef %75, i64 noundef 56) #12
  br label %940

148:                                              ; preds = %76
  %149 = landingpad { ptr, i32 }
          cleanup
  %150 = extractvalue { ptr, i32 } %149, 0
  store ptr %150, ptr %18, align 8
  %151 = extractvalue { ptr, i32 } %149, 1
  store i32 %151, ptr %19, align 4
  call void @_ZdlPvm(ptr noundef %77, i64 noundef 56) #12
  br label %939

152:                                              ; preds = %78
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %18, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %19, align 4
  br label %938

156:                                              ; preds = %94
  %157 = landingpad { ptr, i32 }
          cleanup
  %158 = extractvalue { ptr, i32 } %157, 0
  store ptr %158, ptr %18, align 8
  %159 = extractvalue { ptr, i32 } %157, 1
  store i32 %159, ptr %19, align 4
  br label %937

160:                                              ; preds = %109
  %161 = landingpad { ptr, i32 }
          cleanup
  %162 = extractvalue { ptr, i32 } %161, 0
  store ptr %162, ptr %18, align 8
  %163 = extractvalue { ptr, i32 } %161, 1
  store i32 %163, ptr %19, align 4
  br label %936

164:                                              ; preds = %845, %705, %695, %678, %184, %126
  %165 = landingpad { ptr, i32 }
          cleanup
  %166 = extractvalue { ptr, i32 } %165, 0
  store ptr %166, ptr %18, align 8
  %167 = extractvalue { ptr, i32 } %165, 1
  store i32 %167, ptr %19, align 4
  br label %935

168:                                              ; preds = %139
  %169 = landingpad { ptr, i32 }
          cleanup
  %170 = extractvalue { ptr, i32 } %169, 0
  store ptr %170, ptr %18, align 8
  %171 = extractvalue { ptr, i32 } %169, 1
  store i32 %171, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  br label %935

172:                                              ; preds = %143, %135
  %173 = load ptr, ptr %8, align 8, !tbaa !5
  %174 = icmp ne ptr %173, null
  br i1 %174, label %184, label %175

175:                                              ; preds = %172
  %176 = load ptr, ptr %28, align 8, !tbaa !5
  %177 = load i32, ptr %24, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #10
  store double 1.000000e+20, ptr %37, align 8, !tbaa !30
  %178 = invoke noundef ptr @_ZSt6fill_nIPdidET_S1_T0_RKT1_(ptr noundef %176, i32 noundef %177, ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %179 unwind label %180

179:                                              ; preds = %175
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  br label %184

180:                                              ; preds = %175
  %181 = landingpad { ptr, i32 }
          cleanup
  %182 = extractvalue { ptr, i32 } %181, 0
  store ptr %182, ptr %18, align 8
  %183 = extractvalue { ptr, i32 } %181, 1
  store i32 %183, ptr %19, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  br label %935

184:                                              ; preds = %179, %172
  %185 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 32) #11
          to label %186 unwind label %164

186:                                              ; preds = %184
  %187 = load i32, ptr %24, align 4, !tbaa !23
  %188 = mul nsw i32 2, %187
  %189 = sext i32 %188 to i64
  invoke void @_ZN6format5DenseC2Emmm(ptr noundef nonnull align 8 dereferenceable(32) %185, i64 noundef %189, i64 noundef 1, i64 noundef 1)
          to label %190 unwind label %212

190:                                              ; preds = %186
  %191 = load ptr, ptr %11, align 8, !tbaa !5
  %192 = getelementptr inbounds %"struct.format::IEForm", ptr %191, i32 0, i32 6
  store ptr %185, ptr %192, align 8, !tbaa !9
  %193 = load ptr, ptr %11, align 8, !tbaa !5
  %194 = getelementptr inbounds %"struct.format::IEForm", ptr %193, i32 0, i32 6
  %195 = load ptr, ptr %194, align 8, !tbaa !9
  %196 = getelementptr inbounds %"struct.format::Dense", ptr %195, i32 0, i32 3
  %197 = load ptr, ptr %196, align 8, !tbaa !28
  store ptr %197, ptr %27, align 8, !tbaa !5
  %198 = load ptr, ptr %17, align 8, !tbaa !5
  %199 = load ptr, ptr %11, align 8, !tbaa !5
  %200 = getelementptr inbounds %"struct.format::IEForm", ptr %199, i32 0, i32 3
  store ptr %198, ptr %200, align 8, !tbaa !19
  %201 = load ptr, ptr %20, align 8, !tbaa !5
  %202 = load ptr, ptr %11, align 8, !tbaa !5
  %203 = getelementptr inbounds %"struct.format::IEForm", ptr %202, i32 0, i32 4
  store ptr %201, ptr %203, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  store i32 0, ptr %38, align 4, !tbaa !23
  br label %204

204:                                              ; preds = %654, %190
  %205 = load i32, ptr %38, align 4, !tbaa !23
  %206 = sext i32 %205 to i64
  %207 = load ptr, ptr %9, align 8, !tbaa !5
  %208 = getelementptr inbounds %"struct.format::CSC", ptr %207, i32 0, i32 0
  %209 = load i64, ptr %208, align 8, !tbaa !27
  %210 = icmp ult i64 %206, %209
  br i1 %210, label %216, label %211

211:                                              ; preds = %204
  store i32 2, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %658

212:                                              ; preds = %186
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %18, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %19, align 4
  call void @_ZdlPvm(ptr noundef %185, i64 noundef 32) #12
  br label %935

216:                                              ; preds = %204
  %217 = load ptr, ptr %28, align 8, !tbaa !5
  %218 = load i32, ptr %38, align 4, !tbaa !23
  %219 = sext i32 %218 to i64
  %220 = getelementptr inbounds double, ptr %217, i64 %219
  %221 = load double, ptr %220, align 8, !tbaa !30
  %222 = invoke noundef double @_ZSt3absd(double noundef %221)
          to label %223 unwind label %307

223:                                              ; preds = %216
  %224 = fcmp olt double %222, 0x3D06849B86A12B9B
  br i1 %224, label %225, label %226

225:                                              ; preds = %223
  br label %232

226:                                              ; preds = %223
  %227 = load ptr, ptr %28, align 8, !tbaa !5
  %228 = load i32, ptr %38, align 4, !tbaa !23
  %229 = sext i32 %228 to i64
  %230 = getelementptr inbounds double, ptr %227, i64 %229
  %231 = load double, ptr %230, align 8, !tbaa !30
  br label %232

232:                                              ; preds = %226, %225
  %233 = phi double [ 0.000000e+00, %225 ], [ %231, %226 ]
  %234 = load ptr, ptr %28, align 8, !tbaa !5
  %235 = load i32, ptr %38, align 4, !tbaa !23
  %236 = sext i32 %235 to i64
  %237 = getelementptr inbounds double, ptr %234, i64 %236
  store double %233, ptr %237, align 8, !tbaa !30
  %238 = load ptr, ptr %32, align 8, !tbaa !5
  %239 = load i32, ptr %38, align 4, !tbaa !23
  %240 = sext i32 %239 to i64
  %241 = getelementptr inbounds double, ptr %238, i64 %240
  %242 = load double, ptr %241, align 8, !tbaa !30
  %243 = invoke noundef double @_ZSt3absd(double noundef %242)
          to label %244 unwind label %307

244:                                              ; preds = %232
  %245 = fcmp olt double %243, 0x3D06849B86A12B9B
  br i1 %245, label %246, label %247

246:                                              ; preds = %244
  br label %253

247:                                              ; preds = %244
  %248 = load ptr, ptr %32, align 8, !tbaa !5
  %249 = load i32, ptr %38, align 4, !tbaa !23
  %250 = sext i32 %249 to i64
  %251 = getelementptr inbounds double, ptr %248, i64 %250
  %252 = load double, ptr %251, align 8, !tbaa !30
  br label %253

253:                                              ; preds = %247, %246
  %254 = phi double [ 0.000000e+00, %246 ], [ %252, %247 ]
  %255 = load ptr, ptr %32, align 8, !tbaa !5
  %256 = load i32, ptr %38, align 4, !tbaa !23
  %257 = sext i32 %256 to i64
  %258 = getelementptr inbounds double, ptr %255, i64 %257
  store double %254, ptr %258, align 8, !tbaa !30
  %259 = load ptr, ptr %28, align 8, !tbaa !5
  %260 = load i32, ptr %38, align 4, !tbaa !23
  %261 = sext i32 %260 to i64
  %262 = getelementptr inbounds double, ptr %259, i64 %261
  %263 = load double, ptr %262, align 8, !tbaa !30
  %264 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %263, double noundef -1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %265 unwind label %307

265:                                              ; preds = %253
  br i1 %264, label %266, label %274

266:                                              ; preds = %265
  %267 = load ptr, ptr %32, align 8, !tbaa !5
  %268 = load i32, ptr %38, align 4, !tbaa !23
  %269 = sext i32 %268 to i64
  %270 = getelementptr inbounds double, ptr %267, i64 %269
  %271 = load double, ptr %270, align 8, !tbaa !30
  %272 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %271, double noundef 1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %273 unwind label %307

273:                                              ; preds = %266
  br i1 %272, label %306, label %274

274:                                              ; preds = %273, %265
  %275 = load ptr, ptr %28, align 8, !tbaa !5
  %276 = load i32, ptr %38, align 4, !tbaa !23
  %277 = sext i32 %276 to i64
  %278 = getelementptr inbounds double, ptr %275, i64 %277
  %279 = load double, ptr %278, align 8, !tbaa !30
  %280 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %279, double noundef 1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %281 unwind label %307

281:                                              ; preds = %274
  br i1 %280, label %282, label %290

282:                                              ; preds = %281
  %283 = load ptr, ptr %32, align 8, !tbaa !5
  %284 = load i32, ptr %38, align 4, !tbaa !23
  %285 = sext i32 %284 to i64
  %286 = getelementptr inbounds double, ptr %283, i64 %285
  %287 = load double, ptr %286, align 8, !tbaa !30
  %288 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %287, double noundef 1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %289 unwind label %307

289:                                              ; preds = %282
  br i1 %288, label %306, label %290

290:                                              ; preds = %289, %281
  %291 = load ptr, ptr %28, align 8, !tbaa !5
  %292 = load i32, ptr %38, align 4, !tbaa !23
  %293 = sext i32 %292 to i64
  %294 = getelementptr inbounds double, ptr %291, i64 %293
  %295 = load double, ptr %294, align 8, !tbaa !30
  %296 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %295, double noundef -1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %297 unwind label %307

297:                                              ; preds = %290
  br i1 %296, label %298, label %311

298:                                              ; preds = %297
  %299 = load ptr, ptr %32, align 8, !tbaa !5
  %300 = load i32, ptr %38, align 4, !tbaa !23
  %301 = sext i32 %300 to i64
  %302 = getelementptr inbounds double, ptr %299, i64 %301
  %303 = load double, ptr %302, align 8, !tbaa !30
  %304 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %303, double noundef -1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %305 unwind label %307

305:                                              ; preds = %298
  br i1 %304, label %306, label %311

306:                                              ; preds = %305, %289, %273
  br label %654

307:                                              ; preds = %324, %311, %298, %290, %282, %274, %266, %253, %232, %216
  %308 = landingpad { ptr, i32 }
          cleanup
  %309 = extractvalue { ptr, i32 } %308, 0
  store ptr %309, ptr %18, align 8
  %310 = extractvalue { ptr, i32 } %308, 1
  store i32 %310, ptr %19, align 4
  br label %657

311:                                              ; preds = %305, %297
  %312 = load ptr, ptr %28, align 8, !tbaa !5
  %313 = load i32, ptr %38, align 4, !tbaa !23
  %314 = sext i32 %313 to i64
  %315 = getelementptr inbounds double, ptr %312, i64 %314
  %316 = load double, ptr %315, align 8, !tbaa !30
  %317 = load ptr, ptr %32, align 8, !tbaa !5
  %318 = load i32, ptr %38, align 4, !tbaa !23
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds double, ptr %317, i64 %319
  %321 = load double, ptr %320, align 8, !tbaa !30
  %322 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %316, double noundef %321, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %323 unwind label %307

323:                                              ; preds = %311
  br i1 %322, label %324, label %382

324:                                              ; preds = %323
  %325 = load i32, ptr %13, align 4, !tbaa !23
  %326 = add nsw i32 %325, 1
  store i32 %326, ptr %13, align 4, !tbaa !23
  %327 = load ptr, ptr %10, align 8, !tbaa !5
  %328 = getelementptr inbounds %"struct.format::CSC", ptr %327, i32 0, i32 6
  %329 = load ptr, ptr %328, align 8, !tbaa !31
  %330 = load i32, ptr %38, align 4, !tbaa !23
  %331 = add nsw i32 %330, 1
  %332 = sext i32 %331 to i64
  %333 = getelementptr inbounds i32, ptr %329, i64 %332
  %334 = load i32, ptr %333, align 4, !tbaa !23
  %335 = load ptr, ptr %10, align 8, !tbaa !5
  %336 = getelementptr inbounds %"struct.format::CSC", ptr %335, i32 0, i32 6
  %337 = load ptr, ptr %336, align 8, !tbaa !31
  %338 = load i32, ptr %38, align 4, !tbaa !23
  %339 = sext i32 %338 to i64
  %340 = getelementptr inbounds i32, ptr %337, i64 %339
  %341 = load i32, ptr %340, align 4, !tbaa !23
  %342 = sub nsw i32 %334, %341
  %343 = load i32, ptr %14, align 4, !tbaa !23
  %344 = add nsw i32 %343, %342
  store i32 %344, ptr %14, align 4, !tbaa !23
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %21, ptr noundef nonnull align 4 dereferenceable(4) %38)
          to label %345 unwind label %307

345:                                              ; preds = %324
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  %346 = load ptr, ptr %10, align 8, !tbaa !5
  %347 = getelementptr inbounds %"struct.format::CSC", ptr %346, i32 0, i32 6
  %348 = load ptr, ptr %347, align 8, !tbaa !31
  %349 = load i32, ptr %38, align 4, !tbaa !23
  %350 = sext i32 %349 to i64
  %351 = getelementptr inbounds i32, ptr %348, i64 %350
  %352 = load i32, ptr %351, align 4, !tbaa !23
  store i32 %352, ptr %40, align 4, !tbaa !23
  br label %353

353:                                              ; preds = %378, %345
  %354 = load i32, ptr %40, align 4, !tbaa !23
  %355 = load ptr, ptr %10, align 8, !tbaa !5
  %356 = getelementptr inbounds %"struct.format::CSC", ptr %355, i32 0, i32 6
  %357 = load ptr, ptr %356, align 8, !tbaa !31
  %358 = load i32, ptr %38, align 4, !tbaa !23
  %359 = add nsw i32 %358, 1
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds i32, ptr %357, i64 %360
  %362 = load i32, ptr %361, align 4, !tbaa !23
  %363 = icmp slt i32 %354, %362
  br i1 %363, label %365, label %364

364:                                              ; preds = %353
  store i32 5, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %381

365:                                              ; preds = %353
  %366 = load ptr, ptr %25, align 8, !tbaa !5
  %367 = load ptr, ptr %10, align 8, !tbaa !5
  %368 = getelementptr inbounds %"struct.format::CSC", ptr %367, i32 0, i32 7
  %369 = load ptr, ptr %368, align 8, !tbaa !32
  %370 = load i32, ptr %40, align 4, !tbaa !23
  %371 = sext i32 %370 to i64
  %372 = getelementptr inbounds i32, ptr %369, i64 %371
  %373 = load i32, ptr %372, align 4, !tbaa !23
  %374 = sext i32 %373 to i64
  %375 = getelementptr inbounds i32, ptr %366, i64 %374
  %376 = load i32, ptr %375, align 4, !tbaa !23
  %377 = add nsw i32 %376, 1
  store i32 %377, ptr %375, align 4, !tbaa !23
  br label %378

378:                                              ; preds = %365
  %379 = load i32, ptr %40, align 4, !tbaa !23
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr %40, align 4, !tbaa !23
  br label %353, !llvm.loop !33

381:                                              ; preds = %364
  br label %653

382:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #10
  %383 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 16) #11
          to label %384 unwind label %448

384:                                              ; preds = %382
  invoke void @_ZN6format10constraintC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %383)
          to label %385 unwind label %452

385:                                              ; preds = %384
  store ptr %383, ptr %41, align 8, !tbaa !5
  %386 = load i32, ptr %38, align 4, !tbaa !23
  %387 = load ptr, ptr %41, align 8, !tbaa !5
  %388 = getelementptr inbounds %"struct.format::constraint", ptr %387, i32 0, i32 0
  store i32 %386, ptr %388, align 8, !tbaa !35
  %389 = load ptr, ptr %28, align 8, !tbaa !5
  %390 = load i32, ptr %38, align 4, !tbaa !23
  %391 = sext i32 %390 to i64
  %392 = getelementptr inbounds double, ptr %389, i64 %391
  %393 = load double, ptr %392, align 8, !tbaa !30
  %394 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %393, double noundef -1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %395 unwind label %448

395:                                              ; preds = %385
  br i1 %394, label %396, label %473

396:                                              ; preds = %395
  %397 = load ptr, ptr %32, align 8, !tbaa !5
  %398 = load i32, ptr %38, align 4, !tbaa !23
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds double, ptr %397, i64 %399
  %401 = load double, ptr %400, align 8, !tbaa !30
  %402 = load ptr, ptr %27, align 8, !tbaa !5
  %403 = load i32, ptr %15, align 4, !tbaa !23
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds double, ptr %402, i64 %404
  store double %401, ptr %405, align 8, !tbaa !30
  %406 = load i32, ptr %15, align 4, !tbaa !23
  %407 = add nsw i32 %406, 1
  store i32 %407, ptr %15, align 4, !tbaa !23
  %408 = load ptr, ptr %10, align 8, !tbaa !5
  %409 = getelementptr inbounds %"struct.format::CSC", ptr %408, i32 0, i32 6
  %410 = load ptr, ptr %409, align 8, !tbaa !31
  %411 = load i32, ptr %38, align 4, !tbaa !23
  %412 = add nsw i32 %411, 1
  %413 = sext i32 %412 to i64
  %414 = getelementptr inbounds i32, ptr %410, i64 %413
  %415 = load i32, ptr %414, align 4, !tbaa !23
  %416 = load ptr, ptr %10, align 8, !tbaa !5
  %417 = getelementptr inbounds %"struct.format::CSC", ptr %416, i32 0, i32 6
  %418 = load ptr, ptr %417, align 8, !tbaa !31
  %419 = load i32, ptr %38, align 4, !tbaa !23
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds i32, ptr %418, i64 %420
  %422 = load i32, ptr %421, align 4, !tbaa !23
  %423 = sub nsw i32 %415, %422
  %424 = load i32, ptr %16, align 4, !tbaa !23
  %425 = add nsw i32 %424, %423
  store i32 %425, ptr %16, align 4, !tbaa !23
  %426 = load ptr, ptr %41, align 8, !tbaa !5
  %427 = getelementptr inbounds %"struct.format::constraint", ptr %426, i32 0, i32 1
  store double 1.000000e+00, ptr %427, align 8, !tbaa !37
  invoke void @_ZNSt6vectorIPN6format10constraintESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %428 unwind label %448

428:                                              ; preds = %396
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  %429 = load ptr, ptr %10, align 8, !tbaa !5
  %430 = getelementptr inbounds %"struct.format::CSC", ptr %429, i32 0, i32 6
  %431 = load ptr, ptr %430, align 8, !tbaa !31
  %432 = load i32, ptr %38, align 4, !tbaa !23
  %433 = sext i32 %432 to i64
  %434 = getelementptr inbounds i32, ptr %431, i64 %433
  %435 = load i32, ptr %434, align 4, !tbaa !23
  store i32 %435, ptr %42, align 4, !tbaa !23
  br label %436

436:                                              ; preds = %469, %428
  %437 = load i32, ptr %42, align 4, !tbaa !23
  %438 = load ptr, ptr %10, align 8, !tbaa !5
  %439 = getelementptr inbounds %"struct.format::CSC", ptr %438, i32 0, i32 6
  %440 = load ptr, ptr %439, align 8, !tbaa !31
  %441 = load i32, ptr %38, align 4, !tbaa !23
  %442 = add nsw i32 %441, 1
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds i32, ptr %440, i64 %443
  %445 = load i32, ptr %444, align 4, !tbaa !23
  %446 = icmp slt i32 %437, %445
  br i1 %446, label %456, label %447

447:                                              ; preds = %436
  store i32 8, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  br label %472

448:                                              ; preds = %551, %481, %473, %396, %385, %382
  %449 = landingpad { ptr, i32 }
          cleanup
  %450 = extractvalue { ptr, i32 } %449, 0
  store ptr %450, ptr %18, align 8
  %451 = extractvalue { ptr, i32 } %449, 1
  store i32 %451, ptr %19, align 4
  br label %652

452:                                              ; preds = %384
  %453 = landingpad { ptr, i32 }
          cleanup
  %454 = extractvalue { ptr, i32 } %453, 0
  store ptr %454, ptr %18, align 8
  %455 = extractvalue { ptr, i32 } %453, 1
  store i32 %455, ptr %19, align 4
  call void @_ZdlPvm(ptr noundef %383, i64 noundef 16) #12
  br label %652

456:                                              ; preds = %436
  %457 = load ptr, ptr %26, align 8, !tbaa !5
  %458 = load ptr, ptr %10, align 8, !tbaa !5
  %459 = getelementptr inbounds %"struct.format::CSC", ptr %458, i32 0, i32 7
  %460 = load ptr, ptr %459, align 8, !tbaa !32
  %461 = load i32, ptr %42, align 4, !tbaa !23
  %462 = sext i32 %461 to i64
  %463 = getelementptr inbounds i32, ptr %460, i64 %462
  %464 = load i32, ptr %463, align 4, !tbaa !23
  %465 = sext i32 %464 to i64
  %466 = getelementptr inbounds i32, ptr %457, i64 %465
  %467 = load i32, ptr %466, align 4, !tbaa !23
  %468 = add nsw i32 %467, 1
  store i32 %468, ptr %466, align 4, !tbaa !23
  br label %469

469:                                              ; preds = %456
  %470 = load i32, ptr %42, align 4, !tbaa !23
  %471 = add nsw i32 %470, 1
  store i32 %471, ptr %42, align 4, !tbaa !23
  br label %436, !llvm.loop !38

472:                                              ; preds = %447
  br label %651

473:                                              ; preds = %395
  %474 = load ptr, ptr %32, align 8, !tbaa !5
  %475 = load i32, ptr %38, align 4, !tbaa !23
  %476 = sext i32 %475 to i64
  %477 = getelementptr inbounds double, ptr %474, i64 %476
  %478 = load double, ptr %477, align 8, !tbaa !30
  %479 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %478, double noundef 1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %480 unwind label %448

480:                                              ; preds = %473
  br i1 %479, label %481, label %551

481:                                              ; preds = %480
  %482 = load ptr, ptr %28, align 8, !tbaa !5
  %483 = load i32, ptr %38, align 4, !tbaa !23
  %484 = sext i32 %483 to i64
  %485 = getelementptr inbounds double, ptr %482, i64 %484
  %486 = load double, ptr %485, align 8, !tbaa !30
  %487 = fneg double %486
  %488 = load ptr, ptr %27, align 8, !tbaa !5
  %489 = load i32, ptr %15, align 4, !tbaa !23
  %490 = sext i32 %489 to i64
  %491 = getelementptr inbounds double, ptr %488, i64 %490
  store double %487, ptr %491, align 8, !tbaa !30
  %492 = load i32, ptr %15, align 4, !tbaa !23
  %493 = add nsw i32 %492, 1
  store i32 %493, ptr %15, align 4, !tbaa !23
  %494 = load ptr, ptr %10, align 8, !tbaa !5
  %495 = getelementptr inbounds %"struct.format::CSC", ptr %494, i32 0, i32 6
  %496 = load ptr, ptr %495, align 8, !tbaa !31
  %497 = load i32, ptr %38, align 4, !tbaa !23
  %498 = add nsw i32 %497, 1
  %499 = sext i32 %498 to i64
  %500 = getelementptr inbounds i32, ptr %496, i64 %499
  %501 = load i32, ptr %500, align 4, !tbaa !23
  %502 = load ptr, ptr %10, align 8, !tbaa !5
  %503 = getelementptr inbounds %"struct.format::CSC", ptr %502, i32 0, i32 6
  %504 = load ptr, ptr %503, align 8, !tbaa !31
  %505 = load i32, ptr %38, align 4, !tbaa !23
  %506 = sext i32 %505 to i64
  %507 = getelementptr inbounds i32, ptr %504, i64 %506
  %508 = load i32, ptr %507, align 4, !tbaa !23
  %509 = sub nsw i32 %501, %508
  %510 = load i32, ptr %16, align 4, !tbaa !23
  %511 = add nsw i32 %510, %509
  store i32 %511, ptr %16, align 4, !tbaa !23
  %512 = load ptr, ptr %41, align 8, !tbaa !5
  %513 = getelementptr inbounds %"struct.format::constraint", ptr %512, i32 0, i32 1
  store double -1.000000e+00, ptr %513, align 8, !tbaa !37
  invoke void @_ZNSt6vectorIPN6format10constraintESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %514 unwind label %448

514:                                              ; preds = %481
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  %515 = load ptr, ptr %10, align 8, !tbaa !5
  %516 = getelementptr inbounds %"struct.format::CSC", ptr %515, i32 0, i32 6
  %517 = load ptr, ptr %516, align 8, !tbaa !31
  %518 = load i32, ptr %38, align 4, !tbaa !23
  %519 = sext i32 %518 to i64
  %520 = getelementptr inbounds i32, ptr %517, i64 %519
  %521 = load i32, ptr %520, align 4, !tbaa !23
  store i32 %521, ptr %43, align 4, !tbaa !23
  br label %522

522:                                              ; preds = %547, %514
  %523 = load i32, ptr %43, align 4, !tbaa !23
  %524 = load ptr, ptr %10, align 8, !tbaa !5
  %525 = getelementptr inbounds %"struct.format::CSC", ptr %524, i32 0, i32 6
  %526 = load ptr, ptr %525, align 8, !tbaa !31
  %527 = load i32, ptr %38, align 4, !tbaa !23
  %528 = add nsw i32 %527, 1
  %529 = sext i32 %528 to i64
  %530 = getelementptr inbounds i32, ptr %526, i64 %529
  %531 = load i32, ptr %530, align 4, !tbaa !23
  %532 = icmp slt i32 %523, %531
  br i1 %532, label %534, label %533

533:                                              ; preds = %522
  store i32 11, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  br label %550

534:                                              ; preds = %522
  %535 = load ptr, ptr %26, align 8, !tbaa !5
  %536 = load ptr, ptr %10, align 8, !tbaa !5
  %537 = getelementptr inbounds %"struct.format::CSC", ptr %536, i32 0, i32 7
  %538 = load ptr, ptr %537, align 8, !tbaa !32
  %539 = load i32, ptr %43, align 4, !tbaa !23
  %540 = sext i32 %539 to i64
  %541 = getelementptr inbounds i32, ptr %538, i64 %540
  %542 = load i32, ptr %541, align 4, !tbaa !23
  %543 = sext i32 %542 to i64
  %544 = getelementptr inbounds i32, ptr %535, i64 %543
  %545 = load i32, ptr %544, align 4, !tbaa !23
  %546 = add nsw i32 %545, 1
  store i32 %546, ptr %544, align 4, !tbaa !23
  br label %547

547:                                              ; preds = %534
  %548 = load i32, ptr %43, align 4, !tbaa !23
  %549 = add nsw i32 %548, 1
  store i32 %549, ptr %43, align 4, !tbaa !23
  br label %522, !llvm.loop !39

550:                                              ; preds = %533
  br label %650

551:                                              ; preds = %480
  %552 = load ptr, ptr %32, align 8, !tbaa !5
  %553 = load i32, ptr %38, align 4, !tbaa !23
  %554 = sext i32 %553 to i64
  %555 = getelementptr inbounds double, ptr %552, i64 %554
  %556 = load double, ptr %555, align 8, !tbaa !30
  %557 = load ptr, ptr %27, align 8, !tbaa !5
  %558 = load i32, ptr %15, align 4, !tbaa !23
  %559 = sext i32 %558 to i64
  %560 = getelementptr inbounds double, ptr %557, i64 %559
  store double %556, ptr %560, align 8, !tbaa !30
  %561 = load ptr, ptr %28, align 8, !tbaa !5
  %562 = load i32, ptr %38, align 4, !tbaa !23
  %563 = sext i32 %562 to i64
  %564 = getelementptr inbounds double, ptr %561, i64 %563
  %565 = load double, ptr %564, align 8, !tbaa !30
  %566 = fneg double %565
  %567 = load ptr, ptr %27, align 8, !tbaa !5
  %568 = load i32, ptr %15, align 4, !tbaa !23
  %569 = add nsw i32 %568, 1
  %570 = sext i32 %569 to i64
  %571 = getelementptr inbounds double, ptr %567, i64 %570
  store double %566, ptr %571, align 8, !tbaa !30
  %572 = load i32, ptr %15, align 4, !tbaa !23
  %573 = add nsw i32 %572, 2
  store i32 %573, ptr %15, align 4, !tbaa !23
  %574 = load ptr, ptr %10, align 8, !tbaa !5
  %575 = getelementptr inbounds %"struct.format::CSC", ptr %574, i32 0, i32 6
  %576 = load ptr, ptr %575, align 8, !tbaa !31
  %577 = load i32, ptr %38, align 4, !tbaa !23
  %578 = add nsw i32 %577, 1
  %579 = sext i32 %578 to i64
  %580 = getelementptr inbounds i32, ptr %576, i64 %579
  %581 = load i32, ptr %580, align 4, !tbaa !23
  %582 = load ptr, ptr %10, align 8, !tbaa !5
  %583 = getelementptr inbounds %"struct.format::CSC", ptr %582, i32 0, i32 6
  %584 = load ptr, ptr %583, align 8, !tbaa !31
  %585 = load i32, ptr %38, align 4, !tbaa !23
  %586 = sext i32 %585 to i64
  %587 = getelementptr inbounds i32, ptr %584, i64 %586
  %588 = load i32, ptr %587, align 4, !tbaa !23
  %589 = sub nsw i32 %581, %588
  %590 = mul nsw i32 2, %589
  %591 = load i32, ptr %16, align 4, !tbaa !23
  %592 = add nsw i32 %591, %590
  store i32 %592, ptr %16, align 4, !tbaa !23
  %593 = load ptr, ptr %41, align 8, !tbaa !5
  %594 = getelementptr inbounds %"struct.format::constraint", ptr %593, i32 0, i32 1
  store double 1.000000e+00, ptr %594, align 8, !tbaa !37
  invoke void @_ZNSt6vectorIPN6format10constraintESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(8) %41)
          to label %595 unwind label %448

595:                                              ; preds = %551
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #10
  %596 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 16) #11
          to label %597 unwind label %624

597:                                              ; preds = %595
  invoke void @_ZN6format10constraintC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %596)
          to label %598 unwind label %628

598:                                              ; preds = %597
  store ptr %596, ptr %44, align 8, !tbaa !5
  %599 = load i32, ptr %38, align 4, !tbaa !23
  %600 = load ptr, ptr %44, align 8, !tbaa !5
  %601 = getelementptr inbounds %"struct.format::constraint", ptr %600, i32 0, i32 0
  store i32 %599, ptr %601, align 8, !tbaa !35
  %602 = load ptr, ptr %44, align 8, !tbaa !5
  %603 = getelementptr inbounds %"struct.format::constraint", ptr %602, i32 0, i32 1
  store double -1.000000e+00, ptr %603, align 8, !tbaa !37
  invoke void @_ZNSt6vectorIPN6format10constraintESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(8) %44)
          to label %604 unwind label %624

604:                                              ; preds = %598
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #10
  %605 = load ptr, ptr %10, align 8, !tbaa !5
  %606 = getelementptr inbounds %"struct.format::CSC", ptr %605, i32 0, i32 6
  %607 = load ptr, ptr %606, align 8, !tbaa !31
  %608 = load i32, ptr %38, align 4, !tbaa !23
  %609 = sext i32 %608 to i64
  %610 = getelementptr inbounds i32, ptr %607, i64 %609
  %611 = load i32, ptr %610, align 4, !tbaa !23
  store i32 %611, ptr %45, align 4, !tbaa !23
  br label %612

612:                                              ; preds = %645, %604
  %613 = load i32, ptr %45, align 4, !tbaa !23
  %614 = load ptr, ptr %10, align 8, !tbaa !5
  %615 = getelementptr inbounds %"struct.format::CSC", ptr %614, i32 0, i32 6
  %616 = load ptr, ptr %615, align 8, !tbaa !31
  %617 = load i32, ptr %38, align 4, !tbaa !23
  %618 = add nsw i32 %617, 1
  %619 = sext i32 %618 to i64
  %620 = getelementptr inbounds i32, ptr %616, i64 %619
  %621 = load i32, ptr %620, align 4, !tbaa !23
  %622 = icmp slt i32 %613, %621
  br i1 %622, label %632, label %623

623:                                              ; preds = %612
  store i32 14, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %648

624:                                              ; preds = %598, %595
  %625 = landingpad { ptr, i32 }
          cleanup
  %626 = extractvalue { ptr, i32 } %625, 0
  store ptr %626, ptr %18, align 8
  %627 = extractvalue { ptr, i32 } %625, 1
  store i32 %627, ptr %19, align 4
  br label %649

628:                                              ; preds = %597
  %629 = landingpad { ptr, i32 }
          cleanup
  %630 = extractvalue { ptr, i32 } %629, 0
  store ptr %630, ptr %18, align 8
  %631 = extractvalue { ptr, i32 } %629, 1
  store i32 %631, ptr %19, align 4
  call void @_ZdlPvm(ptr noundef %596, i64 noundef 16) #12
  br label %649

632:                                              ; preds = %612
  %633 = load ptr, ptr %26, align 8, !tbaa !5
  %634 = load ptr, ptr %10, align 8, !tbaa !5
  %635 = getelementptr inbounds %"struct.format::CSC", ptr %634, i32 0, i32 7
  %636 = load ptr, ptr %635, align 8, !tbaa !32
  %637 = load i32, ptr %45, align 4, !tbaa !23
  %638 = sext i32 %637 to i64
  %639 = getelementptr inbounds i32, ptr %636, i64 %638
  %640 = load i32, ptr %639, align 4, !tbaa !23
  %641 = sext i32 %640 to i64
  %642 = getelementptr inbounds i32, ptr %633, i64 %641
  %643 = load i32, ptr %642, align 4, !tbaa !23
  %644 = add nsw i32 %643, 2
  store i32 %644, ptr %642, align 4, !tbaa !23
  br label %645

645:                                              ; preds = %632
  %646 = load i32, ptr %45, align 4, !tbaa !23
  %647 = add nsw i32 %646, 1
  store i32 %647, ptr %45, align 4, !tbaa !23
  br label %612, !llvm.loop !40

648:                                              ; preds = %623
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  br label %650

649:                                              ; preds = %628, %624
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  br label %652

650:                                              ; preds = %648, %550
  br label %651

651:                                              ; preds = %650, %472
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  br label %653

652:                                              ; preds = %649, %452, %448
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #10
  br label %657

653:                                              ; preds = %651, %381
  br label %654

654:                                              ; preds = %653, %306
  %655 = load i32, ptr %38, align 4, !tbaa !23
  %656 = add nsw i32 %655, 1
  store i32 %656, ptr %38, align 4, !tbaa !23
  br label %204, !llvm.loop !41

657:                                              ; preds = %652, %307
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %935

658:                                              ; preds = %211
  %659 = load i32, ptr %15, align 4, !tbaa !23
  %660 = sext i32 %659 to i64
  %661 = load ptr, ptr %9, align 8, !tbaa !5
  %662 = getelementptr inbounds %"struct.format::CSC", ptr %661, i32 0, i32 0
  %663 = load i64, ptr %662, align 8, !tbaa !27
  %664 = mul i64 2, %663
  %665 = icmp ule i64 %660, %664
  br i1 %665, label %666, label %667

666:                                              ; preds = %658
  br label %669

667:                                              ; preds = %658
  call void @__assert_fail(ptr noundef @.str.129, ptr noundef @.str.130, i32 noundef 353, ptr noundef @__PRETTY_FUNCTION__._ZN6format27find_inequalities_by_boundsEPNS_5DenseES1_PNS_3CSCES3_PNS_6IEFormE) #13
  unreachable

668:                                              ; No predecessors!
  br label %669

669:                                              ; preds = %668, %666
  %670 = load i32, ptr %13, align 4, !tbaa !23
  %671 = icmp eq i32 %670, 0
  br i1 %671, label %672, label %673

672:                                              ; preds = %669
  br label %675

673:                                              ; preds = %669
  call void @__assert_fail(ptr noundef @.str.131, ptr noundef @.str.130, i32 noundef 354, ptr noundef @__PRETTY_FUNCTION__._ZN6format27find_inequalities_by_boundsEPNS_5DenseES1_PNS_3CSCES3_PNS_6IEFormE) #13
  unreachable

674:                                              ; No predecessors!
  br label %675

675:                                              ; preds = %674, %672
  %676 = load i32, ptr %15, align 4, !tbaa !23
  %677 = icmp sgt i32 %676, 0
  br i1 %677, label %678, label %867

678:                                              ; preds = %675
  %679 = load i32, ptr %23, align 4, !tbaa !23
  %680 = sext i32 %679 to i64
  %681 = load ptr, ptr %20, align 8, !tbaa !5
  %682 = getelementptr inbounds %"struct.format::CSC", ptr %681, i32 0, i32 0
  store i64 %680, ptr %682, align 8, !tbaa !27
  %683 = load i32, ptr %15, align 4, !tbaa !23
  %684 = sext i32 %683 to i64
  %685 = load ptr, ptr %20, align 8, !tbaa !5
  %686 = getelementptr inbounds %"struct.format::CSC", ptr %685, i32 0, i32 1
  store i64 %684, ptr %686, align 8, !tbaa !25
  %687 = load i32, ptr %15, align 4, !tbaa !23
  %688 = add nsw i32 %687, 1
  %689 = sext i32 %688 to i64
  %690 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %689, i64 4)
  %691 = extractvalue { i64, i1 } %690, 1
  %692 = extractvalue { i64, i1 } %690, 0
  %693 = select i1 %691, i64 -1, i64 %692
  %694 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %693) #11
          to label %695 unwind label %164

695:                                              ; preds = %678
  %696 = load ptr, ptr %20, align 8, !tbaa !5
  %697 = getelementptr inbounds %"struct.format::CSC", ptr %696, i32 0, i32 6
  store ptr %694, ptr %697, align 8, !tbaa !31
  %698 = load i32, ptr %16, align 4, !tbaa !23
  %699 = sext i32 %698 to i64
  %700 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %699, i64 4)
  %701 = extractvalue { i64, i1 } %700, 1
  %702 = extractvalue { i64, i1 } %700, 0
  %703 = select i1 %701, i64 -1, i64 %702
  %704 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %703) #11
          to label %705 unwind label %164

705:                                              ; preds = %695
  %706 = load ptr, ptr %20, align 8, !tbaa !5
  %707 = getelementptr inbounds %"struct.format::CSC", ptr %706, i32 0, i32 7
  store ptr %704, ptr %707, align 8, !tbaa !32
  %708 = load i32, ptr %16, align 4, !tbaa !23
  %709 = sext i32 %708 to i64
  %710 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %709, i64 8)
  %711 = extractvalue { i64, i1 } %710, 1
  %712 = extractvalue { i64, i1 } %710, 0
  %713 = select i1 %711, i64 -1, i64 %712
  %714 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %713) #11
          to label %715 unwind label %164

715:                                              ; preds = %705
  %716 = load ptr, ptr %20, align 8, !tbaa !5
  %717 = getelementptr inbounds %"struct.format::CSC", ptr %716, i32 0, i32 8
  store ptr %714, ptr %717, align 8, !tbaa !42
  %718 = call noundef i64 @_ZNKSt6vectorIPN6format10constraintESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #10
  %719 = load i32, ptr %15, align 4, !tbaa !23
  %720 = sext i32 %719 to i64
  %721 = icmp eq i64 %718, %720
  br i1 %721, label %722, label %723

722:                                              ; preds = %715
  br label %725

723:                                              ; preds = %715
  call void @__assert_fail(ptr noundef @.str.132, ptr noundef @.str.130, i32 noundef 390, ptr noundef @__PRETTY_FUNCTION__._ZN6format27find_inequalities_by_boundsEPNS_5DenseES1_PNS_3CSCES3_PNS_6IEFormE) #13
  unreachable

724:                                              ; No predecessors!
  br label %725

725:                                              ; preds = %724, %722
  %726 = load ptr, ptr %20, align 8, !tbaa !5
  %727 = getelementptr inbounds %"struct.format::CSC", ptr %726, i32 0, i32 6
  %728 = load ptr, ptr %727, align 8, !tbaa !31
  %729 = getelementptr inbounds i32, ptr %728, i64 0
  store i32 0, ptr %729, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #10
  store i32 0, ptr %46, align 4, !tbaa !23
  br label %730

730:                                              ; preds = %842, %725
  %731 = load i32, ptr %46, align 4, !tbaa !23
  %732 = sext i32 %731 to i64
  %733 = call noundef i64 @_ZNKSt6vectorIPN6format10constraintESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #10
  %734 = icmp ult i64 %732, %733
  br i1 %734, label %736, label %735

735:                                              ; preds = %730
  store i32 17, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %845

736:                                              ; preds = %730
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #10
  %737 = load i32, ptr %46, align 4, !tbaa !23
  %738 = sext i32 %737 to i64
  %739 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6format10constraintESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %738) #10
  %740 = load ptr, ptr %739, align 8, !tbaa !5
  %741 = getelementptr inbounds %"struct.format::constraint", ptr %740, i32 0, i32 0
  %742 = load i32, ptr %741, align 8, !tbaa !35
  store i32 %742, ptr %47, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  %743 = load i32, ptr %46, align 4, !tbaa !23
  %744 = sext i32 %743 to i64
  %745 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6format10constraintESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %744) #10
  %746 = load ptr, ptr %745, align 8, !tbaa !5
  %747 = getelementptr inbounds %"struct.format::constraint", ptr %746, i32 0, i32 1
  %748 = load double, ptr %747, align 8, !tbaa !37
  store double %748, ptr %48, align 8, !tbaa !30
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %749 = load ptr, ptr %10, align 8, !tbaa !5
  %750 = getelementptr inbounds %"struct.format::CSC", ptr %749, i32 0, i32 6
  %751 = load ptr, ptr %750, align 8, !tbaa !31
  %752 = load i32, ptr %47, align 4, !tbaa !23
  %753 = add nsw i32 %752, 1
  %754 = sext i32 %753 to i64
  %755 = getelementptr inbounds i32, ptr %751, i64 %754
  %756 = load i32, ptr %755, align 4, !tbaa !23
  %757 = load ptr, ptr %10, align 8, !tbaa !5
  %758 = getelementptr inbounds %"struct.format::CSC", ptr %757, i32 0, i32 6
  %759 = load ptr, ptr %758, align 8, !tbaa !31
  %760 = load i32, ptr %47, align 4, !tbaa !23
  %761 = sext i32 %760 to i64
  %762 = getelementptr inbounds i32, ptr %759, i64 %761
  %763 = load i32, ptr %762, align 4, !tbaa !23
  %764 = sub nsw i32 %756, %763
  store i32 %764, ptr %49, align 4, !tbaa !23
  %765 = load ptr, ptr %20, align 8, !tbaa !5
  %766 = getelementptr inbounds %"struct.format::CSC", ptr %765, i32 0, i32 6
  %767 = load ptr, ptr %766, align 8, !tbaa !31
  %768 = load i32, ptr %46, align 4, !tbaa !23
  %769 = sext i32 %768 to i64
  %770 = getelementptr inbounds i32, ptr %767, i64 %769
  %771 = load i32, ptr %770, align 4, !tbaa !23
  %772 = load i32, ptr %49, align 4, !tbaa !23
  %773 = add nsw i32 %771, %772
  %774 = load ptr, ptr %20, align 8, !tbaa !5
  %775 = getelementptr inbounds %"struct.format::CSC", ptr %774, i32 0, i32 6
  %776 = load ptr, ptr %775, align 8, !tbaa !31
  %777 = load i32, ptr %46, align 4, !tbaa !23
  %778 = add nsw i32 %777, 1
  %779 = sext i32 %778 to i64
  %780 = getelementptr inbounds i32, ptr %776, i64 %779
  store i32 %773, ptr %780, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #10
  %781 = load ptr, ptr %20, align 8, !tbaa !5
  %782 = getelementptr inbounds %"struct.format::CSC", ptr %781, i32 0, i32 6
  %783 = load ptr, ptr %782, align 8, !tbaa !31
  %784 = load i32, ptr %46, align 4, !tbaa !23
  %785 = sext i32 %784 to i64
  %786 = getelementptr inbounds i32, ptr %783, i64 %785
  %787 = load i32, ptr %786, align 4, !tbaa !23
  store i32 %787, ptr %50, align 4, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #10
  %788 = load ptr, ptr %10, align 8, !tbaa !5
  %789 = getelementptr inbounds %"struct.format::CSC", ptr %788, i32 0, i32 6
  %790 = load ptr, ptr %789, align 8, !tbaa !31
  %791 = load i32, ptr %47, align 4, !tbaa !23
  %792 = sext i32 %791 to i64
  %793 = getelementptr inbounds i32, ptr %790, i64 %792
  %794 = load i32, ptr %793, align 4, !tbaa !23
  store i32 %794, ptr %51, align 4, !tbaa !23
  br label %795

795:                                              ; preds = %836, %736
  %796 = load i32, ptr %50, align 4, !tbaa !23
  %797 = load ptr, ptr %20, align 8, !tbaa !5
  %798 = getelementptr inbounds %"struct.format::CSC", ptr %797, i32 0, i32 6
  %799 = load ptr, ptr %798, align 8, !tbaa !31
  %800 = load i32, ptr %46, align 4, !tbaa !23
  %801 = add nsw i32 %800, 1
  %802 = sext i32 %801 to i64
  %803 = getelementptr inbounds i32, ptr %799, i64 %802
  %804 = load i32, ptr %803, align 4, !tbaa !23
  %805 = icmp slt i32 %796, %804
  br i1 %805, label %807, label %806

806:                                              ; preds = %795
  store i32 20, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #10
  br label %841

807:                                              ; preds = %795
  %808 = load ptr, ptr %10, align 8, !tbaa !5
  %809 = getelementptr inbounds %"struct.format::CSC", ptr %808, i32 0, i32 7
  %810 = load ptr, ptr %809, align 8, !tbaa !32
  %811 = load i32, ptr %51, align 4, !tbaa !23
  %812 = sext i32 %811 to i64
  %813 = getelementptr inbounds i32, ptr %810, i64 %812
  %814 = load i32, ptr %813, align 4, !tbaa !23
  %815 = load ptr, ptr %20, align 8, !tbaa !5
  %816 = getelementptr inbounds %"struct.format::CSC", ptr %815, i32 0, i32 7
  %817 = load ptr, ptr %816, align 8, !tbaa !32
  %818 = load i32, ptr %50, align 4, !tbaa !23
  %819 = sext i32 %818 to i64
  %820 = getelementptr inbounds i32, ptr %817, i64 %819
  store i32 %814, ptr %820, align 4, !tbaa !23
  %821 = load double, ptr %48, align 8, !tbaa !30
  %822 = load ptr, ptr %10, align 8, !tbaa !5
  %823 = getelementptr inbounds %"struct.format::CSC", ptr %822, i32 0, i32 8
  %824 = load ptr, ptr %823, align 8, !tbaa !42
  %825 = load i32, ptr %51, align 4, !tbaa !23
  %826 = sext i32 %825 to i64
  %827 = getelementptr inbounds double, ptr %824, i64 %826
  %828 = load double, ptr %827, align 8, !tbaa !30
  %829 = fmul double %821, %828
  %830 = load ptr, ptr %20, align 8, !tbaa !5
  %831 = getelementptr inbounds %"struct.format::CSC", ptr %830, i32 0, i32 8
  %832 = load ptr, ptr %831, align 8, !tbaa !42
  %833 = load i32, ptr %50, align 4, !tbaa !23
  %834 = sext i32 %833 to i64
  %835 = getelementptr inbounds double, ptr %832, i64 %834
  store double %829, ptr %835, align 8, !tbaa !30
  br label %836

836:                                              ; preds = %807
  %837 = load i32, ptr %50, align 4, !tbaa !23
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr %50, align 4, !tbaa !23
  %839 = load i32, ptr %51, align 4, !tbaa !23
  %840 = add nsw i32 %839, 1
  store i32 %840, ptr %51, align 4, !tbaa !23
  br label %795, !llvm.loop !43

841:                                              ; preds = %806
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %842

842:                                              ; preds = %841
  %843 = load i32, ptr %46, align 4, !tbaa !23
  %844 = add nsw i32 %843, 1
  store i32 %844, ptr %46, align 4, !tbaa !23
  br label %730, !llvm.loop !44

845:                                              ; preds = %735
  %846 = load ptr, ptr %20, align 8, !tbaa !5
  %847 = getelementptr inbounds %"struct.format::CSC", ptr %846, i32 0, i32 6
  %848 = load ptr, ptr %847, align 8, !tbaa !31
  %849 = load i32, ptr %15, align 4, !tbaa !23
  %850 = sext i32 %849 to i64
  %851 = getelementptr inbounds i32, ptr %848, i64 %850
  %852 = load i32, ptr %851, align 4, !tbaa !23
  %853 = sext i32 %852 to i64
  %854 = load ptr, ptr %20, align 8, !tbaa !5
  %855 = getelementptr inbounds %"struct.format::CSC", ptr %854, i32 0, i32 2
  store i64 %853, ptr %855, align 8, !tbaa !45
  %856 = load ptr, ptr %20, align 8, !tbaa !5
  %857 = invoke noundef ptr @_ZN7sym_lib17transpose_generalEPN6format3CSCE(ptr noundef %856)
          to label %858 unwind label %164

858:                                              ; preds = %845
  %859 = load ptr, ptr %11, align 8, !tbaa !5
  %860 = getelementptr inbounds %"struct.format::IEForm", ptr %859, i32 0, i32 2
  store ptr %857, ptr %860, align 8, !tbaa !18
  %861 = load i32, ptr %15, align 4, !tbaa !23
  %862 = sext i32 %861 to i64
  %863 = load ptr, ptr %11, align 8, !tbaa !5
  %864 = getelementptr inbounds %"struct.format::IEForm", ptr %863, i32 0, i32 6
  %865 = load ptr, ptr %864, align 8, !tbaa !9
  %866 = getelementptr inbounds %"struct.format::Dense", ptr %865, i32 0, i32 0
  store i64 %862, ptr %866, align 8, !tbaa !46
  br label %884

867:                                              ; preds = %675
  %868 = load ptr, ptr %11, align 8, !tbaa !5
  %869 = getelementptr inbounds %"struct.format::IEForm", ptr %868, i32 0, i32 6
  %870 = load ptr, ptr %869, align 8, !tbaa !9
  %871 = icmp eq ptr %870, null
  br i1 %871, label %873, label %872

872:                                              ; preds = %867
  call void @_ZN6format5DenseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %870) #10
  call void @_ZdlPvm(ptr noundef %870, i64 noundef 32) #12
  br label %873

873:                                              ; preds = %872, %867
  %874 = load ptr, ptr %11, align 8, !tbaa !5
  %875 = getelementptr inbounds %"struct.format::IEForm", ptr %874, i32 0, i32 6
  store ptr null, ptr %875, align 8, !tbaa !9
  %876 = load ptr, ptr %20, align 8, !tbaa !5
  %877 = icmp eq ptr %876, null
  br i1 %877, label %879, label %878

878:                                              ; preds = %873
  call void @_ZN6format3CSCD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %876) #10
  call void @_ZdlPvm(ptr noundef %876, i64 noundef 56) #12
  br label %879

879:                                              ; preds = %878, %873
  %880 = load ptr, ptr %11, align 8, !tbaa !5
  %881 = getelementptr inbounds %"struct.format::IEForm", ptr %880, i32 0, i32 4
  store ptr null, ptr %881, align 8, !tbaa !17
  %882 = load ptr, ptr %11, align 8, !tbaa !5
  %883 = getelementptr inbounds %"struct.format::IEForm", ptr %882, i32 0, i32 2
  store ptr null, ptr %883, align 8, !tbaa !18
  br label %884

884:                                              ; preds = %879, %858
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %21) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #10
  store i32 0, ptr %52, align 4, !tbaa !23
  br label %885

885:                                              ; preds = %899, %884
  %886 = load i32, ptr %52, align 4, !tbaa !23
  %887 = sext i32 %886 to i64
  %888 = call noundef i64 @_ZNKSt6vectorIPN6format10constraintESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #10
  %889 = icmp ult i64 %887, %888
  br i1 %889, label %891, label %890

890:                                              ; preds = %885
  store i32 23, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #10
  br label %902

891:                                              ; preds = %885
  %892 = load i32, ptr %52, align 4, !tbaa !23
  %893 = sext i32 %892 to i64
  %894 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6format10constraintESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %893) #10
  %895 = load ptr, ptr %894, align 8, !tbaa !5
  %896 = icmp eq ptr %895, null
  br i1 %896, label %898, label %897

897:                                              ; preds = %891
  call void @_ZdlPvm(ptr noundef %895, i64 noundef 16) #12
  br label %898

898:                                              ; preds = %897, %891
  br label %899

899:                                              ; preds = %898
  %900 = load i32, ptr %52, align 4, !tbaa !23
  %901 = add nsw i32 %900, 1
  store i32 %901, ptr %52, align 4, !tbaa !23
  br label %885, !llvm.loop !47

902:                                              ; preds = %890
  %903 = load ptr, ptr %7, align 8, !tbaa !5
  %904 = icmp ne ptr %903, null
  br i1 %904, label %910, label %905

905:                                              ; preds = %902
  %906 = load ptr, ptr %28, align 8, !tbaa !5
  %907 = icmp eq ptr %906, null
  br i1 %907, label %909, label %908

908:                                              ; preds = %905
  call void @_ZdaPv(ptr noundef %906) #12
  br label %909

909:                                              ; preds = %908, %905
  br label %910

910:                                              ; preds = %909, %902
  %911 = load ptr, ptr %8, align 8, !tbaa !5
  %912 = icmp ne ptr %911, null
  br i1 %912, label %918, label %913

913:                                              ; preds = %910
  %914 = load ptr, ptr %32, align 8, !tbaa !5
  %915 = icmp eq ptr %914, null
  br i1 %915, label %917, label %916

916:                                              ; preds = %913
  call void @_ZdaPv(ptr noundef %914) #12
  br label %917

917:                                              ; preds = %916, %913
  br label %918

918:                                              ; preds = %917, %910
  %919 = load ptr, ptr %26, align 8, !tbaa !5
  %920 = icmp eq ptr %919, null
  br i1 %920, label %922, label %921

921:                                              ; preds = %918
  call void @_ZdaPv(ptr noundef %919) #12
  br label %922

922:                                              ; preds = %921, %918
  %923 = load ptr, ptr %25, align 8, !tbaa !5
  %924 = icmp eq ptr %923, null
  br i1 %924, label %926, label %925

925:                                              ; preds = %922
  call void @_ZdaPv(ptr noundef %923) #12
  br label %926

926:                                              ; preds = %925, %922
  %927 = load i8, ptr %12, align 1, !tbaa !21, !range !48, !noundef !49
  %928 = trunc i8 %927 to i1
  br i1 %928, label %929, label %934

929:                                              ; preds = %926
  %930 = load ptr, ptr %10, align 8, !tbaa !5
  %931 = icmp eq ptr %930, null
  br i1 %931, label %933, label %932

932:                                              ; preds = %929
  call void @_ZN6format3CSCD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %930) #10
  call void @_ZdlPvm(ptr noundef %930, i64 noundef 56) #12
  br label %933

933:                                              ; preds = %932, %929
  br label %934

934:                                              ; preds = %933, %926
  store i1 true, ptr %6, align 1
  store i32 1, ptr %39, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  call void @_ZNSt6vectorIPN6format10constraintESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #10
  br label %941

935:                                              ; preds = %657, %212, %180, %168, %164
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #10
  br label %936

936:                                              ; preds = %935, %160
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #10
  br label %937

937:                                              ; preds = %936, %156
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #10
  br label %938

938:                                              ; preds = %937, %152
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  call void @_ZNSt6vectorIPN6format10constraintESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %22) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %21) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr %21) #10
  br label %939

939:                                              ; preds = %938, %148
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #10
  br label %940

940:                                              ; preds = %939, %144
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #10
  br label %943

941:                                              ; preds = %934, %55
  %942 = load i1, ptr %6, align 1
  ret i1 %942

943:                                              ; preds = %940
  %944 = load ptr, ptr %18, align 8
  %945 = load i32, ptr %19, align 4
  %946 = insertvalue { ptr, i32 } poison, ptr %944, 0
  %947 = insertvalue { ptr, i32 } %946, i32 %945, 1
  resume { ptr, i32 } %947
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6format3CSCC2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIPN6format10constraintESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #7 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef, double noundef, double noundef) #6

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6format10constraintC2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIPN6format10constraintESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIPN6format10constraintESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6format10constraintESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6format5DenseD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6format3CSCD2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24)) #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIPN6format10constraintESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #7 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #3 = { nobuiltin allocsize(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 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nobuiltin 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 #6 = { 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 #7 = { 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 #8 = { inlinehint 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 #9 = { inlinehint 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 #10 = { nounwind }
attributes #11 = { builtin allocsize(0) }
attributes #12 = { builtin nounwind }
attributes #13 = { noreturn nounwind }

!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, !6, i64 296}
!10 = !{!"_ZTSN6format6IEFormE", !11, i64 0, !6, i64 256, !6, i64 264, !6, i64 272, !6, i64 280, !6, i64 288, !6, i64 296, !6, i64 304, !6, i64 312, !6, i64 320, !6, i64 328, !6, i64 336, !15, i64 344, !15, i64 352}
!11 = !{!"_ZTSN6format11DescriptionE", !12, i64 0, !12, i64 32, !12, i64 64, !12, i64 96, !12, i64 128, !12, i64 160, !12, i64 192, !12, i64 224}
!12 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !13, i64 0, !14, i64 8, !7, i64 16}
!13 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!14 = !{!"long", !7, i64 0}
!15 = !{!"double", !7, i64 0}
!16 = !{!10, !6, i64 288}
!17 = !{!10, !6, i64 280}
!18 = !{!10, !6, i64 264}
!19 = !{!10, !6, i64 272}
!20 = !{!10, !6, i64 256}
!21 = !{!22, !22, i64 0}
!22 = !{!"bool", !7, i64 0}
!23 = !{!24, !24, i64 0}
!24 = !{!"int", !7, i64 0}
!25 = !{!26, !14, i64 8}
!26 = !{!"_ZTSN6format3CSCE", !14, i64 0, !14, i64 8, !14, i64 16, !24, i64 24, !22, i64 28, !22, i64 29, !6, i64 32, !6, i64 40, !6, i64 48}
!27 = !{!26, !14, i64 0}
!28 = !{!29, !6, i64 24}
!29 = !{!"_ZTSN6format5DenseE", !14, i64 0, !14, i64 8, !14, i64 16, !6, i64 24}
!30 = !{!15, !15, i64 0}
!31 = !{!26, !6, i64 32}
!32 = !{!26, !6, i64 40}
!33 = distinct !{!33, !34}
!34 = !{!"llvm.loop.mustprogress"}
!35 = !{!36, !24, i64 0}
!36 = !{!"_ZTSN6format10constraintE", !24, i64 0, !15, i64 8}
!37 = !{!36, !15, i64 8}
!38 = distinct !{!38, !34}
!39 = distinct !{!39, !34}
!40 = distinct !{!40, !34}
!41 = distinct !{!41, !34}
!42 = !{!26, !6, i64 48}
!43 = distinct !{!43, !34}
!44 = distinct !{!44, !34}
!45 = !{!26, !14, i64 16}
!46 = !{!29, !14, i64 0}
!47 = distinct !{!47, !34}
!48 = !{i8 0, i8 2}
!49 = !{}


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

%"class.std::vector.65" = type { %"struct.std::_Vector_base.66" }
%"struct.std::_Vector_base.66" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl" = type { %"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<int, std::allocator<int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.70" = type { %"struct.std::_Vector_base.71" }
%"struct.std::_Vector_base.71" = type { %"struct.std::_Vector_base<format::constraint *, std::allocator<format::constraint *>>::_Vector_impl" }
%"struct.std::_Vector_base<format::constraint *, std::allocator<format::constraint *>>::_Vector_impl" = type { %"struct.std::_Vector_base<format::constraint *, std::allocator<format::constraint *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<format::constraint *, std::allocator<format::constraint *>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.129 = external hidden unnamed_addr constant [21 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [81 x i8], align 1
@__PRETTY_FUNCTION__._ZN6format27find_inequalities_by_boundsEPNS_5DenseES1_PNS_3CSCES3_PNS_6IEFormE = external hidden unnamed_addr constant [83 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [27 x i8], align 1

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

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znam(i64 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #3

; Function Attrs: nobuiltin nounwind
declare void @_ZdaPv(ptr noundef) local_unnamed_addr #4

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #2

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN6format5DenseC2Emmm(ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef, i64 noundef) unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZN7sym_lib17transpose_generalEPN6format3CSCE(ptr noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN6format27find_inequalities_by_boundsEPNS_5DenseES1_PNS_3CSCES3_PNS_6IEFormE(ptr noundef readonly %0, ptr noundef readonly %1, ptr noundef %2, ptr noundef %3, ptr nocapture noundef %4) local_unnamed_addr #5 personality ptr @__gxx_personality_v0 {
  %6 = alloca %"class.std::vector.65", align 8
  %7 = alloca %"class.std::vector.70", align 8
  %8 = alloca double, align 8
  %9 = alloca double, align 8
  %10 = alloca i32, align 4
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %.not = icmp eq ptr %2, null
  br i1 %.not, label %13, label %15

13:                                               ; preds = %5
  %14 = getelementptr inbounds i8, ptr %4, i64 256
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %14, i8 0, i64 48, i1 false)
  br label %526

15:                                               ; preds = %5
  %.not216 = icmp ne ptr %3, null
  br i1 %.not216, label %18, label %16

16:                                               ; preds = %15
  %17 = tail call noundef ptr @_ZN7sym_lib17transpose_generalEPN6format3CSCE(ptr noundef nonnull %2)
  br label %18

18:                                               ; preds = %16, %15
  %.0180 = phi ptr [ %3, %15 ], [ %17, %16 ]
  %19 = tail call noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #9
  tail call void @_ZN6format3CSCC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %19)
  %20 = tail call noalias noundef nonnull dereferenceable(56) ptr @_Znwm(i64 noundef 56) #9
  tail call void @_ZN6format3CSCC2Ev(ptr noundef nonnull align 8 dereferenceable(56) %20)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #10
  call void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #10
  call void @_ZNSt6vectorIPN6format10constraintESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #10
  %21 = getelementptr inbounds i8, ptr %2, i64 8
  %22 = load i64, ptr %21, align 8, !tbaa !5
  %23 = load i64, ptr %2, align 8, !tbaa !13
  %24 = trunc i64 %23 to i32
  %sext = shl i64 %22, 32
  %25 = ashr exact i64 %sext, 32
  %26 = icmp ugt i64 %25, 4611686018427387903
  %27 = ashr exact i64 %sext, 30
  %28 = select i1 %26, i64 -1, i64 %27
  %29 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %28) #9
          to label %30 unwind label %54

30:                                               ; preds = %18
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %29, i8 0, i64 %28, i1 false)
  %31 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %28) #9
          to label %32 unwind label %56

32:                                               ; preds = %30
  call void @llvm.memset.p0.i64(ptr nonnull align 4 %31, i8 0, i64 %28, i1 false)
  %.not217 = icmp ne ptr %0, null
  br i1 %.not217, label %33, label %36

33:                                               ; preds = %32
  %34 = getelementptr inbounds i8, ptr %0, i64 24
  %35 = load ptr, ptr %34, align 8, !tbaa !14
  br label %40

36:                                               ; preds = %32
  %sext218 = shl i64 %23, 32
  %37 = ashr exact i64 %sext218, 29
  %.inv = icmp sgt i64 %sext218, -1
  %38 = select i1 %.inv, i64 %37, i64 -1
  %39 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %38) #9
          to label %40 unwind label %58

40:                                               ; preds = %36, %33
  %41 = phi ptr [ %35, %33 ], [ %39, %36 ]
  %.not219 = icmp ne ptr %1, null
  br i1 %.not219, label %42, label %45

42:                                               ; preds = %40
  %43 = getelementptr inbounds i8, ptr %1, i64 24
  %44 = load ptr, ptr %43, align 8, !tbaa !14
  br label %49

45:                                               ; preds = %40
  %sext220 = shl i64 %23, 32
  %46 = ashr exact i64 %sext220, 29
  %.inv221 = icmp sgt i64 %sext220, -1
  %47 = select i1 %.inv221, i64 %46, i64 -1
  %48 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %47) #9
          to label %49 unwind label %60

49:                                               ; preds = %45, %42
  %50 = phi ptr [ %44, %42 ], [ %48, %45 ]
  br i1 %.not217, label %64, label %51

51:                                               ; preds = %49
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #10
  store double -1.000000e+20, ptr %8, align 8, !tbaa !16
  %52 = invoke noundef ptr @_ZSt6fill_nIPdidET_S1_T0_RKT1_(ptr noundef %41, i32 noundef %24, ptr noundef nonnull align 8 dereferenceable(8) %8)
          to label %53 unwind label %62

53:                                               ; preds = %51
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  br label %64

54:                                               ; preds = %18
  %55 = landingpad { ptr, i32 }
          cleanup
  br label %525

56:                                               ; preds = %30
  %57 = landingpad { ptr, i32 }
          cleanup
  br label %525

58:                                               ; preds = %36
  %59 = landingpad { ptr, i32 }
          cleanup
  br label %525

60:                                               ; preds = %._crit_edge276, %435, %428, %422, %70, %45
  %61 = landingpad { ptr, i32 }
          cleanup
  br label %525

62:                                               ; preds = %51
  %63 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #10
  br label %525

64:                                               ; preds = %53, %49
  br i1 %.not219, label %70, label %65

65:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #10
  store double 1.000000e+20, ptr %9, align 8, !tbaa !16
  %66 = invoke noundef ptr @_ZSt6fill_nIPdidET_S1_T0_RKT1_(ptr noundef %41, i32 noundef %24, ptr noundef nonnull align 8 dereferenceable(8) %9)
          to label %67 unwind label %68

67:                                               ; preds = %65
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  br label %70

68:                                               ; preds = %65
  %69 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #10
  br label %525

70:                                               ; preds = %67, %64
  %71 = invoke noalias noundef nonnull dereferenceable(32) ptr @_Znwm(i64 noundef 32) #9
          to label %72 unwind label %60

72:                                               ; preds = %70
  %73 = shl nsw i32 %24, 1
  %74 = sext i32 %73 to i64
  invoke void @_ZN6format5DenseC2Emmm(ptr noundef nonnull align 8 dereferenceable(32) %71, i64 noundef %74, i64 noundef 1, i64 noundef 1)
          to label %75 unwind label %86

75:                                               ; preds = %72
  %76 = getelementptr inbounds i8, ptr %4, i64 296
  store ptr %71, ptr %76, align 8, !tbaa !18
  %77 = getelementptr inbounds i8, ptr %71, i64 24
  %78 = load ptr, ptr %77, align 8, !tbaa !14
  %79 = getelementptr inbounds i8, ptr %4, i64 272
  store ptr %19, ptr %79, align 8, !tbaa !23
  %80 = getelementptr inbounds i8, ptr %4, i64 280
  store ptr %20, ptr %80, align 8, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %10) #10
  store i32 0, ptr %10, align 4, !tbaa !25
  %81 = load i64, ptr %2, align 8, !tbaa !13
  %.not281 = icmp eq i64 %81, 0
  br i1 %.not281, label %.thread328, label %.lr.ph264

.lr.ph264:                                        ; preds = %75
  %82 = getelementptr inbounds i8, ptr %.0180, i64 32
  %83 = getelementptr inbounds i8, ptr %.0180, i64 40
  br label %88

._crit_edge265:                                   ; preds = %.loopexit234
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #10
  %84 = sext i32 %.2 to i64
  %85 = shl i64 %413, 1
  %.not222 = icmp ult i64 %85, %84
  br i1 %.not222, label %416, label %417

.thread328:                                       ; preds = %75
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #10
  br label %501

86:                                               ; preds = %72
  %87 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %71, i64 noundef 32) #11
  br label %525

88:                                               ; preds = %.lr.ph264, %.loopexit234
  %89 = phi i64 [ 0, %.lr.ph264 ], [ %412, %.loopexit234 ]
  %.0187262 = phi i32 [ 0, %.lr.ph264 ], [ %.1, %.loopexit234 ]
  %.0190260 = phi i32 [ 0, %.lr.ph264 ], [ %.2, %.loopexit234 ]
  %.0192259 = phi i32 [ 0, %.lr.ph264 ], [ %.2194, %.loopexit234 ]
  %90 = getelementptr inbounds double, ptr %41, i64 %89
  %91 = load double, ptr %90, align 8, !tbaa !16
  %92 = call noundef double @_ZSt3absd(double noundef %91)
  %93 = fcmp olt double %92, 0x3D06849B86A12B9B
  %.pre = load i32, ptr %10, align 4, !tbaa !25
  %.pre312 = sext i32 %.pre to i64
  br i1 %93, label %._crit_edge311, label %94

94:                                               ; preds = %88
  %95 = getelementptr inbounds double, ptr %41, i64 %.pre312
  %96 = load double, ptr %95, align 8, !tbaa !16
  br label %._crit_edge311

._crit_edge311:                                   ; preds = %88, %94
  %97 = phi double [ %96, %94 ], [ 0.000000e+00, %88 ]
  %98 = getelementptr inbounds double, ptr %41, i64 %.pre312
  store double %97, ptr %98, align 8, !tbaa !16
  %99 = getelementptr inbounds double, ptr %50, i64 %.pre312
  %100 = load double, ptr %99, align 8, !tbaa !16
  %101 = call noundef double @_ZSt3absd(double noundef %100)
  %102 = fcmp olt double %101, 0x3D06849B86A12B9B
  %.pre309 = load i32, ptr %10, align 4, !tbaa !25
  %.pre313 = sext i32 %.pre309 to i64
  br i1 %102, label %._crit_edge310, label %103

103:                                              ; preds = %._crit_edge311
  %104 = getelementptr inbounds double, ptr %50, i64 %.pre313
  %105 = load double, ptr %104, align 8, !tbaa !16
  br label %._crit_edge310

._crit_edge310:                                   ; preds = %._crit_edge311, %103
  %106 = phi double [ %105, %103 ], [ 0.000000e+00, %._crit_edge311 ]
  %107 = getelementptr inbounds double, ptr %50, i64 %.pre313
  store double %106, ptr %107, align 8, !tbaa !16
  %108 = getelementptr inbounds double, ptr %41, i64 %.pre313
  %109 = load double, ptr %108, align 8, !tbaa !16
  %110 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %109, double noundef -1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %111 unwind label %147

111:                                              ; preds = %._crit_edge310
  br i1 %110, label %112, label %119

112:                                              ; preds = %111
  %113 = load i32, ptr %10, align 4, !tbaa !25
  %114 = sext i32 %113 to i64
  %115 = getelementptr inbounds double, ptr %50, i64 %114
  %116 = load double, ptr %115, align 8, !tbaa !16
  %117 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %116, double noundef 1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %118 unwind label %147

118:                                              ; preds = %112
  br i1 %117, label %.loopexit234, label %119

119:                                              ; preds = %118, %111
  %120 = load i32, ptr %10, align 4, !tbaa !25
  %121 = sext i32 %120 to i64
  %122 = getelementptr inbounds double, ptr %41, i64 %121
  %123 = load double, ptr %122, align 8, !tbaa !16
  %124 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %123, double noundef 1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %125 unwind label %147

125:                                              ; preds = %119
  br i1 %124, label %126, label %133

126:                                              ; preds = %125
  %127 = load i32, ptr %10, align 4, !tbaa !25
  %128 = sext i32 %127 to i64
  %129 = getelementptr inbounds double, ptr %50, i64 %128
  %130 = load double, ptr %129, align 8, !tbaa !16
  %131 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %130, double noundef 1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %132 unwind label %147

132:                                              ; preds = %126
  br i1 %131, label %.loopexit234, label %133

133:                                              ; preds = %132, %125
  %134 = load i32, ptr %10, align 4, !tbaa !25
  %135 = sext i32 %134 to i64
  %136 = getelementptr inbounds double, ptr %41, i64 %135
  %137 = load double, ptr %136, align 8, !tbaa !16
  %138 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %137, double noundef -1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %139 unwind label %147

139:                                              ; preds = %133
  br i1 %138, label %140, label %149

140:                                              ; preds = %139
  %141 = load i32, ptr %10, align 4, !tbaa !25
  %142 = sext i32 %141 to i64
  %143 = getelementptr inbounds double, ptr %50, i64 %142
  %144 = load double, ptr %143, align 8, !tbaa !16
  %145 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %144, double noundef -1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %146 unwind label %147

146:                                              ; preds = %140
  br i1 %145, label %.loopexit234, label %149

147:                                              ; preds = %158, %149, %140, %133, %126, %119, %112, %._crit_edge310
  %148 = landingpad { ptr, i32 }
          cleanup
  br label %415

149:                                              ; preds = %146, %139
  %150 = load i32, ptr %10, align 4, !tbaa !25
  %151 = sext i32 %150 to i64
  %152 = getelementptr inbounds double, ptr %41, i64 %151
  %153 = load double, ptr %152, align 8, !tbaa !16
  %154 = getelementptr inbounds double, ptr %50, i64 %151
  %155 = load double, ptr %154, align 8, !tbaa !16
  %156 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %153, double noundef %155, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %157 unwind label %147

157:                                              ; preds = %149
  br i1 %156, label %158, label %204

158:                                              ; preds = %157
  %159 = add nsw i32 %.0187262, 1
  invoke void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 4 dereferenceable(4) %10)
          to label %160 unwind label %147

160:                                              ; preds = %158
  %161 = load ptr, ptr %82, align 8, !tbaa !26
  %162 = load i32, ptr %10, align 4, !tbaa !25
  %163 = sext i32 %162 to i64
  %164 = getelementptr inbounds i32, ptr %161, i64 %163
  %165 = load i32, ptr %164, align 4, !tbaa !25
  %166 = getelementptr i8, ptr %164, i64 4
  %167 = load i32, ptr %166, align 4, !tbaa !25
  %168 = icmp slt i32 %165, %167
  br i1 %168, label %.lr.ph258, label %.loopexit234

.lr.ph258:                                        ; preds = %160
  %169 = load ptr, ptr %83, align 8, !tbaa !27
  %170 = sext i32 %165 to i64
  %171 = sext i32 %167 to i64
  %172 = sub nsw i64 %171, %170
  %xtraiter346 = and i64 %172, 3
  %lcmp.mod347.not = icmp eq i64 %xtraiter346, 0
  br i1 %lcmp.mod347.not, label %.prol.loopexit345, label %.prol.preheader344

.prol.preheader344:                               ; preds = %.lr.ph258, %.prol.preheader344
  %indvars.iv293.prol = phi i64 [ %indvars.iv.next294.prol, %.prol.preheader344 ], [ %170, %.lr.ph258 ]
  %prol.iter348 = phi i64 [ %prol.iter348.next, %.prol.preheader344 ], [ 0, %.lr.ph258 ]
  %173 = getelementptr inbounds i32, ptr %169, i64 %indvars.iv293.prol
  %174 = load i32, ptr %173, align 4, !tbaa !25
  %175 = sext i32 %174 to i64
  %176 = getelementptr inbounds i32, ptr %29, i64 %175
  %177 = load i32, ptr %176, align 4, !tbaa !25
  %178 = add nsw i32 %177, 1
  store i32 %178, ptr %176, align 4, !tbaa !25
  %indvars.iv.next294.prol = add nsw i64 %indvars.iv293.prol, 1
  %prol.iter348.next = add i64 %prol.iter348, 1
  %prol.iter348.cmp.not = icmp eq i64 %prol.iter348.next, %xtraiter346
  br i1 %prol.iter348.cmp.not, label %.prol.loopexit345, label %.prol.preheader344, !llvm.loop !28

.prol.loopexit345:                                ; preds = %.prol.preheader344, %.lr.ph258
  %indvars.iv293.unr = phi i64 [ %170, %.lr.ph258 ], [ %indvars.iv.next294.prol, %.prol.preheader344 ]
  %179 = sub nsw i64 %170, %171
  %180 = icmp ugt i64 %179, -4
  br i1 %180, label %.loopexit234, label %.lr.ph258.new

.lr.ph258.new:                                    ; preds = %.prol.loopexit345
  %invariant.gep365 = getelementptr i8, ptr %169, i64 4
  %invariant.gep367 = getelementptr i8, ptr %169, i64 8
  %invariant.gep369 = getelementptr i8, ptr %169, i64 12
  br label %181

181:                                              ; preds = %181, %.lr.ph258.new
  %indvars.iv293 = phi i64 [ %indvars.iv293.unr, %.lr.ph258.new ], [ %indvars.iv.next294.3, %181 ]
  %182 = getelementptr inbounds i32, ptr %169, i64 %indvars.iv293
  %183 = load i32, ptr %182, align 4, !tbaa !25
  %184 = sext i32 %183 to i64
  %185 = getelementptr inbounds i32, ptr %29, i64 %184
  %186 = load i32, ptr %185, align 4, !tbaa !25
  %187 = add nsw i32 %186, 1
  store i32 %187, ptr %185, align 4, !tbaa !25
  %gep366 = getelementptr i32, ptr %invariant.gep365, i64 %indvars.iv293
  %188 = load i32, ptr %gep366, align 4, !tbaa !25
  %189 = sext i32 %188 to i64
  %190 = getelementptr inbounds i32, ptr %29, i64 %189
  %191 = load i32, ptr %190, align 4, !tbaa !25
  %192 = add nsw i32 %191, 1
  store i32 %192, ptr %190, align 4, !tbaa !25
  %gep368 = getelementptr i32, ptr %invariant.gep367, i64 %indvars.iv293
  %193 = load i32, ptr %gep368, align 4, !tbaa !25
  %194 = sext i32 %193 to i64
  %195 = getelementptr inbounds i32, ptr %29, i64 %194
  %196 = load i32, ptr %195, align 4, !tbaa !25
  %197 = add nsw i32 %196, 1
  store i32 %197, ptr %195, align 4, !tbaa !25
  %gep370 = getelementptr i32, ptr %invariant.gep369, i64 %indvars.iv293
  %198 = load i32, ptr %gep370, align 4, !tbaa !25
  %199 = sext i32 %198 to i64
  %200 = getelementptr inbounds i32, ptr %29, i64 %199
  %201 = load i32, ptr %200, align 4, !tbaa !25
  %202 = add nsw i32 %201, 1
  store i32 %202, ptr %200, align 4, !tbaa !25
  %indvars.iv.next294.3 = add nsw i64 %indvars.iv293, 4
  %203 = icmp slt i64 %indvars.iv.next294.3, %171
  br i1 %203, label %181, label %.loopexit234, !llvm.loop !30

204:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #10
  %205 = invoke noalias noundef nonnull dereferenceable(16) ptr @_Znwm(i64 noundef 16) #9
          to label %206 unwind label %250

206:                                              ; preds = %204
  call void @_ZN6format10constraintC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %205)
  store ptr %205, ptr %11, align 8, !tbaa !32
  %207 = load i32, ptr %10, align 4, !tbaa !25
  store i32 %207, ptr %205, align 8, !tbaa !33
  %208 = sext i32 %207 to i64
  %209 = getelementptr inbounds double, ptr %41, i64 %208
  %210 = load double, ptr %209, align 8, !tbaa !16
  %211 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %210, double noundef -1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %212 unwind label %250

212:                                              ; preds = %206
  %213 = load i32, ptr %10, align 4, !tbaa !25
  %214 = sext i32 %213 to i64
  %215 = getelementptr inbounds double, ptr %50, i64 %214
  %216 = load double, ptr %215, align 8, !tbaa !16
  br i1 %211, label %217, label %275

217:                                              ; preds = %212
  %218 = sext i32 %.0190260 to i64
  %219 = getelementptr inbounds double, ptr %78, i64 %218
  store double %216, ptr %219, align 8, !tbaa !16
  %220 = add nsw i32 %.0190260, 1
  %221 = load ptr, ptr %82, align 8, !tbaa !26
  %222 = getelementptr i32, ptr %221, i64 %214
  %223 = getelementptr i8, ptr %222, i64 4
  %224 = load i32, ptr %223, align 4, !tbaa !25
  %225 = load i32, ptr %222, align 4, !tbaa !25
  %226 = sub nsw i32 %224, %225
  %227 = load ptr, ptr %11, align 8, !tbaa !32
  %228 = getelementptr inbounds i8, ptr %227, i64 8
  store double 1.000000e+00, ptr %228, align 8, !tbaa !35
  invoke void @_ZNSt6vectorIPN6format10constraintESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %229 unwind label %250

229:                                              ; preds = %217
  %230 = load ptr, ptr %82, align 8, !tbaa !26
  %231 = load i32, ptr %10, align 4, !tbaa !25
  %232 = sext i32 %231 to i64
  %233 = getelementptr inbounds i32, ptr %230, i64 %232
  %234 = load i32, ptr %233, align 4, !tbaa !25
  %235 = getelementptr i8, ptr %233, i64 4
  %236 = load i32, ptr %235, align 4, !tbaa !25
  %237 = icmp slt i32 %234, %236
  br i1 %237, label %.lr.ph255, label %.loopexit235

.lr.ph255:                                        ; preds = %229
  %238 = load ptr, ptr %83, align 8, !tbaa !27
  %239 = sext i32 %234 to i64
  %240 = sext i32 %236 to i64
  %241 = sub nsw i64 %240, %239
  %xtraiter341 = and i64 %241, 3
  %lcmp.mod342.not = icmp eq i64 %xtraiter341, 0
  br i1 %lcmp.mod342.not, label %.prol.loopexit340, label %.prol.preheader339

.prol.preheader339:                               ; preds = %.lr.ph255, %.prol.preheader339
  %indvars.iv290.prol = phi i64 [ %indvars.iv.next291.prol, %.prol.preheader339 ], [ %239, %.lr.ph255 ]
  %prol.iter343 = phi i64 [ %prol.iter343.next, %.prol.preheader339 ], [ 0, %.lr.ph255 ]
  %242 = getelementptr inbounds i32, ptr %238, i64 %indvars.iv290.prol
  %243 = load i32, ptr %242, align 4, !tbaa !25
  %244 = sext i32 %243 to i64
  %245 = getelementptr inbounds i32, ptr %31, i64 %244
  %246 = load i32, ptr %245, align 4, !tbaa !25
  %247 = add nsw i32 %246, 1
  store i32 %247, ptr %245, align 4, !tbaa !25
  %indvars.iv.next291.prol = add nsw i64 %indvars.iv290.prol, 1
  %prol.iter343.next = add i64 %prol.iter343, 1
  %prol.iter343.cmp.not = icmp eq i64 %prol.iter343.next, %xtraiter341
  br i1 %prol.iter343.cmp.not, label %.prol.loopexit340, label %.prol.preheader339, !llvm.loop !36

.prol.loopexit340:                                ; preds = %.prol.preheader339, %.lr.ph255
  %indvars.iv290.unr = phi i64 [ %239, %.lr.ph255 ], [ %indvars.iv.next291.prol, %.prol.preheader339 ]
  %248 = sub nsw i64 %239, %240
  %249 = icmp ugt i64 %248, -4
  br i1 %249, label %.loopexit235, label %.lr.ph255.new

.lr.ph255.new:                                    ; preds = %.prol.loopexit340
  %invariant.gep359 = getelementptr i8, ptr %238, i64 4
  %invariant.gep361 = getelementptr i8, ptr %238, i64 8
  %invariant.gep363 = getelementptr i8, ptr %238, i64 12
  br label %252

250:                                              ; preds = %339, %280, %275, %217, %206, %204
  %251 = landingpad { ptr, i32 }
          cleanup
  br label %409

252:                                              ; preds = %252, %.lr.ph255.new
  %indvars.iv290 = phi i64 [ %indvars.iv290.unr, %.lr.ph255.new ], [ %indvars.iv.next291.3, %252 ]
  %253 = getelementptr inbounds i32, ptr %238, i64 %indvars.iv290
  %254 = load i32, ptr %253, align 4, !tbaa !25
  %255 = sext i32 %254 to i64
  %256 = getelementptr inbounds i32, ptr %31, i64 %255
  %257 = load i32, ptr %256, align 4, !tbaa !25
  %258 = add nsw i32 %257, 1
  store i32 %258, ptr %256, align 4, !tbaa !25
  %gep360 = getelementptr i32, ptr %invariant.gep359, i64 %indvars.iv290
  %259 = load i32, ptr %gep360, align 4, !tbaa !25
  %260 = sext i32 %259 to i64
  %261 = getelementptr inbounds i32, ptr %31, i64 %260
  %262 = load i32, ptr %261, align 4, !tbaa !25
  %263 = add nsw i32 %262, 1
  store i32 %263, ptr %261, align 4, !tbaa !25
  %gep362 = getelementptr i32, ptr %invariant.gep361, i64 %indvars.iv290
  %264 = load i32, ptr %gep362, align 4, !tbaa !25
  %265 = sext i32 %264 to i64
  %266 = getelementptr inbounds i32, ptr %31, i64 %265
  %267 = load i32, ptr %266, align 4, !tbaa !25
  %268 = add nsw i32 %267, 1
  store i32 %268, ptr %266, align 4, !tbaa !25
  %gep364 = getelementptr i32, ptr %invariant.gep363, i64 %indvars.iv290
  %269 = load i32, ptr %gep364, align 4, !tbaa !25
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds i32, ptr %31, i64 %270
  %272 = load i32, ptr %271, align 4, !tbaa !25
  %273 = add nsw i32 %272, 1
  store i32 %273, ptr %271, align 4, !tbaa !25
  %indvars.iv.next291.3 = add nsw i64 %indvars.iv290, 4
  %274 = icmp slt i64 %indvars.iv.next291.3, %240
  br i1 %274, label %252, label %.loopexit235, !llvm.loop !37

275:                                              ; preds = %212
  %276 = invoke noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef %216, double noundef 1.000000e+20, double noundef 0x3EB0C6F7A0B5ED8D)
          to label %277 unwind label %250

277:                                              ; preds = %275
  %278 = load i32, ptr %10, align 4, !tbaa !25
  %279 = sext i32 %278 to i64
  br i1 %276, label %280, label %339

280:                                              ; preds = %277
  %281 = getelementptr inbounds double, ptr %41, i64 %279
  %282 = load double, ptr %281, align 8, !tbaa !16
  %283 = fneg double %282
  %284 = sext i32 %.0190260 to i64
  %285 = getelementptr inbounds double, ptr %78, i64 %284
  store double %283, ptr %285, align 8, !tbaa !16
  %286 = add nsw i32 %.0190260, 1
  %287 = load ptr, ptr %82, align 8, !tbaa !26
  %288 = getelementptr i32, ptr %287, i64 %279
  %289 = getelementptr i8, ptr %288, i64 4
  %290 = load i32, ptr %289, align 4, !tbaa !25
  %291 = load i32, ptr %288, align 4, !tbaa !25
  %292 = sub nsw i32 %290, %291
  %293 = load ptr, ptr %11, align 8, !tbaa !32
  %294 = getelementptr inbounds i8, ptr %293, i64 8
  store double -1.000000e+00, ptr %294, align 8, !tbaa !35
  invoke void @_ZNSt6vectorIPN6format10constraintESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %295 unwind label %250

295:                                              ; preds = %280
  %296 = load ptr, ptr %82, align 8, !tbaa !26
  %297 = load i32, ptr %10, align 4, !tbaa !25
  %298 = sext i32 %297 to i64
  %299 = getelementptr inbounds i32, ptr %296, i64 %298
  %300 = load i32, ptr %299, align 4, !tbaa !25
  %301 = getelementptr i8, ptr %299, i64 4
  %302 = load i32, ptr %301, align 4, !tbaa !25
  %303 = icmp slt i32 %300, %302
  br i1 %303, label %.lr.ph252, label %.loopexit235

.lr.ph252:                                        ; preds = %295
  %304 = load ptr, ptr %83, align 8, !tbaa !27
  %305 = sext i32 %300 to i64
  %306 = sext i32 %302 to i64
  %307 = sub nsw i64 %306, %305
  %xtraiter336 = and i64 %307, 3
  %lcmp.mod337.not = icmp eq i64 %xtraiter336, 0
  br i1 %lcmp.mod337.not, label %.prol.loopexit335, label %.prol.preheader334

.prol.preheader334:                               ; preds = %.lr.ph252, %.prol.preheader334
  %indvars.iv287.prol = phi i64 [ %indvars.iv.next288.prol, %.prol.preheader334 ], [ %305, %.lr.ph252 ]
  %prol.iter338 = phi i64 [ %prol.iter338.next, %.prol.preheader334 ], [ 0, %.lr.ph252 ]
  %308 = getelementptr inbounds i32, ptr %304, i64 %indvars.iv287.prol
  %309 = load i32, ptr %308, align 4, !tbaa !25
  %310 = sext i32 %309 to i64
  %311 = getelementptr inbounds i32, ptr %31, i64 %310
  %312 = load i32, ptr %311, align 4, !tbaa !25
  %313 = add nsw i32 %312, 1
  store i32 %313, ptr %311, align 4, !tbaa !25
  %indvars.iv.next288.prol = add nsw i64 %indvars.iv287.prol, 1
  %prol.iter338.next = add i64 %prol.iter338, 1
  %prol.iter338.cmp.not = icmp eq i64 %prol.iter338.next, %xtraiter336
  br i1 %prol.iter338.cmp.not, label %.prol.loopexit335, label %.prol.preheader334, !llvm.loop !38

.prol.loopexit335:                                ; preds = %.prol.preheader334, %.lr.ph252
  %indvars.iv287.unr = phi i64 [ %305, %.lr.ph252 ], [ %indvars.iv.next288.prol, %.prol.preheader334 ]
  %314 = sub nsw i64 %305, %306
  %315 = icmp ugt i64 %314, -4
  br i1 %315, label %.loopexit235, label %.lr.ph252.new

.lr.ph252.new:                                    ; preds = %.prol.loopexit335
  %invariant.gep353 = getelementptr i8, ptr %304, i64 4
  %invariant.gep355 = getelementptr i8, ptr %304, i64 8
  %invariant.gep357 = getelementptr i8, ptr %304, i64 12
  br label %316

316:                                              ; preds = %316, %.lr.ph252.new
  %indvars.iv287 = phi i64 [ %indvars.iv287.unr, %.lr.ph252.new ], [ %indvars.iv.next288.3, %316 ]
  %317 = getelementptr inbounds i32, ptr %304, i64 %indvars.iv287
  %318 = load i32, ptr %317, align 4, !tbaa !25
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds i32, ptr %31, i64 %319
  %321 = load i32, ptr %320, align 4, !tbaa !25
  %322 = add nsw i32 %321, 1
  store i32 %322, ptr %320, align 4, !tbaa !25
  %gep354 = getelementptr i32, ptr %invariant.gep353, i64 %indvars.iv287
  %323 = load i32, ptr %gep354, align 4, !tbaa !25
  %324 = sext i32 %323 to i64
  %325 = getelementptr inbounds i32, ptr %31, i64 %324
  %326 = load i32, ptr %325, align 4, !tbaa !25
  %327 = add nsw i32 %326, 1
  store i32 %327, ptr %325, align 4, !tbaa !25
  %gep356 = getelementptr i32, ptr %invariant.gep355, i64 %indvars.iv287
  %328 = load i32, ptr %gep356, align 4, !tbaa !25
  %329 = sext i32 %328 to i64
  %330 = getelementptr inbounds i32, ptr %31, i64 %329
  %331 = load i32, ptr %330, align 4, !tbaa !25
  %332 = add nsw i32 %331, 1
  store i32 %332, ptr %330, align 4, !tbaa !25
  %gep358 = getelementptr i32, ptr %invariant.gep357, i64 %indvars.iv287
  %333 = load i32, ptr %gep358, align 4, !tbaa !25
  %334 = sext i32 %333 to i64
  %335 = getelementptr inbounds i32, ptr %31, i64 %334
  %336 = load i32, ptr %335, align 4, !tbaa !25
  %337 = add nsw i32 %336, 1
  store i32 %337, ptr %335, align 4, !tbaa !25
  %indvars.iv.next288.3 = add nsw i64 %indvars.iv287, 4
  %338 = icmp slt i64 %indvars.iv.next288.3, %306
  br i1 %338, label %316, label %.loopexit235, !llvm.loop !39

339:                                              ; preds = %277
  %340 = getelementptr inbounds double, ptr %50, i64 %279
  %341 = load double, ptr %340, align 8, !tbaa !16
  %342 = sext i32 %.0190260 to i64
  %343 = getelementptr inbounds double, ptr %78, i64 %342
  store double %341, ptr %343, align 8, !tbaa !16
  %344 = getelementptr inbounds double, ptr %41, i64 %279
  %345 = load double, ptr %344, align 8, !tbaa !16
  %346 = fneg double %345
  %347 = getelementptr i8, ptr %343, i64 8
  store double %346, ptr %347, align 8, !tbaa !16
  %348 = add nsw i32 %.0190260, 2
  %349 = load ptr, ptr %82, align 8, !tbaa !26
  %350 = getelementptr i32, ptr %349, i64 %279
  %351 = getelementptr i8, ptr %350, i64 4
  %352 = load i32, ptr %351, align 4, !tbaa !25
  %353 = load i32, ptr %350, align 4, !tbaa !25
  %354 = sub nsw i32 %352, %353
  %355 = shl nsw i32 %354, 1
  %356 = load ptr, ptr %11, align 8, !tbaa !32
  %357 = getelementptr inbounds i8, ptr %356, i64 8
  store double 1.000000e+00, ptr %357, align 8, !tbaa !35
  invoke void @_ZNSt6vectorIPN6format10constraintESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(8) %11)
          to label %358 unwind label %250

358:                                              ; preds = %339
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #10
  %359 = invoke noalias noundef nonnull dereferenceable(16) ptr @_Znwm(i64 noundef 16) #9
          to label %360 unwind label %384

360:                                              ; preds = %358
  call void @_ZN6format10constraintC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %359)
  store ptr %359, ptr %12, align 8, !tbaa !32
  %361 = load i32, ptr %10, align 4, !tbaa !25
  store i32 %361, ptr %359, align 8, !tbaa !33
  %362 = getelementptr inbounds i8, ptr %359, i64 8
  store double -1.000000e+00, ptr %362, align 8, !tbaa !35
  invoke void @_ZNSt6vectorIPN6format10constraintESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(8) %12)
          to label %363 unwind label %384

363:                                              ; preds = %360
  %364 = load ptr, ptr %82, align 8, !tbaa !26
  %365 = load i32, ptr %10, align 4, !tbaa !25
  %366 = sext i32 %365 to i64
  %367 = getelementptr inbounds i32, ptr %364, i64 %366
  %368 = load i32, ptr %367, align 4, !tbaa !25
  %369 = getelementptr i8, ptr %367, i64 4
  %370 = load i32, ptr %369, align 4, !tbaa !25
  %371 = icmp slt i32 %368, %370
  br i1 %371, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %363
  %372 = load ptr, ptr %83, align 8, !tbaa !27
  %373 = sext i32 %368 to i64
  %374 = sext i32 %370 to i64
  %375 = sub nsw i64 %374, %373
  %xtraiter = and i64 %375, 3
  %lcmp.mod.not = icmp eq i64 %xtraiter, 0
  br i1 %lcmp.mod.not, label %.prol.loopexit, label %.prol.preheader

.prol.preheader:                                  ; preds = %.lr.ph, %.prol.preheader
  %indvars.iv.prol = phi i64 [ %indvars.iv.next.prol, %.prol.preheader ], [ %373, %.lr.ph ]
  %prol.iter = phi i64 [ %prol.iter.next, %.prol.preheader ], [ 0, %.lr.ph ]
  %376 = getelementptr inbounds i32, ptr %372, i64 %indvars.iv.prol
  %377 = load i32, ptr %376, align 4, !tbaa !25
  %378 = sext i32 %377 to i64
  %379 = getelementptr inbounds i32, ptr %31, i64 %378
  %380 = load i32, ptr %379, align 4, !tbaa !25
  %381 = add nsw i32 %380, 2
  store i32 %381, ptr %379, align 4, !tbaa !25
  %indvars.iv.next.prol = add nsw i64 %indvars.iv.prol, 1
  %prol.iter.next = add i64 %prol.iter, 1
  %prol.iter.cmp.not = icmp eq i64 %prol.iter.next, %xtraiter
  br i1 %prol.iter.cmp.not, label %.prol.loopexit, label %.prol.preheader, !llvm.loop !40

.prol.loopexit:                                   ; preds = %.prol.preheader, %.lr.ph
  %indvars.iv.unr = phi i64 [ %373, %.lr.ph ], [ %indvars.iv.next.prol, %.prol.preheader ]
  %382 = sub nsw i64 %373, %374
  %383 = icmp ugt i64 %382, -4
  br i1 %383, label %._crit_edge, label %.lr.ph.new

.lr.ph.new:                                       ; preds = %.prol.loopexit
  %invariant.gep = getelementptr i8, ptr %372, i64 4
  %invariant.gep349 = getelementptr i8, ptr %372, i64 8
  %invariant.gep351 = getelementptr i8, ptr %372, i64 12
  br label %386

._crit_edge:                                      ; preds = %.prol.loopexit, %386, %363
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  br label %.loopexit235

384:                                              ; preds = %360, %358
  %385 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #10
  br label %409

386:                                              ; preds = %386, %.lr.ph.new
  %indvars.iv = phi i64 [ %indvars.iv.unr, %.lr.ph.new ], [ %indvars.iv.next.3, %386 ]
  %387 = getelementptr inbounds i32, ptr %372, i64 %indvars.iv
  %388 = load i32, ptr %387, align 4, !tbaa !25
  %389 = sext i32 %388 to i64
  %390 = getelementptr inbounds i32, ptr %31, i64 %389
  %391 = load i32, ptr %390, align 4, !tbaa !25
  %392 = add nsw i32 %391, 2
  store i32 %392, ptr %390, align 4, !tbaa !25
  %gep = getelementptr i32, ptr %invariant.gep, i64 %indvars.iv
  %393 = load i32, ptr %gep, align 4, !tbaa !25
  %394 = sext i32 %393 to i64
  %395 = getelementptr inbounds i32, ptr %31, i64 %394
  %396 = load i32, ptr %395, align 4, !tbaa !25
  %397 = add nsw i32 %396, 2
  store i32 %397, ptr %395, align 4, !tbaa !25
  %gep350 = getelementptr i32, ptr %invariant.gep349, i64 %indvars.iv
  %398 = load i32, ptr %gep350, align 4, !tbaa !25
  %399 = sext i32 %398 to i64
  %400 = getelementptr inbounds i32, ptr %31, i64 %399
  %401 = load i32, ptr %400, align 4, !tbaa !25
  %402 = add nsw i32 %401, 2
  store i32 %402, ptr %400, align 4, !tbaa !25
  %gep352 = getelementptr i32, ptr %invariant.gep351, i64 %indvars.iv
  %403 = load i32, ptr %gep352, align 4, !tbaa !25
  %404 = sext i32 %403 to i64
  %405 = getelementptr inbounds i32, ptr %31, i64 %404
  %406 = load i32, ptr %405, align 4, !tbaa !25
  %407 = add nsw i32 %406, 2
  store i32 %407, ptr %405, align 4, !tbaa !25
  %indvars.iv.next.3 = add nsw i64 %indvars.iv, 4
  %408 = icmp slt i64 %indvars.iv.next.3, %374
  br i1 %408, label %386, label %._crit_edge, !llvm.loop !41

.loopexit235:                                     ; preds = %.prol.loopexit335, %316, %.prol.loopexit340, %252, %295, %229, %._crit_edge
  %.pn224 = phi i32 [ %355, %._crit_edge ], [ %226, %229 ], [ %292, %295 ], [ %226, %252 ], [ %226, %.prol.loopexit340 ], [ %292, %316 ], [ %292, %.prol.loopexit335 ]
  %.1191 = phi i32 [ %348, %._crit_edge ], [ %220, %229 ], [ %286, %295 ], [ %220, %252 ], [ %220, %.prol.loopexit340 ], [ %286, %316 ], [ %286, %.prol.loopexit335 ]
  %.1193 = add nsw i32 %.pn224, %.0192259
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  br label %.loopexit234

409:                                              ; preds = %384, %250
  %.pn = phi { ptr, i32 } [ %251, %250 ], [ %385, %384 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  br label %415

.loopexit234:                                     ; preds = %.prol.loopexit345, %181, %160, %.loopexit235, %118, %132, %146
  %.2194 = phi i32 [ %.0192259, %118 ], [ %.0192259, %132 ], [ %.0192259, %146 ], [ %.1193, %.loopexit235 ], [ %.0192259, %160 ], [ %.0192259, %181 ], [ %.0192259, %.prol.loopexit345 ]
  %.2 = phi i32 [ %.0190260, %118 ], [ %.0190260, %132 ], [ %.0190260, %146 ], [ %.1191, %.loopexit235 ], [ %.0190260, %160 ], [ %.0190260, %181 ], [ %.0190260, %.prol.loopexit345 ]
  %.1 = phi i32 [ %.0187262, %118 ], [ %.0187262, %132 ], [ %.0187262, %146 ], [ %.0187262, %.loopexit235 ], [ %159, %160 ], [ %159, %181 ], [ %159, %.prol.loopexit345 ]
  %410 = load i32, ptr %10, align 4, !tbaa !25
  %411 = add nsw i32 %410, 1
  store i32 %411, ptr %10, align 4, !tbaa !25
  %412 = sext i32 %411 to i64
  %413 = load i64, ptr %2, align 8, !tbaa !13
  %414 = icmp ugt i64 %413, %412
  br i1 %414, label %88, label %._crit_edge265, !llvm.loop !42

415:                                              ; preds = %409, %147
  %.pn225 = phi { ptr, i32 } [ %148, %147 ], [ %.pn, %409 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %10) #10
  br label %525

416:                                              ; preds = %._crit_edge265
  call void @__assert_fail(ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.130, i32 noundef 353, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN6format27find_inequalities_by_boundsEPNS_5DenseES1_PNS_3CSCES3_PNS_6IEFormE) #12
  unreachable

417:                                              ; preds = %._crit_edge265
  %418 = icmp eq i32 %.1, 0
  br i1 %418, label %420, label %419

419:                                              ; preds = %417
  call void @__assert_fail(ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.130, i32 noundef 354, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN6format27find_inequalities_by_boundsEPNS_5DenseES1_PNS_3CSCES3_PNS_6IEFormE) #12
  unreachable

420:                                              ; preds = %417
  %421 = icmp sgt i32 %.2, 0
  br i1 %421, label %422, label %501

422:                                              ; preds = %420
  store i64 %25, ptr %20, align 8, !tbaa !13
  %423 = getelementptr inbounds i8, ptr %20, i64 8
  store i64 %84, ptr %423, align 8, !tbaa !5
  %424 = add nuw nsw i32 %.2, 1
  %425 = zext nneg i32 %424 to i64
  %426 = shl nuw nsw i64 %425, 2
  %427 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %426) #9
          to label %428 unwind label %60

428:                                              ; preds = %422
  %429 = getelementptr inbounds i8, ptr %20, i64 32
  store ptr %427, ptr %429, align 8, !tbaa !26
  %430 = sext i32 %.2194 to i64
  %431 = icmp slt i32 %.2194, 0
  %432 = shl nsw i64 %430, 2
  %433 = select i1 %431, i64 -1, i64 %432
  %434 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %433) #9
          to label %435 unwind label %60

435:                                              ; preds = %428
  %436 = getelementptr inbounds i8, ptr %20, i64 40
  store ptr %434, ptr %436, align 8, !tbaa !27
  %437 = shl nsw i64 %430, 3
  %438 = select i1 %431, i64 -1, i64 %437
  %439 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %438) #9
          to label %440 unwind label %60

440:                                              ; preds = %435
  %441 = getelementptr inbounds i8, ptr %20, i64 48
  store ptr %439, ptr %441, align 8, !tbaa !43
  %442 = call noundef i64 @_ZNKSt6vectorIPN6format10constraintESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #10
  %443 = icmp eq i64 %442, %84
  br i1 %443, label %445, label %444

444:                                              ; preds = %440
  call void @__assert_fail(ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.130, i32 noundef 390, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN6format27find_inequalities_by_boundsEPNS_5DenseES1_PNS_3CSCES3_PNS_6IEFormE) #12
  unreachable

445:                                              ; preds = %440
  %446 = load ptr, ptr %429, align 8, !tbaa !26
  store i32 0, ptr %446, align 4, !tbaa !25
  %447 = call noundef i64 @_ZNKSt6vectorIPN6format10constraintESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #10
  %.not282 = icmp eq i64 %447, 0
  br i1 %.not282, label %._crit_edge276, label %.lr.ph275

.lr.ph275:                                        ; preds = %445
  %448 = getelementptr inbounds i8, ptr %.0180, i64 32
  %449 = getelementptr inbounds i8, ptr %.0180, i64 40
  %450 = getelementptr inbounds i8, ptr %.0180, i64 48
  br label %459

.loopexit:                                        ; preds = %487, %459
  %451 = call noundef i64 @_ZNKSt6vectorIPN6format10constraintESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #10
  %452 = icmp ugt i64 %451, %indvars.iv.next304
  br i1 %452, label %459, label %._crit_edge276, !llvm.loop !44

._crit_edge276:                                   ; preds = %.loopexit, %445
  %453 = load ptr, ptr %429, align 8, !tbaa !26
  %454 = getelementptr inbounds i32, ptr %453, i64 %84
  %455 = load i32, ptr %454, align 4, !tbaa !25
  %456 = sext i32 %455 to i64
  %457 = getelementptr inbounds i8, ptr %20, i64 16
  store i64 %456, ptr %457, align 8, !tbaa !45
  %458 = invoke noundef ptr @_ZN7sym_lib17transpose_generalEPN6format3CSCE(ptr noundef nonnull %20)
          to label %498 unwind label %60

459:                                              ; preds = %.lr.ph275, %.loopexit
  %indvars.iv303 = phi i64 [ 0, %.lr.ph275 ], [ %indvars.iv.next304, %.loopexit ]
  %460 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6format10constraintESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %indvars.iv303) #10
  %461 = load ptr, ptr %460, align 8, !tbaa !32
  %462 = load i32, ptr %461, align 8, !tbaa !33
  %463 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6format10constraintESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %indvars.iv303) #10
  %464 = load ptr, ptr %463, align 8, !tbaa !32
  %465 = getelementptr inbounds i8, ptr %464, i64 8
  %466 = load double, ptr %465, align 8, !tbaa !35
  %467 = load ptr, ptr %448, align 8, !tbaa !26
  %468 = sext i32 %462 to i64
  %469 = getelementptr i32, ptr %467, i64 %468
  %470 = getelementptr i8, ptr %469, i64 4
  %471 = load i32, ptr %470, align 4, !tbaa !25
  %472 = load i32, ptr %469, align 4, !tbaa !25
  %473 = sub i32 %471, %472
  %474 = load ptr, ptr %429, align 8, !tbaa !26
  %475 = getelementptr inbounds i32, ptr %474, i64 %indvars.iv303
  %476 = load i32, ptr %475, align 4, !tbaa !25
  %477 = add nsw i32 %473, %476
  %indvars.iv.next304 = add nuw nsw i64 %indvars.iv303, 1
  %478 = getelementptr inbounds i32, ptr %474, i64 %indvars.iv.next304
  store i32 %477, ptr %478, align 4, !tbaa !25
  %479 = icmp sgt i32 %473, 0
  br i1 %479, label %.lr.ph272, label %.loopexit

.lr.ph272:                                        ; preds = %459
  %480 = load i32, ptr %469, align 4, !tbaa !25
  %481 = load ptr, ptr %449, align 8, !tbaa !27
  %482 = load ptr, ptr %436, align 8, !tbaa !27
  %483 = load ptr, ptr %450, align 8, !tbaa !43
  %484 = load ptr, ptr %441, align 8, !tbaa !43
  %485 = sext i32 %480 to i64
  %486 = sext i32 %476 to i64
  br label %487

487:                                              ; preds = %.lr.ph272, %487
  %indvars.iv298 = phi i64 [ %486, %.lr.ph272 ], [ %indvars.iv.next299, %487 ]
  %indvars.iv296 = phi i64 [ %485, %.lr.ph272 ], [ %indvars.iv.next297, %487 ]
  %488 = getelementptr inbounds i32, ptr %481, i64 %indvars.iv296
  %489 = load i32, ptr %488, align 4, !tbaa !25
  %490 = getelementptr inbounds i32, ptr %482, i64 %indvars.iv298
  store i32 %489, ptr %490, align 4, !tbaa !25
  %491 = getelementptr inbounds double, ptr %483, i64 %indvars.iv296
  %492 = load double, ptr %491, align 8, !tbaa !16
  %493 = fmul double %466, %492
  %494 = getelementptr inbounds double, ptr %484, i64 %indvars.iv298
  store double %493, ptr %494, align 8, !tbaa !16
  %indvars.iv.next299 = add nsw i64 %indvars.iv298, 1
  %indvars.iv.next297 = add nsw i64 %indvars.iv296, 1
  %495 = load i32, ptr %478, align 4, !tbaa !25
  %496 = sext i32 %495 to i64
  %497 = icmp slt i64 %indvars.iv.next299, %496
  br i1 %497, label %487, label %.loopexit, !llvm.loop !46

498:                                              ; preds = %._crit_edge276
  %499 = getelementptr inbounds i8, ptr %4, i64 264
  store ptr %458, ptr %499, align 8, !tbaa !47
  %500 = load ptr, ptr %76, align 8, !tbaa !18
  store i64 %84, ptr %500, align 8, !tbaa !48
  br label %507

501:                                              ; preds = %.thread328, %420
  %502 = load ptr, ptr %76, align 8, !tbaa !18
  %503 = icmp eq ptr %502, null
  br i1 %503, label %505, label %504

504:                                              ; preds = %501
  call void @_ZN6format5DenseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %502) #10
  call void @_ZdlPvm(ptr noundef nonnull %502, i64 noundef 32) #11
  br label %505

505:                                              ; preds = %504, %501
  store ptr null, ptr %76, align 8, !tbaa !18
  call void @_ZN6format3CSCD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %20) #10
  call void @_ZdlPvm(ptr noundef nonnull %20, i64 noundef 56) #11
  store ptr null, ptr %80, align 8, !tbaa !24
  %506 = getelementptr inbounds i8, ptr %4, i64 264
  store ptr null, ptr %506, align 8, !tbaa !47
  br label %507

507:                                              ; preds = %505, %498
  call void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  %508 = call noundef i64 @_ZNKSt6vectorIPN6format10constraintESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #10
  %.not283 = icmp eq i64 %508, 0
  br i1 %.not283, label %._crit_edge280, label %.lr.ph279

._crit_edge280:                                   ; preds = %514, %507
  %509 = icmp eq ptr %41, null
  %or.cond = select i1 %.not217, i1 true, i1 %509
  br i1 %or.cond, label %518, label %517

.lr.ph279:                                        ; preds = %507, %514
  %indvars.iv306 = phi i64 [ %indvars.iv.next307, %514 ], [ 0, %507 ]
  %510 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6format10constraintESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %indvars.iv306) #10
  %511 = load ptr, ptr %510, align 8, !tbaa !32
  %512 = icmp eq ptr %511, null
  br i1 %512, label %514, label %513

513:                                              ; preds = %.lr.ph279
  call void @_ZdlPvm(ptr noundef nonnull %511, i64 noundef 16) #11
  br label %514

514:                                              ; preds = %.lr.ph279, %513
  %indvars.iv.next307 = add nuw nsw i64 %indvars.iv306, 1
  %515 = call noundef i64 @_ZNKSt6vectorIPN6format10constraintESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #10
  %516 = icmp ugt i64 %515, %indvars.iv.next307
  br i1 %516, label %.lr.ph279, label %._crit_edge280, !llvm.loop !49

517:                                              ; preds = %._crit_edge280
  call void @_ZdaPv(ptr noundef nonnull %41) #11
  br label %518

518:                                              ; preds = %517, %._crit_edge280
  %519 = icmp eq ptr %50, null
  %or.cond231 = select i1 %.not219, i1 true, i1 %519
  br i1 %or.cond231, label %521, label %520

520:                                              ; preds = %518
  call void @_ZdaPv(ptr noundef nonnull %50) #11
  br label %521

521:                                              ; preds = %518, %520
  call void @_ZdaPv(ptr noundef nonnull %31) #11
  call void @_ZdaPv(ptr noundef nonnull %29) #11
  %522 = icmp eq ptr %.0180, null
  %or.cond232 = or i1 %.not216, %522
  br i1 %or.cond232, label %524, label %523

523:                                              ; preds = %521
  call void @_ZN6format3CSCD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %.0180) #10
  call void @_ZdlPvm(ptr noundef nonnull %.0180, i64 noundef 56) #11
  br label %524

524:                                              ; preds = %523, %521
  call void @_ZNSt6vectorIPN6format10constraintESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #10
  br label %526

525:                                              ; preds = %56, %60, %62, %68, %86, %415, %58, %54
  %.pn225.pn.pn.pn.pn = phi { ptr, i32 } [ %55, %54 ], [ %57, %56 ], [ %59, %58 ], [ %.pn225, %415 ], [ %61, %60 ], [ %87, %86 ], [ %69, %68 ], [ %63, %62 ]
  call void @_ZNSt6vectorIPN6format10constraintESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #10
  call void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %6) #10
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #10
  resume { ptr, i32 } %.pn225.pn.pn.pn.pn

526:                                              ; preds = %524, %13
  ret i1 true
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6format3CSCC2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIPN6format10constraintESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZSt6fill_nIPdidET_S1_T0_RKT1_(ptr noundef, i32 noundef, ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #7

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3absd(double noundef) local_unnamed_addr #8

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN6format8is_equalIdEEbT_S1_d(double noundef, double noundef, double noundef) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE9push_backERKi(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6format10constraintC2Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #6 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIPN6format10constraintESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIPN6format10constraintESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN6format10constraintESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6format5DenseD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN6format3CSCD2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEE5clearEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIPN6format10constraintESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIiSaIiEED2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { nobuiltin allocsize(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 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { nobuiltin 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 #5 = { 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 #6 = { 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 #7 = { inlinehint 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 #8 = { inlinehint 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 #9 = { builtin allocsize(0) }
attributes #10 = { nounwind }
attributes #11 = { builtin nounwind }
attributes #12 = { noreturn nounwind }

!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 8}
!6 = !{!"_ZTSN6format3CSCE", !7, i64 0, !7, i64 8, !7, i64 16, !10, i64 24, !11, i64 28, !11, i64 29, !12, i64 32, !12, i64 40, !12, i64 48}
!7 = !{!"long", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"bool", !8, i64 0}
!12 = !{!"any pointer", !8, i64 0}
!13 = !{!6, !7, i64 0}
!14 = !{!15, !12, i64 24}
!15 = !{!"_ZTSN6format5DenseE", !7, i64 0, !7, i64 8, !7, i64 16, !12, i64 24}
!16 = !{!17, !17, i64 0}
!17 = !{!"double", !8, i64 0}
!18 = !{!19, !12, i64 296}
!19 = !{!"_ZTSN6format6IEFormE", !20, i64 0, !12, i64 256, !12, i64 264, !12, i64 272, !12, i64 280, !12, i64 288, !12, i64 296, !12, i64 304, !12, i64 312, !12, i64 320, !12, i64 328, !12, i64 336, !17, i64 344, !17, i64 352}
!20 = !{!"_ZTSN6format11DescriptionE", !21, i64 0, !21, i64 32, !21, i64 64, !21, i64 96, !21, i64 128, !21, i64 160, !21, i64 192, !21, i64 224}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !7, i64 8, !8, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !12, i64 0}
!23 = !{!19, !12, i64 272}
!24 = !{!19, !12, i64 280}
!25 = !{!10, !10, i64 0}
!26 = !{!6, !12, i64 32}
!27 = !{!6, !12, i64 40}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.unroll.disable"}
!30 = distinct !{!30, !31}
!31 = !{!"llvm.loop.mustprogress"}
!32 = !{!12, !12, i64 0}
!33 = !{!34, !10, i64 0}
!34 = !{!"_ZTSN6format10constraintE", !10, i64 0, !17, i64 8}
!35 = !{!34, !17, i64 8}
!36 = distinct !{!36, !29}
!37 = distinct !{!37, !31}
!38 = distinct !{!38, !29}
!39 = distinct !{!39, !31}
!40 = distinct !{!40, !29}
!41 = distinct !{!41, !31}
!42 = distinct !{!42, !31}
!43 = !{!6, !12, i64 48}
!44 = distinct !{!44, !31}
!45 = !{!6, !7, i64 16}
!46 = distinct !{!46, !31}
!47 = !{!19, !12, i64 264}
!48 = !{!15, !7, i64 0}
!49 = distinct !{!49, !31}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass