; LLVM IR from tangjz/acm-icpc :: projecteuler/617.ll (Z5solvex)

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

%struct.Triple = type { i64, i64, i64 }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<Triple, Triple, std::_Identity<Triple>, std::less<Triple>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<Triple, Triple, std::_Identity<Triple>, std::less<Triple>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%"struct.std::pair" = type <{ %"struct.std::_Rb_tree_const_iterator", i8, [7 x i8] }>
%"struct.std::_Rb_tree_const_iterator" = type { ptr }

@m = external dso_local global i32, align 4
@seq = external dso_local global [10000001 x %struct.Triple], align 16

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z5irootxi(i64 noundef, i32 noundef) #2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z5solvex(i64 noundef %0) #2 personality ptr @__gxx_personality_v0 {
  %2 = alloca i64, align 8
  %3 = alloca i32, align 4
  %4 = alloca %"class.std::set", align 8
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i64, align 8
  %10 = alloca i64, align 8
  %11 = alloca %struct.Triple, align 8
  %12 = alloca %"struct.std::pair", align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i64, align 8
  %16 = alloca %struct.Triple, align 8
  %17 = alloca %"struct.std::pair", align 8
  %18 = alloca i32, align 4
  %19 = alloca i64, align 8
  %20 = alloca %struct.Triple, align 8
  %21 = alloca %"struct.std::pair", align 8
  %22 = alloca i32, align 4
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca %struct.Triple, align 8
  %27 = alloca %"struct.std::pair", align 8
  %28 = alloca %struct.Triple, align 8
  %29 = alloca %"struct.std::pair", align 8
  %30 = alloca %struct.Triple, align 8
  %31 = alloca %"struct.std::pair", align 8
  %32 = alloca %struct.Triple, align 8
  %33 = alloca %"struct.std::pair", align 8
  %34 = alloca %struct.Triple, align 8
  %35 = alloca %"struct.std::pair", align 8
  %36 = alloca %struct.Triple, align 8
  %37 = alloca %"struct.std::pair", align 8
  %38 = alloca %struct.Triple, align 8
  %39 = alloca %"struct.std::pair", align 8
  %40 = alloca %struct.Triple, align 8
  %41 = alloca %"struct.std::pair", align 8
  %42 = alloca %struct.Triple, align 8
  %43 = alloca %"struct.std::pair", align 8
  %44 = alloca %struct.Triple, align 8
  %45 = alloca %"struct.std::pair", align 8
  %46 = alloca %struct.Triple, align 8
  %47 = alloca %"struct.std::pair", align 8
  %48 = alloca %struct.Triple, align 8
  %49 = alloca %"struct.std::pair", align 8
  %50 = alloca %struct.Triple, align 8
  %51 = alloca %"struct.std::pair", align 8
  %52 = alloca %struct.Triple, align 8
  %53 = alloca %"struct.std::pair", align 8
  %54 = alloca %struct.Triple, align 8
  %55 = alloca %"struct.std::pair", align 8
  %56 = alloca %struct.Triple, align 8
  %57 = alloca %"struct.std::pair", align 8
  %58 = alloca %struct.Triple, align 8
  %59 = alloca %"struct.std::pair", align 8
  %60 = alloca %struct.Triple, align 8
  %61 = alloca %"struct.std::pair", align 8
  %62 = alloca %struct.Triple, align 8
  %63 = alloca %"struct.std::pair", align 8
  %64 = alloca %struct.Triple, align 8
  %65 = alloca %"struct.std::pair", align 8
  %66 = alloca %struct.Triple, align 8
  %67 = alloca %"struct.std::pair", align 8
  %68 = alloca %struct.Triple, align 8
  %69 = alloca %"struct.std::pair", align 8
  %70 = alloca %struct.Triple, align 8
  %71 = alloca %"struct.std::pair", align 8
  %72 = alloca %struct.Triple, align 8
  %73 = alloca %"struct.std::pair", align 8
  %74 = alloca %struct.Triple, align 8
  %75 = alloca %"struct.std::pair", align 8
  %76 = alloca %struct.Triple, align 8
  %77 = alloca %"struct.std::pair", align 8
  %78 = alloca %struct.Triple, align 8
  %79 = alloca %"struct.std::pair", align 8
  %80 = alloca i32, align 4
  %81 = alloca i64, align 8
  %82 = alloca %struct.Triple, align 8
  %83 = alloca %"struct.std::pair", align 8
  store i64 %0, ptr %2, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #6
  %84 = load i64, ptr %2, align 8, !tbaa !5
  %85 = sitofp i64 %84 to double
  %86 = fadd double %85, 2.500000e-01
  %87 = fpext double %86 to x86_fp80
  %88 = call x86_fp80 @sqrtl(x86_fp80 noundef %87) #6
  %89 = fsub x86_fp80 %88, 0xK3FFE8000000000000000
  %90 = fptosi x86_fp80 %89 to i32
  store i32 %90, ptr %3, align 4, !tbaa !9
  br label %91

91:                                               ; preds = %101, %1
  %92 = load i32, ptr %3, align 4, !tbaa !9
  %93 = sext i32 %92 to i64
  %94 = load i32, ptr %3, align 4, !tbaa !9
  %95 = add nsw i32 %94, 1
  %96 = sext i32 %95 to i64
  %97 = mul nsw i64 %93, %96
  %98 = load i64, ptr %2, align 8, !tbaa !5
  %99 = icmp sle i64 %97, %98
  br i1 %99, label %100, label %104

100:                                              ; preds = %91
  br label %101

101:                                              ; preds = %100
  %102 = load i32, ptr %3, align 4, !tbaa !9
  %103 = add nsw i32 %102, 1
  store i32 %103, ptr %3, align 4, !tbaa !9
  br label %91, !llvm.loop !11

104:                                              ; preds = %91
  br label %105

105:                                              ; preds = %115, %104
  %106 = load i32, ptr %3, align 4, !tbaa !9
  %107 = sext i32 %106 to i64
  %108 = load i32, ptr %3, align 4, !tbaa !9
  %109 = add nsw i32 %108, 1
  %110 = sext i32 %109 to i64
  %111 = mul nsw i64 %107, %110
  %112 = load i64, ptr %2, align 8, !tbaa !5
  %113 = icmp sgt i64 %111, %112
  br i1 %113, label %114, label %118

114:                                              ; preds = %105
  br label %115

115:                                              ; preds = %114
  %116 = load i32, ptr %3, align 4, !tbaa !9
  %117 = add nsw i32 %116, -1
  store i32 %117, ptr %3, align 4, !tbaa !9
  br label %105, !llvm.loop !13

118:                                              ; preds = %105
  %119 = load i32, ptr %3, align 4, !tbaa !9
  %120 = icmp sgt i32 %119, 1
  %121 = zext i1 %120 to i32
  %122 = load i32, ptr %3, align 4, !tbaa !9
  %123 = sub nsw i32 %122, %121
  store i32 %123, ptr %3, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr %4) #6
  call void @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %4) #6
  store i32 0, ptr @m, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #6
  store i32 2, ptr %5, align 4, !tbaa !9
  br label %124

124:                                              ; preds = %183, %118
  %125 = load i32, ptr %5, align 4, !tbaa !9
  %126 = invoke noundef double @_ZSt3powIiiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(i32 noundef %125, i32 noundef 4)
          to label %127 unwind label %133

127:                                              ; preds = %124
  %128 = load i64, ptr %2, align 8, !tbaa !5
  %129 = sitofp i64 %128 to double
  %130 = fadd double %129, 1.000000e-09
  %131 = fcmp ole double %126, %130
  br i1 %131, label %137, label %132

132:                                              ; preds = %127
  store i32 8, ptr %8, align 4
  br label %186

133:                                              ; preds = %124
  %134 = landingpad { ptr, i32 }
          cleanup
  %135 = extractvalue { ptr, i32 } %134, 0
  store ptr %135, ptr %6, align 8
  %136 = extractvalue { ptr, i32 } %134, 1
  store i32 %136, ptr %7, align 4
  br label %187

137:                                              ; preds = %127
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #6
  %138 = load i32, ptr %5, align 4, !tbaa !9
  %139 = sext i32 %138 to i64
  %140 = call noundef i64 @_Z4ipowxi(i64 noundef %139, i32 noundef 2)
  store i64 %140, ptr %9, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #6
  %141 = load i64, ptr %9, align 8, !tbaa !5
  %142 = load i64, ptr %9, align 8, !tbaa !5
  %143 = add nsw i64 %142, 1
  %144 = mul nsw i64 %141, %143
  store i64 %144, ptr %10, align 8, !tbaa !5
  %145 = load i64, ptr %10, align 8, !tbaa !5
  %146 = load i64, ptr %2, align 8, !tbaa !5
  %147 = icmp sgt i64 %145, %146
  br i1 %147, label %148, label %149

148:                                              ; preds = %137
  store i32 8, ptr %8, align 4
  br label %180

149:                                              ; preds = %137
  call void @llvm.lifetime.start.p0(i64 24, ptr %11) #6
  %150 = getelementptr inbounds %struct.Triple, ptr %11, i32 0, i32 0
  %151 = load i64, ptr %10, align 8, !tbaa !5
  store i64 %151, ptr %150, align 8, !tbaa !14
  %152 = getelementptr inbounds %struct.Triple, ptr %11, i32 0, i32 1
  store i64 2, ptr %152, align 8, !tbaa !16
  %153 = getelementptr inbounds %struct.Triple, ptr %11, i32 0, i32 2
  %154 = load i64, ptr %9, align 8, !tbaa !5
  store i64 %154, ptr %153, align 8, !tbaa !17
  %155 = load i32, ptr @m, align 4, !tbaa !9
  %156 = sext i32 %155 to i64
  %157 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %156
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %157, ptr align 8 %11, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %11) #6
  %158 = load i32, ptr @m, align 4, !tbaa !9
  %159 = sext i32 %158 to i64
  %160 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %159
  %161 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %160)
          to label %162 unwind label %175

162:                                              ; preds = %149
  %163 = icmp ne i64 %161, 0
  br i1 %163, label %179, label %164

164:                                              ; preds = %162
  %165 = load i32, ptr @m, align 4, !tbaa !9
  %166 = add nsw i32 %165, 1
  store i32 %166, ptr @m, align 4, !tbaa !9
  %167 = sext i32 %165 to i64
  %168 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %167
  %169 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %168)
          to label %170 unwind label %175

170:                                              ; preds = %164
  %171 = getelementptr inbounds { ptr, i8 }, ptr %12, i32 0, i32 0
  %172 = extractvalue { ptr, i8 } %169, 0
  store ptr %172, ptr %171, align 8
  %173 = getelementptr inbounds { ptr, i8 }, ptr %12, i32 0, i32 1
  %174 = extractvalue { ptr, i8 } %169, 1
  store i8 %174, ptr %173, align 8
  br label %179

175:                                              ; preds = %164, %149
  %176 = landingpad { ptr, i32 }
          cleanup
  %177 = extractvalue { ptr, i32 } %176, 0
  store ptr %177, ptr %6, align 8
  %178 = extractvalue { ptr, i32 } %176, 1
  store i32 %178, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  br label %187

179:                                              ; preds = %170, %162
  store i32 0, ptr %8, align 4
  br label %180

180:                                              ; preds = %179, %148
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #6
  %181 = load i32, ptr %8, align 4
  switch i32 %181, label %186 [
    i32 0, label %182
  ]

182:                                              ; preds = %180
  br label %183

183:                                              ; preds = %182
  %184 = load i32, ptr %5, align 4, !tbaa !9
  %185 = add nsw i32 %184, 1
  store i32 %185, ptr %5, align 4, !tbaa !9
  br label %124, !llvm.loop !19

186:                                              ; preds = %180, %132
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #6
  br label %188

187:                                              ; preds = %175, %133
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #6
  br label %1233

188:                                              ; preds = %186
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  store i32 3, ptr %13, align 4, !tbaa !9
  br label %189

189:                                              ; preds = %263, %188
  %190 = load i32, ptr %13, align 4, !tbaa !9
  %191 = icmp slt i32 %190, 60
  br i1 %191, label %193, label %192

192:                                              ; preds = %189
  store i32 11, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  br label %266

193:                                              ; preds = %189
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  store i32 2, ptr %14, align 4, !tbaa !9
  br label %194

194:                                              ; preds = %257, %193
  %195 = load i32, ptr %14, align 4, !tbaa !9
  %196 = load i32, ptr %13, align 4, !tbaa !9
  %197 = invoke noundef double @_ZSt3powIiiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(i32 noundef %195, i32 noundef %196)
          to label %198 unwind label %204

198:                                              ; preds = %194
  %199 = load i64, ptr %2, align 8, !tbaa !5
  %200 = sitofp i64 %199 to double
  %201 = fadd double %200, 1.000000e-09
  %202 = fcmp ole double %197, %201
  br i1 %202, label %208, label %203

203:                                              ; preds = %198
  store i32 14, ptr %8, align 4
  br label %260

204:                                              ; preds = %194
  %205 = landingpad { ptr, i32 }
          cleanup
  %206 = extractvalue { ptr, i32 } %205, 0
  store ptr %206, ptr %6, align 8
  %207 = extractvalue { ptr, i32 } %205, 1
  store i32 %207, ptr %7, align 4
  br label %261

208:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #6
  %209 = load i32, ptr %14, align 4, !tbaa !9
  %210 = sext i32 %209 to i64
  %211 = load i32, ptr %13, align 4, !tbaa !9
  %212 = call noundef i64 @_Z4ipowxi(i64 noundef %210, i32 noundef %211)
  %213 = load i32, ptr %14, align 4, !tbaa !9
  %214 = sext i32 %213 to i64
  %215 = add nsw i64 %212, %214
  store i64 %215, ptr %15, align 8, !tbaa !5
  %216 = load i64, ptr %15, align 8, !tbaa !5
  %217 = load i64, ptr %2, align 8, !tbaa !5
  %218 = icmp sgt i64 %216, %217
  br i1 %218, label %219, label %220

219:                                              ; preds = %208
  store i32 14, ptr %8, align 4
  br label %254

220:                                              ; preds = %208
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #6
  %221 = getelementptr inbounds %struct.Triple, ptr %16, i32 0, i32 0
  %222 = load i64, ptr %15, align 8, !tbaa !5
  store i64 %222, ptr %221, align 8, !tbaa !14
  %223 = getelementptr inbounds %struct.Triple, ptr %16, i32 0, i32 1
  %224 = load i32, ptr %13, align 4, !tbaa !9
  %225 = sext i32 %224 to i64
  store i64 %225, ptr %223, align 8, !tbaa !16
  %226 = getelementptr inbounds %struct.Triple, ptr %16, i32 0, i32 2
  %227 = load i32, ptr %14, align 4, !tbaa !9
  %228 = sext i32 %227 to i64
  store i64 %228, ptr %226, align 8, !tbaa !17
  %229 = load i32, ptr @m, align 4, !tbaa !9
  %230 = sext i32 %229 to i64
  %231 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %230
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %231, ptr align 8 %16, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #6
  %232 = load i32, ptr @m, align 4, !tbaa !9
  %233 = sext i32 %232 to i64
  %234 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %233
  %235 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %234)
          to label %236 unwind label %249

236:                                              ; preds = %220
  %237 = icmp ne i64 %235, 0
  br i1 %237, label %253, label %238

238:                                              ; preds = %236
  %239 = load i32, ptr @m, align 4, !tbaa !9
  %240 = add nsw i32 %239, 1
  store i32 %240, ptr @m, align 4, !tbaa !9
  %241 = sext i32 %239 to i64
  %242 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %241
  %243 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %242)
          to label %244 unwind label %249

244:                                              ; preds = %238
  %245 = getelementptr inbounds { ptr, i8 }, ptr %17, i32 0, i32 0
  %246 = extractvalue { ptr, i8 } %243, 0
  store ptr %246, ptr %245, align 8
  %247 = getelementptr inbounds { ptr, i8 }, ptr %17, i32 0, i32 1
  %248 = extractvalue { ptr, i8 } %243, 1
  store i8 %248, ptr %247, align 8
  br label %253

249:                                              ; preds = %238, %220
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %6, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  br label %261

253:                                              ; preds = %244, %236
  store i32 0, ptr %8, align 4
  br label %254

254:                                              ; preds = %253, %219
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #6
  %255 = load i32, ptr %8, align 4
  switch i32 %255, label %260 [
    i32 0, label %256
  ]

256:                                              ; preds = %254
  br label %257

257:                                              ; preds = %256
  %258 = load i32, ptr %14, align 4, !tbaa !9
  %259 = add nsw i32 %258, 1
  store i32 %259, ptr %14, align 4, !tbaa !9
  br label %194, !llvm.loop !20

260:                                              ; preds = %254, %203
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  br label %262

261:                                              ; preds = %249, %204
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  br label %1233

262:                                              ; preds = %260
  br label %263

263:                                              ; preds = %262
  %264 = load i32, ptr %13, align 4, !tbaa !9
  %265 = add nsw i32 %264, 1
  store i32 %265, ptr %13, align 4, !tbaa !9
  br label %189, !llvm.loop !21

266:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  store i32 0, ptr %18, align 4, !tbaa !9
  br label %267

267:                                              ; preds = %341, %266
  %268 = load i32, ptr %18, align 4, !tbaa !9
  %269 = load i32, ptr @m, align 4, !tbaa !9
  %270 = icmp slt i32 %268, %269
  br i1 %270, label %272, label %271

271:                                              ; preds = %267
  store i32 17, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  br label %344

272:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  %273 = load i32, ptr %18, align 4, !tbaa !9
  %274 = sext i32 %273 to i64
  %275 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %274
  %276 = getelementptr inbounds %struct.Triple, ptr %275, i32 0, i32 2
  %277 = load i64, ptr %276, align 8, !tbaa !17
  %278 = load i32, ptr %18, align 4, !tbaa !9
  %279 = sext i32 %278 to i64
  %280 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %279
  %281 = getelementptr inbounds %struct.Triple, ptr %280, i32 0, i32 1
  %282 = load i64, ptr %281, align 8, !tbaa !16
  %283 = trunc i64 %282 to i32
  %284 = invoke noundef i64 @_Z5irootxi(i64 noundef %277, i32 noundef %283)
          to label %285 unwind label %335

285:                                              ; preds = %272
  store i64 %284, ptr %19, align 8, !tbaa !5
  %286 = load i64, ptr %19, align 8, !tbaa !5
  %287 = load i32, ptr %18, align 4, !tbaa !9
  %288 = sext i32 %287 to i64
  %289 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %288
  %290 = getelementptr inbounds %struct.Triple, ptr %289, i32 0, i32 1
  %291 = load i64, ptr %290, align 8, !tbaa !16
  %292 = trunc i64 %291 to i32
  %293 = call noundef i64 @_Z4ipowxi(i64 noundef %286, i32 noundef %292)
  %294 = load i32, ptr %18, align 4, !tbaa !9
  %295 = sext i32 %294 to i64
  %296 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %295
  %297 = getelementptr inbounds %struct.Triple, ptr %296, i32 0, i32 2
  %298 = load i64, ptr %297, align 8, !tbaa !17
  %299 = icmp eq i64 %293, %298
  br i1 %299, label %300, label %340

300:                                              ; preds = %285
  call void @llvm.lifetime.start.p0(i64 24, ptr %20) #6
  %301 = getelementptr inbounds %struct.Triple, ptr %20, i32 0, i32 0
  %302 = load i32, ptr %18, align 4, !tbaa !9
  %303 = sext i32 %302 to i64
  %304 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %303
  %305 = getelementptr inbounds %struct.Triple, ptr %304, i32 0, i32 0
  %306 = load i64, ptr %305, align 8, !tbaa !14
  store i64 %306, ptr %301, align 8, !tbaa !14
  %307 = getelementptr inbounds %struct.Triple, ptr %20, i32 0, i32 1
  %308 = load i32, ptr %18, align 4, !tbaa !9
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %309
  %311 = getelementptr inbounds %struct.Triple, ptr %310, i32 0, i32 1
  %312 = load i64, ptr %311, align 8, !tbaa !16
  store i64 %312, ptr %307, align 8, !tbaa !16
  %313 = getelementptr inbounds %struct.Triple, ptr %20, i32 0, i32 2
  %314 = load i64, ptr %19, align 8, !tbaa !5
  store i64 %314, ptr %313, align 8, !tbaa !17
  %315 = load i32, ptr @m, align 4, !tbaa !9
  %316 = sext i32 %315 to i64
  %317 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %316
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %317, ptr align 8 %20, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %20) #6
  %318 = load i32, ptr @m, align 4, !tbaa !9
  %319 = sext i32 %318 to i64
  %320 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %319
  %321 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %320)
          to label %322 unwind label %335

322:                                              ; preds = %300
  %323 = icmp ne i64 %321, 0
  br i1 %323, label %339, label %324

324:                                              ; preds = %322
  %325 = load i32, ptr @m, align 4, !tbaa !9
  %326 = add nsw i32 %325, 1
  store i32 %326, ptr @m, align 4, !tbaa !9
  %327 = sext i32 %325 to i64
  %328 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %327
  %329 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %328)
          to label %330 unwind label %335

330:                                              ; preds = %324
  %331 = getelementptr inbounds { ptr, i8 }, ptr %21, i32 0, i32 0
  %332 = extractvalue { ptr, i8 } %329, 0
  store ptr %332, ptr %331, align 8
  %333 = getelementptr inbounds { ptr, i8 }, ptr %21, i32 0, i32 1
  %334 = extractvalue { ptr, i8 } %329, 1
  store i8 %334, ptr %333, align 8
  br label %339

335:                                              ; preds = %324, %300, %272
  %336 = landingpad { ptr, i32 }
          cleanup
  %337 = extractvalue { ptr, i32 } %336, 0
  store ptr %337, ptr %6, align 8
  %338 = extractvalue { ptr, i32 } %336, 1
  store i32 %338, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  br label %1233

339:                                              ; preds = %330, %322
  br label %340

340:                                              ; preds = %339, %285
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  br label %341

341:                                              ; preds = %340
  %342 = load i32, ptr %18, align 4, !tbaa !9
  %343 = add nsw i32 %342, 1
  store i32 %343, ptr %18, align 4, !tbaa !9
  br label %267, !llvm.loop !22

344:                                              ; preds = %271
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #6
  store i32 0, ptr %22, align 4, !tbaa !9
  br label %345

345:                                              ; preds = %1148, %344
  %346 = load i32, ptr %22, align 4, !tbaa !9
  %347 = load i32, ptr @m, align 4, !tbaa !9
  %348 = icmp slt i32 %346, %347
  br i1 %348, label %350, label %349

349:                                              ; preds = %345
  store i32 20, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  br label %1151

350:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #6
  %351 = load i32, ptr %22, align 4, !tbaa !9
  %352 = sext i32 %351 to i64
  %353 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %352
  %354 = getelementptr inbounds %struct.Triple, ptr %353, i32 0, i32 0
  %355 = load i64, ptr %354, align 8, !tbaa !14
  store i64 %355, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #6
  %356 = load i32, ptr %22, align 4, !tbaa !9
  %357 = sext i32 %356 to i64
  %358 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %357
  %359 = getelementptr inbounds %struct.Triple, ptr %358, i32 0, i32 1
  %360 = load i64, ptr %359, align 8, !tbaa !16
  store i64 %360, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #6
  %361 = load i32, ptr %22, align 4, !tbaa !9
  %362 = sext i32 %361 to i64
  %363 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %362
  %364 = getelementptr inbounds %struct.Triple, ptr %363, i32 0, i32 2
  %365 = load i64, ptr %364, align 8, !tbaa !17
  store i64 %365, ptr %25, align 8, !tbaa !5
  %366 = load i64, ptr %24, align 8, !tbaa !5
  %367 = icmp eq i64 %366, 2
  br i1 %367, label %368, label %379

368:                                              ; preds = %350
  %369 = load i64, ptr %25, align 8, !tbaa !5
  %370 = load i64, ptr %25, align 8, !tbaa !5
  %371 = add nsw i64 %370, 1
  %372 = mul nsw i64 %369, %371
  %373 = load i64, ptr %23, align 8, !tbaa !5
  %374 = icmp eq i64 %372, %373
  br i1 %374, label %375, label %378

375:                                              ; preds = %368
  %376 = load i32, ptr %3, align 4, !tbaa !9
  %377 = add nsw i32 %376, -1
  store i32 %377, ptr %3, align 4, !tbaa !9
  br label %378

378:                                              ; preds = %375, %368
  br label %1147

379:                                              ; preds = %350
  %380 = load i64, ptr %24, align 8, !tbaa !5
  %381 = icmp eq i64 %380, 4
  br i1 %381, label %382, label %440

382:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 24, ptr %26) #6
  %383 = getelementptr inbounds %struct.Triple, ptr %26, i32 0, i32 0
  %384 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %384, ptr %383, align 8, !tbaa !14
  %385 = getelementptr inbounds %struct.Triple, ptr %26, i32 0, i32 1
  store i64 2, ptr %385, align 8, !tbaa !16
  %386 = getelementptr inbounds %struct.Triple, ptr %26, i32 0, i32 2
  %387 = load i64, ptr %25, align 8, !tbaa !5
  %388 = call noundef i64 @_Z4ipowxi(i64 noundef %387, i32 noundef 2)
  store i64 %388, ptr %386, align 8, !tbaa !17
  %389 = load i32, ptr @m, align 4, !tbaa !9
  %390 = sext i32 %389 to i64
  %391 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %390
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %391, ptr align 8 %26, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %26) #6
  %392 = load i32, ptr @m, align 4, !tbaa !9
  %393 = sext i32 %392 to i64
  %394 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %393
  %395 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %394)
          to label %396 unwind label %409

396:                                              ; preds = %382
  %397 = icmp ne i64 %395, 0
  br i1 %397, label %413, label %398

398:                                              ; preds = %396
  %399 = load i32, ptr @m, align 4, !tbaa !9
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr @m, align 4, !tbaa !9
  %401 = sext i32 %399 to i64
  %402 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %401
  %403 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %402)
          to label %404 unwind label %409

404:                                              ; preds = %398
  %405 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 0
  %406 = extractvalue { ptr, i8 } %403, 0
  store ptr %406, ptr %405, align 8
  %407 = getelementptr inbounds { ptr, i8 }, ptr %27, i32 0, i32 1
  %408 = extractvalue { ptr, i8 } %403, 1
  store i8 %408, ptr %407, align 8
  br label %413

409:                                              ; preds = %1126, %1111, %1100, %1084, %1069, %1054, %1043, %1027, %1012, %997, %986, %970, %959, %943, %932, %916, %905, %889, %874, %859, %848, %832, %821, %805, %790, %775, %764, %748, %733, %718, %707, %691, %680, %665, %654, %638, %627, %611, %600, %584, %569, %554, %543, %527, %512, %497, %486, %470, %459, %443, %428, %413, %398, %382
  %410 = landingpad { ptr, i32 }
          cleanup
  %411 = extractvalue { ptr, i32 } %410, 0
  store ptr %411, ptr %6, align 8
  %412 = extractvalue { ptr, i32 } %410, 1
  store i32 %412, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  br label %1233

413:                                              ; preds = %404, %396
  call void @llvm.lifetime.start.p0(i64 24, ptr %28) #6
  %414 = getelementptr inbounds %struct.Triple, ptr %28, i32 0, i32 0
  %415 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %415, ptr %414, align 8, !tbaa !14
  %416 = getelementptr inbounds %struct.Triple, ptr %28, i32 0, i32 1
  store i64 2, ptr %416, align 8, !tbaa !16
  %417 = getelementptr inbounds %struct.Triple, ptr %28, i32 0, i32 2
  %418 = load i64, ptr %25, align 8, !tbaa !5
  store i64 %418, ptr %417, align 8, !tbaa !17
  %419 = load i32, ptr @m, align 4, !tbaa !9
  %420 = sext i32 %419 to i64
  %421 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %420
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %421, ptr align 8 %28, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %28) #6
  %422 = load i32, ptr @m, align 4, !tbaa !9
  %423 = sext i32 %422 to i64
  %424 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %423
  %425 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %424)
          to label %426 unwind label %409

426:                                              ; preds = %413
  %427 = icmp ne i64 %425, 0
  br i1 %427, label %439, label %428

428:                                              ; preds = %426
  %429 = load i32, ptr @m, align 4, !tbaa !9
  %430 = add nsw i32 %429, 1
  store i32 %430, ptr @m, align 4, !tbaa !9
  %431 = sext i32 %429 to i64
  %432 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %431
  %433 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %432)
          to label %434 unwind label %409

434:                                              ; preds = %428
  %435 = getelementptr inbounds { ptr, i8 }, ptr %29, i32 0, i32 0
  %436 = extractvalue { ptr, i8 } %433, 0
  store ptr %436, ptr %435, align 8
  %437 = getelementptr inbounds { ptr, i8 }, ptr %29, i32 0, i32 1
  %438 = extractvalue { ptr, i8 } %433, 1
  store i8 %438, ptr %437, align 8
  br label %439

439:                                              ; preds = %434, %426
  br label %1146

440:                                              ; preds = %379
  %441 = load i64, ptr %24, align 8, !tbaa !5
  %442 = icmp eq i64 %441, 8
  br i1 %442, label %443, label %524

443:                                              ; preds = %440
  call void @llvm.lifetime.start.p0(i64 24, ptr %30) #6
  %444 = getelementptr inbounds %struct.Triple, ptr %30, i32 0, i32 0
  %445 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %445, ptr %444, align 8, !tbaa !14
  %446 = getelementptr inbounds %struct.Triple, ptr %30, i32 0, i32 1
  store i64 2, ptr %446, align 8, !tbaa !16
  %447 = getelementptr inbounds %struct.Triple, ptr %30, i32 0, i32 2
  %448 = load i64, ptr %25, align 8, !tbaa !5
  %449 = call noundef i64 @_Z4ipowxi(i64 noundef %448, i32 noundef 4)
  store i64 %449, ptr %447, align 8, !tbaa !17
  %450 = load i32, ptr @m, align 4, !tbaa !9
  %451 = sext i32 %450 to i64
  %452 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %451
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %452, ptr align 8 %30, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #6
  %453 = load i32, ptr @m, align 4, !tbaa !9
  %454 = sext i32 %453 to i64
  %455 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %454
  %456 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %455)
          to label %457 unwind label %409

457:                                              ; preds = %443
  %458 = icmp ne i64 %456, 0
  br i1 %458, label %470, label %459

459:                                              ; preds = %457
  %460 = load i32, ptr @m, align 4, !tbaa !9
  %461 = add nsw i32 %460, 1
  store i32 %461, ptr @m, align 4, !tbaa !9
  %462 = sext i32 %460 to i64
  %463 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %462
  %464 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %463)
          to label %465 unwind label %409

465:                                              ; preds = %459
  %466 = getelementptr inbounds { ptr, i8 }, ptr %31, i32 0, i32 0
  %467 = extractvalue { ptr, i8 } %464, 0
  store ptr %467, ptr %466, align 8
  %468 = getelementptr inbounds { ptr, i8 }, ptr %31, i32 0, i32 1
  %469 = extractvalue { ptr, i8 } %464, 1
  store i8 %469, ptr %468, align 8
  br label %470

470:                                              ; preds = %465, %457
  call void @llvm.lifetime.start.p0(i64 24, ptr %32) #6
  %471 = getelementptr inbounds %struct.Triple, ptr %32, i32 0, i32 0
  %472 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %472, ptr %471, align 8, !tbaa !14
  %473 = getelementptr inbounds %struct.Triple, ptr %32, i32 0, i32 1
  store i64 2, ptr %473, align 8, !tbaa !16
  %474 = getelementptr inbounds %struct.Triple, ptr %32, i32 0, i32 2
  %475 = load i64, ptr %25, align 8, !tbaa !5
  %476 = call noundef i64 @_Z4ipowxi(i64 noundef %475, i32 noundef 2)
  store i64 %476, ptr %474, align 8, !tbaa !17
  %477 = load i32, ptr @m, align 4, !tbaa !9
  %478 = sext i32 %477 to i64
  %479 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %478
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %479, ptr align 8 %32, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %32) #6
  %480 = load i32, ptr @m, align 4, !tbaa !9
  %481 = sext i32 %480 to i64
  %482 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %481
  %483 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %482)
          to label %484 unwind label %409

484:                                              ; preds = %470
  %485 = icmp ne i64 %483, 0
  br i1 %485, label %497, label %486

486:                                              ; preds = %484
  %487 = load i32, ptr @m, align 4, !tbaa !9
  %488 = add nsw i32 %487, 1
  store i32 %488, ptr @m, align 4, !tbaa !9
  %489 = sext i32 %487 to i64
  %490 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %489
  %491 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %490)
          to label %492 unwind label %409

492:                                              ; preds = %486
  %493 = getelementptr inbounds { ptr, i8 }, ptr %33, i32 0, i32 0
  %494 = extractvalue { ptr, i8 } %491, 0
  store ptr %494, ptr %493, align 8
  %495 = getelementptr inbounds { ptr, i8 }, ptr %33, i32 0, i32 1
  %496 = extractvalue { ptr, i8 } %491, 1
  store i8 %496, ptr %495, align 8
  br label %497

497:                                              ; preds = %492, %484
  call void @llvm.lifetime.start.p0(i64 24, ptr %34) #6
  %498 = getelementptr inbounds %struct.Triple, ptr %34, i32 0, i32 0
  %499 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %499, ptr %498, align 8, !tbaa !14
  %500 = getelementptr inbounds %struct.Triple, ptr %34, i32 0, i32 1
  store i64 2, ptr %500, align 8, !tbaa !16
  %501 = getelementptr inbounds %struct.Triple, ptr %34, i32 0, i32 2
  %502 = load i64, ptr %25, align 8, !tbaa !5
  store i64 %502, ptr %501, align 8, !tbaa !17
  %503 = load i32, ptr @m, align 4, !tbaa !9
  %504 = sext i32 %503 to i64
  %505 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %504
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %505, ptr align 8 %34, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #6
  %506 = load i32, ptr @m, align 4, !tbaa !9
  %507 = sext i32 %506 to i64
  %508 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %507
  %509 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %508)
          to label %510 unwind label %409

510:                                              ; preds = %497
  %511 = icmp ne i64 %509, 0
  br i1 %511, label %523, label %512

512:                                              ; preds = %510
  %513 = load i32, ptr @m, align 4, !tbaa !9
  %514 = add nsw i32 %513, 1
  store i32 %514, ptr @m, align 4, !tbaa !9
  %515 = sext i32 %513 to i64
  %516 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %515
  %517 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %516)
          to label %518 unwind label %409

518:                                              ; preds = %512
  %519 = getelementptr inbounds { ptr, i8 }, ptr %35, i32 0, i32 0
  %520 = extractvalue { ptr, i8 } %517, 0
  store ptr %520, ptr %519, align 8
  %521 = getelementptr inbounds { ptr, i8 }, ptr %35, i32 0, i32 1
  %522 = extractvalue { ptr, i8 } %517, 1
  store i8 %522, ptr %521, align 8
  br label %523

523:                                              ; preds = %518, %510
  br label %1145

524:                                              ; preds = %440
  %525 = load i64, ptr %24, align 8, !tbaa !5
  %526 = icmp eq i64 %525, 9
  br i1 %526, label %527, label %581

527:                                              ; preds = %524
  call void @llvm.lifetime.start.p0(i64 24, ptr %36) #6
  %528 = getelementptr inbounds %struct.Triple, ptr %36, i32 0, i32 0
  %529 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %529, ptr %528, align 8, !tbaa !14
  %530 = getelementptr inbounds %struct.Triple, ptr %36, i32 0, i32 1
  store i64 3, ptr %530, align 8, !tbaa !16
  %531 = getelementptr inbounds %struct.Triple, ptr %36, i32 0, i32 2
  %532 = load i64, ptr %25, align 8, !tbaa !5
  %533 = call noundef i64 @_Z4ipowxi(i64 noundef %532, i32 noundef 3)
  store i64 %533, ptr %531, align 8, !tbaa !17
  %534 = load i32, ptr @m, align 4, !tbaa !9
  %535 = sext i32 %534 to i64
  %536 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %535
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %536, ptr align 8 %36, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %36) #6
  %537 = load i32, ptr @m, align 4, !tbaa !9
  %538 = sext i32 %537 to i64
  %539 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %538
  %540 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %539)
          to label %541 unwind label %409

541:                                              ; preds = %527
  %542 = icmp ne i64 %540, 0
  br i1 %542, label %554, label %543

543:                                              ; preds = %541
  %544 = load i32, ptr @m, align 4, !tbaa !9
  %545 = add nsw i32 %544, 1
  store i32 %545, ptr @m, align 4, !tbaa !9
  %546 = sext i32 %544 to i64
  %547 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %546
  %548 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %547)
          to label %549 unwind label %409

549:                                              ; preds = %543
  %550 = getelementptr inbounds { ptr, i8 }, ptr %37, i32 0, i32 0
  %551 = extractvalue { ptr, i8 } %548, 0
  store ptr %551, ptr %550, align 8
  %552 = getelementptr inbounds { ptr, i8 }, ptr %37, i32 0, i32 1
  %553 = extractvalue { ptr, i8 } %548, 1
  store i8 %553, ptr %552, align 8
  br label %554

554:                                              ; preds = %549, %541
  call void @llvm.lifetime.start.p0(i64 24, ptr %38) #6
  %555 = getelementptr inbounds %struct.Triple, ptr %38, i32 0, i32 0
  %556 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %556, ptr %555, align 8, !tbaa !14
  %557 = getelementptr inbounds %struct.Triple, ptr %38, i32 0, i32 1
  store i64 3, ptr %557, align 8, !tbaa !16
  %558 = getelementptr inbounds %struct.Triple, ptr %38, i32 0, i32 2
  %559 = load i64, ptr %25, align 8, !tbaa !5
  store i64 %559, ptr %558, align 8, !tbaa !17
  %560 = load i32, ptr @m, align 4, !tbaa !9
  %561 = sext i32 %560 to i64
  %562 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %561
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %562, ptr align 8 %38, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #6
  %563 = load i32, ptr @m, align 4, !tbaa !9
  %564 = sext i32 %563 to i64
  %565 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %564
  %566 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %565)
          to label %567 unwind label %409

567:                                              ; preds = %554
  %568 = icmp ne i64 %566, 0
  br i1 %568, label %580, label %569

569:                                              ; preds = %567
  %570 = load i32, ptr @m, align 4, !tbaa !9
  %571 = add nsw i32 %570, 1
  store i32 %571, ptr @m, align 4, !tbaa !9
  %572 = sext i32 %570 to i64
  %573 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %572
  %574 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %573)
          to label %575 unwind label %409

575:                                              ; preds = %569
  %576 = getelementptr inbounds { ptr, i8 }, ptr %39, i32 0, i32 0
  %577 = extractvalue { ptr, i8 } %574, 0
  store ptr %577, ptr %576, align 8
  %578 = getelementptr inbounds { ptr, i8 }, ptr %39, i32 0, i32 1
  %579 = extractvalue { ptr, i8 } %574, 1
  store i8 %579, ptr %578, align 8
  br label %580

580:                                              ; preds = %575, %567
  br label %1144

581:                                              ; preds = %524
  %582 = load i64, ptr %24, align 8, !tbaa !5
  %583 = icmp eq i64 %582, 16
  br i1 %583, label %584, label %745

584:                                              ; preds = %581
  call void @llvm.lifetime.start.p0(i64 24, ptr %40) #6
  %585 = getelementptr inbounds %struct.Triple, ptr %40, i32 0, i32 0
  %586 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %586, ptr %585, align 8, !tbaa !14
  %587 = getelementptr inbounds %struct.Triple, ptr %40, i32 0, i32 1
  store i64 2, ptr %587, align 8, !tbaa !16
  %588 = getelementptr inbounds %struct.Triple, ptr %40, i32 0, i32 2
  %589 = load i64, ptr %25, align 8, !tbaa !5
  %590 = call noundef i64 @_Z4ipowxi(i64 noundef %589, i32 noundef 8)
  store i64 %590, ptr %588, align 8, !tbaa !17
  %591 = load i32, ptr @m, align 4, !tbaa !9
  %592 = sext i32 %591 to i64
  %593 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %592
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %593, ptr align 8 %40, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #6
  %594 = load i32, ptr @m, align 4, !tbaa !9
  %595 = sext i32 %594 to i64
  %596 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %595
  %597 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %596)
          to label %598 unwind label %409

598:                                              ; preds = %584
  %599 = icmp ne i64 %597, 0
  br i1 %599, label %611, label %600

600:                                              ; preds = %598
  %601 = load i32, ptr @m, align 4, !tbaa !9
  %602 = add nsw i32 %601, 1
  store i32 %602, ptr @m, align 4, !tbaa !9
  %603 = sext i32 %601 to i64
  %604 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %603
  %605 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %604)
          to label %606 unwind label %409

606:                                              ; preds = %600
  %607 = getelementptr inbounds { ptr, i8 }, ptr %41, i32 0, i32 0
  %608 = extractvalue { ptr, i8 } %605, 0
  store ptr %608, ptr %607, align 8
  %609 = getelementptr inbounds { ptr, i8 }, ptr %41, i32 0, i32 1
  %610 = extractvalue { ptr, i8 } %605, 1
  store i8 %610, ptr %609, align 8
  br label %611

611:                                              ; preds = %606, %598
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #6
  %612 = getelementptr inbounds %struct.Triple, ptr %42, i32 0, i32 0
  %613 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %613, ptr %612, align 8, !tbaa !14
  %614 = getelementptr inbounds %struct.Triple, ptr %42, i32 0, i32 1
  store i64 2, ptr %614, align 8, !tbaa !16
  %615 = getelementptr inbounds %struct.Triple, ptr %42, i32 0, i32 2
  %616 = load i64, ptr %25, align 8, !tbaa !5
  %617 = call noundef i64 @_Z4ipowxi(i64 noundef %616, i32 noundef 4)
  store i64 %617, ptr %615, align 8, !tbaa !17
  %618 = load i32, ptr @m, align 4, !tbaa !9
  %619 = sext i32 %618 to i64
  %620 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %619
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %620, ptr align 8 %42, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #6
  %621 = load i32, ptr @m, align 4, !tbaa !9
  %622 = sext i32 %621 to i64
  %623 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %622
  %624 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %623)
          to label %625 unwind label %409

625:                                              ; preds = %611
  %626 = icmp ne i64 %624, 0
  br i1 %626, label %638, label %627

627:                                              ; preds = %625
  %628 = load i32, ptr @m, align 4, !tbaa !9
  %629 = add nsw i32 %628, 1
  store i32 %629, ptr @m, align 4, !tbaa !9
  %630 = sext i32 %628 to i64
  %631 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %630
  %632 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %631)
          to label %633 unwind label %409

633:                                              ; preds = %627
  %634 = getelementptr inbounds { ptr, i8 }, ptr %43, i32 0, i32 0
  %635 = extractvalue { ptr, i8 } %632, 0
  store ptr %635, ptr %634, align 8
  %636 = getelementptr inbounds { ptr, i8 }, ptr %43, i32 0, i32 1
  %637 = extractvalue { ptr, i8 } %632, 1
  store i8 %637, ptr %636, align 8
  br label %638

638:                                              ; preds = %633, %625
  call void @llvm.lifetime.start.p0(i64 24, ptr %44) #6
  %639 = getelementptr inbounds %struct.Triple, ptr %44, i32 0, i32 0
  %640 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %640, ptr %639, align 8, !tbaa !14
  %641 = getelementptr inbounds %struct.Triple, ptr %44, i32 0, i32 1
  store i64 2, ptr %641, align 8, !tbaa !16
  %642 = getelementptr inbounds %struct.Triple, ptr %44, i32 0, i32 2
  %643 = load i64, ptr %25, align 8, !tbaa !5
  %644 = call noundef i64 @_Z4ipowxi(i64 noundef %643, i32 noundef 2)
  store i64 %644, ptr %642, align 8, !tbaa !17
  %645 = load i32, ptr @m, align 4, !tbaa !9
  %646 = sext i32 %645 to i64
  %647 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %646
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %647, ptr align 8 %44, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %44) #6
  %648 = load i32, ptr @m, align 4, !tbaa !9
  %649 = sext i32 %648 to i64
  %650 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %649
  %651 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %650)
          to label %652 unwind label %409

652:                                              ; preds = %638
  %653 = icmp ne i64 %651, 0
  br i1 %653, label %665, label %654

654:                                              ; preds = %652
  %655 = load i32, ptr @m, align 4, !tbaa !9
  %656 = add nsw i32 %655, 1
  store i32 %656, ptr @m, align 4, !tbaa !9
  %657 = sext i32 %655 to i64
  %658 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %657
  %659 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %658)
          to label %660 unwind label %409

660:                                              ; preds = %654
  %661 = getelementptr inbounds { ptr, i8 }, ptr %45, i32 0, i32 0
  %662 = extractvalue { ptr, i8 } %659, 0
  store ptr %662, ptr %661, align 8
  %663 = getelementptr inbounds { ptr, i8 }, ptr %45, i32 0, i32 1
  %664 = extractvalue { ptr, i8 } %659, 1
  store i8 %664, ptr %663, align 8
  br label %665

665:                                              ; preds = %660, %652
  call void @llvm.lifetime.start.p0(i64 24, ptr %46) #6
  %666 = getelementptr inbounds %struct.Triple, ptr %46, i32 0, i32 0
  %667 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %667, ptr %666, align 8, !tbaa !14
  %668 = getelementptr inbounds %struct.Triple, ptr %46, i32 0, i32 1
  store i64 2, ptr %668, align 8, !tbaa !16
  %669 = getelementptr inbounds %struct.Triple, ptr %46, i32 0, i32 2
  %670 = load i64, ptr %25, align 8, !tbaa !5
  store i64 %670, ptr %669, align 8, !tbaa !17
  %671 = load i32, ptr @m, align 4, !tbaa !9
  %672 = sext i32 %671 to i64
  %673 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %672
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %673, ptr align 8 %46, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #6
  %674 = load i32, ptr @m, align 4, !tbaa !9
  %675 = sext i32 %674 to i64
  %676 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %675
  %677 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %676)
          to label %678 unwind label %409

678:                                              ; preds = %665
  %679 = icmp ne i64 %677, 0
  br i1 %679, label %691, label %680

680:                                              ; preds = %678
  %681 = load i32, ptr @m, align 4, !tbaa !9
  %682 = add nsw i32 %681, 1
  store i32 %682, ptr @m, align 4, !tbaa !9
  %683 = sext i32 %681 to i64
  %684 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %683
  %685 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %684)
          to label %686 unwind label %409

686:                                              ; preds = %680
  %687 = getelementptr inbounds { ptr, i8 }, ptr %47, i32 0, i32 0
  %688 = extractvalue { ptr, i8 } %685, 0
  store ptr %688, ptr %687, align 8
  %689 = getelementptr inbounds { ptr, i8 }, ptr %47, i32 0, i32 1
  %690 = extractvalue { ptr, i8 } %685, 1
  store i8 %690, ptr %689, align 8
  br label %691

691:                                              ; preds = %686, %678
  call void @llvm.lifetime.start.p0(i64 24, ptr %48) #6
  %692 = getelementptr inbounds %struct.Triple, ptr %48, i32 0, i32 0
  %693 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %693, ptr %692, align 8, !tbaa !14
  %694 = getelementptr inbounds %struct.Triple, ptr %48, i32 0, i32 1
  store i64 4, ptr %694, align 8, !tbaa !16
  %695 = getelementptr inbounds %struct.Triple, ptr %48, i32 0, i32 2
  %696 = load i64, ptr %25, align 8, !tbaa !5
  %697 = call noundef i64 @_Z4ipowxi(i64 noundef %696, i32 noundef 4)
  store i64 %697, ptr %695, align 8, !tbaa !17
  %698 = load i32, ptr @m, align 4, !tbaa !9
  %699 = sext i32 %698 to i64
  %700 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %699
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %700, ptr align 8 %48, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %48) #6
  %701 = load i32, ptr @m, align 4, !tbaa !9
  %702 = sext i32 %701 to i64
  %703 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %702
  %704 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %703)
          to label %705 unwind label %409

705:                                              ; preds = %691
  %706 = icmp ne i64 %704, 0
  br i1 %706, label %718, label %707

707:                                              ; preds = %705
  %708 = load i32, ptr @m, align 4, !tbaa !9
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr @m, align 4, !tbaa !9
  %710 = sext i32 %708 to i64
  %711 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %710
  %712 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %711)
          to label %713 unwind label %409

713:                                              ; preds = %707
  %714 = getelementptr inbounds { ptr, i8 }, ptr %49, i32 0, i32 0
  %715 = extractvalue { ptr, i8 } %712, 0
  store ptr %715, ptr %714, align 8
  %716 = getelementptr inbounds { ptr, i8 }, ptr %49, i32 0, i32 1
  %717 = extractvalue { ptr, i8 } %712, 1
  store i8 %717, ptr %716, align 8
  br label %718

718:                                              ; preds = %713, %705
  call void @llvm.lifetime.start.p0(i64 24, ptr %50) #6
  %719 = getelementptr inbounds %struct.Triple, ptr %50, i32 0, i32 0
  %720 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %720, ptr %719, align 8, !tbaa !14
  %721 = getelementptr inbounds %struct.Triple, ptr %50, i32 0, i32 1
  store i64 4, ptr %721, align 8, !tbaa !16
  %722 = getelementptr inbounds %struct.Triple, ptr %50, i32 0, i32 2
  %723 = load i64, ptr %25, align 8, !tbaa !5
  store i64 %723, ptr %722, align 8, !tbaa !17
  %724 = load i32, ptr @m, align 4, !tbaa !9
  %725 = sext i32 %724 to i64
  %726 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %725
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %726, ptr align 8 %50, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %50) #6
  %727 = load i32, ptr @m, align 4, !tbaa !9
  %728 = sext i32 %727 to i64
  %729 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %728
  %730 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %729)
          to label %731 unwind label %409

731:                                              ; preds = %718
  %732 = icmp ne i64 %730, 0
  br i1 %732, label %744, label %733

733:                                              ; preds = %731
  %734 = load i32, ptr @m, align 4, !tbaa !9
  %735 = add nsw i32 %734, 1
  store i32 %735, ptr @m, align 4, !tbaa !9
  %736 = sext i32 %734 to i64
  %737 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %736
  %738 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %737)
          to label %739 unwind label %409

739:                                              ; preds = %733
  %740 = getelementptr inbounds { ptr, i8 }, ptr %51, i32 0, i32 0
  %741 = extractvalue { ptr, i8 } %738, 0
  store ptr %741, ptr %740, align 8
  %742 = getelementptr inbounds { ptr, i8 }, ptr %51, i32 0, i32 1
  %743 = extractvalue { ptr, i8 } %738, 1
  store i8 %743, ptr %742, align 8
  br label %744

744:                                              ; preds = %739, %731
  br label %1143

745:                                              ; preds = %581
  %746 = load i64, ptr %24, align 8, !tbaa !5
  %747 = icmp eq i64 %746, 25
  br i1 %747, label %748, label %802

748:                                              ; preds = %745
  call void @llvm.lifetime.start.p0(i64 24, ptr %52) #6
  %749 = getelementptr inbounds %struct.Triple, ptr %52, i32 0, i32 0
  %750 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %750, ptr %749, align 8, !tbaa !14
  %751 = getelementptr inbounds %struct.Triple, ptr %52, i32 0, i32 1
  store i64 5, ptr %751, align 8, !tbaa !16
  %752 = getelementptr inbounds %struct.Triple, ptr %52, i32 0, i32 2
  %753 = load i64, ptr %25, align 8, !tbaa !5
  %754 = call noundef i64 @_Z4ipowxi(i64 noundef %753, i32 noundef 5)
  store i64 %754, ptr %752, align 8, !tbaa !17
  %755 = load i32, ptr @m, align 4, !tbaa !9
  %756 = sext i32 %755 to i64
  %757 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %756
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %757, ptr align 8 %52, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %52) #6
  %758 = load i32, ptr @m, align 4, !tbaa !9
  %759 = sext i32 %758 to i64
  %760 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %759
  %761 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %760)
          to label %762 unwind label %409

762:                                              ; preds = %748
  %763 = icmp ne i64 %761, 0
  br i1 %763, label %775, label %764

764:                                              ; preds = %762
  %765 = load i32, ptr @m, align 4, !tbaa !9
  %766 = add nsw i32 %765, 1
  store i32 %766, ptr @m, align 4, !tbaa !9
  %767 = sext i32 %765 to i64
  %768 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %767
  %769 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %768)
          to label %770 unwind label %409

770:                                              ; preds = %764
  %771 = getelementptr inbounds { ptr, i8 }, ptr %53, i32 0, i32 0
  %772 = extractvalue { ptr, i8 } %769, 0
  store ptr %772, ptr %771, align 8
  %773 = getelementptr inbounds { ptr, i8 }, ptr %53, i32 0, i32 1
  %774 = extractvalue { ptr, i8 } %769, 1
  store i8 %774, ptr %773, align 8
  br label %775

775:                                              ; preds = %770, %762
  call void @llvm.lifetime.start.p0(i64 24, ptr %54) #6
  %776 = getelementptr inbounds %struct.Triple, ptr %54, i32 0, i32 0
  %777 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %777, ptr %776, align 8, !tbaa !14
  %778 = getelementptr inbounds %struct.Triple, ptr %54, i32 0, i32 1
  store i64 5, ptr %778, align 8, !tbaa !16
  %779 = getelementptr inbounds %struct.Triple, ptr %54, i32 0, i32 2
  %780 = load i64, ptr %25, align 8, !tbaa !5
  store i64 %780, ptr %779, align 8, !tbaa !17
  %781 = load i32, ptr @m, align 4, !tbaa !9
  %782 = sext i32 %781 to i64
  %783 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %782
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %783, ptr align 8 %54, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %54) #6
  %784 = load i32, ptr @m, align 4, !tbaa !9
  %785 = sext i32 %784 to i64
  %786 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %785
  %787 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %786)
          to label %788 unwind label %409

788:                                              ; preds = %775
  %789 = icmp ne i64 %787, 0
  br i1 %789, label %801, label %790

790:                                              ; preds = %788
  %791 = load i32, ptr @m, align 4, !tbaa !9
  %792 = add nsw i32 %791, 1
  store i32 %792, ptr @m, align 4, !tbaa !9
  %793 = sext i32 %791 to i64
  %794 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %793
  %795 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %794)
          to label %796 unwind label %409

796:                                              ; preds = %790
  %797 = getelementptr inbounds { ptr, i8 }, ptr %55, i32 0, i32 0
  %798 = extractvalue { ptr, i8 } %795, 0
  store ptr %798, ptr %797, align 8
  %799 = getelementptr inbounds { ptr, i8 }, ptr %55, i32 0, i32 1
  %800 = extractvalue { ptr, i8 } %795, 1
  store i8 %800, ptr %799, align 8
  br label %801

801:                                              ; preds = %796, %788
  br label %1142

802:                                              ; preds = %745
  %803 = load i64, ptr %24, align 8, !tbaa !5
  %804 = icmp eq i64 %803, 27
  br i1 %804, label %805, label %886

805:                                              ; preds = %802
  call void @llvm.lifetime.start.p0(i64 24, ptr %56) #6
  %806 = getelementptr inbounds %struct.Triple, ptr %56, i32 0, i32 0
  %807 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %807, ptr %806, align 8, !tbaa !14
  %808 = getelementptr inbounds %struct.Triple, ptr %56, i32 0, i32 1
  store i64 3, ptr %808, align 8, !tbaa !16
  %809 = getelementptr inbounds %struct.Triple, ptr %56, i32 0, i32 2
  %810 = load i64, ptr %25, align 8, !tbaa !5
  %811 = call noundef i64 @_Z4ipowxi(i64 noundef %810, i32 noundef 9)
  store i64 %811, ptr %809, align 8, !tbaa !17
  %812 = load i32, ptr @m, align 4, !tbaa !9
  %813 = sext i32 %812 to i64
  %814 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %813
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %814, ptr align 8 %56, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %56) #6
  %815 = load i32, ptr @m, align 4, !tbaa !9
  %816 = sext i32 %815 to i64
  %817 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %816
  %818 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %817)
          to label %819 unwind label %409

819:                                              ; preds = %805
  %820 = icmp ne i64 %818, 0
  br i1 %820, label %832, label %821

821:                                              ; preds = %819
  %822 = load i32, ptr @m, align 4, !tbaa !9
  %823 = add nsw i32 %822, 1
  store i32 %823, ptr @m, align 4, !tbaa !9
  %824 = sext i32 %822 to i64
  %825 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %824
  %826 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %825)
          to label %827 unwind label %409

827:                                              ; preds = %821
  %828 = getelementptr inbounds { ptr, i8 }, ptr %57, i32 0, i32 0
  %829 = extractvalue { ptr, i8 } %826, 0
  store ptr %829, ptr %828, align 8
  %830 = getelementptr inbounds { ptr, i8 }, ptr %57, i32 0, i32 1
  %831 = extractvalue { ptr, i8 } %826, 1
  store i8 %831, ptr %830, align 8
  br label %832

832:                                              ; preds = %827, %819
  call void @llvm.lifetime.start.p0(i64 24, ptr %58) #6
  %833 = getelementptr inbounds %struct.Triple, ptr %58, i32 0, i32 0
  %834 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %834, ptr %833, align 8, !tbaa !14
  %835 = getelementptr inbounds %struct.Triple, ptr %58, i32 0, i32 1
  store i64 3, ptr %835, align 8, !tbaa !16
  %836 = getelementptr inbounds %struct.Triple, ptr %58, i32 0, i32 2
  %837 = load i64, ptr %25, align 8, !tbaa !5
  %838 = call noundef i64 @_Z4ipowxi(i64 noundef %837, i32 noundef 3)
  store i64 %838, ptr %836, align 8, !tbaa !17
  %839 = load i32, ptr @m, align 4, !tbaa !9
  %840 = sext i32 %839 to i64
  %841 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %840
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %841, ptr align 8 %58, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %58) #6
  %842 = load i32, ptr @m, align 4, !tbaa !9
  %843 = sext i32 %842 to i64
  %844 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %843
  %845 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %844)
          to label %846 unwind label %409

846:                                              ; preds = %832
  %847 = icmp ne i64 %845, 0
  br i1 %847, label %859, label %848

848:                                              ; preds = %846
  %849 = load i32, ptr @m, align 4, !tbaa !9
  %850 = add nsw i32 %849, 1
  store i32 %850, ptr @m, align 4, !tbaa !9
  %851 = sext i32 %849 to i64
  %852 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %851
  %853 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %852)
          to label %854 unwind label %409

854:                                              ; preds = %848
  %855 = getelementptr inbounds { ptr, i8 }, ptr %59, i32 0, i32 0
  %856 = extractvalue { ptr, i8 } %853, 0
  store ptr %856, ptr %855, align 8
  %857 = getelementptr inbounds { ptr, i8 }, ptr %59, i32 0, i32 1
  %858 = extractvalue { ptr, i8 } %853, 1
  store i8 %858, ptr %857, align 8
  br label %859

859:                                              ; preds = %854, %846
  call void @llvm.lifetime.start.p0(i64 24, ptr %60) #6
  %860 = getelementptr inbounds %struct.Triple, ptr %60, i32 0, i32 0
  %861 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %861, ptr %860, align 8, !tbaa !14
  %862 = getelementptr inbounds %struct.Triple, ptr %60, i32 0, i32 1
  store i64 3, ptr %862, align 8, !tbaa !16
  %863 = getelementptr inbounds %struct.Triple, ptr %60, i32 0, i32 2
  %864 = load i64, ptr %25, align 8, !tbaa !5
  store i64 %864, ptr %863, align 8, !tbaa !17
  %865 = load i32, ptr @m, align 4, !tbaa !9
  %866 = sext i32 %865 to i64
  %867 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %866
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %867, ptr align 8 %60, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %60) #6
  %868 = load i32, ptr @m, align 4, !tbaa !9
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %869
  %871 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %870)
          to label %872 unwind label %409

872:                                              ; preds = %859
  %873 = icmp ne i64 %871, 0
  br i1 %873, label %885, label %874

874:                                              ; preds = %872
  %875 = load i32, ptr @m, align 4, !tbaa !9
  %876 = add nsw i32 %875, 1
  store i32 %876, ptr @m, align 4, !tbaa !9
  %877 = sext i32 %875 to i64
  %878 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %877
  %879 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %878)
          to label %880 unwind label %409

880:                                              ; preds = %874
  %881 = getelementptr inbounds { ptr, i8 }, ptr %61, i32 0, i32 0
  %882 = extractvalue { ptr, i8 } %879, 0
  store ptr %882, ptr %881, align 8
  %883 = getelementptr inbounds { ptr, i8 }, ptr %61, i32 0, i32 1
  %884 = extractvalue { ptr, i8 } %879, 1
  store i8 %884, ptr %883, align 8
  br label %885

885:                                              ; preds = %880, %872
  br label %1141

886:                                              ; preds = %802
  %887 = load i64, ptr %24, align 8, !tbaa !5
  %888 = icmp eq i64 %887, 32
  br i1 %888, label %889, label %1024

889:                                              ; preds = %886
  call void @llvm.lifetime.start.p0(i64 24, ptr %62) #6
  %890 = getelementptr inbounds %struct.Triple, ptr %62, i32 0, i32 0
  %891 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %891, ptr %890, align 8, !tbaa !14
  %892 = getelementptr inbounds %struct.Triple, ptr %62, i32 0, i32 1
  store i64 2, ptr %892, align 8, !tbaa !16
  %893 = getelementptr inbounds %struct.Triple, ptr %62, i32 0, i32 2
  %894 = load i64, ptr %25, align 8, !tbaa !5
  %895 = call noundef i64 @_Z4ipowxi(i64 noundef %894, i32 noundef 16)
  store i64 %895, ptr %893, align 8, !tbaa !17
  %896 = load i32, ptr @m, align 4, !tbaa !9
  %897 = sext i32 %896 to i64
  %898 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %897
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %898, ptr align 8 %62, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %62) #6
  %899 = load i32, ptr @m, align 4, !tbaa !9
  %900 = sext i32 %899 to i64
  %901 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %900
  %902 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %901)
          to label %903 unwind label %409

903:                                              ; preds = %889
  %904 = icmp ne i64 %902, 0
  br i1 %904, label %916, label %905

905:                                              ; preds = %903
  %906 = load i32, ptr @m, align 4, !tbaa !9
  %907 = add nsw i32 %906, 1
  store i32 %907, ptr @m, align 4, !tbaa !9
  %908 = sext i32 %906 to i64
  %909 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %908
  %910 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %909)
          to label %911 unwind label %409

911:                                              ; preds = %905
  %912 = getelementptr inbounds { ptr, i8 }, ptr %63, i32 0, i32 0
  %913 = extractvalue { ptr, i8 } %910, 0
  store ptr %913, ptr %912, align 8
  %914 = getelementptr inbounds { ptr, i8 }, ptr %63, i32 0, i32 1
  %915 = extractvalue { ptr, i8 } %910, 1
  store i8 %915, ptr %914, align 8
  br label %916

916:                                              ; preds = %911, %903
  call void @llvm.lifetime.start.p0(i64 24, ptr %64) #6
  %917 = getelementptr inbounds %struct.Triple, ptr %64, i32 0, i32 0
  %918 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %918, ptr %917, align 8, !tbaa !14
  %919 = getelementptr inbounds %struct.Triple, ptr %64, i32 0, i32 1
  store i64 2, ptr %919, align 8, !tbaa !16
  %920 = getelementptr inbounds %struct.Triple, ptr %64, i32 0, i32 2
  %921 = load i64, ptr %25, align 8, !tbaa !5
  %922 = call noundef i64 @_Z4ipowxi(i64 noundef %921, i32 noundef 8)
  store i64 %922, ptr %920, align 8, !tbaa !17
  %923 = load i32, ptr @m, align 4, !tbaa !9
  %924 = sext i32 %923 to i64
  %925 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %924
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %925, ptr align 8 %64, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %64) #6
  %926 = load i32, ptr @m, align 4, !tbaa !9
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %927
  %929 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %928)
          to label %930 unwind label %409

930:                                              ; preds = %916
  %931 = icmp ne i64 %929, 0
  br i1 %931, label %943, label %932

932:                                              ; preds = %930
  %933 = load i32, ptr @m, align 4, !tbaa !9
  %934 = add nsw i32 %933, 1
  store i32 %934, ptr @m, align 4, !tbaa !9
  %935 = sext i32 %933 to i64
  %936 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %935
  %937 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %936)
          to label %938 unwind label %409

938:                                              ; preds = %932
  %939 = getelementptr inbounds { ptr, i8 }, ptr %65, i32 0, i32 0
  %940 = extractvalue { ptr, i8 } %937, 0
  store ptr %940, ptr %939, align 8
  %941 = getelementptr inbounds { ptr, i8 }, ptr %65, i32 0, i32 1
  %942 = extractvalue { ptr, i8 } %937, 1
  store i8 %942, ptr %941, align 8
  br label %943

943:                                              ; preds = %938, %930
  call void @llvm.lifetime.start.p0(i64 24, ptr %66) #6
  %944 = getelementptr inbounds %struct.Triple, ptr %66, i32 0, i32 0
  %945 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %945, ptr %944, align 8, !tbaa !14
  %946 = getelementptr inbounds %struct.Triple, ptr %66, i32 0, i32 1
  store i64 2, ptr %946, align 8, !tbaa !16
  %947 = getelementptr inbounds %struct.Triple, ptr %66, i32 0, i32 2
  %948 = load i64, ptr %25, align 8, !tbaa !5
  %949 = call noundef i64 @_Z4ipowxi(i64 noundef %948, i32 noundef 4)
  store i64 %949, ptr %947, align 8, !tbaa !17
  %950 = load i32, ptr @m, align 4, !tbaa !9
  %951 = sext i32 %950 to i64
  %952 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %951
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %952, ptr align 8 %66, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %66) #6
  %953 = load i32, ptr @m, align 4, !tbaa !9
  %954 = sext i32 %953 to i64
  %955 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %954
  %956 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %955)
          to label %957 unwind label %409

957:                                              ; preds = %943
  %958 = icmp ne i64 %956, 0
  br i1 %958, label %970, label %959

959:                                              ; preds = %957
  %960 = load i32, ptr @m, align 4, !tbaa !9
  %961 = add nsw i32 %960, 1
  store i32 %961, ptr @m, align 4, !tbaa !9
  %962 = sext i32 %960 to i64
  %963 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %962
  %964 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %963)
          to label %965 unwind label %409

965:                                              ; preds = %959
  %966 = getelementptr inbounds { ptr, i8 }, ptr %67, i32 0, i32 0
  %967 = extractvalue { ptr, i8 } %964, 0
  store ptr %967, ptr %966, align 8
  %968 = getelementptr inbounds { ptr, i8 }, ptr %67, i32 0, i32 1
  %969 = extractvalue { ptr, i8 } %964, 1
  store i8 %969, ptr %968, align 8
  br label %970

970:                                              ; preds = %965, %957
  call void @llvm.lifetime.start.p0(i64 24, ptr %68) #6
  %971 = getelementptr inbounds %struct.Triple, ptr %68, i32 0, i32 0
  %972 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %972, ptr %971, align 8, !tbaa !14
  %973 = getelementptr inbounds %struct.Triple, ptr %68, i32 0, i32 1
  store i64 2, ptr %973, align 8, !tbaa !16
  %974 = getelementptr inbounds %struct.Triple, ptr %68, i32 0, i32 2
  %975 = load i64, ptr %25, align 8, !tbaa !5
  %976 = call noundef i64 @_Z4ipowxi(i64 noundef %975, i32 noundef 2)
  store i64 %976, ptr %974, align 8, !tbaa !17
  %977 = load i32, ptr @m, align 4, !tbaa !9
  %978 = sext i32 %977 to i64
  %979 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %978
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %979, ptr align 8 %68, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %68) #6
  %980 = load i32, ptr @m, align 4, !tbaa !9
  %981 = sext i32 %980 to i64
  %982 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %981
  %983 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %982)
          to label %984 unwind label %409

984:                                              ; preds = %970
  %985 = icmp ne i64 %983, 0
  br i1 %985, label %997, label %986

986:                                              ; preds = %984
  %987 = load i32, ptr @m, align 4, !tbaa !9
  %988 = add nsw i32 %987, 1
  store i32 %988, ptr @m, align 4, !tbaa !9
  %989 = sext i32 %987 to i64
  %990 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %989
  %991 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %990)
          to label %992 unwind label %409

992:                                              ; preds = %986
  %993 = getelementptr inbounds { ptr, i8 }, ptr %69, i32 0, i32 0
  %994 = extractvalue { ptr, i8 } %991, 0
  store ptr %994, ptr %993, align 8
  %995 = getelementptr inbounds { ptr, i8 }, ptr %69, i32 0, i32 1
  %996 = extractvalue { ptr, i8 } %991, 1
  store i8 %996, ptr %995, align 8
  br label %997

997:                                              ; preds = %992, %984
  call void @llvm.lifetime.start.p0(i64 24, ptr %70) #6
  %998 = getelementptr inbounds %struct.Triple, ptr %70, i32 0, i32 0
  %999 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %999, ptr %998, align 8, !tbaa !14
  %1000 = getelementptr inbounds %struct.Triple, ptr %70, i32 0, i32 1
  store i64 2, ptr %1000, align 8, !tbaa !16
  %1001 = getelementptr inbounds %struct.Triple, ptr %70, i32 0, i32 2
  %1002 = load i64, ptr %25, align 8, !tbaa !5
  store i64 %1002, ptr %1001, align 8, !tbaa !17
  %1003 = load i32, ptr @m, align 4, !tbaa !9
  %1004 = sext i32 %1003 to i64
  %1005 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1004
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1005, ptr align 8 %70, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %70) #6
  %1006 = load i32, ptr @m, align 4, !tbaa !9
  %1007 = sext i32 %1006 to i64
  %1008 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1007
  %1009 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %1008)
          to label %1010 unwind label %409

1010:                                             ; preds = %997
  %1011 = icmp ne i64 %1009, 0
  br i1 %1011, label %1023, label %1012

1012:                                             ; preds = %1010
  %1013 = load i32, ptr @m, align 4, !tbaa !9
  %1014 = add nsw i32 %1013, 1
  store i32 %1014, ptr @m, align 4, !tbaa !9
  %1015 = sext i32 %1013 to i64
  %1016 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1015
  %1017 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %1016)
          to label %1018 unwind label %409

1018:                                             ; preds = %1012
  %1019 = getelementptr inbounds { ptr, i8 }, ptr %71, i32 0, i32 0
  %1020 = extractvalue { ptr, i8 } %1017, 0
  store ptr %1020, ptr %1019, align 8
  %1021 = getelementptr inbounds { ptr, i8 }, ptr %71, i32 0, i32 1
  %1022 = extractvalue { ptr, i8 } %1017, 1
  store i8 %1022, ptr %1021, align 8
  br label %1023

1023:                                             ; preds = %1018, %1010
  br label %1140

1024:                                             ; preds = %886
  %1025 = load i64, ptr %24, align 8, !tbaa !5
  %1026 = icmp eq i64 %1025, 36
  br i1 %1026, label %1027, label %1081

1027:                                             ; preds = %1024
  call void @llvm.lifetime.start.p0(i64 24, ptr %72) #6
  %1028 = getelementptr inbounds %struct.Triple, ptr %72, i32 0, i32 0
  %1029 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %1029, ptr %1028, align 8, !tbaa !14
  %1030 = getelementptr inbounds %struct.Triple, ptr %72, i32 0, i32 1
  store i64 6, ptr %1030, align 8, !tbaa !16
  %1031 = getelementptr inbounds %struct.Triple, ptr %72, i32 0, i32 2
  %1032 = load i64, ptr %25, align 8, !tbaa !5
  %1033 = call noundef i64 @_Z4ipowxi(i64 noundef %1032, i32 noundef 6)
  store i64 %1033, ptr %1031, align 8, !tbaa !17
  %1034 = load i32, ptr @m, align 4, !tbaa !9
  %1035 = sext i32 %1034 to i64
  %1036 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1035
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1036, ptr align 8 %72, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %72) #6
  %1037 = load i32, ptr @m, align 4, !tbaa !9
  %1038 = sext i32 %1037 to i64
  %1039 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1038
  %1040 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %1039)
          to label %1041 unwind label %409

1041:                                             ; preds = %1027
  %1042 = icmp ne i64 %1040, 0
  br i1 %1042, label %1054, label %1043

1043:                                             ; preds = %1041
  %1044 = load i32, ptr @m, align 4, !tbaa !9
  %1045 = add nsw i32 %1044, 1
  store i32 %1045, ptr @m, align 4, !tbaa !9
  %1046 = sext i32 %1044 to i64
  %1047 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1046
  %1048 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %1047)
          to label %1049 unwind label %409

1049:                                             ; preds = %1043
  %1050 = getelementptr inbounds { ptr, i8 }, ptr %73, i32 0, i32 0
  %1051 = extractvalue { ptr, i8 } %1048, 0
  store ptr %1051, ptr %1050, align 8
  %1052 = getelementptr inbounds { ptr, i8 }, ptr %73, i32 0, i32 1
  %1053 = extractvalue { ptr, i8 } %1048, 1
  store i8 %1053, ptr %1052, align 8
  br label %1054

1054:                                             ; preds = %1049, %1041
  call void @llvm.lifetime.start.p0(i64 24, ptr %74) #6
  %1055 = getelementptr inbounds %struct.Triple, ptr %74, i32 0, i32 0
  %1056 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %1056, ptr %1055, align 8, !tbaa !14
  %1057 = getelementptr inbounds %struct.Triple, ptr %74, i32 0, i32 1
  store i64 6, ptr %1057, align 8, !tbaa !16
  %1058 = getelementptr inbounds %struct.Triple, ptr %74, i32 0, i32 2
  %1059 = load i64, ptr %25, align 8, !tbaa !5
  store i64 %1059, ptr %1058, align 8, !tbaa !17
  %1060 = load i32, ptr @m, align 4, !tbaa !9
  %1061 = sext i32 %1060 to i64
  %1062 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1061
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1062, ptr align 8 %74, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %74) #6
  %1063 = load i32, ptr @m, align 4, !tbaa !9
  %1064 = sext i32 %1063 to i64
  %1065 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1064
  %1066 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %1065)
          to label %1067 unwind label %409

1067:                                             ; preds = %1054
  %1068 = icmp ne i64 %1066, 0
  br i1 %1068, label %1080, label %1069

1069:                                             ; preds = %1067
  %1070 = load i32, ptr @m, align 4, !tbaa !9
  %1071 = add nsw i32 %1070, 1
  store i32 %1071, ptr @m, align 4, !tbaa !9
  %1072 = sext i32 %1070 to i64
  %1073 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1072
  %1074 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %1073)
          to label %1075 unwind label %409

1075:                                             ; preds = %1069
  %1076 = getelementptr inbounds { ptr, i8 }, ptr %75, i32 0, i32 0
  %1077 = extractvalue { ptr, i8 } %1074, 0
  store ptr %1077, ptr %1076, align 8
  %1078 = getelementptr inbounds { ptr, i8 }, ptr %75, i32 0, i32 1
  %1079 = extractvalue { ptr, i8 } %1074, 1
  store i8 %1079, ptr %1078, align 8
  br label %1080

1080:                                             ; preds = %1075, %1067
  br label %1139

1081:                                             ; preds = %1024
  %1082 = load i64, ptr %24, align 8, !tbaa !5
  %1083 = icmp eq i64 %1082, 49
  br i1 %1083, label %1084, label %1138

1084:                                             ; preds = %1081
  call void @llvm.lifetime.start.p0(i64 24, ptr %76) #6
  %1085 = getelementptr inbounds %struct.Triple, ptr %76, i32 0, i32 0
  %1086 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %1086, ptr %1085, align 8, !tbaa !14
  %1087 = getelementptr inbounds %struct.Triple, ptr %76, i32 0, i32 1
  store i64 7, ptr %1087, align 8, !tbaa !16
  %1088 = getelementptr inbounds %struct.Triple, ptr %76, i32 0, i32 2
  %1089 = load i64, ptr %25, align 8, !tbaa !5
  %1090 = call noundef i64 @_Z4ipowxi(i64 noundef %1089, i32 noundef 7)
  store i64 %1090, ptr %1088, align 8, !tbaa !17
  %1091 = load i32, ptr @m, align 4, !tbaa !9
  %1092 = sext i32 %1091 to i64
  %1093 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1092
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1093, ptr align 8 %76, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %76) #6
  %1094 = load i32, ptr @m, align 4, !tbaa !9
  %1095 = sext i32 %1094 to i64
  %1096 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1095
  %1097 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %1096)
          to label %1098 unwind label %409

1098:                                             ; preds = %1084
  %1099 = icmp ne i64 %1097, 0
  br i1 %1099, label %1111, label %1100

1100:                                             ; preds = %1098
  %1101 = load i32, ptr @m, align 4, !tbaa !9
  %1102 = add nsw i32 %1101, 1
  store i32 %1102, ptr @m, align 4, !tbaa !9
  %1103 = sext i32 %1101 to i64
  %1104 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1103
  %1105 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %1104)
          to label %1106 unwind label %409

1106:                                             ; preds = %1100
  %1107 = getelementptr inbounds { ptr, i8 }, ptr %77, i32 0, i32 0
  %1108 = extractvalue { ptr, i8 } %1105, 0
  store ptr %1108, ptr %1107, align 8
  %1109 = getelementptr inbounds { ptr, i8 }, ptr %77, i32 0, i32 1
  %1110 = extractvalue { ptr, i8 } %1105, 1
  store i8 %1110, ptr %1109, align 8
  br label %1111

1111:                                             ; preds = %1106, %1098
  call void @llvm.lifetime.start.p0(i64 24, ptr %78) #6
  %1112 = getelementptr inbounds %struct.Triple, ptr %78, i32 0, i32 0
  %1113 = load i64, ptr %23, align 8, !tbaa !5
  store i64 %1113, ptr %1112, align 8, !tbaa !14
  %1114 = getelementptr inbounds %struct.Triple, ptr %78, i32 0, i32 1
  store i64 7, ptr %1114, align 8, !tbaa !16
  %1115 = getelementptr inbounds %struct.Triple, ptr %78, i32 0, i32 2
  %1116 = load i64, ptr %25, align 8, !tbaa !5
  store i64 %1116, ptr %1115, align 8, !tbaa !17
  %1117 = load i32, ptr @m, align 4, !tbaa !9
  %1118 = sext i32 %1117 to i64
  %1119 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1118
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1119, ptr align 8 %78, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %78) #6
  %1120 = load i32, ptr @m, align 4, !tbaa !9
  %1121 = sext i32 %1120 to i64
  %1122 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1121
  %1123 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %1122)
          to label %1124 unwind label %409

1124:                                             ; preds = %1111
  %1125 = icmp ne i64 %1123, 0
  br i1 %1125, label %1137, label %1126

1126:                                             ; preds = %1124
  %1127 = load i32, ptr @m, align 4, !tbaa !9
  %1128 = add nsw i32 %1127, 1
  store i32 %1128, ptr @m, align 4, !tbaa !9
  %1129 = sext i32 %1127 to i64
  %1130 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1129
  %1131 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %1130)
          to label %1132 unwind label %409

1132:                                             ; preds = %1126
  %1133 = getelementptr inbounds { ptr, i8 }, ptr %79, i32 0, i32 0
  %1134 = extractvalue { ptr, i8 } %1131, 0
  store ptr %1134, ptr %1133, align 8
  %1135 = getelementptr inbounds { ptr, i8 }, ptr %79, i32 0, i32 1
  %1136 = extractvalue { ptr, i8 } %1131, 1
  store i8 %1136, ptr %1135, align 8
  br label %1137

1137:                                             ; preds = %1132, %1124
  br label %1138

1138:                                             ; preds = %1137, %1081
  br label %1139

1139:                                             ; preds = %1138, %1080
  br label %1140

1140:                                             ; preds = %1139, %1023
  br label %1141

1141:                                             ; preds = %1140, %885
  br label %1142

1142:                                             ; preds = %1141, %801
  br label %1143

1143:                                             ; preds = %1142, %744
  br label %1144

1144:                                             ; preds = %1143, %580
  br label %1145

1145:                                             ; preds = %1144, %523
  br label %1146

1146:                                             ; preds = %1145, %439
  br label %1147

1147:                                             ; preds = %1146, %378
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  br label %1148

1148:                                             ; preds = %1147
  %1149 = load i32, ptr %22, align 4, !tbaa !9
  %1150 = add nsw i32 %1149, 1
  store i32 %1150, ptr %22, align 4, !tbaa !9
  br label %345, !llvm.loop !23

1151:                                             ; preds = %349
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #6
  store i32 0, ptr %80, align 4, !tbaa !9
  br label %1152

1152:                                             ; preds = %1226, %1151
  %1153 = load i32, ptr %80, align 4, !tbaa !9
  %1154 = load i32, ptr @m, align 4, !tbaa !9
  %1155 = icmp slt i32 %1153, %1154
  br i1 %1155, label %1157, label %1156

1156:                                             ; preds = %1152
  store i32 23, ptr %8, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #6
  br label %1229

1157:                                             ; preds = %1152
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #6
  %1158 = load i32, ptr %80, align 4, !tbaa !9
  %1159 = sext i32 %1158 to i64
  %1160 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1159
  %1161 = getelementptr inbounds %struct.Triple, ptr %1160, i32 0, i32 2
  %1162 = load i64, ptr %1161, align 8, !tbaa !17
  %1163 = load i32, ptr %80, align 4, !tbaa !9
  %1164 = sext i32 %1163 to i64
  %1165 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1164
  %1166 = getelementptr inbounds %struct.Triple, ptr %1165, i32 0, i32 1
  %1167 = load i64, ptr %1166, align 8, !tbaa !16
  %1168 = trunc i64 %1167 to i32
  %1169 = invoke noundef i64 @_Z5irootxi(i64 noundef %1162, i32 noundef %1168)
          to label %1170 unwind label %1220

1170:                                             ; preds = %1157
  store i64 %1169, ptr %81, align 8, !tbaa !5
  %1171 = load i64, ptr %81, align 8, !tbaa !5
  %1172 = load i32, ptr %80, align 4, !tbaa !9
  %1173 = sext i32 %1172 to i64
  %1174 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1173
  %1175 = getelementptr inbounds %struct.Triple, ptr %1174, i32 0, i32 1
  %1176 = load i64, ptr %1175, align 8, !tbaa !16
  %1177 = trunc i64 %1176 to i32
  %1178 = call noundef i64 @_Z4ipowxi(i64 noundef %1171, i32 noundef %1177)
  %1179 = load i32, ptr %80, align 4, !tbaa !9
  %1180 = sext i32 %1179 to i64
  %1181 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1180
  %1182 = getelementptr inbounds %struct.Triple, ptr %1181, i32 0, i32 2
  %1183 = load i64, ptr %1182, align 8, !tbaa !17
  %1184 = icmp eq i64 %1178, %1183
  br i1 %1184, label %1185, label %1225

1185:                                             ; preds = %1170
  call void @llvm.lifetime.start.p0(i64 24, ptr %82) #6
  %1186 = getelementptr inbounds %struct.Triple, ptr %82, i32 0, i32 0
  %1187 = load i32, ptr %80, align 4, !tbaa !9
  %1188 = sext i32 %1187 to i64
  %1189 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1188
  %1190 = getelementptr inbounds %struct.Triple, ptr %1189, i32 0, i32 0
  %1191 = load i64, ptr %1190, align 8, !tbaa !14
  store i64 %1191, ptr %1186, align 8, !tbaa !14
  %1192 = getelementptr inbounds %struct.Triple, ptr %82, i32 0, i32 1
  %1193 = load i32, ptr %80, align 4, !tbaa !9
  %1194 = sext i32 %1193 to i64
  %1195 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1194
  %1196 = getelementptr inbounds %struct.Triple, ptr %1195, i32 0, i32 1
  %1197 = load i64, ptr %1196, align 8, !tbaa !16
  store i64 %1197, ptr %1192, align 8, !tbaa !16
  %1198 = getelementptr inbounds %struct.Triple, ptr %82, i32 0, i32 2
  %1199 = load i64, ptr %81, align 8, !tbaa !5
  store i64 %1199, ptr %1198, align 8, !tbaa !17
  %1200 = load i32, ptr @m, align 4, !tbaa !9
  %1201 = sext i32 %1200 to i64
  %1202 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1201
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %1202, ptr align 8 %82, i64 24, i1 false), !tbaa.struct !18
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #6
  %1203 = load i32, ptr @m, align 4, !tbaa !9
  %1204 = sext i32 %1203 to i64
  %1205 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1204
  %1206 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %1205)
          to label %1207 unwind label %1220

1207:                                             ; preds = %1185
  %1208 = icmp ne i64 %1206, 0
  br i1 %1208, label %1224, label %1209

1209:                                             ; preds = %1207
  %1210 = load i32, ptr @m, align 4, !tbaa !9
  %1211 = add nsw i32 %1210, 1
  store i32 %1211, ptr @m, align 4, !tbaa !9
  %1212 = sext i32 %1210 to i64
  %1213 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %1212
  %1214 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %4, ptr noundef nonnull align 8 dereferenceable(24) %1213)
          to label %1215 unwind label %1220

1215:                                             ; preds = %1209
  %1216 = getelementptr inbounds { ptr, i8 }, ptr %83, i32 0, i32 0
  %1217 = extractvalue { ptr, i8 } %1214, 0
  store ptr %1217, ptr %1216, align 8
  %1218 = getelementptr inbounds { ptr, i8 }, ptr %83, i32 0, i32 1
  %1219 = extractvalue { ptr, i8 } %1214, 1
  store i8 %1219, ptr %1218, align 8
  br label %1224

1220:                                             ; preds = %1209, %1185, %1157
  %1221 = landingpad { ptr, i32 }
          cleanup
  %1222 = extractvalue { ptr, i32 } %1221, 0
  store ptr %1222, ptr %6, align 8
  %1223 = extractvalue { ptr, i32 } %1221, 1
  store i32 %1223, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #6
  br label %1233

1224:                                             ; preds = %1215, %1207
  br label %1225

1225:                                             ; preds = %1224, %1170
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #6
  br label %1226

1226:                                             ; preds = %1225
  %1227 = load i32, ptr %80, align 4, !tbaa !9
  %1228 = add nsw i32 %1227, 1
  store i32 %1228, ptr %80, align 4, !tbaa !9
  br label %1152, !llvm.loop !24

1229:                                             ; preds = %1156
  %1230 = load i32, ptr %3, align 4, !tbaa !9
  %1231 = load i32, ptr @m, align 4, !tbaa !9
  %1232 = add nsw i32 %1230, %1231
  store i32 1, ptr %8, align 4
  call void @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %4) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #6
  ret i32 %1232

1233:                                             ; preds = %1220, %409, %335, %261, %187
  call void @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %4) #6
  call void @llvm.lifetime.end.p0(i64 48, ptr %4) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #6
  br label %1234

1234:                                             ; preds = %1233
  %1235 = load ptr, ptr %6, align 8
  %1236 = load i32, ptr %7, align 4
  %1237 = insertvalue { ptr, i32 } poison, ptr %1235, 0
  %1238 = insertvalue { ptr, i32 } %1237, i32 %1236, 1
  resume { ptr, i32 } %1238
}

; Function Attrs: nounwind
declare x86_fp80 @sqrtl(x86_fp80 noundef) #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3powIiiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(i32 noundef, i32 noundef) #4

declare i32 @__gxx_personality_v0(...)

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(24)) #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #0 align 2

attributes #0 = { 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 #1 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint 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 #5 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #6 = { 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 = !{!"long long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = distinct !{!11, !12}
!12 = !{!"llvm.loop.mustprogress"}
!13 = distinct !{!13, !12}
!14 = !{!15, !6, i64 0}
!15 = !{!"_ZTS6Triple", !6, i64 0, !6, i64 8, !6, i64 16}
!16 = !{!15, !6, i64 8}
!17 = !{!15, !6, i64 16}
!18 = !{i64 0, i64 8, !5, i64 8, i64 8, !5, i64 16, i64 8, !5}
!19 = distinct !{!19, !12}
!20 = distinct !{!20, !12}
!21 = distinct !{!21, !12}
!22 = distinct !{!22, !12}
!23 = distinct !{!23, !12}
!24 = distinct !{!24, !12}


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

%struct.Triple = type { i64, i64, i64 }
%"class.std::set" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<Triple, Triple, std::_Identity<Triple>, std::less<Triple>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<Triple, Triple, std::_Identity<Triple>, std::less<Triple>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }

@m = external dso_local local_unnamed_addr global i32, align 4
@seq = external dso_local global [10000001 x %struct.Triple], align 16

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_Z5irootxi(i64 noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @_Z5solvex(i64 noundef %0) local_unnamed_addr #2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::set", align 8
  %3 = sitofp i64 %0 to double
  %4 = fadd double %3, 2.500000e-01
  %5 = fpext double %4 to x86_fp80
  %6 = tail call x86_fp80 @sqrtl(x86_fp80 noundef %5) #5
  %7 = fadd x86_fp80 %6, 0xKBFFE8000000000000000
  %8 = fptosi x86_fp80 %7 to i32
  %9 = sext i32 %8 to i64
  br label %10

10:                                               ; preds = %10, %1
  %indvars.iv = phi i64 [ %indvars.iv.next, %10 ], [ %9, %1 ]
  %indvars.iv.next = add nsw i64 %indvars.iv, 1
  %11 = mul nsw i64 %indvars.iv.next, %indvars.iv
  %.not = icmp sgt i64 %11, %0
  br i1 %.not, label %.preheader338, label %10, !llvm.loop !5

.preheader338:                                    ; preds = %10, %.preheader338
  %indvars.iv361 = phi i64 [ %indvars.iv.next362, %.preheader338 ], [ %indvars.iv, %10 ]
  %12 = add nsw i64 %indvars.iv361, 1
  %13 = mul nsw i64 %12, %indvars.iv361
  %14 = icmp sgt i64 %13, %0
  %indvars.iv.next362 = add nsw i64 %indvars.iv361, -1
  br i1 %14, label %.preheader338, label %15, !llvm.loop !7

15:                                               ; preds = %.preheader338
  %16 = trunc nsw i64 %indvars.iv361 to i32
  %17 = icmp sgt i64 %indvars.iv361, 1
  %.neg = sext i1 %17 to i32
  %18 = add i32 %16, %.neg
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %2) #5
  call void @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48) %2) #5
  store i32 0, ptr @m, align 4, !tbaa !8
  %19 = call noundef double @_ZSt3powIiiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(i32 noundef 2, i32 noundef 4)
  %20 = fadd double %3, 1.000000e-09
  %21 = fcmp ugt double %19, %20
  br i1 %21, label %.preheader337.preheader, label %.lr.ph

.lr.ph:                                           ; preds = %15, %39
  %indvars.iv364 = phi i64 [ %indvars.iv.next365, %39 ], [ 2, %15 ]
  %22 = call noundef i64 @_Z4ipowxi(i64 noundef %indvars.iv364, i32 noundef 2)
  %23 = add nsw i64 %22, 1
  %24 = mul nsw i64 %23, %22
  %.not300 = icmp sgt i64 %24, %0
  br i1 %.not300, label %.preheader337.preheader, label %25

25:                                               ; preds = %.lr.ph
  %26 = load i32, ptr @m, align 4, !tbaa !8
  %27 = sext i32 %26 to i64
  %28 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %27
  store i64 %24, ptr %28, align 8, !tbaa !12
  %.sroa.4254.0..sroa_idx = getelementptr inbounds i8, ptr %28, i64 8
  store i64 2, ptr %.sroa.4254.0..sroa_idx, align 8, !tbaa !12
  %.sroa.5255.0..sroa_idx = getelementptr inbounds i8, ptr %28, i64 16
  store i64 %22, ptr %.sroa.5255.0..sroa_idx, align 8, !tbaa !12
  %29 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %28)
          to label %30 unwind label %37

30:                                               ; preds = %25
  %.not299 = icmp eq i64 %29, 0
  br i1 %.not299, label %31, label %39

31:                                               ; preds = %30
  %32 = load i32, ptr @m, align 4, !tbaa !8
  %33 = add nsw i32 %32, 1
  store i32 %33, ptr @m, align 4, !tbaa !8
  %34 = sext i32 %32 to i64
  %35 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %34
  %36 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %35)
          to label %39 unwind label %37

37:                                               ; preds = %31, %25
  %38 = landingpad { ptr, i32 }
          cleanup
  br label %444

39:                                               ; preds = %31, %30
  %indvars.iv.next365 = add nuw nsw i64 %indvars.iv364, 1
  %40 = trunc nuw i64 %indvars.iv.next365 to i32
  %41 = call noundef double @_ZSt3powIiiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(i32 noundef %40, i32 noundef 4)
  %42 = fcmp ugt double %41, %20
  br i1 %42, label %.preheader337.preheader, label %.lr.ph, !llvm.loop !14

.preheader337.preheader:                          ; preds = %39, %.lr.ph, %15
  br label %.preheader337

.preheader337:                                    ; preds = %.preheader337.preheader, %.critedge334
  %indvars.iv370 = phi i64 [ %indvars.iv.next371, %.critedge334 ], [ 3, %.preheader337.preheader ]
  %43 = trunc nuw nsw i64 %indvars.iv370 to i32
  %44 = call noundef double @_ZSt3powIiiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(i32 noundef 2, i32 noundef %43)
  %45 = fcmp ugt double %44, %20
  br i1 %45, label %.critedge334, label %.lr.ph347

.preheader336:                                    ; preds = %.critedge334
  %46 = load i32, ptr @m, align 4, !tbaa !8
  %47 = icmp sgt i32 %46, 0
  br i1 %47, label %.lr.ph351, label %._crit_edge

.lr.ph347:                                        ; preds = %.preheader337, %64
  %indvars.iv367 = phi i64 [ %indvars.iv.next368, %64 ], [ 2, %.preheader337 ]
  %48 = call noundef i64 @_Z4ipowxi(i64 noundef %indvars.iv367, i32 noundef %43)
  %49 = add nsw i64 %48, %indvars.iv367
  %.not332 = icmp sgt i64 %49, %0
  br i1 %.not332, label %.critedge334, label %50

50:                                               ; preds = %.lr.ph347
  %51 = load i32, ptr @m, align 4, !tbaa !8
  %52 = sext i32 %51 to i64
  %53 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %52
  store i64 %49, ptr %53, align 8, !tbaa !12
  %.sroa.4237.0..sroa_idx = getelementptr inbounds i8, ptr %53, i64 8
  store i64 %indvars.iv370, ptr %.sroa.4237.0..sroa_idx, align 8, !tbaa !12
  %.sroa.5238.0..sroa_idx = getelementptr inbounds i8, ptr %53, i64 16
  store i64 %indvars.iv367, ptr %.sroa.5238.0..sroa_idx, align 8, !tbaa !12
  %54 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %53)
          to label %55 unwind label %62

55:                                               ; preds = %50
  %.not330 = icmp eq i64 %54, 0
  br i1 %.not330, label %56, label %64

56:                                               ; preds = %55
  %57 = load i32, ptr @m, align 4, !tbaa !8
  %58 = add nsw i32 %57, 1
  store i32 %58, ptr @m, align 4, !tbaa !8
  %59 = sext i32 %57 to i64
  %60 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %59
  %61 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %60)
          to label %64 unwind label %62

62:                                               ; preds = %56, %50
  %63 = landingpad { ptr, i32 }
          cleanup
  br label %444

64:                                               ; preds = %56, %55
  %indvars.iv.next368 = add nuw nsw i64 %indvars.iv367, 1
  %65 = trunc nuw i64 %indvars.iv.next368 to i32
  %66 = call noundef double @_ZSt3powIiiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(i32 noundef %65, i32 noundef %43)
  %67 = fcmp ugt double %66, %20
  br i1 %67, label %.critedge334, label %.lr.ph347, !llvm.loop !15

.critedge334:                                     ; preds = %64, %.lr.ph347, %.preheader337
  %indvars.iv.next371 = add nuw nsw i64 %indvars.iv370, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next371, 60
  br i1 %exitcond.not, label %.preheader336, label %.preheader337, !llvm.loop !16

.preheader335:                                    ; preds = %97
  %68 = icmp sgt i32 %98, 0
  br i1 %68, label %.lr.ph354, label %._crit_edge

.lr.ph351:                                        ; preds = %.preheader336, %97
  %indvars.iv373 = phi i64 [ %indvars.iv.next374, %97 ], [ 0, %.preheader336 ]
  %69 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %indvars.iv373
  %70 = getelementptr inbounds i8, ptr %69, i64 16
  %71 = load i64, ptr %70, align 8, !tbaa !17
  %72 = getelementptr inbounds i8, ptr %69, i64 8
  %73 = load i64, ptr %72, align 8, !tbaa !19
  %74 = trunc i64 %73 to i32
  %75 = invoke noundef i64 @_Z5irootxi(i64 noundef %71, i32 noundef %74)
          to label %76 unwind label %95

76:                                               ; preds = %.lr.ph351
  %77 = load i64, ptr %72, align 8, !tbaa !19
  %78 = trunc i64 %77 to i32
  %79 = call noundef i64 @_Z4ipowxi(i64 noundef %75, i32 noundef %78)
  %80 = load i64, ptr %70, align 8, !tbaa !17
  %81 = icmp eq i64 %79, %80
  br i1 %81, label %82, label %97

82:                                               ; preds = %76
  %83 = load i32, ptr @m, align 4, !tbaa !8
  %84 = sext i32 %83 to i64
  %85 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %84
  %86 = load <2 x i64>, ptr %69, align 8, !tbaa !12
  store <2 x i64> %86, ptr %85, align 8, !tbaa !12
  %.sroa.5223.0..sroa_idx = getelementptr inbounds i8, ptr %85, i64 16
  store i64 %75, ptr %.sroa.5223.0..sroa_idx, align 8, !tbaa !12
  %87 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %85)
          to label %88 unwind label %95

88:                                               ; preds = %82
  %.not329 = icmp eq i64 %87, 0
  br i1 %.not329, label %89, label %97

89:                                               ; preds = %88
  %90 = load i32, ptr @m, align 4, !tbaa !8
  %91 = add nsw i32 %90, 1
  store i32 %91, ptr @m, align 4, !tbaa !8
  %92 = sext i32 %90 to i64
  %93 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %92
  %94 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %93)
          to label %97 unwind label %95

95:                                               ; preds = %89, %82, %.lr.ph351
  %96 = landingpad { ptr, i32 }
          cleanup
  br label %444

97:                                               ; preds = %89, %88, %76
  %indvars.iv.next374 = add nuw nsw i64 %indvars.iv373, 1
  %98 = load i32, ptr @m, align 4, !tbaa !8
  %99 = sext i32 %98 to i64
  %100 = icmp slt i64 %indvars.iv.next374, %99
  br i1 %100, label %.lr.ph351, label %.preheader335, !llvm.loop !20

.preheader:                                       ; preds = %407
  %101 = icmp sgt i32 %408, 0
  br i1 %101, label %.lr.ph357, label %._crit_edge

.lr.ph354:                                        ; preds = %.preheader335, %407
  %indvars.iv376 = phi i64 [ %indvars.iv.next377, %407 ], [ 0, %.preheader335 ]
  %.2353 = phi i32 [ %.3, %407 ], [ %18, %.preheader335 ]
  %102 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %indvars.iv376
  %103 = load i64, ptr %102, align 8, !tbaa !21
  %104 = getelementptr inbounds i8, ptr %102, i64 8
  %105 = load i64, ptr %104, align 8, !tbaa !19
  %106 = getelementptr inbounds i8, ptr %102, i64 16
  %107 = load i64, ptr %106, align 8, !tbaa !17
  switch i64 %105, label %407 [
    i64 2, label %108
    i64 4, label %113
    i64 8, label %134
    i64 9, label %166
    i64 16, label %185
    i64 25, label %255
    i64 27, label %274
    i64 32, label %306
    i64 36, label %364
    i64 49, label %383
  ]

108:                                              ; preds = %.lr.ph354
  %109 = add nsw i64 %107, 1
  %110 = mul nsw i64 %109, %107
  %111 = icmp eq i64 %110, %103
  %112 = sext i1 %111 to i32
  %spec.select = add nsw i32 %.2353, %112
  br label %407

113:                                              ; preds = %.lr.ph354
  %114 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 2)
  %115 = load i32, ptr @m, align 4, !tbaa !8
  %116 = sext i32 %115 to i64
  %117 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %116
  store i64 %103, ptr %117, align 8, !tbaa !12
  %.sroa.4145.0..sroa_idx = getelementptr inbounds i8, ptr %117, i64 8
  store i64 2, ptr %.sroa.4145.0..sroa_idx, align 8, !tbaa !12
  %.sroa.5146.0..sroa_idx = getelementptr inbounds i8, ptr %117, i64 16
  store i64 %114, ptr %.sroa.5146.0..sroa_idx, align 8, !tbaa !12
  %118 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %117)
          to label %119 unwind label %126

119:                                              ; preds = %113
  %.not327 = icmp eq i64 %118, 0
  br i1 %.not327, label %120, label %128

120:                                              ; preds = %119
  %121 = load i32, ptr @m, align 4, !tbaa !8
  %122 = add nsw i32 %121, 1
  store i32 %122, ptr @m, align 4, !tbaa !8
  %123 = sext i32 %121 to i64
  %124 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %123
  %125 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %124)
          to label %128 unwind label %126

126:                                              ; preds = %.invoke, %396, %390, %383, %377, %371, %364, %358, %352, %345, %339, %332, %326, %319, %313, %306, %300, %294, %287, %281, %274, %268, %262, %255, %249, %243, %236, %230, %224, %218, %211, %205, %198, %192, %185, %179, %173, %166, %160, %154, %147, %141, %134, %128, %120, %113
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %444

128:                                              ; preds = %120, %119
  %129 = load i32, ptr @m, align 4, !tbaa !8
  %130 = sext i32 %129 to i64
  %131 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %130
  store i64 %103, ptr %131, align 8, !tbaa !12
  %.sroa.4140.0..sroa_idx = getelementptr inbounds i8, ptr %131, i64 8
  store i64 2, ptr %.sroa.4140.0..sroa_idx, align 8, !tbaa !12
  %.sroa.5141.0..sroa_idx = getelementptr inbounds i8, ptr %131, i64 16
  store i64 %107, ptr %.sroa.5141.0..sroa_idx, align 8, !tbaa !12
  %132 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %131)
          to label %133 unwind label %126

133:                                              ; preds = %128
  %.not328 = icmp eq i64 %132, 0
  br i1 %.not328, label %.invoke, label %407

134:                                              ; preds = %.lr.ph354
  %135 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 4)
  %136 = load i32, ptr @m, align 4, !tbaa !8
  %137 = sext i32 %136 to i64
  %138 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %137
  store i64 %103, ptr %138, align 8, !tbaa !12
  %.sroa.4135.0..sroa_idx = getelementptr inbounds i8, ptr %138, i64 8
  store i64 2, ptr %.sroa.4135.0..sroa_idx, align 8, !tbaa !12
  %.sroa.5136.0..sroa_idx = getelementptr inbounds i8, ptr %138, i64 16
  store i64 %135, ptr %.sroa.5136.0..sroa_idx, align 8, !tbaa !12
  %139 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %138)
          to label %140 unwind label %126

140:                                              ; preds = %134
  %.not324 = icmp eq i64 %139, 0
  br i1 %.not324, label %141, label %147

141:                                              ; preds = %140
  %142 = load i32, ptr @m, align 4, !tbaa !8
  %143 = add nsw i32 %142, 1
  store i32 %143, ptr @m, align 4, !tbaa !8
  %144 = sext i32 %142 to i64
  %145 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %144
  %146 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %145)
          to label %147 unwind label %126

147:                                              ; preds = %141, %140
  %148 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 2)
  %149 = load i32, ptr @m, align 4, !tbaa !8
  %150 = sext i32 %149 to i64
  %151 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %150
  store i64 %103, ptr %151, align 8, !tbaa !12
  %.sroa.4130.0..sroa_idx = getelementptr inbounds i8, ptr %151, i64 8
  store i64 2, ptr %.sroa.4130.0..sroa_idx, align 8, !tbaa !12
  %.sroa.5131.0..sroa_idx = getelementptr inbounds i8, ptr %151, i64 16
  store i64 %148, ptr %.sroa.5131.0..sroa_idx, align 8, !tbaa !12
  %152 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %151)
          to label %153 unwind label %126

153:                                              ; preds = %147
  %.not325 = icmp eq i64 %152, 0
  br i1 %.not325, label %154, label %160

154:                                              ; preds = %153
  %155 = load i32, ptr @m, align 4, !tbaa !8
  %156 = add nsw i32 %155, 1
  store i32 %156, ptr @m, align 4, !tbaa !8
  %157 = sext i32 %155 to i64
  %158 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %157
  %159 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %158)
          to label %160 unwind label %126

160:                                              ; preds = %154, %153
  %161 = load i32, ptr @m, align 4, !tbaa !8
  %162 = sext i32 %161 to i64
  %163 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %162
  store i64 %103, ptr %163, align 8, !tbaa !12
  %.sroa.4125.0..sroa_idx = getelementptr inbounds i8, ptr %163, i64 8
  store i64 2, ptr %.sroa.4125.0..sroa_idx, align 8, !tbaa !12
  %.sroa.5126.0..sroa_idx = getelementptr inbounds i8, ptr %163, i64 16
  store i64 %107, ptr %.sroa.5126.0..sroa_idx, align 8, !tbaa !12
  %164 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %163)
          to label %165 unwind label %126

165:                                              ; preds = %160
  %.not326 = icmp eq i64 %164, 0
  br i1 %.not326, label %.invoke, label %407

166:                                              ; preds = %.lr.ph354
  %167 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 3)
  %168 = load i32, ptr @m, align 4, !tbaa !8
  %169 = sext i32 %168 to i64
  %170 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %169
  store i64 %103, ptr %170, align 8, !tbaa !12
  %.sroa.4120.0..sroa_idx = getelementptr inbounds i8, ptr %170, i64 8
  store i64 3, ptr %.sroa.4120.0..sroa_idx, align 8, !tbaa !12
  %.sroa.5121.0..sroa_idx = getelementptr inbounds i8, ptr %170, i64 16
  store i64 %167, ptr %.sroa.5121.0..sroa_idx, align 8, !tbaa !12
  %171 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %170)
          to label %172 unwind label %126

172:                                              ; preds = %166
  %.not322 = icmp eq i64 %171, 0
  br i1 %.not322, label %173, label %179

173:                                              ; preds = %172
  %174 = load i32, ptr @m, align 4, !tbaa !8
  %175 = add nsw i32 %174, 1
  store i32 %175, ptr @m, align 4, !tbaa !8
  %176 = sext i32 %174 to i64
  %177 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %176
  %178 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %177)
          to label %179 unwind label %126

179:                                              ; preds = %173, %172
  %180 = load i32, ptr @m, align 4, !tbaa !8
  %181 = sext i32 %180 to i64
  %182 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %181
  store i64 %103, ptr %182, align 8, !tbaa !12
  %.sroa.4115.0..sroa_idx = getelementptr inbounds i8, ptr %182, i64 8
  store i64 3, ptr %.sroa.4115.0..sroa_idx, align 8, !tbaa !12
  %.sroa.5116.0..sroa_idx = getelementptr inbounds i8, ptr %182, i64 16
  store i64 %107, ptr %.sroa.5116.0..sroa_idx, align 8, !tbaa !12
  %183 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %182)
          to label %184 unwind label %126

184:                                              ; preds = %179
  %.not323 = icmp eq i64 %183, 0
  br i1 %.not323, label %.invoke, label %407

185:                                              ; preds = %.lr.ph354
  %186 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 8)
  %187 = load i32, ptr @m, align 4, !tbaa !8
  %188 = sext i32 %187 to i64
  %189 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %188
  store i64 %103, ptr %189, align 8, !tbaa !12
  %.sroa.4110.0..sroa_idx = getelementptr inbounds i8, ptr %189, i64 8
  store i64 2, ptr %.sroa.4110.0..sroa_idx, align 8, !tbaa !12
  %.sroa.5111.0..sroa_idx = getelementptr inbounds i8, ptr %189, i64 16
  store i64 %186, ptr %.sroa.5111.0..sroa_idx, align 8, !tbaa !12
  %190 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %189)
          to label %191 unwind label %126

191:                                              ; preds = %185
  %.not316 = icmp eq i64 %190, 0
  br i1 %.not316, label %192, label %198

192:                                              ; preds = %191
  %193 = load i32, ptr @m, align 4, !tbaa !8
  %194 = add nsw i32 %193, 1
  store i32 %194, ptr @m, align 4, !tbaa !8
  %195 = sext i32 %193 to i64
  %196 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %195
  %197 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %196)
          to label %198 unwind label %126

198:                                              ; preds = %192, %191
  %199 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 4)
  %200 = load i32, ptr @m, align 4, !tbaa !8
  %201 = sext i32 %200 to i64
  %202 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %201
  store i64 %103, ptr %202, align 8, !tbaa !12
  %.sroa.4105.0..sroa_idx = getelementptr inbounds i8, ptr %202, i64 8
  store i64 2, ptr %.sroa.4105.0..sroa_idx, align 8, !tbaa !12
  %.sroa.5106.0..sroa_idx = getelementptr inbounds i8, ptr %202, i64 16
  store i64 %199, ptr %.sroa.5106.0..sroa_idx, align 8, !tbaa !12
  %203 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %202)
          to label %204 unwind label %126

204:                                              ; preds = %198
  %.not317 = icmp eq i64 %203, 0
  br i1 %.not317, label %205, label %211

205:                                              ; preds = %204
  %206 = load i32, ptr @m, align 4, !tbaa !8
  %207 = add nsw i32 %206, 1
  store i32 %207, ptr @m, align 4, !tbaa !8
  %208 = sext i32 %206 to i64
  %209 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %208
  %210 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %209)
          to label %211 unwind label %126

211:                                              ; preds = %205, %204
  %212 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 2)
  %213 = load i32, ptr @m, align 4, !tbaa !8
  %214 = sext i32 %213 to i64
  %215 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %214
  store i64 %103, ptr %215, align 8, !tbaa !12
  %.sroa.4100.0..sroa_idx = getelementptr inbounds i8, ptr %215, i64 8
  store i64 2, ptr %.sroa.4100.0..sroa_idx, align 8, !tbaa !12
  %.sroa.5101.0..sroa_idx = getelementptr inbounds i8, ptr %215, i64 16
  store i64 %212, ptr %.sroa.5101.0..sroa_idx, align 8, !tbaa !12
  %216 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %215)
          to label %217 unwind label %126

217:                                              ; preds = %211
  %.not318 = icmp eq i64 %216, 0
  br i1 %.not318, label %218, label %224

218:                                              ; preds = %217
  %219 = load i32, ptr @m, align 4, !tbaa !8
  %220 = add nsw i32 %219, 1
  store i32 %220, ptr @m, align 4, !tbaa !8
  %221 = sext i32 %219 to i64
  %222 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %221
  %223 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %222)
          to label %224 unwind label %126

224:                                              ; preds = %218, %217
  %225 = load i32, ptr @m, align 4, !tbaa !8
  %226 = sext i32 %225 to i64
  %227 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %226
  store i64 %103, ptr %227, align 8, !tbaa !12
  %.sroa.495.0..sroa_idx = getelementptr inbounds i8, ptr %227, i64 8
  store i64 2, ptr %.sroa.495.0..sroa_idx, align 8, !tbaa !12
  %.sroa.596.0..sroa_idx = getelementptr inbounds i8, ptr %227, i64 16
  store i64 %107, ptr %.sroa.596.0..sroa_idx, align 8, !tbaa !12
  %228 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %227)
          to label %229 unwind label %126

229:                                              ; preds = %224
  %.not319 = icmp eq i64 %228, 0
  br i1 %.not319, label %230, label %236

230:                                              ; preds = %229
  %231 = load i32, ptr @m, align 4, !tbaa !8
  %232 = add nsw i32 %231, 1
  store i32 %232, ptr @m, align 4, !tbaa !8
  %233 = sext i32 %231 to i64
  %234 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %233
  %235 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %234)
          to label %236 unwind label %126

236:                                              ; preds = %230, %229
  %237 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 4)
  %238 = load i32, ptr @m, align 4, !tbaa !8
  %239 = sext i32 %238 to i64
  %240 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %239
  store i64 %103, ptr %240, align 8, !tbaa !12
  %.sroa.490.0..sroa_idx = getelementptr inbounds i8, ptr %240, i64 8
  store i64 4, ptr %.sroa.490.0..sroa_idx, align 8, !tbaa !12
  %.sroa.591.0..sroa_idx = getelementptr inbounds i8, ptr %240, i64 16
  store i64 %237, ptr %.sroa.591.0..sroa_idx, align 8, !tbaa !12
  %241 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %240)
          to label %242 unwind label %126

242:                                              ; preds = %236
  %.not320 = icmp eq i64 %241, 0
  br i1 %.not320, label %243, label %249

243:                                              ; preds = %242
  %244 = load i32, ptr @m, align 4, !tbaa !8
  %245 = add nsw i32 %244, 1
  store i32 %245, ptr @m, align 4, !tbaa !8
  %246 = sext i32 %244 to i64
  %247 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %246
  %248 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %247)
          to label %249 unwind label %126

249:                                              ; preds = %243, %242
  %250 = load i32, ptr @m, align 4, !tbaa !8
  %251 = sext i32 %250 to i64
  %252 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %251
  store i64 %103, ptr %252, align 8, !tbaa !12
  %.sroa.485.0..sroa_idx = getelementptr inbounds i8, ptr %252, i64 8
  store i64 4, ptr %.sroa.485.0..sroa_idx, align 8, !tbaa !12
  %.sroa.586.0..sroa_idx = getelementptr inbounds i8, ptr %252, i64 16
  store i64 %107, ptr %.sroa.586.0..sroa_idx, align 8, !tbaa !12
  %253 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %252)
          to label %254 unwind label %126

254:                                              ; preds = %249
  %.not321 = icmp eq i64 %253, 0
  br i1 %.not321, label %.invoke, label %407

255:                                              ; preds = %.lr.ph354
  %256 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 5)
  %257 = load i32, ptr @m, align 4, !tbaa !8
  %258 = sext i32 %257 to i64
  %259 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %258
  store i64 %103, ptr %259, align 8, !tbaa !12
  %.sroa.480.0..sroa_idx = getelementptr inbounds i8, ptr %259, i64 8
  store i64 5, ptr %.sroa.480.0..sroa_idx, align 8, !tbaa !12
  %.sroa.581.0..sroa_idx = getelementptr inbounds i8, ptr %259, i64 16
  store i64 %256, ptr %.sroa.581.0..sroa_idx, align 8, !tbaa !12
  %260 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %259)
          to label %261 unwind label %126

261:                                              ; preds = %255
  %.not314 = icmp eq i64 %260, 0
  br i1 %.not314, label %262, label %268

262:                                              ; preds = %261
  %263 = load i32, ptr @m, align 4, !tbaa !8
  %264 = add nsw i32 %263, 1
  store i32 %264, ptr @m, align 4, !tbaa !8
  %265 = sext i32 %263 to i64
  %266 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %265
  %267 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %266)
          to label %268 unwind label %126

268:                                              ; preds = %262, %261
  %269 = load i32, ptr @m, align 4, !tbaa !8
  %270 = sext i32 %269 to i64
  %271 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %270
  store i64 %103, ptr %271, align 8, !tbaa !12
  %.sroa.475.0..sroa_idx = getelementptr inbounds i8, ptr %271, i64 8
  store i64 5, ptr %.sroa.475.0..sroa_idx, align 8, !tbaa !12
  %.sroa.576.0..sroa_idx = getelementptr inbounds i8, ptr %271, i64 16
  store i64 %107, ptr %.sroa.576.0..sroa_idx, align 8, !tbaa !12
  %272 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %271)
          to label %273 unwind label %126

273:                                              ; preds = %268
  %.not315 = icmp eq i64 %272, 0
  br i1 %.not315, label %.invoke, label %407

274:                                              ; preds = %.lr.ph354
  %275 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 9)
  %276 = load i32, ptr @m, align 4, !tbaa !8
  %277 = sext i32 %276 to i64
  %278 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %277
  store i64 %103, ptr %278, align 8, !tbaa !12
  %.sroa.470.0..sroa_idx = getelementptr inbounds i8, ptr %278, i64 8
  store i64 3, ptr %.sroa.470.0..sroa_idx, align 8, !tbaa !12
  %.sroa.571.0..sroa_idx = getelementptr inbounds i8, ptr %278, i64 16
  store i64 %275, ptr %.sroa.571.0..sroa_idx, align 8, !tbaa !12
  %279 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %278)
          to label %280 unwind label %126

280:                                              ; preds = %274
  %.not311 = icmp eq i64 %279, 0
  br i1 %.not311, label %281, label %287

281:                                              ; preds = %280
  %282 = load i32, ptr @m, align 4, !tbaa !8
  %283 = add nsw i32 %282, 1
  store i32 %283, ptr @m, align 4, !tbaa !8
  %284 = sext i32 %282 to i64
  %285 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %284
  %286 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %285)
          to label %287 unwind label %126

287:                                              ; preds = %281, %280
  %288 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 3)
  %289 = load i32, ptr @m, align 4, !tbaa !8
  %290 = sext i32 %289 to i64
  %291 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %290
  store i64 %103, ptr %291, align 8, !tbaa !12
  %.sroa.465.0..sroa_idx = getelementptr inbounds i8, ptr %291, i64 8
  store i64 3, ptr %.sroa.465.0..sroa_idx, align 8, !tbaa !12
  %.sroa.566.0..sroa_idx = getelementptr inbounds i8, ptr %291, i64 16
  store i64 %288, ptr %.sroa.566.0..sroa_idx, align 8, !tbaa !12
  %292 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %291)
          to label %293 unwind label %126

293:                                              ; preds = %287
  %.not312 = icmp eq i64 %292, 0
  br i1 %.not312, label %294, label %300

294:                                              ; preds = %293
  %295 = load i32, ptr @m, align 4, !tbaa !8
  %296 = add nsw i32 %295, 1
  store i32 %296, ptr @m, align 4, !tbaa !8
  %297 = sext i32 %295 to i64
  %298 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %297
  %299 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %298)
          to label %300 unwind label %126

300:                                              ; preds = %294, %293
  %301 = load i32, ptr @m, align 4, !tbaa !8
  %302 = sext i32 %301 to i64
  %303 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %302
  store i64 %103, ptr %303, align 8, !tbaa !12
  %.sroa.460.0..sroa_idx = getelementptr inbounds i8, ptr %303, i64 8
  store i64 3, ptr %.sroa.460.0..sroa_idx, align 8, !tbaa !12
  %.sroa.561.0..sroa_idx = getelementptr inbounds i8, ptr %303, i64 16
  store i64 %107, ptr %.sroa.561.0..sroa_idx, align 8, !tbaa !12
  %304 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %303)
          to label %305 unwind label %126

305:                                              ; preds = %300
  %.not313 = icmp eq i64 %304, 0
  br i1 %.not313, label %.invoke, label %407

306:                                              ; preds = %.lr.ph354
  %307 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 16)
  %308 = load i32, ptr @m, align 4, !tbaa !8
  %309 = sext i32 %308 to i64
  %310 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %309
  store i64 %103, ptr %310, align 8, !tbaa !12
  %.sroa.455.0..sroa_idx = getelementptr inbounds i8, ptr %310, i64 8
  store i64 2, ptr %.sroa.455.0..sroa_idx, align 8, !tbaa !12
  %.sroa.556.0..sroa_idx = getelementptr inbounds i8, ptr %310, i64 16
  store i64 %307, ptr %.sroa.556.0..sroa_idx, align 8, !tbaa !12
  %311 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %310)
          to label %312 unwind label %126

312:                                              ; preds = %306
  %.not306 = icmp eq i64 %311, 0
  br i1 %.not306, label %313, label %319

313:                                              ; preds = %312
  %314 = load i32, ptr @m, align 4, !tbaa !8
  %315 = add nsw i32 %314, 1
  store i32 %315, ptr @m, align 4, !tbaa !8
  %316 = sext i32 %314 to i64
  %317 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %316
  %318 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %317)
          to label %319 unwind label %126

319:                                              ; preds = %313, %312
  %320 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 8)
  %321 = load i32, ptr @m, align 4, !tbaa !8
  %322 = sext i32 %321 to i64
  %323 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %322
  store i64 %103, ptr %323, align 8, !tbaa !12
  %.sroa.450.0..sroa_idx = getelementptr inbounds i8, ptr %323, i64 8
  store i64 2, ptr %.sroa.450.0..sroa_idx, align 8, !tbaa !12
  %.sroa.551.0..sroa_idx = getelementptr inbounds i8, ptr %323, i64 16
  store i64 %320, ptr %.sroa.551.0..sroa_idx, align 8, !tbaa !12
  %324 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %323)
          to label %325 unwind label %126

325:                                              ; preds = %319
  %.not307 = icmp eq i64 %324, 0
  br i1 %.not307, label %326, label %332

326:                                              ; preds = %325
  %327 = load i32, ptr @m, align 4, !tbaa !8
  %328 = add nsw i32 %327, 1
  store i32 %328, ptr @m, align 4, !tbaa !8
  %329 = sext i32 %327 to i64
  %330 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %329
  %331 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %330)
          to label %332 unwind label %126

332:                                              ; preds = %326, %325
  %333 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 4)
  %334 = load i32, ptr @m, align 4, !tbaa !8
  %335 = sext i32 %334 to i64
  %336 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %335
  store i64 %103, ptr %336, align 8, !tbaa !12
  %.sroa.445.0..sroa_idx = getelementptr inbounds i8, ptr %336, i64 8
  store i64 2, ptr %.sroa.445.0..sroa_idx, align 8, !tbaa !12
  %.sroa.546.0..sroa_idx = getelementptr inbounds i8, ptr %336, i64 16
  store i64 %333, ptr %.sroa.546.0..sroa_idx, align 8, !tbaa !12
  %337 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %336)
          to label %338 unwind label %126

338:                                              ; preds = %332
  %.not308 = icmp eq i64 %337, 0
  br i1 %.not308, label %339, label %345

339:                                              ; preds = %338
  %340 = load i32, ptr @m, align 4, !tbaa !8
  %341 = add nsw i32 %340, 1
  store i32 %341, ptr @m, align 4, !tbaa !8
  %342 = sext i32 %340 to i64
  %343 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %342
  %344 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %343)
          to label %345 unwind label %126

345:                                              ; preds = %339, %338
  %346 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 2)
  %347 = load i32, ptr @m, align 4, !tbaa !8
  %348 = sext i32 %347 to i64
  %349 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %348
  store i64 %103, ptr %349, align 8, !tbaa !12
  %.sroa.440.0..sroa_idx = getelementptr inbounds i8, ptr %349, i64 8
  store i64 2, ptr %.sroa.440.0..sroa_idx, align 8, !tbaa !12
  %.sroa.541.0..sroa_idx = getelementptr inbounds i8, ptr %349, i64 16
  store i64 %346, ptr %.sroa.541.0..sroa_idx, align 8, !tbaa !12
  %350 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %349)
          to label %351 unwind label %126

351:                                              ; preds = %345
  %.not309 = icmp eq i64 %350, 0
  br i1 %.not309, label %352, label %358

352:                                              ; preds = %351
  %353 = load i32, ptr @m, align 4, !tbaa !8
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr @m, align 4, !tbaa !8
  %355 = sext i32 %353 to i64
  %356 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %355
  %357 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %356)
          to label %358 unwind label %126

358:                                              ; preds = %352, %351
  %359 = load i32, ptr @m, align 4, !tbaa !8
  %360 = sext i32 %359 to i64
  %361 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %360
  store i64 %103, ptr %361, align 8, !tbaa !12
  %.sroa.435.0..sroa_idx = getelementptr inbounds i8, ptr %361, i64 8
  store i64 2, ptr %.sroa.435.0..sroa_idx, align 8, !tbaa !12
  %.sroa.536.0..sroa_idx = getelementptr inbounds i8, ptr %361, i64 16
  store i64 %107, ptr %.sroa.536.0..sroa_idx, align 8, !tbaa !12
  %362 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %361)
          to label %363 unwind label %126

363:                                              ; preds = %358
  %.not310 = icmp eq i64 %362, 0
  br i1 %.not310, label %.invoke, label %407

364:                                              ; preds = %.lr.ph354
  %365 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 6)
  %366 = load i32, ptr @m, align 4, !tbaa !8
  %367 = sext i32 %366 to i64
  %368 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %367
  store i64 %103, ptr %368, align 8, !tbaa !12
  %.sroa.430.0..sroa_idx = getelementptr inbounds i8, ptr %368, i64 8
  store i64 6, ptr %.sroa.430.0..sroa_idx, align 8, !tbaa !12
  %.sroa.531.0..sroa_idx = getelementptr inbounds i8, ptr %368, i64 16
  store i64 %365, ptr %.sroa.531.0..sroa_idx, align 8, !tbaa !12
  %369 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %368)
          to label %370 unwind label %126

370:                                              ; preds = %364
  %.not304 = icmp eq i64 %369, 0
  br i1 %.not304, label %371, label %377

371:                                              ; preds = %370
  %372 = load i32, ptr @m, align 4, !tbaa !8
  %373 = add nsw i32 %372, 1
  store i32 %373, ptr @m, align 4, !tbaa !8
  %374 = sext i32 %372 to i64
  %375 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %374
  %376 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %375)
          to label %377 unwind label %126

377:                                              ; preds = %371, %370
  %378 = load i32, ptr @m, align 4, !tbaa !8
  %379 = sext i32 %378 to i64
  %380 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %379
  store i64 %103, ptr %380, align 8, !tbaa !12
  %.sroa.425.0..sroa_idx = getelementptr inbounds i8, ptr %380, i64 8
  store i64 6, ptr %.sroa.425.0..sroa_idx, align 8, !tbaa !12
  %.sroa.526.0..sroa_idx = getelementptr inbounds i8, ptr %380, i64 16
  store i64 %107, ptr %.sroa.526.0..sroa_idx, align 8, !tbaa !12
  %381 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %380)
          to label %382 unwind label %126

382:                                              ; preds = %377
  %.not305 = icmp eq i64 %381, 0
  br i1 %.not305, label %.invoke, label %407

383:                                              ; preds = %.lr.ph354
  %384 = call noundef i64 @_Z4ipowxi(i64 noundef %107, i32 noundef 7)
  %385 = load i32, ptr @m, align 4, !tbaa !8
  %386 = sext i32 %385 to i64
  %387 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %386
  store i64 %103, ptr %387, align 8, !tbaa !12
  %.sroa.420.0..sroa_idx = getelementptr inbounds i8, ptr %387, i64 8
  store i64 7, ptr %.sroa.420.0..sroa_idx, align 8, !tbaa !12
  %.sroa.521.0..sroa_idx = getelementptr inbounds i8, ptr %387, i64 16
  store i64 %384, ptr %.sroa.521.0..sroa_idx, align 8, !tbaa !12
  %388 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %387)
          to label %389 unwind label %126

389:                                              ; preds = %383
  %.not302 = icmp eq i64 %388, 0
  br i1 %.not302, label %390, label %396

390:                                              ; preds = %389
  %391 = load i32, ptr @m, align 4, !tbaa !8
  %392 = add nsw i32 %391, 1
  store i32 %392, ptr @m, align 4, !tbaa !8
  %393 = sext i32 %391 to i64
  %394 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %393
  %395 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %394)
          to label %396 unwind label %126

396:                                              ; preds = %390, %389
  %397 = load i32, ptr @m, align 4, !tbaa !8
  %398 = sext i32 %397 to i64
  %399 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %398
  store i64 %103, ptr %399, align 8, !tbaa !12
  %.sroa.415.0..sroa_idx = getelementptr inbounds i8, ptr %399, i64 8
  store i64 7, ptr %.sroa.415.0..sroa_idx, align 8, !tbaa !12
  %.sroa.516.0..sroa_idx = getelementptr inbounds i8, ptr %399, i64 16
  store i64 %107, ptr %.sroa.516.0..sroa_idx, align 8, !tbaa !12
  %400 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %399)
          to label %401 unwind label %126

401:                                              ; preds = %396
  %.not303 = icmp eq i64 %400, 0
  br i1 %.not303, label %.invoke, label %407

.invoke:                                          ; preds = %401, %382, %363, %305, %273, %254, %184, %165, %133
  %402 = load i32, ptr @m, align 4, !tbaa !8
  %403 = add nsw i32 %402, 1
  store i32 %403, ptr @m, align 4, !tbaa !8
  %404 = sext i32 %402 to i64
  %405 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %404
  %406 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %405)
          to label %407 unwind label %126

407:                                              ; preds = %.invoke, %108, %.lr.ph354, %133, %184, %273, %363, %401, %382, %305, %254, %165
  %.3 = phi i32 [ %.2353, %133 ], [ %.2353, %165 ], [ %.2353, %184 ], [ %.2353, %254 ], [ %.2353, %273 ], [ %.2353, %305 ], [ %.2353, %363 ], [ %.2353, %382 ], [ %.2353, %401 ], [ %spec.select, %108 ], [ %.2353, %.lr.ph354 ], [ %.2353, %.invoke ]
  %indvars.iv.next377 = add nuw nsw i64 %indvars.iv376, 1
  %408 = load i32, ptr @m, align 4, !tbaa !8
  %409 = sext i32 %408 to i64
  %410 = icmp slt i64 %indvars.iv.next377, %409
  br i1 %410, label %.lr.ph354, label %.preheader, !llvm.loop !22

._crit_edge:                                      ; preds = %440, %.preheader336, %.preheader335, %.preheader
  %.2.lcssa383 = phi i32 [ %.3, %.preheader ], [ %18, %.preheader335 ], [ %18, %.preheader336 ], [ %.3, %440 ]
  %.lcssa = phi i32 [ %408, %.preheader ], [ %98, %.preheader335 ], [ %46, %.preheader336 ], [ %441, %440 ]
  %411 = add nsw i32 %.lcssa, %.2.lcssa383
  call void @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %2) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %2) #5
  ret i32 %411

.lr.ph357:                                        ; preds = %.preheader, %440
  %indvars.iv379 = phi i64 [ %indvars.iv.next380, %440 ], [ 0, %.preheader ]
  %412 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %indvars.iv379
  %413 = getelementptr inbounds i8, ptr %412, i64 16
  %414 = load i64, ptr %413, align 8, !tbaa !17
  %415 = getelementptr inbounds i8, ptr %412, i64 8
  %416 = load i64, ptr %415, align 8, !tbaa !19
  %417 = trunc i64 %416 to i32
  %418 = invoke noundef i64 @_Z5irootxi(i64 noundef %414, i32 noundef %417)
          to label %419 unwind label %438

419:                                              ; preds = %.lr.ph357
  %420 = load i64, ptr %415, align 8, !tbaa !19
  %421 = trunc i64 %420 to i32
  %422 = call noundef i64 @_Z4ipowxi(i64 noundef %418, i32 noundef %421)
  %423 = load i64, ptr %413, align 8, !tbaa !17
  %424 = icmp eq i64 %422, %423
  br i1 %424, label %425, label %440

425:                                              ; preds = %419
  %426 = load i32, ptr @m, align 4, !tbaa !8
  %427 = sext i32 %426 to i64
  %428 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %427
  %429 = load <2 x i64>, ptr %412, align 8, !tbaa !12
  store <2 x i64> %429, ptr %428, align 8, !tbaa !12
  %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %428, i64 16
  store i64 %418, ptr %.sroa.5.0..sroa_idx, align 8, !tbaa !12
  %430 = invoke noundef i64 @_ZNKSt3setI6TripleSt4lessIS0_ESaIS0_EE5countERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %428)
          to label %431 unwind label %438

431:                                              ; preds = %425
  %.not301 = icmp eq i64 %430, 0
  br i1 %.not301, label %432, label %440

432:                                              ; preds = %431
  %433 = load i32, ptr @m, align 4, !tbaa !8
  %434 = add nsw i32 %433, 1
  store i32 %434, ptr @m, align 4, !tbaa !8
  %435 = sext i32 %433 to i64
  %436 = getelementptr inbounds [10000001 x %struct.Triple], ptr @seq, i64 0, i64 %435
  %437 = invoke { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48) %2, ptr noundef nonnull align 8 dereferenceable(24) %436)
          to label %440 unwind label %438

438:                                              ; preds = %432, %425, %.lr.ph357
  %439 = landingpad { ptr, i32 }
          cleanup
  br label %444

440:                                              ; preds = %432, %431, %419
  %indvars.iv.next380 = add nuw nsw i64 %indvars.iv379, 1
  %441 = load i32, ptr @m, align 4, !tbaa !8
  %442 = sext i32 %441 to i64
  %443 = icmp slt i64 %indvars.iv.next380, %442
  br i1 %443, label %.lr.ph357, label %._crit_edge, !llvm.loop !23

444:                                              ; preds = %438, %126, %95, %62, %37
  %.pn = phi { ptr, i32 } [ %63, %62 ], [ %96, %95 ], [ %127, %126 ], [ %439, %438 ], [ %38, %37 ]
  call void @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %2) #5
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %2) #5
  resume { ptr, i32 } %.pn
}

; Function Attrs: mustprogress nofree nounwind willreturn memory(write)
declare x86_fp80 @sqrtl(x86_fp80 noundef) local_unnamed_addr #3

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #0 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef double @_ZSt3powIiiEN9__gnu_cxx9__promoteIDTplcvNS1_IT_Xsr3std12__is_integerIS2_EE7__valueEE6__typeELi0EcvNS1_IT0_Xsr3std12__is_integerIS5_EE7__valueEE6__typeELi0EEXsr3std12__is_integerIS8_EE7__valueEE6__typeES2_S5_(i32 noundef, i32 noundef) local_unnamed_addr #4

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EE6insertERKS0_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt3setI6TripleSt4lessIS0_ESaIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #0 align 2

attributes #0 = { 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 #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #2 = { 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 #3 = { mustprogress nofree nounwind willreturn memory(write) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint 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 #5 = { 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 = distinct !{!5, !6}
!6 = !{!"llvm.loop.mustprogress"}
!7 = distinct !{!7, !6}
!8 = !{!9, !9, i64 0}
!9 = !{!"int", !10, i64 0}
!10 = !{!"omnipotent char", !11, i64 0}
!11 = !{!"Simple C++ TBAA"}
!12 = !{!13, !13, i64 0}
!13 = !{!"long long", !10, i64 0}
!14 = distinct !{!14, !6}
!15 = distinct !{!15, !6}
!16 = distinct !{!16, !6}
!17 = !{!18, !13, i64 16}
!18 = !{!"_ZTS6Triple", !13, i64 0, !13, i64 8, !13, i64 16}
!19 = !{!18, !13, i64 8}
!20 = distinct !{!20, !6}
!21 = !{!18, !13, i64 0}
!22 = distinct !{!22, !6}
!23 = distinct !{!23, !6}


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